diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-19 14:45:43 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-19 14:45:43 +0200 |
| commit | f16a2f0e266b20b6bc4f964b8ff5dc53924fc2d9 (patch) | |
| tree | 0a04467c72c9a08fe5ca5d5b0c8615af4b5714f1 /src/administration.cpp | |
| parent | 60dfc4cab91b0076901cac81ba6cb1f2d198b06c (diff) | |
change inv ui for new tax rates
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 113 |
1 files changed, 10 insertions, 103 deletions
diff --git a/src/administration.cpp b/src/administration.cpp index 93af778..7a10ac0 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -1040,8 +1040,6 @@ tax_rate administration::tax_rate_create_empty() { tax_rate result; memops::zero(&result, sizeof(tax_rate)); - strops::format(result.id, sizeof(result.id), "T/%d", create_id()); - strops::format(result.category_code, sizeof(result.category_code), "S"); // S = standard rate. return result; } @@ -1084,43 +1082,14 @@ a_err administration::tax_rate_exists(tax_rate data) return A_ERR_NOT_FOUND; } -a_err administration::tax_rate_get_by_shorthandle(tax_rate* buffer, char* handle) +a_err administration::tax_rate_get_by_internal_code(tax_rate* buffer, char* id) { assert(buffer); 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); - - char compare_str[20]; - strops::format(compare_str, 20, "%s/%.2f", c.country_code, c.rate); - if (strcmp(compare_str, handle) == 0) - { - *buffer = c; - list_iterator_stop(&g_administration.tax_rates); - return A_ERR_SUCCESS; - } - strops::format(compare_str, 20, "%s/%s", c.country_code, c.category_code); - if (strcmp(compare_str, handle) == 0) - { - *buffer = c; - 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_id(tax_rate* buffer, char* id) -{ - assert(buffer); - - 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.id, id) == 0) + if (strcmp(c.internal_code, id) == 0) { *buffer = c; list_iterator_stop(&g_administration.tax_rates); @@ -1168,34 +1137,7 @@ a_err administration::tax_rate_add(tax_rate data) return A_ERR_SUCCESS; } -u32 administration::tax_rate_get_by_country(tax_rate* buffer, u32 code_count, char** tax_country_codes) -{ - assert(buffer); - - u32 write_cursor = 0; - - 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.country_code, "00") == 0) { - buffer[write_cursor++] = c; - continue; - } - - for (u32 x = 0; x < code_count; x++) { - if (strcmp(c.country_code, tax_country_codes[x]) == 0) { - buffer[write_cursor++] = c; - continue; - } - } - } - list_iterator_stop(&g_administration.tax_rates); - - return write_cursor; -} - -u32 administration::tax_rate_get_all(tax_rate* buffer) +u32 administration::tax_rate_get_all(tax_rate* buffer, tax_rate_type type) { assert(buffer); @@ -1204,34 +1146,13 @@ u32 administration::tax_rate_get_all(tax_rate* buffer) 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); - buffer[write_cursor++] = c; + if (c.type == type) buffer[write_cursor++] = c; } list_iterator_stop(&g_administration.tax_rates); return write_cursor; } -a_err administration::tax_rate_update(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->id, data.id) == 0) { - memops::copy(c, &data, sizeof(data)); - list_iterator_stop(&g_administration.tax_rates); - - if (taxrate_changed_event_callback) taxrate_changed_event_callback(c); - if (data_changed_event_callback) data_changed_event_callback(); - - return A_ERR_SUCCESS; - } - } - list_iterator_stop(&g_administration.tax_rates); - - return A_ERR_NOT_FOUND; -} - // Cost center functions. // ======================= u32 administration::cost_center_count() @@ -1412,21 +1333,7 @@ static char* get_default_currency_for_country(char* country_code) bool administration::invoice_has_intra_community_services(invoice* invoice) { - list_iterator_start(&invoice->billing_items); - while (list_iterator_hasnext(&invoice->billing_items)) { - billing_item* c = (billing_item *)list_iterator_next(&invoice->billing_items); - - tax_rate rate; - a_err found = administration::tax_rate_get_by_id(&rate, c->tax_rate_id); - if (found == A_ERR_SUCCESS) { - if (strops::equals(rate.category_code, "K#S")) { - list_iterator_stop(&invoice->billing_items); - return true; - } - } - } - list_iterator_stop(&invoice->billing_items); - + // TODO return false; } @@ -1711,7 +1618,7 @@ bool administration::invoice_get_subtotal_for_tax_rate(invoice* invoice, tax_rat while (list_iterator_hasnext(&invoice->billing_items)) { billing_item* c = (billing_item *)list_iterator_next(&invoice->billing_items); - if (strcmp(c->tax_rate_id, rate.id) == 0) + if (strcmp(c->tax_internal_code, rate.internal_code) == 0) { result = true; buffer->tax += c->tax; @@ -1734,12 +1641,12 @@ u32 administration::invoice_get_tax_rates(invoice* invoice, tax_rate* buffer) billing_item c = *(billing_item *)list_iterator_next(&invoice->billing_items); tax_rate rate; - a_err found = administration::tax_rate_get_by_id(&rate, c.tax_rate_id); + a_err found = administration::tax_rate_get_by_internal_code(&rate, c.tax_internal_code); if (found == A_ERR_SUCCESS) { bool exists = false; for (u32 i = 0; i < write_cursor; i++) { - if (strcmp(buffer[i].id, c.tax_rate_id) == 0) { + if (strcmp(buffer[i].internal_code, c.tax_internal_code) == 0) { exists = true; break; } @@ -1835,7 +1742,7 @@ static void administration_recalculate_billing_item_totals(billing_item* item) } tax_rate rate; - if (administration::tax_rate_get_by_id(&rate, item->tax_rate_id) == A_ERR_SUCCESS) + if (administration::tax_rate_get_by_internal_code(&rate, item->tax_internal_code) == A_ERR_SUCCESS) { item->tax = item->net * (rate.rate/100.0f); } @@ -1915,7 +1822,7 @@ a_err administration::billing_item_is_valid(billing_item item) { a_err result = A_ERR_SUCCESS; if (strlen(item.description) == 0) result |= A_ERR_MISSING_DESCRIPTION; - if (strlen(item.tax_rate_id) == 0) result |= A_ERR_MISSING_TAX_RATE; + if (strlen(item.tax_internal_code) == 0) result |= A_ERR_MISSING_TAX_RATE; return result; } |
