diff options
Diffstat (limited to 'src/ui/ui_invoices.cpp')
| -rw-r--r-- | src/ui/ui_invoices.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp index 6db7054..5ec9297 100644 --- a/src/ui/ui_invoices.cpp +++ b/src/ui/ui_invoices.cpp @@ -47,10 +47,11 @@ void ui_setup_invoices() project_list_buffer = (project*) malloc(sizeof(project) * project_count); } -void draw_tax_rate_selector(char* tax_rate_id, tax_rate* buffer, char* country_code) +void draw_tax_rate_selector(char* tax_rate_id, tax_rate* buffer, char* orig_country, char* dest_country) { tax_rate* selected_tax_rate = NULL; - u32 tax_rate_count = administration_tax_rate_get_by_country(buffer, country_code); + char* country_codes[2] = {orig_country, dest_country}; + u32 tax_rate_count = administration_tax_rate_get_by_country(buffer, 2, country_codes); // Select tax rate by given id. if (strlen(tax_rate_id) > 0) @@ -158,7 +159,7 @@ bool draw_currency_selector(char* currency) return result; } -static void draw_invoice_items_form(invoice* invoice) +void draw_invoice_items_form(invoice* invoice, bool is_outgoing) { billing_item* buffer = invoice_items_buffer; u32 invoice_items = administration_billing_item_get_all_for_invoice(invoice, buffer); @@ -248,7 +249,9 @@ static void draw_invoice_items_form(invoice* invoice) ImGui::TableSetColumnIndex(6); ImGui::PushItemWidth(-1); - draw_tax_rate_selector(item.tax_rate_id, tax_rate_list_buffer, administration_company_info_get().address.country_code); + draw_tax_rate_selector(item.tax_rate_id, tax_rate_list_buffer, + administration_company_info_get().address.country_code, + is_outgoing ? invoice->customer.address.country_code : invoice->supplier.address.country_code); ImGui::PopItemWidth(); ImGui::TableSetColumnIndex(7); @@ -390,7 +393,7 @@ static void draw_invoice_form(invoice* buffer, bool viewing_only = false) } // 13. Invoice items form - draw_invoice_items_form(buffer); + draw_invoice_items_form(buffer, true); if (viewing_only) ImGui::EndDisabled(); } |
