summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/ui_expenses.cpp49
-rw-r--r--src/ui/ui_invoices.cpp14
2 files changed, 36 insertions, 27 deletions
diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp
index 3df0994..94b0b36 100644
--- a/src/ui/ui_expenses.cpp
+++ b/src/ui/ui_expenses.cpp
@@ -246,6 +246,8 @@ static void draw_expense_items_form(invoice* invoice)
static void draw_expense_form(invoice* buffer, bool viewing_only = false)
{
+ if (viewing_only) ImGui::BeginDisabled();
+
// 1. Identifier
//ImGui::SetNextItemWidth(widthAvailable*0.2f);
//ImGui::InputText(localize("contact.form.identifier"), buffer->id, IM_ARRAYSIZE(buffer->id));
@@ -302,6 +304,7 @@ static void draw_expense_form(invoice* buffer, bool viewing_only = false)
if (!administration_contact_equals(lookup_buffer, buffer->supplier))
{
buffer->supplier_id[0] = '\0';
+ buffer->supplier.id[0] = '\0';
}
}
@@ -346,13 +349,19 @@ static void draw_expense_form(invoice* buffer, bool viewing_only = false)
// 13. Invoice items form
draw_expense_items_form(buffer);
+
+ if (viewing_only) ImGui::EndDisabled();
}
static void ui_draw_expenses_list()
{
const u32 items_per_page = 50;
static s32 current_page = 0;
- s32 max_page = (administration_invoice_count() + items_per_page - 1) / items_per_page;
+
+ invoice invoice_list[items_per_page];
+ u32 invoice_count = administration_invoice_get_partial_list_incomming(current_page, items_per_page, invoice_list);
+
+ s32 max_page = (invoice_count + items_per_page - 1) / items_per_page;
if (max_page == 0) max_page = 1;
// Table header controls: create button and pagination.
@@ -361,6 +370,8 @@ static void ui_draw_expenses_list()
current_view_state = view_state::CREATE;
active_invoice = administration_invoice_create_empty(); // @leak
active_invoice.customer = administration_company_info_get();
+ active_invoice.is_outgoing = 0;
+ active_invoice.status = invoice_status::INVOICE_RECEIVED;
strops_copy(active_invoice.customer_id, active_invoice.customer.id, sizeof(active_invoice.customer_id));
}
@@ -397,9 +408,6 @@ static void ui_draw_expenses_list()
ImGui::TableSetupColumn("");
ImGui::TableHeadersRow();
- invoice invoice_list[items_per_page];
- u32 invoice_count = administration_invoice_get_partial_list(current_page, items_per_page, invoice_list);
-
for (u32 i = 0; i < invoice_count; i++) {
invoice c = invoice_list[i];
@@ -426,20 +434,17 @@ static void ui_draw_expenses_list()
ImGui::SameLine();
- if (c.status == invoice_status::INVOICE_CONCEPT)
- {
- snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.change"), i);
- if (ImGui::Button(btn_name)) {
- active_invoice = administration_invoice_create_copy(&c); // We create a copy because of billing item list pointers.
- current_view_state = view_state::EDIT;
- }
-
- ImGui::SameLine();
- snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.delete"), i);
- if (ImGui::Button(btn_name)) {
- selected_for_removal = c;
- ImGui::OpenPopup("ConfirmDeletePopup");
- }
+ snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.change"), i);
+ if (ImGui::Button(btn_name)) {
+ active_invoice = administration_invoice_create_copy(&c); // We create a copy because of billing item list pointers.
+ current_view_state = view_state::EDIT;
+ }
+
+ ImGui::SameLine();
+ snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.delete"), i);
+ if (ImGui::Button(btn_name)) {
+ selected_for_removal = c;
+ ImGui::OpenPopup("ConfirmDeletePopup");
}
}
@@ -480,8 +485,8 @@ static void ui_draw_expense_update()
administration_invoice_update(&active_invoice);
current_view_state = view_state::LIST;
- ui_destroy_invoices();
- ui_setup_invoices();
+ ui_destroy_expenses();
+ ui_setup_expenses();
}
if (!can_save) ImGui::EndDisabled();
@@ -503,8 +508,8 @@ static void ui_draw_expense_create()
administration_invoice_add(&active_invoice);
current_view_state = view_state::LIST;
- ui_destroy_invoices();
- ui_setup_invoices();
+ ui_destroy_expenses();
+ ui_setup_expenses();
}
if (!can_save) ImGui::EndDisabled();
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index 04b0da4..2ae0aae 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -324,6 +324,7 @@ static void draw_invoice_form(invoice* buffer, bool viewing_only = false)
if (!administration_contact_equals(lookup_buffer, buffer->customer))
{
buffer->customer_id[0] = '\0';
+ buffer->customer.id[0] = '\0';
}
}
@@ -369,7 +370,11 @@ static void ui_draw_invoices_list()
{
const u32 items_per_page = 50;
static s32 current_page = 0;
- s32 max_page = (administration_invoice_count() + items_per_page - 1) / items_per_page;
+
+ invoice invoice_list[items_per_page];
+ u32 invoice_count = administration_invoice_get_partial_list_outgoing(current_page, items_per_page, invoice_list);
+
+ s32 max_page = (invoice_count + items_per_page - 1) / items_per_page;
if (max_page == 0) max_page = 1;
// Table header controls: create button and pagination.
@@ -378,6 +383,8 @@ static void ui_draw_invoices_list()
current_view_state = view_state::CREATE;
active_invoice = administration_invoice_create_empty(); // @leak
active_invoice.supplier = administration_company_info_get();
+ active_invoice.is_outgoing = 1;
+ active_invoice.status = invoice_status::INVOICE_CONCEPT;
strops_copy(active_invoice.supplier_id, active_invoice.supplier.id, sizeof(active_invoice.supplier_id));
}
@@ -412,10 +419,7 @@ static void ui_draw_invoices_list()
ImGui::TableSetupColumn(localize("invoice.table.total"));
ImGui::TableSetupColumn(localize("invoice.table.status"));
ImGui::TableSetupColumn("");
- ImGui::TableHeadersRow();
-
- invoice invoice_list[items_per_page];
- u32 invoice_count = administration_invoice_get_partial_list(current_page, items_per_page, invoice_list);
+ ImGui::TableHeadersRow();
for (u32 i = 0; i < invoice_count; i++) {
invoice c = invoice_list[i];