summaryrefslogtreecommitdiff
path: root/src/ui/ui_invoices.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/ui_invoices.cpp')
-rw-r--r--src/ui/ui_invoices.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index 0256fbd..c08dd76 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -39,8 +39,6 @@ void ui_setup_invoices()
tax_bracket_list_buffer = (country_tax_bracket*) malloc(sizeof(country_tax_bracket) * tax_bracket_count); // @leak
}
-// TODO move custom ui functions to helpers.cpp
-
void draw_tax_bracket_selector(char* tax_bracket_id)
{
country_tax_bracket* selected_tax_bracket = NULL;
@@ -134,7 +132,7 @@ bool draw_currency_selector(char* currency)
if (ImGui::Selectable(currencies[n], isSelected))
{
result = true;
- strops_copy(currency, currencies[n], CURRENCY_LENGTH);
+ strops_copy(currency, currencies[n], MAX_LEN_CURRENCY);
}
if (isSelected)
@@ -349,7 +347,7 @@ static void draw_invoice_items_form(invoice* invoice)
free(buffer);
}
-void draw_invoice_form(invoice* buffer, bool viewing_only = false)
+static void draw_invoice_form(invoice* buffer, bool viewing_only = false)
{
ImGui::BeginDisabled();
@@ -447,7 +445,7 @@ void draw_invoice_form(invoice* buffer, bool viewing_only = false)
if (viewing_only) ImGui::EndDisabled();
}
-void draw_invoices_list()
+static void ui_draw_invoices_list()
{
const u32 items_per_page = 50;
static s32 current_page = 0;
@@ -529,7 +527,7 @@ void draw_invoices_list()
{
snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.change"), i);
if (ImGui::Button(btn_name)) {
- active_invoice = c;
+ active_invoice = administration_invoice_create_copy(&c); // We create a copy because of billing item list pointers.
current_view_state = view_state::EDIT;
}
}
@@ -612,20 +610,22 @@ static void ui_draw_invoice_create()
if (!can_save) ImGui::EndDisabled();
}
+static void ui_draw_invoice_view()
+{
+ if (ImGui::Button(localize("form.back"))) {
+ current_view_state = view_state::LIST;
+ }
+
+ draw_invoice_form(&active_invoice, true);
+}
+
void ui_draw_invoices()
{
switch(current_view_state)
{
- case view_state::LIST: draw_invoices_list(); break;
+ case view_state::LIST: ui_draw_invoices_list(); break;
case view_state::CREATE: ui_draw_invoice_create(); break;
case view_state::EDIT: ui_draw_invoice_update(); break;
- case view_state::VIEW:
- {
- if (ImGui::Button(localize("form.back"))) {
- current_view_state = view_state::LIST;
- }
-
- draw_invoice_form(&active_invoice, true);
- } break;
+ case view_state::VIEW: ui_draw_invoice_view(); break;
}
} \ No newline at end of file