diff options
| author | Anders Betts <anders.betts@gmail.com> | 2026-09-21 13:41:03 +0200 |
|---|---|---|
| committer | Anders Betts <anders.betts@gmail.com> | 2026-09-21 13:41:03 +0200 |
| commit | 5a9f3a1d27ed6b1be238595958472817c31df9f2 (patch) | |
| tree | 42bedfba5cea6329a97627f2f5a893e6776a4b71 /clients | |
| parent | 0712cab7f76e49c854a977aceae000cbe3778d41 (diff) | |
| download | bokf-b6ac142cb0bfe06d3bf0b0fb3bdfde3bca3ce4dd.tar.gz bokf-b6ac142cb0bfe06d3bf0b0fb3bdfde3bca3ce4dd.zip | |
tui: Bolaget hub, drop the Företag sectionv0.1.56
Diffstat (limited to 'clients')
| -rw-r--r-- | clients/screens_dashboard.c | 26 | ||||
| -rw-r--r-- | clients/screens_settings.c | 70 |
2 files changed, 60 insertions, 36 deletions
diff --git a/clients/screens_dashboard.c b/clients/screens_dashboard.c index a386dae..9deca37 100644 --- a/clients/screens_dashboard.c +++ b/clients/screens_dashboard.c @@ -276,8 +276,7 @@ static const char *const MAIN_ITEMS[] = { "Lönekörningar", MK_SECTION "Rapporter & bokslut", "Rapporter", "Bokslut", - MK_SECTION "Företag", - "Anställda", "Kunder", "Bolaget", "Momsregler", + "Bolaget", MK_SECTION "System", "Skattetabeller", "Revision", "Systeminställningar", MK_SECTION "Räkenskapsår", @@ -330,34 +329,25 @@ void dashboard(struct app *a) case 11: open_scene(a, "bokslut"); break; - case 13: - open_scene(a, "employees"); - break; - case 14: - open_scene(a, "customers"); - break; - case 15: + case 12: open_scene(a, "company"); break; - case 16: - open_scene(a, "rules"); - break; - case 18: + case 14: open_scene(a, "tax_tables"); break; - case 19: + case 15: open_scene(a, "audit"); break; - case 20: + case 16: open_scene(a, "system"); break; - case 22: + case 18: open_scene(a, "ib"); break; - case 23: + case 19: select_fiscal_year(a); break; - case 24: + case 20: return; default: break; /* section header */ diff --git a/clients/screens_settings.c b/clients/screens_settings.c index c6a46c5..227ee68 100644 --- a/clients/screens_settings.c +++ b/clients/screens_settings.c @@ -355,19 +355,17 @@ void system_settings_screen(struct app *a) settings_can_write(a), 0, &sel); } -void company_screen(struct app *a) +static void company_data_screen(struct app *a) { static int sel = 0; const int nf = (int)(sizeof COMPANY_FIELDS / sizeof COMPANY_FIELDS[0]); int owner = a->role[0] && strcmp(a->role, "owner") == 0; - int writer = settings_can_write(a); - const char *settings_reason = writer ? NULL : "du har inte behörighet"; for (;;) { if (g_quit) return; char *resp = client_rpc(&a->conn, "org.get", a->session, a->org, "{}"); if (!resp || !client_ok(resp)) { - show_error("Bolaget", resp); + show_error("Företagsuppgifter", resp); free(resp); return; } @@ -392,15 +390,7 @@ void company_screen(struct app *a) ff[i].kind = TUI_F_TEXT; } free(resp); - struct tui_form_action acts[3] = { - { "Fakturauppgifter…", writer ? 1 : 0, settings_reason }, - { "E-post (SMTP)…", writer ? 1 : 0, settings_reason }, - { "Styrelseledamöter", 1, NULL }, - }; - tui_form_hint("upp/ned/Tab = flytta Enter = ändra/utför" - " F5 = uppdatera Esc/q = tillbaka ^C = avsluta"); - int r = tui_form_run_actions("Bolaget", ff, nf, owner, acts, 3, NULL, - &sel); + int r = tui_form_run("Företagsuppgifter", ff, nf, owner, &sel); if (r >= 0 && r < nf) { if (!company_field_valid(&COMPANY_FIELDS[r], vals[r])) { tui_message("Ogiltigt värde", "%s", COMPANY_FIELDS[r].label); @@ -426,14 +416,58 @@ void company_screen(struct app *a) } for (int i = 0; i < nf; i++) free(vals[i]); - if (r == TUI_FORM_ACTION + 0) + if (r == TUI_FORM_BACK) + return; + } +} + +static const char *const COMPANY_ITEMS[] = { + "Företagsuppgifter", + "Fakturauppgifter", + "E-post (SMTP)", + "Styrelseledamöter", + MK_SECTION "Register", + "Anställda", + "Kunder", + "Momsregler", +}; + +void company_screen(struct app *a) +{ + static int sel = 0; + for (;;) { + if (g_quit) + return; + int r = tui_menu("Bolaget", COMPANY_ITEMS, + (int)(sizeof COMPANY_ITEMS / sizeof COMPANY_ITEMS[0]), + 0, &sel); + if (r < 0) + return; + switch (r) { + case 0: + company_data_screen(a); + break; + case 1: invoice_settings_screen(a); - else if (r == TUI_FORM_ACTION + 1) + break; + case 2: smtp_settings_screen(a); - else if (r == TUI_FORM_ACTION + 2) + break; + case 3: board_screen(a); - else if (r == TUI_FORM_BACK) - return; + break; + case 5: + employees_screen(a); + break; + case 6: + customers_screen(a); + break; + case 7: + rules_screen(a); + break; + default: + break; + } } } |
