From 1c53bd3ac83cc7a985983ac656bc2599276808a4 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 5 Oct 2025 20:28:18 +0200 Subject: country data, working on tax reports --- include/administration.hpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'include/administration.hpp') 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. -- cgit v1.2.3-70-g09d2