From 60dfc4cab91b0076901cac81ba6cb1f2d198b06c Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 19 Oct 2025 13:49:36 +0200 Subject: new tax rate format, ui and r/w --- src/administration_reader.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/administration_reader.cpp') diff --git a/src/administration_reader.cpp b/src/administration_reader.cpp index 41ebdca..976c533 100644 --- a/src/administration_reader.cpp +++ b/src/administration_reader.cpp @@ -374,19 +374,27 @@ bool administration_reader::import_tax_rate(char* buffer, size_t buffer_size) struct xml_node* root = xml_document_root(document); tax_rate data = {0}; - xml_get_str(root, data.id, MAX_LEN_ID, "Id"); - xml_get_str(root, data.country_code, MAX_LEN_COUNTRY_CODE, "CountryCode"); - xml_get_str(root, data.category_code, MAX_LEN_CODE, "Category"); + xml_get_str(root, data.internal_code, MAX_LEN_ID, "Id"); data.rate = xml_get_float(root, "Rate"); + data.type = static_cast(xml_get_s32(root, "Type")); + + char tsb[MAX_LEN_LONG_DESC]; + xml_get_str(root, tsb, MAX_LEN_LONG_DESC, "TaxSections"); + + for (char *p = strops::tokenize(tsb,"##"); p != NULL; p = strtok(NULL, "##")) + { + if (strlen(p) > 0) + strops::copy(data.tax_sections[data.tax_section_count++], p, MAX_LEN_SHORT_DESC); + } a_err result = administration::tax_rate_import(data); if (result == A_ERR_SUCCESS) { - logger::info("Loaded tax rate info in %.3fms. id=%s country_code=%s category_code=%s rate=%.2f", - STOPWATCH_TIME, data.id, data.country_code, data.category_code, data.rate); + logger::info("Loaded tax rate info in %.3fms. internal_code=%s", + STOPWATCH_TIME, data.internal_code); } else { logger::aerr(result); - logger::error("ERROR loading tax rate '%s'.", data.id); + logger::error("ERROR loading tax rate '%s'.", data.internal_code); } return result; -- cgit v1.2.3-70-g09d2