summaryrefslogtreecommitdiff
path: root/src/administration.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-11 09:41:14 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-11 09:41:14 +0200
commitd83e5e8cd66f05ca7e6aa9fc645788313d89dfe7 (patch)
tree987e9c3acc0232e2df2109d776f410bee591eacd /src/administration.cpp
parentcf5dfa405fa3d9b480794f7f2c32e325fdfd134c (diff)
multi currency invoice handling for tax report
Diffstat (limited to 'src/administration.cpp')
-rw-r--r--src/administration.cpp11
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;