diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-16 14:31:53 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-16 14:31:53 +0200 |
| commit | f0fc9fa21ad9efa47556d7a03aa2b13081028ac6 (patch) | |
| tree | e1e52679ca75f5d519e23b2845710bf75922a318 | |
| parent | 6273aef9aa9a4ac5375710d51a5bc33f62265d76 (diff) | |
refactor administration api
| -rw-r--r-- | include/administration.hpp | 129 | ||||
| -rw-r--r-- | src/administration.cpp | 130 | ||||
| -rw-r--r-- | src/ui/ui_contacts.cpp | 22 | ||||
| -rw-r--r-- | src/ui/ui_invoices.cpp | 48 | ||||
| -rw-r--r-- | src/ui/ui_main.cpp | 4 | ||||
| -rw-r--r-- | src/ui/ui_projects.cpp | 20 | ||||
| -rw-r--r-- | src/ui/ui_settings.cpp | 28 |
7 files changed, 203 insertions, 178 deletions
diff --git a/include/administration.hpp b/include/administration.hpp index 96d528f..e7cb9b0 100644 --- a/include/administration.hpp +++ b/include/administration.hpp @@ -141,60 +141,85 @@ typedef struct list_t cost_centers; } administration; +// Setup functions. +// ======================= void administration_create(); void administration_destroy(); -char* administration_get_file_path(); - -contact administration_get_company_info(); -void administration_set_company_info(contact data); - -bool administration_can_contact_be_deleted(contact data); -bool administration_remove_contact(contact data); -bool administration_create_contact(contact data); -bool administration_update_contact(contact data); -u32 administration_get_contact_count(); -u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer); -contact administration_create_empty_contact(); -bool administration_is_contact_valid(contact data); -int administration_get_contact_recommendations(contact* buffer, int buf_size, char* name); - -void administration_cancel_project(project data); -bool administration_remove_project(project data); -bool administration_create_project(project data); -bool administration_update_project(project data); +// General functions. +// ======================= +char* administration_file_path_get(); +contact administration_company_info_get(); +void administration_company_info_set(contact data); + +// Contact functions. +// ======================= +u32 administration_contact_count(); +contact administration_contact_create_empty(); +bool administration_contact_add(contact data); +bool administration_contact_update(contact data); +bool administration_contact_remove(contact data); + +bool administration_contact_is_valid(contact data); +bool administration_contact_can_be_deleted(contact data); + +int administration_contact_get_autocompletions(contact* buffer, int buf_size, char* name); +u32 administration_contact_get_partial_list(u32 page_index, u32 page_size, contact* buffer); + +// Project functions. +// ======================= +u32 administration_project_count(); +project administration_project_create_empty(); +bool administration_project_add(project data); +bool administration_project_update(project data); +bool administration_project_remove(project data); +void administration_project_cancel(project data); + +bool administration_project_is_valid(project data); + char* administration_project_get_status_string(project data); -u32 administration_get_project_count(); -u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer); -bool administration_is_project_valid(project data); -project administration_create_empty_project(); -u32 administration_get_all_projects(project* buffer); - -u32 administration_get_tax_bracket_count(); -u32 administration_get_tax_brackets(country_tax_bracket* buffer); -u32 administration_get_tax_brackets_for_country(country_tax_bracket* buffer, char* country_code); -bool administration_add_tax_bracket(country_tax_bracket data); -bool administration_update_tax_bracket(country_tax_bracket data); - -u32 administration_get_cost_center_count(); -u32 administration_get_cost_centers(cost_center* buffer); -bool administration_verify_cost_center_code(char* code); -bool administration_verify_cost_center_description(char* text); -bool administration_add_cost_center(cost_center data); -bool administration_update_cost_center(cost_center data); - -u32 administration_get_invoice_count(); -invoice administration_create_empty_invoice(); +u32 administration_project_get_all(project* buffer); +u32 administration_project_get_partial_list(u32 page_index, u32 page_size, project* buffer); + +// Tax bracket functions. +// ======================= +u32 administration_tax_bracket_count(); +bool administration_tax_bracket_add(country_tax_bracket data); +bool administration_tax_bracket_update(country_tax_bracket data); + +u32 administration_tax_bracket_get_all(country_tax_bracket* buffer); +u32 administration_tax_bracket_get_by_country(country_tax_bracket* buffer, char* country_code); + +// Cost center functions. +// ======================= +u32 administration_cost_center_count(); +bool administration_cost_center_add(cost_center data); +bool administration_cost_center_update(cost_center data); + +bool administration_cost_center_verify_code(char* code); +bool administration_cost_center_verify_description(char* text); + +u32 administration_cost_center_get_all(cost_center* buffer); + +// Invoice functions. +// ======================= +u32 administration_invoice_count(); +invoice administration_invoice_create_empty(); +bool administration_invoice_add(invoice* invoice); +bool administration_invoice_update(invoice* invoice); void administration_invoice_set_currency(invoice* invoice, char* currency); -bool administration_is_invoice_valid(invoice* invoice); -bool administration_add_invoice(invoice* invoice); -bool administration_update_invoice(invoice* invoice); -u32 administration_get_invoices(u32 page_index, u32 page_size, invoice* buffer); -char* administration_get_invoice_status_string(invoice* invoice); - -billing_item administration_create_empty_billing_item(); -u32 administration_get_all_billing_items_for_invoice(invoice* invoice, billing_item* buffer); -u32 administration_get_billing_items_count(invoice* invoice); -bool administration_add_billing_item_to_invoice(invoice* invoice, billing_item item); -bool administration_update_billing_item_of_invoice(invoice* invoice, billing_item item); -bool administration_remove_billing_item_from_invoice(invoice* invoice, billing_item item);
\ No newline at end of file + +bool administration_invoice_is_valid(invoice* invoice); + +char* administration_invoice_get_status_string(invoice* invoice); +u32 administration_invoice_get_partial_list(u32 page_index, u32 page_size, invoice* buffer); + +// Billing item functions. +// ======================= +u32 administration_billing_items_count(invoice* invoice); +billing_item administration_billing_item_create_empty(); +bool administration_billing_item_add_to_invoice(invoice* invoice, billing_item item); +bool administration_billing_item_update_in_invoice(invoice* invoice, billing_item item); +bool administration_billing_item_remove_from_invoice(invoice* invoice, billing_item item); + +u32 administration_billing_item_get_all_for_invoice(invoice* invoice, billing_item* buffer);
\ No newline at end of file diff --git a/src/administration.cpp b/src/administration.cpp index 95ae705..245809b 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -202,16 +202,16 @@ static void administration_create_default_cost_centers() static void administration_create_debug_data() { #define ADD_CONSUMER(_name, _addr1, _addr2, _cc)\ - {contact _c = administration_create_empty_contact();\ + {contact _c = administration_contact_create_empty();\ strops_copy(_c.name, _name, sizeof(_c.name));\ strops_copy(_c.address.address1, _addr1, sizeof(_c.address.address1));\ strops_copy(_c.address.address2, _addr2, sizeof(_c.address.address2));\ strops_copy(_c.address.country_code, _cc, sizeof(_c.address.country_code));\ _c.type = contact_type::CONTACT_CONSUMER;\ - administration_create_contact(_c);}; + administration_contact_add(_c);}; #define ADD_BUSINESS(_name, _addr1, _addr2, _cc, _tc, _bc)\ - {contact _c = administration_create_empty_contact();\ + {contact _c = administration_contact_create_empty();\ strops_copy(_c.name, _name, sizeof(_c.name));\ strops_copy(_c.address.address1, _addr1, sizeof(_c.address.address1));\ strops_copy(_c.address.address2, _addr2, sizeof(_c.address.address2));\ @@ -219,12 +219,12 @@ static void administration_create_debug_data() strops_copy(_c.taxid, _tc, sizeof(_c.taxid));\ strops_copy(_c.businessid, _bc, sizeof(_c.businessid));\ _c.type = contact_type::CONTACT_BUSINESS;\ - administration_create_contact(_c);}; + administration_contact_add(_c);}; #define ADD_PROJECT(_name)\ - {project _c = administration_create_empty_project();\ + {project _c = administration_project_create_empty();\ strops_copy(_c.description, _name, sizeof(_c.description));\ - administration_create_project(_c);}; + administration_project_add(_c);}; ADD_CONSUMER("Emma Müller", "Hauptstraße 12", "10115 Berlin", "DE"); ADD_CONSUMER("Luca Rossi", "Via Roma 45", "00184 Roma", "IT"); @@ -301,9 +301,9 @@ void administration_destroy() list_destroy(&g_administration.cost_centers); } -bool administration_create_contact(contact data) +bool administration_contact_add(contact data) { - if (!administration_is_contact_valid(data)) return false; + if (!administration_contact_is_valid(data)) return false; contact* new_contact = (contact*)malloc(sizeof(contact)); memcpy((void*)new_contact, (void*)&data, sizeof(contact)); @@ -314,16 +314,16 @@ bool administration_create_contact(contact data) return true; } -bool administration_can_contact_be_deleted(contact data) +bool administration_contact_can_be_deleted(contact data) { (void)data; // TODO return true; } -bool administration_update_contact(contact data) +bool administration_contact_update(contact data) { - if (!administration_is_contact_valid(data)) return false; + if (!administration_contact_is_valid(data)) return false; list_iterator_start(&g_administration.contacts); while (list_iterator_hasnext(&g_administration.contacts)) { @@ -340,7 +340,7 @@ bool administration_update_contact(contact data) return false; } -bool administration_remove_contact(contact data) +bool administration_contact_remove(contact data) { list_iterator_start(&g_administration.contacts); while (list_iterator_hasnext(&g_administration.contacts)) { @@ -357,12 +357,12 @@ bool administration_remove_contact(contact data) return false; } -u32 administration_get_contact_count() +u32 administration_contact_count() { return list_size(&g_administration.contacts); } -u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer) +u32 administration_contact_get_partial_list(u32 page_index, u32 page_size, contact* buffer) { assert(buffer); @@ -384,7 +384,7 @@ u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer) return write_cursor; } -int administration_get_contact_recommendations(contact* buffer, int buf_size, char* name) +int administration_contact_get_autocompletions(contact* buffer, int buf_size, char* name) { int write_cursor = 0; if (name[0] == '\0') return 0; @@ -403,22 +403,22 @@ int administration_get_contact_recommendations(contact* buffer, int buf_size, ch return write_cursor; } -char* administration_get_file_path() +char* administration_file_path_get() { return g_administration.path; } -u32 administration_get_project_count() +u32 administration_project_count() { return list_size(&g_administration.projects); } -u32 administration_get_billing_items_count(invoice* invoice) +u32 administration_billing_items_count(invoice* invoice) { return list_size(&invoice->billing_items); } -u32 administration_get_all_billing_items_for_invoice(invoice* invoice, billing_item* buffer) +u32 administration_billing_item_get_all_for_invoice(invoice* invoice, billing_item* buffer) { u32 write_cursor = 0; @@ -432,7 +432,7 @@ u32 administration_get_all_billing_items_for_invoice(invoice* invoice, billing_i return write_cursor; } -u32 administration_get_all_projects(project* buffer) +u32 administration_project_get_all(project* buffer) { u32 write_cursor = 0; @@ -446,7 +446,7 @@ u32 administration_get_all_projects(project* buffer) return write_cursor; } -u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer) +u32 administration_project_get_partial_list(u32 page_index, u32 page_size, project* buffer) { assert(buffer); @@ -468,19 +468,19 @@ u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer) return write_cursor; } -void administration_cancel_project(project data) +void administration_project_cancel(project data) { data.end_date = time(NULL); data.state = project_state::PROJECT_CANCELLED; - administration_update_project(data); + administration_project_update(data); } -bool administration_is_project_valid(project data) +bool administration_project_is_valid(project data) { return strlen(data.description) > 0; } -char* administration_get_invoice_status_string(invoice* invoice) +char* administration_invoice_get_status_string(invoice* invoice) { switch(invoice->status) { @@ -509,9 +509,9 @@ char* administration_project_get_status_string(project data) return ""; } -bool administration_create_project(project data) +bool administration_project_add(project data) { - if (!administration_is_project_valid(data)) return false; + if (!administration_project_is_valid(data)) return false; data.state = project_state::PROJECT_RUNNING; data.start_date = time(NULL); @@ -525,9 +525,9 @@ bool administration_create_project(project data) return true; } -bool administration_update_project(project data) +bool administration_project_update(project data) { - if (!administration_is_project_valid(data)) return false; + if (!administration_project_is_valid(data)) return false; list_iterator_start(&g_administration.projects); while (list_iterator_hasnext(&g_administration.projects)) { @@ -544,7 +544,7 @@ bool administration_update_project(project data) return false; } -bool administration_remove_project(project data) +bool administration_project_remove(project data) { list_iterator_start(&g_administration.projects); while (list_iterator_hasnext(&g_administration.projects)) { @@ -561,22 +561,22 @@ bool administration_remove_project(project data) return false; } -contact administration_get_company_info() +contact administration_company_info_get() { return g_administration.company_info; } -void administration_set_company_info(contact data) +void administration_company_info_set(contact data) { g_administration.company_info = data; } -u32 administration_get_tax_bracket_count() +u32 administration_tax_bracket_count() { return list_size(&g_administration.tax_brackets); } -bool administration_add_tax_bracket(country_tax_bracket data) +bool administration_tax_bracket_add(country_tax_bracket data) { ADD_BRACKET(data.country_code, data.rate, ""); list_attributes_comparator(&g_administration.tax_brackets, compare_tax_countries); @@ -584,7 +584,7 @@ bool administration_add_tax_bracket(country_tax_bracket data) return true; } -u32 administration_get_tax_brackets_for_country(country_tax_bracket* buffer, char* country_code) +u32 administration_tax_bracket_get_by_country(country_tax_bracket* buffer, char* country_code) { assert(buffer); @@ -601,7 +601,7 @@ u32 administration_get_tax_brackets_for_country(country_tax_bracket* buffer, cha return write_cursor; } -u32 administration_get_tax_brackets(country_tax_bracket* buffer) +u32 administration_tax_bracket_get_all(country_tax_bracket* buffer) { assert(buffer); @@ -617,7 +617,7 @@ u32 administration_get_tax_brackets(country_tax_bracket* buffer) return write_cursor; } -bool administration_update_tax_bracket(country_tax_bracket data) +bool administration_tax_bracket_update(country_tax_bracket data) { list_iterator_start(&g_administration.tax_brackets); while (list_iterator_hasnext(&g_administration.tax_brackets)) { @@ -634,12 +634,12 @@ bool administration_update_tax_bracket(country_tax_bracket data) return false; } -u32 administration_get_cost_center_count() +u32 administration_cost_center_count() { return list_size(&g_administration.cost_centers); } -u32 administration_get_cost_centers(cost_center* buffer) +u32 administration_cost_center_get_all(cost_center* buffer) { assert(buffer); @@ -672,12 +672,12 @@ static bool administration_get_cost_center_by_code(char* code, cost_center* buff return result; } -bool administration_verify_cost_center_description(char* text) +bool administration_cost_center_verify_description(char* text) { return strlen(text) != 0; } -bool administration_verify_cost_center_code(char* code) +bool administration_cost_center_verify_code(char* code) { if (strlen(code) == 0) return false; @@ -686,7 +686,7 @@ bool administration_verify_cost_center_code(char* code) return !found; } -bool administration_add_cost_center(cost_center data) +bool administration_cost_center_add(cost_center data) { cost_center cs; bool found = administration_get_cost_center_by_code(data.code, &cs); @@ -703,7 +703,7 @@ bool administration_add_cost_center(cost_center data) return true; } -bool administration_update_cost_center(cost_center data) +bool administration_cost_center_update(cost_center data) { list_iterator_start(&g_administration.cost_centers); while (list_iterator_hasnext(&g_administration.cost_centers)) { @@ -720,7 +720,7 @@ bool administration_update_cost_center(cost_center data) return false; } -bool administration_is_contact_valid(contact data) +bool administration_contact_is_valid(contact data) { if (data.type == contact_type::CONTACT_CONSUMER) { @@ -745,7 +745,7 @@ static time_t administration_get_default_invoice_expire_duration() return (30 * 24 * 60 * 60); // 30 days } -billing_item administration_create_empty_billing_item() +billing_item administration_billing_item_create_empty() { billing_item item; memset(&item, 0, sizeof(billing_item)); @@ -753,7 +753,7 @@ billing_item administration_create_empty_billing_item() return item; } -bool administration_add_billing_item_to_invoice(invoice* invoice, billing_item item) +bool administration_billing_item_add_to_invoice(invoice* invoice, billing_item item) { billing_item* tb = (billing_item*)malloc(sizeof(billing_item)); memcpy(tb, &item, sizeof(billing_item)); @@ -807,7 +807,7 @@ static char* administration_get_default_currency_for_country(char* country_code) return "EUR"; } -invoice administration_create_empty_invoice() +invoice administration_invoice_create_empty() { invoice result; memset(&result, 0, sizeof(invoice)); @@ -821,7 +821,7 @@ invoice administration_create_empty_invoice() return result; } -contact administration_create_empty_contact() +contact administration_contact_create_empty() { contact result; memset(&result, 0, sizeof(contact)); @@ -829,7 +829,7 @@ contact administration_create_empty_contact() return result; } -project administration_create_empty_project() +project administration_project_create_empty() { project result; memset(&result, 0, sizeof(project)); @@ -905,7 +905,7 @@ static void administration_recalculate_billing_item_totals(billing_item* item) item->total = item->net + item->tax; } -bool administration_remove_billing_item_from_invoice(invoice* invoice, billing_item item) +bool administration_billing_item_remove_from_invoice(invoice* invoice, billing_item item) { list_iterator_start(&invoice->billing_items); while (list_iterator_hasnext(&invoice->billing_items)) { @@ -922,7 +922,7 @@ bool administration_remove_billing_item_from_invoice(invoice* invoice, billing_i return false; } -bool administration_update_billing_item_of_invoice(invoice* invoice, billing_item item) +bool administration_billing_item_update_in_invoice(invoice* invoice, billing_item item) { list_iterator_start(&invoice->billing_items); while (list_iterator_hasnext(&invoice->billing_items)) { @@ -955,29 +955,29 @@ void administration_invoice_set_currency(invoice* invoice, char* currency) list_iterator_stop(&invoice->billing_items); } -bool administration_is_invoice_valid(invoice* invoice) +bool administration_invoice_is_valid(invoice* invoice) { if (list_size(&invoice->billing_items) == 0) return false; - if (invoice->is_triangulation && !administration_is_contact_valid(invoice->addressee)) return false; - if (!administration_is_contact_valid(invoice->customer)) return false; - if (!administration_is_contact_valid(invoice->supplier)) return false; + if (invoice->is_triangulation && !administration_contact_is_valid(invoice->addressee)) return false; + if (!administration_contact_is_valid(invoice->customer)) return false; + if (!administration_contact_is_valid(invoice->supplier)) return false; return true; } -bool administration_update_invoice(invoice* inv) +bool administration_invoice_update(invoice* inv) { - if (!administration_is_invoice_valid(inv)) return false; + if (!administration_invoice_is_valid(inv)) return false; // Invoice is valid but customer id is unset means we need to register a new contact. if (strcmp(inv->customer_id, "") == 0) { - contact new_contact = administration_create_empty_contact(); + contact new_contact = administration_contact_create_empty(); strops_copy(inv->customer_id, new_contact.id, sizeof(new_contact.id)); strops_copy(inv->customer.id, new_contact.id, sizeof(new_contact.id)); memcpy(&new_contact, &inv->customer, sizeof(contact)); - administration_create_contact(new_contact); + administration_contact_add(new_contact); inv->customer = new_contact; } @@ -1003,19 +1003,19 @@ bool administration_update_invoice(invoice* inv) return false; } -bool administration_add_invoice(invoice* inv) +bool administration_invoice_add(invoice* inv) { - if (!administration_is_invoice_valid(inv)) return false; + if (!administration_invoice_is_valid(inv)) return false; // Invoice is valid but customer id is unset means we need to register a new contact. if (strcmp(inv->customer_id, "") == 0) { - contact new_contact = administration_create_empty_contact(); + contact new_contact = administration_contact_create_empty(); strops_copy(inv->customer_id, new_contact.id, sizeof(new_contact.id)); strops_copy(inv->customer.id, new_contact.id, sizeof(new_contact.id)); memcpy(&new_contact, &inv->customer, sizeof(contact)); - administration_create_contact(new_contact); + administration_contact_add(new_contact); inv->customer = new_contact; } @@ -1039,12 +1039,12 @@ bool administration_add_invoice(invoice* inv) return true; } -u32 administration_get_invoice_count() +u32 administration_invoice_count() { return list_size(&g_administration.invoices); } -u32 administration_get_invoices(u32 page_index, u32 page_size, invoice* buffer) +u32 administration_invoice_get_partial_list(u32 page_index, u32 page_size, invoice* buffer) { assert(buffer); diff --git a/src/ui/ui_contacts.cpp b/src/ui/ui_contacts.cpp index eca6ee3..87c021d 100644 --- a/src/ui/ui_contacts.cpp +++ b/src/ui/ui_contacts.cpp @@ -71,7 +71,7 @@ void ui_draw_address_form(address* buffer) void ui_setup_contacts() { current_view_state = view_state::LIST; - active_contact = active_contact = administration_create_empty_contact(); + active_contact = active_contact = administration_contact_create_empty(); memset(&selected_for_removal, 0, sizeof(contact)); } @@ -94,7 +94,7 @@ void draw_contact_form_ex(contact* buffer, bool viewing_only = false, bool with_ ImGui::SetNextItemWidth(widthAvailable*0.5f); if (with_autocomplete) { contact autocomplete_list[5]; - int autocomplete_count = administration_get_contact_recommendations(autocomplete_list, 5, buffer->name); + int autocomplete_count = administration_contact_get_autocompletions(autocomplete_list, 5, buffer->name); char* autocomplete_strings[5]; for (int i = 0; i < autocomplete_count; i++) @@ -167,14 +167,14 @@ static void draw_contact_list() { const u32 items_per_page = 50; static s32 current_page = 0; - s32 max_page = (administration_get_contact_count() + items_per_page - 1) / items_per_page; + s32 max_page = (administration_contact_count() + items_per_page - 1) / items_per_page; if (max_page == 0) max_page = 1; // Table header controls: create button and pagination. if (ImGui::Button(localize("form.create"))) { current_view_state = view_state::CREATE; - active_contact = administration_create_empty_contact(); + active_contact = administration_contact_create_empty(); } if (current_page >= max_page-1) current_page = max_page-1; @@ -208,7 +208,7 @@ static void draw_contact_list() ImGui::TableHeadersRow(); contact contact_list[items_per_page]; - u32 contact_count = administration_get_contacts(current_page, items_per_page, contact_list); + u32 contact_count = administration_contact_get_partial_list(current_page, items_per_page, contact_list); for (u32 i = 0; i < contact_count; i++) { contact c = contact_list[i]; @@ -236,7 +236,7 @@ static void draw_contact_list() } ImGui::SameLine(); - if (administration_can_contact_be_deleted(c)) + if (administration_contact_can_be_deleted(c)) { snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.delete"), i); if (ImGui::Button(btn_name)) { @@ -252,7 +252,7 @@ static void draw_contact_list() ImGui::Separator(); if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - administration_remove_contact(selected_for_removal); + administration_contact_remove(selected_for_removal); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); @@ -274,12 +274,12 @@ static void ui_draw_contacts_create() draw_contact_form(&active_contact); - bool can_save = administration_is_contact_valid(active_contact); + bool can_save = administration_contact_is_valid(active_contact); if (!can_save) ImGui::BeginDisabled(); // Save button ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - administration_create_contact(active_contact); + administration_contact_add(active_contact); current_view_state = view_state::LIST; } if (!can_save) ImGui::EndDisabled(); @@ -293,12 +293,12 @@ static void ui_draw_contacts_update() draw_contact_form(&active_contact); - bool can_save = administration_is_contact_valid(active_contact); + bool can_save = administration_contact_is_valid(active_contact); if (!can_save) ImGui::BeginDisabled(); // Save button ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - administration_update_contact(active_contact); + administration_contact_update(active_contact); current_view_state = view_state::LIST; } if (!can_save) ImGui::EndDisabled(); diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp index 5d89479..acf0de7 100644 --- a/src/ui/ui_invoices.cpp +++ b/src/ui/ui_invoices.cpp @@ -30,12 +30,12 @@ void ui_destroy_invoices() void ui_setup_invoices() { current_view_state = view_state::LIST; - active_invoice = administration_create_empty_invoice(); + active_invoice = administration_invoice_create_empty(); - u32 costcenter_count = administration_get_cost_center_count(); + u32 costcenter_count = administration_cost_center_count(); cost_center_list_buffer = (cost_center*) malloc(sizeof(cost_center) * costcenter_count); // @leak - u32 tax_bracket_count = administration_get_tax_bracket_count(); + u32 tax_bracket_count = administration_tax_bracket_count(); tax_bracket_list_buffer = (country_tax_bracket*) malloc(sizeof(country_tax_bracket) * tax_bracket_count); // @leak } @@ -46,7 +46,7 @@ void draw_tax_bracket_selector(char* tax_bracket_id) country_tax_bracket* selected_tax_bracket = NULL; country_tax_bracket* buffer = tax_bracket_list_buffer; - u32 tax_bracket_count = administration_get_tax_brackets_for_country(buffer, administration_get_company_info().address.country_code); + u32 tax_bracket_count = administration_tax_bracket_get_by_country(buffer, administration_company_info_get().address.country_code); // Select tax bracket by given id. if (strlen(tax_bracket_id) > 0) @@ -151,7 +151,7 @@ void draw_costcenter_selector(char* costcenter_id) cost_center* selected_costcenter = NULL; cost_center* buffer = cost_center_list_buffer; - u32 costcenter_count = administration_get_cost_centers(buffer); + u32 costcenter_count = administration_cost_center_get_all(buffer); // Select cost center by given id. if (strlen(costcenter_id) > 0) @@ -188,9 +188,9 @@ void draw_project_selector(char* project_id) { project* selected_project = NULL; - u32 project_count = administration_get_project_count(); + u32 project_count = administration_project_count(); project* buffer = (project*) malloc(sizeof(project) * project_count); - project_count = administration_get_all_projects(buffer); + project_count = administration_project_get_all(buffer); // Select project by given id. if (strlen(project_id) > 0) @@ -227,9 +227,9 @@ void draw_project_selector(char* project_id) static void draw_invoice_items_form(invoice* invoice) { - u32 invoice_items = administration_get_billing_items_count(invoice); + u32 invoice_items = administration_billing_items_count(invoice); billing_item* buffer = (billing_item*)malloc(sizeof(billing_item) * invoice_items); - administration_get_all_billing_items_for_invoice(invoice, buffer); + administration_billing_item_get_all_for_invoice(invoice, buffer); if (ImGui::BeginTable("TableBillingItems", 9, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg)) { @@ -257,7 +257,7 @@ static void draw_invoice_items_form(invoice* invoice) ImGui::TableSetColumnIndex(0); if (ImGui::Button("X")) { - administration_remove_billing_item_from_invoice(invoice, item); + administration_billing_item_remove_from_invoice(invoice, item); } ImGui::TableSetColumnIndex(1); @@ -328,7 +328,7 @@ static void draw_invoice_items_form(invoice* invoice) ImGui::PopID(); - administration_update_billing_item_of_invoice(invoice, item); + administration_billing_item_update_in_invoice(invoice, item); } ImGui::TableNextRow(); @@ -428,8 +428,8 @@ void draw_invoice_form(invoice* buffer, bool viewing_only = false) // 11. New billing item button. if (ImGui::Button(localize("+ Billing item"))) { - billing_item item = administration_create_empty_billing_item(); - administration_add_billing_item_to_invoice(buffer, item); + billing_item item = administration_billing_item_create_empty(); + administration_billing_item_add_to_invoice(buffer, item); } // 12. Dropdown for invoice currency. @@ -451,15 +451,15 @@ void draw_invoices_list() { const u32 items_per_page = 50; static s32 current_page = 0; - s32 max_page = (administration_get_invoice_count() + items_per_page - 1) / items_per_page; + s32 max_page = (administration_invoice_count() + items_per_page - 1) / items_per_page; if (max_page == 0) max_page = 1; // Table header controls: create button and pagination. if (ImGui::Button(localize("form.create"))) { current_view_state = view_state::CREATE; - active_invoice = administration_create_empty_invoice(); // @leak - active_invoice.supplier = administration_get_company_info(); + active_invoice = administration_invoice_create_empty(); // @leak + active_invoice.supplier = administration_company_info_get(); strops_copy(active_invoice.supplier_id, active_invoice.supplier.id, sizeof(active_invoice.supplier_id)); } @@ -497,7 +497,7 @@ void draw_invoices_list() ImGui::TableHeadersRow(); invoice invoice_list[items_per_page]; - u32 invoice_count = administration_get_invoices(current_page, items_per_page, invoice_list); + 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]; @@ -513,7 +513,7 @@ void draw_invoices_list() ImGui::TableSetColumnIndex(3); ImGui::Text(buf); ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f %s", c.total, c.currency); - ImGui::TableSetColumnIndex(5); ImGui::Text("%s", localize(administration_get_invoice_status_string(&c))); + ImGui::TableSetColumnIndex(5); ImGui::Text("%s", localize(administration_invoice_get_status_string(&c))); ImGui::TableSetColumnIndex(6); char btn_name[20]; @@ -535,7 +535,7 @@ void draw_invoices_list() } // ImGui::SameLine(); - // if (administration_can_contact_be_deleted(c)) + // if (administration_contact_can_be_deleted(c)) // { // snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.delete"), i); // if (ImGui::Button(btn_name)) { @@ -551,7 +551,7 @@ void draw_invoices_list() // ImGui::Separator(); // if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - // administration_remove_contact(selected_for_removal); + // administration_contact_remove(selected_for_removal); // ImGui::CloseCurrentPopup(); // } // ImGui::SameLine(); @@ -574,12 +574,12 @@ static void ui_draw_invoice_update() draw_invoice_form(&active_invoice); - bool can_save = administration_is_invoice_valid(&active_invoice); + bool can_save = administration_invoice_is_valid(&active_invoice); if (!can_save) ImGui::BeginDisabled(); ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - administration_update_invoice(&active_invoice); + administration_invoice_update(&active_invoice); current_view_state = view_state::LIST; ui_destroy_invoices(); @@ -597,12 +597,12 @@ static void ui_draw_invoice_create() draw_invoice_form(&active_invoice); - bool can_save = administration_is_invoice_valid(&active_invoice); + bool can_save = administration_invoice_is_valid(&active_invoice); if (!can_save) ImGui::BeginDisabled(); ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - administration_add_invoice(&active_invoice); + administration_invoice_add(&active_invoice); current_view_state = view_state::LIST; ui_destroy_invoices(); diff --git a/src/ui/ui_main.cpp b/src/ui/ui_main.cpp index b4617d1..2d79129 100644 --- a/src/ui/ui_main.cpp +++ b/src/ui/ui_main.cpp @@ -125,12 +125,12 @@ void ui_draw_main() ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoCollapse); - char* path = administration_get_file_path(); + char* path = administration_file_path_get(); if (strlen(path) == 0) { ImGui::Text("%s: %s", localize("ui.workingOn"), localize("ui.unsavedProject")); } else { - ImGui::Text("%s: %s", localize("ui.workingOn"), administration_get_file_path()); + ImGui::Text("%s: %s", localize("ui.workingOn"), administration_file_path_get()); } ImGui::End(); diff --git a/src/ui/ui_projects.cpp b/src/ui/ui_projects.cpp index 3c550a2..8753a94 100644 --- a/src/ui/ui_projects.cpp +++ b/src/ui/ui_projects.cpp @@ -13,7 +13,7 @@ static project active_project; void ui_setup_projects() { current_view_state = view_state::LIST; - active_project = administration_create_empty_project(); + active_project = administration_project_create_empty(); } static void draw_project_form() @@ -22,7 +22,7 @@ static void draw_project_form() if (ImGui::Button(localize("form.back"))) { current_view_state = view_state::LIST; - active_project = administration_create_empty_project(); + active_project = administration_project_create_empty(); selected_country = 0; return; } @@ -45,21 +45,21 @@ static void draw_project_form() if (viewing_only) ImGui::EndDisabled(); if (!viewing_only) { - bool can_save = administration_is_project_valid(active_project); + bool can_save = administration_project_is_valid(active_project); if (!can_save) ImGui::BeginDisabled(); // Save button ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { if (current_view_state == view_state::CREATE) - administration_create_project(active_project); + administration_project_add(active_project); else if (current_view_state == view_state::EDIT) - administration_update_project(active_project); + administration_project_update(active_project); current_view_state = view_state::LIST; selected_country = 0; - active_project = administration_create_empty_project(); + active_project = administration_project_create_empty(); } if (!can_save) ImGui::EndDisabled(); } @@ -72,13 +72,13 @@ static void draw_project_list() { const u32 items_per_page = 50; static s32 current_page = 0; - s32 max_page = (administration_get_project_count() + items_per_page - 1) / items_per_page; + s32 max_page = (administration_project_count() + items_per_page - 1) / items_per_page; if (max_page == 0) max_page = 1; if (ImGui::Button(localize("form.create"))) { current_view_state = view_state::CREATE; - active_project = administration_create_empty_project(); + active_project = administration_project_create_empty(); } if (current_page >= max_page-1) current_page = max_page-1; @@ -110,7 +110,7 @@ static void draw_project_list() ImGui::TableHeadersRow(); project project_list[items_per_page]; - u32 project_count = administration_get_projects(current_page, items_per_page, project_list); + u32 project_count = administration_project_get_partial_list(current_page, items_per_page, project_list); for (u32 i = 0; i < project_count; i++) { project c = project_list[i]; @@ -152,7 +152,7 @@ static void draw_project_list() ImGui::Separator(); if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - administration_cancel_project(selected_for_cancellation); + administration_project_cancel(selected_for_cancellation); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp index c222dbb..a7759aa 100644 --- a/src/ui/ui_settings.cpp +++ b/src/ui/ui_settings.cpp @@ -25,15 +25,15 @@ void ui_destroy_settings() void ui_setup_settings() { - company_info = administration_get_company_info(); + company_info = administration_company_info_get(); - tax_bracket_count = administration_get_tax_bracket_count(); + tax_bracket_count = administration_tax_bracket_count(); tax_brackets = (country_tax_bracket*)malloc(tax_bracket_count * sizeof(country_tax_bracket)); - administration_get_tax_brackets(tax_brackets); + administration_tax_bracket_get_all(tax_brackets); - cost_center_count = administration_get_cost_center_count(); + cost_center_count = administration_cost_center_count(); cost_centers = (cost_center*)malloc(cost_center_count * sizeof(cost_center)); - administration_get_cost_centers(cost_centers); + administration_cost_center_get_all(cost_centers); } static void ui_draw_vat_rates() @@ -123,7 +123,7 @@ static void ui_draw_vat_rates() is_editing_item = false; is_adding_item = false; - administration_update_tax_bracket(new_tax_bracket); + administration_tax_bracket_update(new_tax_bracket); ui_destroy_settings(); ui_setup_settings(); @@ -169,7 +169,7 @@ static void ui_draw_vat_rates() is_editing_item = false; is_adding_item = false; - administration_add_tax_bracket(new_tax_bracket); + administration_tax_bracket_add(new_tax_bracket); ui_destroy_settings(); ui_setup_settings(); @@ -214,7 +214,7 @@ static void ui_draw_cost_centers() ImGui::TableSetColumnIndex(1); if (is_editing_item && editing_item_index == i) { - bool is_desc_valid = administration_verify_cost_center_description(new_cost_center.description); + bool is_desc_valid = administration_cost_center_verify_description(new_cost_center.description); if (!is_desc_valid) ImGui::PushStyleColor(ImGuiCol_FrameBg, IM_COL32(105, 43, 43, 255)); ImGui::InputText("##Description", new_cost_center.description, IM_ARRAYSIZE(new_cost_center.description)); if (!is_desc_valid) ImGui::PopStyleColor(); @@ -225,7 +225,7 @@ static void ui_draw_cost_centers() is_editing_item = false; is_adding_item = false; - administration_update_cost_center(new_cost_center); + administration_cost_center_update(new_cost_center); memset(&new_cost_center, 0, sizeof(new_cost_center)); ui_destroy_settings(); @@ -260,13 +260,13 @@ static void ui_draw_cost_centers() { ImGui::TableNextRow(); - bool is_code_valid = administration_verify_cost_center_code(new_cost_center.code); + bool is_code_valid = administration_cost_center_verify_code(new_cost_center.code); if (!is_code_valid) ImGui::PushStyleColor(ImGuiCol_FrameBg, IM_COL32(105, 43, 43, 255)); ImGui::TableSetColumnIndex(0); ImGui::InputText("##Code", new_cost_center.code, IM_ARRAYSIZE(new_cost_center.code), ImGuiInputTextFlags_CharsUppercase|ImGuiInputTextFlags_CharsNoBlank); if (!is_code_valid) ImGui::PopStyleColor(); - bool is_desc_valid = administration_verify_cost_center_description(new_cost_center.description); + bool is_desc_valid = administration_cost_center_verify_description(new_cost_center.description); if (!is_desc_valid) ImGui::PushStyleColor(ImGuiCol_FrameBg, IM_COL32(105, 43, 43, 255)); ImGui::TableSetColumnIndex(1); ImGui::InputText("##Description", new_cost_center.description, IM_ARRAYSIZE(new_cost_center.description)); if (!is_desc_valid) ImGui::PopStyleColor(); @@ -279,7 +279,7 @@ static void ui_draw_cost_centers() { is_adding_item = false; is_editing_item = false; - administration_add_cost_center(new_cost_center); + administration_cost_center_add(new_cost_center); ui_destroy_settings(); ui_setup_settings(); @@ -315,11 +315,11 @@ void ui_draw_settings() draw_contact_form(&company_info); // Save button. - bool can_save = administration_is_contact_valid(company_info); + bool can_save = administration_contact_is_valid(company_info); if (!can_save) ImGui::BeginDisabled(); ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - administration_set_company_info(company_info); + administration_company_info_set(company_info); } if (!can_save) ImGui::EndDisabled(); |
