diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-11 09:41:14 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-11 09:41:14 +0200 |
| commit | d83e5e8cd66f05ca7e6aa9fc645788313d89dfe7 (patch) | |
| tree | 987e9c3acc0232e2df2109d776f410bee591eacd /src/administration.cpp | |
| parent | cf5dfa405fa3d9b480794f7f2c32e325fdfd134c (diff) | |
multi currency invoice handling for tax report
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/administration.cpp b/src/administration.cpp index 5675cb4..495f847 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -2036,6 +2036,17 @@ a_err administration::billing_item_update_in_invoice(invoice* invoice, billing_i return A_ERR_NOT_FOUND; } +tax_subtotal administration::billing_item_convert_to_default_currency(invoice* invoice, billing_item item) +{ + tax_subtotal result = {0}; + if (invoice->net != 0.0f) result.net = item.net / (invoice->orig_net / invoice->net); + if (invoice->tax != 0.0f) result.tax = item.tax / (invoice->orig_tax / invoice->tax); + if (invoice->total != 0.0f) result.total = item.total / (invoice->orig_total / invoice->total); + if (invoice->allowance != 0.0f) result.allowance = item.allowance / (invoice->orig_allowance / invoice->allowance); + + return result; +} + a_err administration::billing_item_is_valid(billing_item item) { a_err result = A_ERR_SUCCESS; |
