diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-17 10:30:27 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-17 10:30:27 +0200 |
| commit | 885f413e9ae887979a59d0ca7238246429dd81ad (patch) | |
| tree | 07d2dabe1ae3fadf36d8526f3fb156c7796fb06b /src/administration.cpp | |
| parent | 8c1eb3246c8f738867b2ddeb44e48f8332633963 (diff) | |
set invoice finals if invoice currency != main currency
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/administration.cpp b/src/administration.cpp index 0233213..ccbd284 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -1554,21 +1554,28 @@ invoice administration_invoice_create_empty() static void administration_recalculate_invoice_totals(invoice* invoice) { - invoice->tax = 0.0f; - invoice->total = 0.0f; - invoice->net = 0.0f; - invoice->allowance = 0.0f; + invoice->orig_tax = 0.0f; + invoice->orig_total = 0.0f; + invoice->orig_net = 0.0f; + invoice->orig_allowance = 0.0f; list_iterator_start(&invoice->billing_items); while (list_iterator_hasnext(&invoice->billing_items)) { billing_item* c = (billing_item *)list_iterator_next(&invoice->billing_items); - invoice->tax += c->tax; - invoice->total += c->total; - invoice->net += c->net; - invoice->allowance += c->allowance; + invoice->orig_tax += c->tax; + invoice->orig_total += c->total; + invoice->orig_net += c->net; + invoice->orig_allowance += c->allowance; } list_iterator_stop(&invoice->billing_items); + + if (strcmp(invoice->currency, administration_get_default_currency()) == 0) { + invoice->tax = invoice->orig_tax; + invoice->total = invoice->orig_total; + invoice->net = invoice->orig_net; + invoice->allowance = invoice->orig_allowance; + } } void administration_invoice_set_currency(invoice* invoice, char* currency) |
