summaryrefslogtreecommitdiff
path: root/src/ui/ui_settings.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 12:51:47 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 12:51:47 +0200
commit94e52baaed095f571c41cabe80d3a6b7e03653d2 (patch)
tree9486f29b22aa34ef47cae6ccc70b0edb8914024c /src/ui/ui_settings.cpp
parent5854629f246aed30e1e7e4239c9283e2a6c8053f (diff)
localize
Diffstat (limited to 'src/ui/ui_settings.cpp')
-rw-r--r--src/ui/ui_settings.cpp62
1 files changed, 58 insertions, 4 deletions
diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp
index 041b672..97e0503 100644
--- a/src/ui/ui_settings.cpp
+++ b/src/ui/ui_settings.cpp
@@ -1,3 +1,7 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "strops.hpp"
#include "ui.hpp"
#include "imgui.h"
#include "administration.hpp"
@@ -6,17 +10,67 @@
extern bool draw_contact_form(contact* buffer, bool back_button_enabled = true, bool viewing_only = false);
static contact company_info;
+country_tax_bracket* tax_brackets;
+u32 tax_bracket_count;
+
void ui_setup_settings()
{
company_info = administration_get_company_info();
+
+ tax_bracket_count = administration_get_tax_bracket_count();
+ tax_brackets = (country_tax_bracket*)malloc(tax_bracket_count * sizeof(country_tax_bracket));
+ administration_get_tax_brackets(tax_brackets);
+}
+
+static void ui_draw_vat_rates()
+{
+ if (ImGui::BeginTable("TableVatRates", 2, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg)) {
+
+ ImGui::TableSetupColumn(localize("settings.vat.table.country"), ImGuiTableColumnFlags_WidthFixed, 140);
+ ImGui::TableSetupColumn(localize("settings.vat.table.rates"));
+
+ char prev_country[3];
+ prev_country[0] = 0;
+
+ for (u32 i = 0; i < tax_bracket_count; i++) {
+ country_tax_bracket c = tax_brackets[i];
+
+ if (strcmp(c.country_code, "00") == 0)
+ {
+ strops_copy(prev_country, c.country_code, 3);
+ }
+ else if (strcmp(c.country_code, prev_country) != 0)
+ {
+ strops_copy(prev_country, c.country_code, 3);
+
+ ImGui::TableNextRow();
+ ImGui::TableSetColumnIndex(0); ImGui::Text("");
+ ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg, IM_COL32(69, 69, 69, 255));
+ ImGui::TableSetColumnIndex(1); ImGui::Text("");
+ ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg, IM_COL32(69, 69, 69, 255));
+
+ ImGui::TableNextRow();
+
+ char locale_buf[20];
+ snprintf(locale_buf, sizeof(locale_buf), "country.%s", c.country_code);
+ ImGui::TableSetColumnIndex(0); ImGui::Text(localize(locale_buf));
+ ImGui::TableSetColumnIndex(1); ImGui::Text("");
+ }
+
+ ImGui::TableNextRow();
+ ImGui::TableSetColumnIndex(0); ImGui::Text(localize(c.description));
+ ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f%%", c.rate);
+ }
+
+ ImGui::EndTable();
+ }
}
void ui_draw_settings()
{
- // @localize
if (ImGui::BeginTabBar("SettingsTabBar"))
{
- if (ImGui::BeginTabItem("Company"))
+ if (ImGui::BeginTabItem(localize("settings.table.company")))
{
bool save = draw_contact_form(&company_info, false);
@@ -25,9 +79,9 @@ void ui_draw_settings()
}
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem("VAT Rates"))
+ if (ImGui::BeginTabItem(localize("settings.table.vatrates")))
{
- ImGui::Text("This is the Broccoli tab!\nblah blah blah blah blah");
+ ui_draw_vat_rates();
ImGui::EndTabItem();
}
ImGui::EndTabBar();