diff options
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/administration.cpp b/src/administration.cpp index e77dfdb..5476718 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -44,6 +44,7 @@ time_t administration::get_default_invoice_expire_duration() // TODO depricated return (30 * 24 * 60 * 60); // 30 days } +static void administration_recalculate_billing_item_totals(billing_item* item); static char* get_default_currency_for_country(char* country_code); static void create_default_cost_centers() @@ -1363,6 +1364,8 @@ static void administration_recalculate_invoice_totals(invoice* invoice) while (list_iterator_hasnext(&invoice->billing_items)) { billing_item* c = (billing_item *)list_iterator_next(&invoice->billing_items); + administration_recalculate_billing_item_totals(c); + invoice->orig_tax += c->tax; invoice->orig_total += c->total; invoice->orig_net += c->net; @@ -1555,6 +1558,16 @@ invoice administration::invoice_create_copy(invoice* inv) return new_inv; } +void administration::invoice_recalculate_totals() +{ + list_iterator_start(&g_administration.invoices); + while (list_iterator_hasnext(&g_administration.invoices)) { + invoice* c = (invoice *)list_iterator_next(&g_administration.invoices); + administration_recalculate_invoice_totals(c); + } + list_iterator_stop(&g_administration.invoices); +} + u32 administration::invoice_count() { return list_size(&g_administration.invoices); |
