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.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/administration.cpp') diff --git a/src/administration.cpp b/src/administration.cpp index d01ec61..93af778 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -1045,6 +1045,45 @@ tax_rate administration::tax_rate_create_empty() return result; } +a_err administration::tax_rate_remove(tax_rate data) +{ + list_iterator_start(&g_administration.tax_rates); + while (list_iterator_hasnext(&g_administration.tax_rates)) { + tax_rate* c = (tax_rate *)list_iterator_next(&g_administration.tax_rates); + + if (strcmp(c->internal_code, data.internal_code) == 0) + { + list_iterator_stop(&g_administration.tax_rates); + if (list_delete(&g_administration.tax_rates, c) != 0) return A_ERR_GENERIC; + + char filename[MAX_LEN_PATH]; + strops::format(filename, sizeof(filename), "T/%s", c->internal_code); + if (data_deleted_event_callback) data_deleted_event_callback(filename); + return A_ERR_SUCCESS; + } + } + list_iterator_stop(&g_administration.tax_rates); + + return A_ERR_NOT_FOUND; +} + +a_err administration::tax_rate_exists(tax_rate data) +{ + list_iterator_start(&g_administration.tax_rates); + while (list_iterator_hasnext(&g_administration.tax_rates)) { + tax_rate c = *(tax_rate *)list_iterator_next(&g_administration.tax_rates); + + if (strcmp(c.internal_code, data.internal_code) == 0) + { + list_iterator_stop(&g_administration.tax_rates); + return A_ERR_SUCCESS; + } + } + list_iterator_stop(&g_administration.tax_rates); + + return A_ERR_NOT_FOUND; +} + a_err administration::tax_rate_get_by_shorthandle(tax_rate* buffer, char* handle) { assert(buffer); -- cgit v1.2.3-70-g09d2