diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-04 17:18:58 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-04 17:18:58 +0200 |
| commit | 83cbf0e4a142ab2c57fd4fdfc056517b7149828b (patch) | |
| tree | ad12636f5e01e8a70dcefcee01ee9f84f4f0edab /src/administration_writer.cpp | |
| parent | f9f1955748a3b369f0a015405af131c9b6e3285c (diff) | |
namespace administration reader + writer
Diffstat (limited to 'src/administration_writer.cpp')
| -rw-r--r-- | src/administration_writer.cpp | 128 |
1 files changed, 64 insertions, 64 deletions
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; //} |
