diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-05 20:28:18 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-05 20:28:18 +0200 |
| commit | 1c53bd3ac83cc7a985983ac656bc2599276808a4 (patch) | |
| tree | 47b890b696649fcf85462d71058fb66c078bdca0 /include/administration.hpp | |
| parent | 8aa66a6c6c0d8984b7d2668c03bad5a3b29e3a33 (diff) | |
country data, working on tax reports
Diffstat (limited to 'include/administration.hpp')
| -rw-r--r-- | include/administration.hpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/administration.hpp b/include/administration.hpp index 75f5b52..54f8aac 100644 --- a/include/administration.hpp +++ b/include/administration.hpp @@ -37,6 +37,8 @@ #define MAX_LEN_TAX_SECTION 16 #define MAX_LEN_API_KEY 256 +#define MAX_LEN_TAX_REPORT_LINES 50 +#define MAX_LEN_TAX_REPORT_QUARTERS 400 #define MAX_LEN_INCOME_STATEMENT_REPORT_QUARTERS 400 #define MAX_LEN_QUARTERLY_REPORT_PROJECTS 200 #define MAX_LEN_PROJECT_REPORT_COSTCENTERS 50 @@ -326,6 +328,29 @@ typedef struct quarterly_report quarters[MAX_LEN_INCOME_STATEMENT_REPORT_QUARTERS]; } income_statement; +typedef struct +{ + char tax_category[MAX_LEN_SHORT_DESC]; + float total_net; + float total_tax; +} tax_line; + +typedef struct +{ + bool is_empty; + u16 year; // 00-99 + u8 quarter; // 0-3 + char quarter_str[MAX_LEN_SHORT_DESC]; + u32 line_count; + tax_line lines[MAX_LEN_TAX_REPORT_LINES]; +} tax_report; + +typedef struct +{ + u32 quarter_count; + tax_report reports[MAX_LEN_TAX_REPORT_QUARTERS]; +} tax_statement; + // Administration callback functions. // These are called when adding/updating/deleting entries. // These are NOT called when using import functions. @@ -438,6 +463,7 @@ namespace administration { void set_ai_service(ai_service provider); void create_income_statement(income_statement* statement); + void create_tax_statement(tax_statement* statement); bool can_create_invoices(); // Contact functions. |
