summaryrefslogtreecommitdiff
path: root/include/administration.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/administration.hpp')
-rw-r--r--include/administration.hpp26
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.