summaryrefslogtreecommitdiff
path: root/src/administration_reader.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-19 13:49:36 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-19 13:49:36 +0200
commit60dfc4cab91b0076901cac81ba6cb1f2d198b06c (patch)
treeb5408e86171782eb28017702b79e47f0ca03ed89 /src/administration_reader.cpp
parent18bfbc423d188683973a0a3d6c31c9225158e262 (diff)
new tax rate format, ui and r/w
Diffstat (limited to 'src/administration_reader.cpp')
-rw-r--r--src/administration_reader.cpp20
1 files changed, 14 insertions, 6 deletions
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<tax_rate_type>(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;