summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 15:51:45 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 15:51:45 +0200
commit66d21e5fef32f64219f0f0b86c3b4b4a74623ba1 (patch)
treeef04496d4712d69eaf4dd56aec9195db9a6e952d /include
parent94e52baaed095f571c41cabe80d3a6b7e03653d2 (diff)
cost center crud
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp76
1 files changed, 44 insertions, 32 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index aca0131..196e674 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -6,12 +6,19 @@
typedef struct
{
char country_code[3];
- float rate;
+ float rate; // 0-100
char description[32];
} country_tax_bracket;
typedef struct
{
+ char id[16];
+ char code[5];
+ char description[64];
+} cost_center;
+
+typedef struct
+{
char address1[128];
char address2[128];
char country[128];
@@ -31,9 +38,9 @@ typedef struct
typedef enum
{
- RUNNING,
- PAUSED,
- CANCELLED,
+ PROJECT_RUNNING,
+ PROJECT_PAUSED,
+ PROJECT_CANCELLED,
} project_state;
typedef struct
@@ -61,7 +68,8 @@ typedef struct
char description[128];
country_tax_bracket tax_bracket;
char tax_section[16];
- s32 amount;
+ float amount;
+ bool amount_is_percentage;
s32 net_per_item;
s32 net;
s32 discount;
@@ -85,7 +93,6 @@ typedef struct
list_t billing_items;
char project_id[16];
char cost_center_id[16];
- char cost_unit_id[16];
s32 total;
s32 tax;
s32 net;
@@ -109,34 +116,39 @@ typedef struct
list_t projects;
list_t invoices;
list_t tax_brackets;
- char ai_service[16];
- char ai_key[32];
- char email_service[16];
- char email_key[32];
+ list_t cost_centers;
} administration;
-void administration_create();
-void administration_destroy();
+void administration_create();
+void administration_destroy();
-char* administration_get_file_path();
-s32 administration_create_id();
+char* administration_get_file_path();
+s32 administration_create_id();
contact administration_get_company_info();
-void administration_set_company_info(contact data);
-
-bool administration_remove_contact(contact data);
-bool administration_create_contact(contact data);
-bool administration_update_contact(contact data);
-u32 administration_get_contact_count();
-u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer);
-
-void administration_cancel_project(project data);
-bool administration_remove_project(project data);
-bool administration_create_project(project data);
-bool administration_update_project(project data);
-char* administration_project_get_status_string(project data);
-u32 administration_get_project_count();
-u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer);
-
-u32 administration_get_tax_bracket_count();
-u32 administration_get_tax_brackets(country_tax_bracket* buffer); \ No newline at end of file
+void administration_set_company_info(contact data);
+
+bool administration_can_contact_be_deleted(contact data);
+bool administration_remove_contact(contact data);
+bool administration_create_contact(contact data);
+bool administration_update_contact(contact data);
+u32 administration_get_contact_count();
+u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer);
+
+void administration_cancel_project(project data);
+bool administration_remove_project(project data);
+bool administration_create_project(project data);
+bool administration_update_project(project data);
+char* administration_project_get_status_string(project data);
+u32 administration_get_project_count();
+u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer);
+
+u32 administration_get_tax_bracket_count();
+u32 administration_get_tax_brackets(country_tax_bracket* buffer);
+
+u32 administration_get_cost_center_count();
+u32 administration_get_cost_centers(cost_center* buffer);
+bool administration_verify_cost_center_code(char* code);
+bool administration_verify_cost_center_description(char* text);
+bool administration_add_cost_center(cost_center data);
+bool administration_update_cost_center(cost_center data); \ No newline at end of file