summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-04 17:18:58 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-04 17:18:58 +0200
commit83cbf0e4a142ab2c57fd4fdfc056517b7149828b (patch)
treead12636f5e01e8a70dcefcee01ee9f84f4f0edab
parentf9f1955748a3b369f0a015405af131c9b6e3285c (diff)
namespace administration reader + writer
-rw-r--r--include/administration_reader.hpp24
-rw-r--r--include/administration_writer.hpp42
-rw-r--r--include/strops.hpp5
-rw-r--r--src/administration_reader.cpp46
-rw-r--r--src/administration_writer.cpp128
-rw-r--r--src/importer.cpp2
-rw-r--r--src/main.cpp6
-rw-r--r--src/strops.cpp2
-rw-r--r--src/ui/ui_main.cpp6
-rw-r--r--tests/administration_rw_tests.cpp36
-rw-r--r--tests/peppol_write_tests.cpp4
11 files changed, 155 insertions, 146 deletions
diff --git a/include/administration_reader.hpp b/include/administration_reader.hpp
index d650855..f8f8766 100644
--- a/include/administration_reader.hpp
+++ b/include/administration_reader.hpp
@@ -16,14 +16,18 @@
#pragma once
-bool administration_reader_open_new();
-bool administration_reader_open_existing(char* file_path);
-bool administration_reader_save_new();
+namespace administration_reader {
-bool administration_reader_import_administration_info(char* buffer, size_t buffer_size);
-bool administration_reader_import_tax_rate(char* buffer, size_t buffer_size);
-bool administration_reader_import_cost_center(char* buffer, size_t buffer_size);
-bool administration_reader_import_project(char* buffer, size_t buffer_size);
-bool administration_reader_import_contact(char* buffer, size_t buffer_size);
-bool administration_reader_import_invoice(char* buffer, size_t buffer_size);
-bool administration_reader_read_invoice_from_xml(invoice* result, char* buffer, size_t buffer_size); \ No newline at end of file
+ bool open_new();
+ bool open_existing(char* file_path);
+ bool save_new();
+
+ bool import_administration_info(char* buffer, size_t buffer_size);
+ bool import_tax_rate(char* buffer, size_t buffer_size);
+ bool import_cost_center(char* buffer, size_t buffer_size);
+ bool import_project(char* buffer, size_t buffer_size);
+ bool import_contact(char* buffer, size_t buffer_size);
+ bool import_invoice(char* buffer, size_t buffer_size);
+ bool read_invoice_from_xml(invoice* result, char* buffer, size_t buffer_size);
+
+} \ No newline at end of file
diff --git a/include/administration_writer.hpp b/include/administration_writer.hpp
index 7ac0645..6f1d602 100644
--- a/include/administration_writer.hpp
+++ b/include/administration_writer.hpp
@@ -20,22 +20,26 @@
#define ADMIN_FILE_INFO "info.xml"
-// Setup functions.
-bool administration_writer_create();
-void administration_writer_destroy();
-
-bool administration_writer_start_new();
-
-// Individual entity writing.
-bool administration_writer_delete_entry(char* id);
-bool administration_writer_save_project_blocking(project project);
-bool administration_writer_save_cost_center_blocking(cost_center cost);
-bool administration_writer_save_tax_rate_blocking(tax_rate rate);
-bool administration_writer_save_contact_blocking(contact c);
-bool administration_writer_save_invoice_blocking(invoice inv);
-
-// Archiving functions.
-bool administration_writer_save_all_administration_info_blocking();
-bool administration_writer_save_all_tax_rates_blocking();
-bool administration_writer_save_all_cost_centers_blocking();
-bool administration_writer_save_all_async(); \ No newline at end of file
+namespace administration_writer {
+
+ // Setup functions.
+ bool create();
+ void destroy();
+
+ bool start_new();
+
+ // Individual entity writing.
+ bool delete_entry(char* id);
+ bool save_project_blocking(project project);
+ bool save_cost_center_blocking(cost_center cost);
+ bool save_tax_rate_blocking(tax_rate rate);
+ bool save_contact_blocking(contact c);
+ bool save_invoice_blocking(invoice inv);
+
+ // Archiving functions.
+ bool save_all_administration_info_blocking();
+ bool save_all_tax_rates_blocking();
+ bool save_all_cost_centers_blocking();
+ bool save_all_async();
+
+} \ No newline at end of file
diff --git a/include/strops.hpp b/include/strops.hpp
index ec3dcdd..5ecc99a 100644
--- a/include/strops.hpp
+++ b/include/strops.hpp
@@ -26,9 +26,10 @@ namespace strops {
void replace_int32(char *buf, size_t buf_size, const char *search, int32_t number);
void replace_int64(char *buf, size_t buf_size, const char *search, int64_t number);
void replace_float(char *buf, size_t buf_size, const char *search, float number, int decimals);
- bool prefix(const char *pre, const char *str);
- char* get_json_value(const char *json, const char *key, char *out, size_t out_size, int nth = 0);
+ bool is_prefixed(const char *pre, const char *str);
char* get_filename(const char* path);
+
+ char* get_json_value(const char *json, const char *key, char *out, size_t out_size, int nth = 0);
char* prep_str_for_json(const char *input, size_t buffer_size);
char* unprep_str_from_json(char *input);
diff --git a/src/administration_reader.cpp b/src/administration_reader.cpp
index 5d94eff..49a148f 100644
--- a/src/administration_reader.cpp
+++ b/src/administration_reader.cpp
@@ -28,7 +28,7 @@
#include "administration_writer.hpp"
#include "tinyfiledialogs.h"
-bool administration_reader_open_new()
+bool administration_reader::open_new()
{
// @locale::get
char const * lFilterPatterns[1] = { "*.openbook" };
@@ -41,7 +41,7 @@ bool administration_reader_open_new()
return true;
}
-bool administration_reader_save_new()
+bool administration_reader::save_new()
{
// @locale::get
char const * lFilterPatterns[1] = { "*.openbook" };
@@ -50,12 +50,12 @@ bool administration_reader_save_new()
if (!save_path) return false;
administration_set_file_path(save_path);
- administration_writer_save_all_async();
+ administration_writer::save_all_async();
return true;
}
-bool administration_reader_open_existing(char* file_path)
+bool administration_reader::open_existing(char* file_path)
{
if (file_path == NULL) {
// @locale::get
@@ -88,27 +88,27 @@ bool administration_reader_open_existing(char* file_path)
if (strcmp(name, ADMIN_FILE_INFO) == 0)
{
- administration_reader_import_administration_info(buffer, (size_t)size);
+ administration_reader::import_administration_info(buffer, (size_t)size);
}
- else if (strops::prefix("T/", name))
+ else if (strops::is_prefixed("T/", name))
{
- administration_reader_import_tax_rate(buffer, (size_t)size);
+ administration_reader::import_tax_rate(buffer, (size_t)size);
}
- else if (strops::prefix("E/", name))
+ else if (strops::is_prefixed("E/", name))
{
- administration_reader_import_cost_center(buffer, (size_t)size);
+ administration_reader::import_cost_center(buffer, (size_t)size);
}
- else if (strops::prefix("P/", name))
+ else if (strops::is_prefixed("P/", name))
{
- administration_reader_import_project(buffer, (size_t)size);
+ administration_reader::import_project(buffer, (size_t)size);
}
- else if (strops::prefix("C/", name))
+ else if (strops::is_prefixed("C/", name))
{
- administration_reader_import_contact(buffer, (size_t)size);
+ administration_reader::import_contact(buffer, (size_t)size);
}
- else if (strops::prefix("I/", name))
+ else if (strops::is_prefixed("I/", name))
{
- administration_reader_import_invoice(buffer, (size_t)size);
+ administration_reader::import_invoice(buffer, (size_t)size);
}
free(buffer);
@@ -123,7 +123,7 @@ bool administration_reader_open_existing(char* file_path)
return true;
}
-bool administration_reader_read_invoice_from_xml(invoice* result, char* buffer, size_t buffer_size)
+bool administration_reader::read_invoice_from_xml(invoice* result, char* buffer, size_t buffer_size)
{
xml_document* document = xml_parse_document((uint8_t *)buffer, buffer_size);
if (!document) return false;
@@ -253,12 +253,12 @@ bool administration_reader_read_invoice_from_xml(invoice* result, char* buffer,
return true;
}
-bool administration_reader_import_invoice(char* buffer, size_t buffer_size)
+bool administration_reader::import_invoice(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
invoice data;
- if (!administration_reader_read_invoice_from_xml(&data, buffer, buffer_size)) return false;
+ if (!administration_reader::read_invoice_from_xml(&data, buffer, buffer_size)) return false;
a_err result = administration_invoice_import(&data);
if (result == A_ERR_SUCCESS) {
@@ -272,7 +272,7 @@ bool administration_reader_import_invoice(char* buffer, size_t buffer_size)
return result == A_ERR_SUCCESS;
}
-bool administration_reader_import_contact(char* buffer, size_t buffer_size)
+bool administration_reader::import_contact(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
@@ -311,7 +311,7 @@ bool administration_reader_import_contact(char* buffer, size_t buffer_size)
return result;
}
-bool administration_reader_import_project(char* buffer, size_t buffer_size)
+bool administration_reader::import_project(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
@@ -340,7 +340,7 @@ bool administration_reader_import_project(char* buffer, size_t buffer_size)
return result;
}
-bool administration_reader_import_cost_center(char* buffer, size_t buffer_size)
+bool administration_reader::import_cost_center(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
@@ -367,7 +367,7 @@ bool administration_reader_import_cost_center(char* buffer, size_t buffer_size)
return result;
}
-bool administration_reader_import_tax_rate(char* buffer, size_t buffer_size)
+bool administration_reader::import_tax_rate(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
@@ -395,7 +395,7 @@ bool administration_reader_import_tax_rate(char* buffer, size_t buffer_size)
return result;
}
-bool administration_reader_import_administration_info(char* buffer, size_t buffer_size)
+bool administration_reader::import_administration_info(char* buffer, size_t buffer_size)
{
STOPWATCH_START;
diff --git a/src/administration_writer.cpp b/src/administration_writer.cpp
index 4f5a7ca..5f8209b 100644
--- a/src/administration_writer.cpp
+++ b/src/administration_writer.cpp
@@ -34,7 +34,7 @@ mtx_t _save_file_mutex;
static void on_administration_data_changed()
{
- if (administration_writer_save_all_administration_info_blocking()) {
+ if (administration_writer::save_all_administration_info_blocking()) {
ui_set_status(locale::get("status.saved"));
}
else {
@@ -44,35 +44,35 @@ static void on_administration_data_changed()
static void on_administration_data_deleted(char id[MAX_LEN_ID])
{
- administration_writer_delete_entry(id);
+ administration_writer::delete_entry(id);
}
static void on_invoice_changed(invoice* invoice)
{
- administration_writer_save_invoice_blocking(*invoice);
+ administration_writer::save_invoice_blocking(*invoice);
}
static void on_contact_changed_changed(contact* contact)
{
- administration_writer_save_contact_blocking(*contact);
+ administration_writer::save_contact_blocking(*contact);
}
static void on_taxrate_changed_changed(tax_rate* rate)
{
- administration_writer_save_tax_rate_blocking(*rate);
+ administration_writer::save_tax_rate_blocking(*rate);
}
static void on_costcenter_changed_changed(cost_center* cost_center)
{
- administration_writer_save_cost_center_blocking(*cost_center);
+ administration_writer::save_cost_center_blocking(*cost_center);
}
static void on_project_changed_changed(project* project)
{
- administration_writer_save_project_blocking(*project);
+ administration_writer::save_project_blocking(*project);
}
-bool administration_writer_create()
+bool administration_writer::create()
{
administration_set_data_changed_event_callback(on_administration_data_changed);
administration_set_data_deleted_event_callback(on_administration_data_deleted);
@@ -85,12 +85,12 @@ bool administration_writer_create()
return mtx_init(&_save_file_mutex, mtx_plain) == thrd_success;
}
-void administration_writer_destroy()
+void administration_writer::destroy()
{
mtx_destroy(&_save_file_mutex);
}
-static char* administration_writer_copy_template(const char* template_str, int* buf_size)
+static char* copy_template(const char* template_str, int* buf_size)
{
size_t template_size = strlen(template_str);
size_t buf_length = template_size*5; // Ballpark file content size.
@@ -101,7 +101,7 @@ static char* administration_writer_copy_template(const char* template_str, int*
return file_content;
}
-static bool administration_writer_entry_exists(char* entry)
+static bool zip_entry_exists(char* entry)
{
struct zip_t *zip_read = zip_open(administration_get_file_path(), 0, 'r');
int result = zip_entry_open(zip_read, entry);
@@ -110,7 +110,7 @@ static bool administration_writer_entry_exists(char* entry)
return result == 0;
}
-static bool _administration_writer_delete_entry_by_name(char* entry)
+static bool delete_entry_by_name(char* entry)
{
STOPWATCH_START;
@@ -128,19 +128,19 @@ static bool _administration_writer_delete_entry_by_name(char* entry)
return result;
}
-bool administration_writer_delete_entry(char* id)
+bool administration_writer::delete_entry(char* id)
{
char final_path[50];
snprintf(final_path, 50, "%s.xml", id);
- return _administration_writer_delete_entry_by_name(final_path);
+ return delete_entry_by_name(final_path);
}
-static bool administration_writer_write_to_zip(char* entry_to_replace, char* orig_content, int final_length)
+static bool write_to_zip(char* entry_to_replace, char* orig_content, int final_length)
{
bool result = 1;
- bool entry_exists = administration_writer_entry_exists(entry_to_replace);
- if (entry_exists) _administration_writer_delete_entry_by_name(entry_to_replace);
+ bool entry_exists = zip_entry_exists(entry_to_replace);
+ if (entry_exists) delete_entry_by_name(entry_to_replace);
struct zip_t *zip_write = zip_open(administration_get_file_path(), 0, 'a');
if (!zip_write) zip_write = zip_open(administration_get_file_path(), 0, 'w');
@@ -157,7 +157,7 @@ static bool administration_writer_write_to_zip(char* entry_to_replace, char* ori
//// Invoices
/////////////////////////////
-static char* administration_writer_get_eas_id_for_contact(contact contact)
+static char* get_eas_id_for_contact(contact contact)
{
if (contact.type == contact_type::CONTACT_CONSUMER) {
return "[CONSUMER]";
@@ -199,7 +199,7 @@ static char* administration_writer_get_eas_id_for_contact(contact contact)
return NULL; // Unknown country code
}
-static char* administration_writer_get_eas_scheme_for_contact(contact contact)
+static char* get_eas_scheme_for_contact(contact contact)
{
if (contact.type == contact_type::CONTACT_CONSUMER) {
return "0203"; // Hack
@@ -317,7 +317,7 @@ static void _add_document_to_zip(invoice* inv)
fclose(orig_file);
- if (administration_writer_write_to_zip(copy_path, file_copy, sz)) {
+ if (write_to_zip(copy_path, file_copy, sz)) {
strops::copy(doc->copy_path, copy_path, MAX_LEN_PATH);
logger::info("Made copy of '%s' to '%s'.", doc->original_path, doc->copy_path);
}
@@ -329,7 +329,7 @@ static void _add_document_to_zip(invoice* inv)
}
}
-bool administration_writer_save_invoice_blocking(invoice inv)
+bool administration_writer::save_invoice_blocking(invoice inv)
{
STOPWATCH_START;
@@ -354,8 +354,8 @@ bool administration_writer_save_invoice_blocking(invoice inv)
strops::replace_int32(file_content, buf_length, "{{INVOICE_STATUS}}", (s32)inv.status);
// Supplier data
- strops::replace(file_content, buf_length, "{{SUPPLIER_ENDPOINT_SCHEME}}", administration_writer_get_eas_scheme_for_contact(inv.supplier));
- strops::replace(file_content, buf_length, "{{SUPPLIER_ENDPOINT_ID}}", administration_writer_get_eas_id_for_contact(inv.supplier));
+ strops::replace(file_content, buf_length, "{{SUPPLIER_ENDPOINT_SCHEME}}", get_eas_scheme_for_contact(inv.supplier));
+ strops::replace(file_content, buf_length, "{{SUPPLIER_ENDPOINT_ID}}", get_eas_id_for_contact(inv.supplier));
strops::replace(file_content, buf_length, "{{SUPPLIER_ID}}", inv.supplier.id);
strops::replace(file_content, buf_length, "{{SUPPLIER_NAME}}", inv.supplier.name);
strops::replace(file_content, buf_length, "{{SUPPLIER_STREET}}", inv.supplier.address.address1);
@@ -371,8 +371,8 @@ bool administration_writer_save_invoice_blocking(invoice inv)
strops::replace(file_content, buf_length, "{{SUPPLIER_EMAIL}}", inv.supplier.email);
// Customer data
- strops::replace(file_content, buf_length, "{{CUSTOMER_ENDPOINT_SCHEME}}", administration_writer_get_eas_scheme_for_contact(inv.customer));
- strops::replace(file_content, buf_length, "{{CUSTOMER_ENDPOINT_ID}}", administration_writer_get_eas_id_for_contact(inv.customer));
+ strops::replace(file_content, buf_length, "{{CUSTOMER_ENDPOINT_SCHEME}}", get_eas_scheme_for_contact(inv.customer));
+ strops::replace(file_content, buf_length, "{{CUSTOMER_ENDPOINT_ID}}", get_eas_id_for_contact(inv.customer));
strops::replace(file_content, buf_length, "{{CUSTOMER_ID}}", inv.customer.id);
strops::replace(file_content, buf_length, "{{CUSTOMER_NAME}}", inv.customer.name);
strops::replace(file_content, buf_length, "{{CUSTOMER_STREET}}", inv.customer.address.address1);
@@ -420,7 +420,7 @@ bool administration_writer_save_invoice_blocking(invoice inv)
for (u32 i = 0; i < tax_rate_count; i++)
{
int tax_entry_buf_length = 0;
- char* tax_entry_file_content = administration_writer_copy_template(file_template::peppol_invoice_tax_subtotal_template, &tax_entry_buf_length);
+ char* tax_entry_file_content = copy_template(file_template::peppol_invoice_tax_subtotal_template, &tax_entry_buf_length);
tax_subtotal subtotal;
administration_invoice_get_subtotal_for_tax_rate(&inv, tax_rate_buffer[i], &subtotal);
@@ -463,7 +463,7 @@ bool administration_writer_save_invoice_blocking(invoice inv)
for (u32 i = 0; i < billing_item_count; i++)
{
int billing_item_buf_length = 0;
- char* billing_item_file_content = administration_writer_copy_template(file_template::peppol_invoice_line_template, &billing_item_buf_length);
+ char* billing_item_file_content = copy_template(file_template::peppol_invoice_line_template, &billing_item_buf_length);
billing_item bi = billing_item_buffer[i];
tax_rate rate;
@@ -521,7 +521,7 @@ bool administration_writer_save_invoice_blocking(invoice inv)
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(final_path, file_content, final_length)) result = 0;
+ else if (!write_to_zip(final_path, file_content, final_length)) result = 0;
free(file_content);
@@ -531,7 +531,7 @@ bool administration_writer_save_invoice_blocking(invoice inv)
return result;
}
-static bool administration_writer_save_all_invoices_blocking()
+static bool save_all_invoices_blocking()
{
bool result = 1;
u32 num_invoices = administration_invoice_count();
@@ -541,7 +541,7 @@ static bool administration_writer_save_all_invoices_blocking()
for (u32 i = 0; i < num_invoices; i++) {
invoice c = invoice_buffer[i];
- if (!administration_writer_save_invoice_blocking(c)) result = 0;
+ if (!administration_writer::save_invoice_blocking(c)) result = 0;
}
free(invoice_buffer);
@@ -551,13 +551,13 @@ static bool administration_writer_save_all_invoices_blocking()
/////////////////////////////
//// Projects
/////////////////////////////
-bool administration_writer_save_project_blocking(project project)
+bool administration_writer::save_project_blocking(project project)
{
STOPWATCH_START;
bool result = 1;
int buf_length = 0;
- char* file_content = administration_writer_copy_template(file_template::project_save_template, &buf_length);
+ char* file_content = copy_template(file_template::project_save_template, &buf_length);
struct tm *tm_info = 0;
char date_buffer[11]; // "YYYY-MM-DD" + null terminator
@@ -580,7 +580,7 @@ bool administration_writer_save_project_blocking(project project)
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(final_path, file_content, final_length)) result = 0;
+ else if (!write_to_zip(final_path, file_content, final_length)) result = 0;
free(file_content);
@@ -590,7 +590,7 @@ bool administration_writer_save_project_blocking(project project)
return result;
}
-static bool administration_writer_save_all_projects_blocking()
+static bool save_all_projects_blocking()
{
bool result = 1;
u32 num_projects = administration_project_count();
@@ -600,7 +600,7 @@ static bool administration_writer_save_all_projects_blocking()
for (u32 i = 0; i < num_projects; i++) {
project c = project_buffer[i];
- if (!administration_writer_save_project_blocking(c)) result = 0;
+ if (!administration_writer::save_project_blocking(c)) result = 0;
}
free(project_buffer);
@@ -610,13 +610,13 @@ static bool administration_writer_save_all_projects_blocking()
/////////////////////////////
//// Cost centers
/////////////////////////////
-bool administration_writer_save_cost_center_blocking(cost_center cost)
+bool administration_writer::save_cost_center_blocking(cost_center cost)
{
STOPWATCH_START;
bool result = 1;
int buf_length = 0;
- char* file_content = administration_writer_copy_template(file_template::costcenter_save_template, &buf_length);
+ char* file_content = copy_template(file_template::costcenter_save_template, &buf_length);
strops::replace(file_content, buf_length, "{{COSTCENTER_ID}}", cost.id);
strops::replace(file_content, buf_length, "{{COSTCENTER_CODE}}", cost.code);
@@ -628,7 +628,7 @@ bool administration_writer_save_cost_center_blocking(cost_center cost)
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(final_path, file_content, final_length)) result = 0;
+ else if (!write_to_zip(final_path, file_content, final_length)) result = 0;
free(file_content);
@@ -638,7 +638,7 @@ bool administration_writer_save_cost_center_blocking(cost_center cost)
return result;
}
-bool administration_writer_save_all_cost_centers_blocking()
+bool administration_writer::save_all_cost_centers_blocking()
{
bool result = 1;
u32 num_costcenters = administration_cost_center_count();
@@ -648,7 +648,7 @@ bool administration_writer_save_all_cost_centers_blocking()
for (u32 i = 0; i < num_costcenters; i++) {
cost_center c = costcenter_buffer[i];
- if (!administration_writer_save_cost_center_blocking(c)) result = 0;
+ if (!administration_writer::save_cost_center_blocking(c)) result = 0;
}
free(costcenter_buffer);
@@ -658,13 +658,13 @@ bool administration_writer_save_all_cost_centers_blocking()
/////////////////////////////
//// Tax rates
/////////////////////////////
-bool administration_writer_save_tax_rate_blocking(tax_rate rate)
+bool administration_writer::save_tax_rate_blocking(tax_rate rate)
{
STOPWATCH_START;
bool result = 1;
int buf_length = 0;
- char* file_content = administration_writer_copy_template(file_template::taxrate_save_template, &buf_length);
+ char* file_content = copy_template(file_template::taxrate_save_template, &buf_length);
strops::replace(file_content, buf_length, "{{TAXBRACKET_ID}}", rate.id);
strops::replace(file_content, buf_length, "{{TAXBRACKET_COUNTRY}}", rate.country_code);
@@ -677,7 +677,7 @@ bool administration_writer_save_tax_rate_blocking(tax_rate rate)
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(final_path, file_content, final_length)) result = 0;
+ else if (!write_to_zip(final_path, file_content, final_length)) result = 0;
free(file_content);
@@ -687,7 +687,7 @@ bool administration_writer_save_tax_rate_blocking(tax_rate rate)
return result;
}
-bool administration_writer_save_all_tax_rates_blocking()
+bool administration_writer::save_all_tax_rates_blocking()
{
//// Get all data.
u32 num_rates = administration_tax_rate_count();
@@ -699,7 +699,7 @@ bool administration_writer_save_all_tax_rates_blocking()
for (u32 i = 0; i < num_rates; i++) {
tax_rate c = rate_buffer[i];
- if (!administration_writer_save_tax_rate_blocking(c)) result = 0;
+ if (!administration_writer::save_tax_rate_blocking(c)) result = 0;
}
free(rate_buffer);
@@ -709,13 +709,13 @@ bool administration_writer_save_all_tax_rates_blocking()
/////////////////////////////
//// Contacts
/////////////////////////////
-bool administration_writer_save_contact_blocking(contact c)
+bool administration_writer::save_contact_blocking(contact c)
{
STOPWATCH_START;
bool result = 1;
int buf_length = 0;
- char* file_content = administration_writer_copy_template(file_template::contact_save_template, &buf_length);
+ char* file_content = copy_template(file_template::contact_save_template, &buf_length);
strops::replace(file_content, buf_length, "{{CONTACT_ID}}", c.id);
strops::replace(file_content, buf_length, "{{CONTACT_NAME}}", c.name);
@@ -737,7 +737,7 @@ bool administration_writer_save_contact_blocking(contact c)
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(final_path, file_content, final_length)) result = 0;
+ else if (!write_to_zip(final_path, file_content, final_length)) result = 0;
free(file_content);
@@ -747,7 +747,7 @@ bool administration_writer_save_contact_blocking(contact c)
return result;
}
-static bool administration_writer_save_all_contacts_blocking()
+static bool save_all_contacts_blocking()
{
//// Get all data.
u32 num_contacts = administration_contact_count();
@@ -758,12 +758,12 @@ static bool administration_writer_save_all_contacts_blocking()
bool result = 1;
// Save company info.
- if (!administration_writer_save_contact_blocking(administration_company_info_get())) result = 0;
+ if (!administration_writer::save_contact_blocking(administration_company_info_get())) result = 0;
// Save contacts.
for (u32 i = 0; i < num_contacts; i++) {
contact c = ((contact*)contact_buffer)[i];
- if (!administration_writer_save_contact_blocking(c)) result = 0;
+ if (!administration_writer::save_contact_blocking(c)) result = 0;
}
free(contact_buffer);
@@ -773,13 +773,13 @@ static bool administration_writer_save_all_contacts_blocking()
/////////////////////////////
//// Administration info
/////////////////////////////
-bool administration_writer_save_all_administration_info_blocking()
+bool administration_writer::save_all_administration_info_blocking()
{
STOPWATCH_START;
bool result = 1;
int buf_length = 0;
- char* file_content = administration_writer_copy_template(file_template::administration_save_template, &buf_length);
+ char* file_content = copy_template(file_template::administration_save_template, &buf_length);
strops::replace_int32(file_content, buf_length, "{{NEXT_ID}}", administration_get_next_id());
strops::replace_int32(file_content, buf_length, "{{NEXT_SEQUENCE_NUMBER}}", administration_get_next_sequence_number());
@@ -792,7 +792,7 @@ bool administration_writer_save_all_administration_info_blocking()
//// Write to Disk.
int final_length = (int)strlen(file_content);
if (!xml_parse_document((uint8_t*)file_content, final_length)) result = 0;
- else if (!administration_writer_write_to_zip(ADMIN_FILE_INFO, file_content, final_length)) result = 0;
+ else if (!write_to_zip(ADMIN_FILE_INFO, file_content, final_length)) result = 0;
free(file_content);
@@ -805,29 +805,29 @@ bool administration_writer_save_all_administration_info_blocking()
/////////////////////////////
//// Other
/////////////////////////////
-static int administration_writer_write_all_t(void *arg) {
+static int write_all_t(void *arg) {
(void)arg;
int result = 1;
mtx_lock(&_save_file_mutex);
- if (!administration_writer_save_all_invoices_blocking()) result = 0;
- if (!administration_writer_save_all_projects_blocking()) result = 0;
- if (!administration_writer_save_all_administration_info_blocking()) result = 0;
- if (!administration_writer_save_all_tax_rates_blocking()) result = 0;
- if (!administration_writer_save_all_cost_centers_blocking()) result = 0;
- if (!administration_writer_save_all_contacts_blocking()) result = 0;
+ if (!save_all_invoices_blocking()) result = 0;
+ if (!save_all_projects_blocking()) result = 0;
+ if (!administration_writer::save_all_administration_info_blocking()) result = 0;
+ if (!administration_writer::save_all_tax_rates_blocking()) result = 0;
+ if (!administration_writer::save_all_cost_centers_blocking()) result = 0;
+ if (!save_all_contacts_blocking()) result = 0;
mtx_unlock(&_save_file_mutex);
return result;
}
-bool administration_writer_save_all_async()
+bool administration_writer::save_all_async()
{
- administration_writer_write_all_t(0);
+ write_all_t(0);
//thrd_t thr;
- //if (thrd_create(&thr, administration_writer_write_all_t, 0) != thrd_success) {
+ //if (thrd_create(&thr, write_all_t, 0) != thrd_success) {
// return false;
//}
diff --git a/src/importer.cpp b/src/importer.cpp
index 42fdaa4..3fe44a9 100644
--- a/src/importer.cpp
+++ b/src/importer.cpp
@@ -109,7 +109,7 @@ static int _ai_document_to_invoice_t(void *arg) {
}
invoice inv;
- if (!administration_reader_read_invoice_from_xml(&inv, response, strlen(response))) {
+ if (!administration_reader::read_invoice_from_xml(&inv, response, strlen(response))) {
request->status = import_status::IMPORT_DONE;
request->error = I_ERR_FAILED_IMPORT;
return 0;
diff --git a/src/main.cpp b/src/main.cpp
index 8475008..4363806 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -139,13 +139,13 @@ int main(int argc, char** argv)
ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
timer_lib_initialize();
- administration_writer_create();
+ administration_writer::create();
if (argc < 2) {
administration_create_default("");
}
else {
- administration_reader_open_existing(argv[1]);
+ administration_reader::open_existing(argv[1]);
}
// Main loop
@@ -202,7 +202,7 @@ int main(int argc, char** argv)
g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED);
}
- administration_writer_destroy();
+ administration_writer::destroy();
timer_lib_shutdown();
// Cleanup
diff --git a/src/strops.cpp b/src/strops.cpp
index 303b64c..f8184f1 100644
--- a/src/strops.cpp
+++ b/src/strops.cpp
@@ -23,7 +23,7 @@
namespace strops {
- bool prefix(const char *pre, const char *str)
+ bool is_prefixed(const char *pre, const char *str)
{
return strncmp(pre, str, strlen(pre)) == 0;
}
diff --git a/src/ui/ui_main.cpp b/src/ui/ui_main.cpp
index f918ce8..ef2e9df 100644
--- a/src/ui/ui_main.cpp
+++ b/src/ui/ui_main.cpp
@@ -72,9 +72,9 @@ void ui_draw_main()
{
if (ImGui::BeginMenu("File"))
{
- if (ImGui::MenuItem("New")) { administration_reader_open_new(); }
- if (ImGui::MenuItem("Open")) { administration_reader_open_existing(NULL); }
- if (ImGui::MenuItem("Save")) { administration_reader_save_new(); }
+ if (ImGui::MenuItem("New")) { administration_reader::open_new(); }
+ if (ImGui::MenuItem("Open")) { administration_reader::open_existing(NULL); }
+ if (ImGui::MenuItem("Save")) { administration_reader::save_new(); }
ImGui::EndMenu();
}
diff --git a/tests/administration_rw_tests.cpp b/tests/administration_rw_tests.cpp
index 0bea1ce..321968e 100644
--- a/tests/administration_rw_tests.cpp
+++ b/tests/administration_rw_tests.cpp
@@ -21,7 +21,7 @@ TEST _administration_rw_taxrate(void)
tax_rate pr;
u32 count;
- administration_writer_create();
+ administration_writer::create();
administration_create_empty(test_file_path);
{
@@ -36,7 +36,7 @@ TEST _administration_rw_taxrate(void)
ASSERT_EQ(count+1, administration_tax_rate_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_tax_rate_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_tax_rate_get_by_id(&pr, pw.id));
@@ -52,7 +52,7 @@ TEST _administration_rw_costcenter(void)
cost_center pr;
u32 count;
- administration_writer_create();
+ administration_writer::create();
administration_create_empty(test_file_path);
{
@@ -66,7 +66,7 @@ TEST _administration_rw_costcenter(void)
ASSERT_EQ(count+1, administration_cost_center_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_cost_center_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_cost_center_get_by_id(&pr, pw.id));
@@ -82,7 +82,7 @@ TEST _administration_rw_project(void)
project pr;
u32 count;
- administration_writer_create();
+ administration_writer::create();
administration_create_empty(test_file_path);
{
@@ -94,7 +94,7 @@ TEST _administration_rw_project(void)
ASSERT_EQ(count+1, administration_project_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_project_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_project_get_by_id(&pr, pw.id));
@@ -110,7 +110,7 @@ TEST _administration_rw_contact(void)
contact pr;
u32 count;
- administration_writer_create();
+ administration_writer::create();
administration_create_empty(test_file_path);
{
@@ -129,7 +129,7 @@ TEST _administration_rw_contact(void)
ASSERT_EQ(count+1, administration_contact_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_contact_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_contact_get_by_id(&pr, pw.id));
@@ -141,7 +141,7 @@ TEST _administration_rw_contact(void)
TEST _administration_rw_info(void)
{
- administration_writer_create();
+ administration_writer::create();
s32 next_id, next_sequence_number;
ai_service ais;
@@ -158,7 +158,7 @@ TEST _administration_rw_info(void)
ais = administration_get_ai_service();
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(next_id, administration_get_next_id());
ASSERT_EQ(next_sequence_number, administration_get_next_sequence_number());
@@ -234,7 +234,7 @@ TEST _administration_rw_b2b_invoice(void)
invoice inv;
invoice invr;
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
{
@@ -260,7 +260,7 @@ TEST _administration_rw_b2b_invoice(void)
ASSERT_EQ(count+1, administration_invoice_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_invoice_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_invoice_get_by_id(&invr, inv.id));
@@ -277,7 +277,7 @@ TEST _administration_rw_b2c_invoice(void)
invoice inv;
invoice invr;
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
{
@@ -303,7 +303,7 @@ TEST _administration_rw_b2c_invoice(void)
ASSERT_EQ(count+1, administration_invoice_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_invoice_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_invoice_get_by_id(&invr, inv.id));
@@ -320,7 +320,7 @@ TEST _administration_rw_b2b2c_invoice(void)
invoice inv;
invoice invr;
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
{
@@ -346,7 +346,7 @@ TEST _administration_rw_b2b2c_invoice(void)
ASSERT_EQ(count+1, administration_invoice_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_invoice_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_invoice_get_by_id(&invr, inv.id));
@@ -363,7 +363,7 @@ TEST _administration_rw_b2c_2currency_invoice(void)
invoice inv;
invoice invr;
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
{
@@ -397,7 +397,7 @@ TEST _administration_rw_b2c_2currency_invoice(void)
ASSERT_EQ(count+1, administration_invoice_count());
}
- administration_reader_open_existing(test_file_path);
+ administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration_invoice_count());
ASSERT_EQ(A_ERR_SUCCESS, administration_invoice_get_by_id(&invr, inv.id));
diff --git a/tests/peppol_write_tests.cpp b/tests/peppol_write_tests.cpp
index fb74ed7..fd137b5 100644
--- a/tests/peppol_write_tests.cpp
+++ b/tests/peppol_write_tests.cpp
@@ -4,7 +4,7 @@
//////////////////
TEST _peppol_write_nl2nl_b2b(void)
{
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
invoice inv = administration_invoice_create_empty();
@@ -25,7 +25,7 @@ TEST _peppol_write_nl2nl_b2b(void)
TEST _peppol_write_nl2nl_b2c(void)
{
- administration_writer_create();
+ administration_writer::create();
administration_create_default(test_file_path);
invoice inv = administration_invoice_create_empty();