summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp276
-rw-r--r--include/config.hpp4
-rw-r--r--include/locales.hpp20
-rw-r--r--include/strops.hpp7
4 files changed, 151 insertions, 156 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index 0d6b63a..4cd83ee 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -370,7 +370,7 @@ typedef struct
// Service providers.
ai_service ai_service;
-} administration;
+} ledger;
// Add/Update result codes.
#define A_ERR_SUCCESS 0
@@ -397,138 +397,142 @@ typedef struct
typedef uint32_t a_err;
-// Setup functions.
-// =======================
-void administration_create_empty(char* save_file);
-void administration_create_default(char* save_file);
-void administration_create_from_file(char* save_file);
-
-// Callback functions.
-// =======================
-void administration_set_data_changed_event_callback(data_changed_event ev);
-void administration_set_data_deleted_event_callback(data_deleted_event ev);
-void administration_set_invoice_changed_event_callback(invoice_changed_event ev);
-void administration_set_contact_changed_event_callback(contact_changed_event ev);
-void administration_set_taxrate_changed_event_callback(taxrate_changed_event ev);
-void administration_set_costcenter_changed_event_callback(costcenter_changed_event ev);
-void administration_set_project_changed_event_callback(project_changed_event ev);
-
-// Company info functions.
-contact administration_company_info_get();
-void administration_company_info_import(contact data);
-void administration_company_info_set(contact data);
-
-// Other functions.
-// =======================
-char* administration_get_file_path();
-s32 administration_get_next_id();
-s32 administration_get_next_sequence_number();
-char* administration_get_currency_symbol_for_currency(char* code);
-char* administration_get_default_currency();
-time_t administration_get_default_invoice_expire_duration();
-ai_service administration_get_ai_service();
-
-void administration_set_file_path(char* path);
-void administration_set_next_id(s32 nr);
-void administration_set_next_sequence_number(s32 nr);
-void administration_set_ai_service(ai_service provider);
-
-void administration_create_income_statement(income_statement* statement);
-bool administration_can_create_invoices();
-
-// Contact functions.
-// =======================
-u32 administration_contact_count();
-contact administration_contact_create_empty();
-a_err administration_contact_import(contact data);
-a_err administration_contact_add(contact data);
-a_err administration_contact_update(contact data);
-a_err administration_contact_remove(contact data);
-
-a_err administration_addressee_is_valid(delivery_info data);
-a_err administration_contact_is_valid(contact data);
-bool administration_contact_equals(contact c1, contact c2);
-
-a_err administration_contact_get_by_id(contact* buffer, char* id);
-int administration_contact_get_autocompletions(contact* buffer, int buf_size, char* name);
-u32 administration_contact_get_partial_list(u32 page_index, u32 page_size, contact* buffer);
-u32 administration_contact_get_all(contact* buffer);
-
-// Project functions.
-// =======================
-u32 administration_project_count();
-project administration_project_create_empty();
-a_err administration_project_import(project data);
-a_err administration_project_add(project data);
-a_err administration_project_update(project data);
-a_err administration_project_remove(project data);
-void administration_project_cancel(project data);
-
-a_err administration_project_is_valid(project data);
-
-char* administration_project_get_status_string(project data);
-u32 administration_project_get_all(project* buffer);
-u32 administration_project_get_partial_list(u32 page_index, u32 page_size, project* buffer);
-a_err administration_project_get_by_id(project* buffer, char* id);
-
-// Tax rate functions.
-// =======================
-u32 administration_tax_rate_count();
-tax_rate administration_tax_rate_create_empty();
-a_err administration_tax_rate_import(tax_rate data);
-a_err administration_tax_rate_add(tax_rate data);
-a_err administration_tax_rate_update(tax_rate data);
-
-a_err administration_tax_rate_get_by_shorthandle(tax_rate* buffer, char* handle);
-a_err administration_tax_rate_get_by_id(tax_rate* buffer, char* id);
-u32 administration_tax_rate_get_all(tax_rate* buffer);
-u32 administration_tax_rate_get_by_country(tax_rate* buffer, u32 code_count, char** country_codes);
-
-// Cost center functions.
-// =======================
-u32 administration_cost_center_count();
-cost_center administration_cost_center_create_empty();
-a_err administration_cost_center_import(cost_center data);
-a_err administration_cost_center_add(cost_center data);
-a_err administration_cost_center_update(cost_center data);
-
-a_err administration_cost_center_is_valid(cost_center data);
-
-u32 administration_cost_center_get_all(cost_center* buffer);
-a_err administration_cost_center_get_by_id(cost_center* buffer, char* id);
-
-// Invoice functions.
-// =======================
-u32 administration_invoice_count();
-u32 administration_invoice_get_incomming_count();
-u32 administration_invoice_get_outgoing_count();
-invoice administration_invoice_create_empty();
-a_err administration_invoice_import(invoice* invoice);
-a_err administration_invoice_add(invoice* invoice);
-a_err administration_invoice_update(invoice* invoice);
-a_err administration_invoice_remove(invoice* invoice);
-void administration_invoice_set_currency(invoice* invoice, char* currency);
-invoice administration_invoice_create_copy(invoice* invoice);
-
-a_err administration_invoice_is_valid(invoice* invoice);
-
-char* administration_invoice_get_status_string(invoice* invoice);
-u32 administration_invoice_get_partial_list_outgoing(u32 page_index, u32 page_size, invoice* buffer);
-u32 administration_invoice_get_partial_list_incomming(u32 page_index, u32 page_size, invoice* buffer);
-u32 administration_invoice_get_all(invoice* buffer);
-a_err administration_invoice_get_by_id(invoice* buffer, char* id);
-u32 administration_invoice_get_tax_rates(invoice* invoice, tax_rate* buffer);
-bool administration_invoice_get_subtotal_for_tax_rate(invoice* invoice, tax_rate rate, tax_subtotal* buffer);
-
-// Billing item functions.
-// =======================
-u32 administration_billing_item_count(invoice* invoice);
-billing_item administration_billing_item_create_empty();
-a_err administration_billing_item_import_to_invoice(invoice* invoice, billing_item item);
-a_err administration_billing_item_add_to_invoice(invoice* invoice, billing_item item);
-a_err administration_billing_item_update_in_invoice(invoice* invoice, billing_item item);
-a_err administration_billing_item_remove_from_invoice(invoice* invoice, billing_item item);
-
-a_err administration_billing_item_is_valid(billing_item item);
-
-u32 administration_billing_item_get_all_for_invoice(invoice* invoice, billing_item* buffer); \ No newline at end of file
+namespace administration {
+
+ // Setup functions.
+ // =======================
+ void create_empty(char* save_file);
+ void create_default(char* save_file);
+ void create_from_file(char* save_file);
+
+ // Callback functions.
+ // =======================
+ void set_data_changed_event_callback(data_changed_event ev);
+ void set_data_deleted_event_callback(data_deleted_event ev);
+ void set_invoice_changed_event_callback(invoice_changed_event ev);
+ void set_contact_changed_event_callback(contact_changed_event ev);
+ void set_taxrate_changed_event_callback(taxrate_changed_event ev);
+ void set_costcenter_changed_event_callback(costcenter_changed_event ev);
+ void set_project_changed_event_callback(project_changed_event ev);
+
+ // Company info functions.
+ contact company_info_get();
+ void company_info_import(contact data);
+ void company_info_set(contact data);
+
+ // Other functions.
+ // =======================
+ char* get_file_path();
+ s32 get_next_id();
+ s32 get_next_sequence_number();
+ char* get_currency_symbol_for_currency(char* code);
+ char* get_default_currency();
+ time_t get_default_invoice_expire_duration();
+ ai_service get_ai_service();
+
+ void set_file_path(char* path);
+ void set_next_id(s32 nr);
+ void set_next_sequence_number(s32 nr);
+ void set_ai_service(ai_service provider);
+
+ void create_income_statement(income_statement* statement);
+ bool can_create_invoices();
+
+ // Contact functions.
+ // =======================
+ u32 contact_count();
+ contact contact_create_empty();
+ a_err contact_import(contact data);
+ a_err contact_add(contact data);
+ a_err contact_update(contact data);
+ a_err contact_remove(contact data);
+
+ a_err addressee_is_valid(delivery_info data);
+ a_err contact_is_valid(contact data);
+ bool contact_equals(contact c1, contact c2);
+
+ a_err contact_get_by_id(contact* buffer, char* id);
+ int contact_get_autocompletions(contact* buffer, int buf_size, char* name);
+ u32 contact_get_partial_list(u32 page_index, u32 page_size, contact* buffer);
+ u32 contact_get_all(contact* buffer);
+
+ // Project functions.
+ // =======================
+ u32 project_count();
+ project project_create_empty();
+ a_err project_import(project data);
+ a_err project_add(project data);
+ a_err project_update(project data);
+ a_err project_remove(project data);
+ void project_cancel(project data);
+
+ a_err project_is_valid(project data);
+
+ char* project_get_status_string(project data);
+ u32 project_get_all(project* buffer);
+ u32 project_get_partial_list(u32 page_index, u32 page_size, project* buffer);
+ a_err project_get_by_id(project* buffer, char* id);
+
+ // Tax rate functions.
+ // =======================
+ u32 tax_rate_count();
+ tax_rate tax_rate_create_empty();
+ a_err tax_rate_import(tax_rate data);
+ a_err tax_rate_add(tax_rate data);
+ a_err tax_rate_update(tax_rate data);
+
+ a_err tax_rate_get_by_shorthandle(tax_rate* buffer, char* handle);
+ a_err tax_rate_get_by_id(tax_rate* buffer, char* id);
+ u32 tax_rate_get_all(tax_rate* buffer);
+ u32 tax_rate_get_by_country(tax_rate* buffer, u32 code_count, char** country_codes);
+
+ // Cost center functions.
+ // =======================
+ u32 cost_center_count();
+ cost_center cost_center_create_empty();
+ a_err cost_center_import(cost_center data);
+ a_err cost_center_add(cost_center data);
+ a_err cost_center_update(cost_center data);
+
+ a_err cost_center_is_valid(cost_center data);
+
+ u32 cost_center_get_all(cost_center* buffer);
+ a_err cost_center_get_by_id(cost_center* buffer, char* id);
+
+ // Invoice functions.
+ // =======================
+ u32 invoice_count();
+ u32 invoice_get_incomming_count();
+ u32 invoice_get_outgoing_count();
+ invoice invoice_create_empty();
+ a_err invoice_import(invoice* invoice);
+ a_err invoice_add(invoice* invoice);
+ a_err invoice_update(invoice* invoice);
+ a_err invoice_remove(invoice* invoice);
+ void invoice_set_currency(invoice* invoice, char* currency);
+ invoice invoice_create_copy(invoice* invoice);
+
+ a_err invoice_is_valid(invoice* invoice);
+
+ char* invoice_get_status_string(invoice* invoice);
+ u32 invoice_get_partial_list_outgoing(u32 page_index, u32 page_size, invoice* buffer);
+ u32 invoice_get_partial_list_incomming(u32 page_index, u32 page_size, invoice* buffer);
+ u32 invoice_get_all(invoice* buffer);
+ a_err invoice_get_by_id(invoice* buffer, char* id);
+ u32 invoice_get_tax_rates(invoice* invoice, tax_rate* buffer);
+ bool invoice_get_subtotal_for_tax_rate(invoice* invoice, tax_rate rate, tax_subtotal* buffer);
+
+ // Billing item functions.
+ // =======================
+ u32 billing_item_count(invoice* invoice);
+ billing_item billing_item_create_empty();
+ a_err billing_item_import_to_invoice(invoice* invoice, billing_item item);
+ a_err billing_item_add_to_invoice(invoice* invoice, billing_item item);
+ a_err billing_item_update_in_invoice(invoice* invoice, billing_item item);
+ a_err billing_item_remove_from_invoice(invoice* invoice, billing_item item);
+
+ a_err billing_item_is_valid(billing_item item);
+
+ u32 billing_item_get_all_for_invoice(invoice* invoice, billing_item* buffer);
+
+} \ No newline at end of file
diff --git a/include/config.hpp b/include/config.hpp
index fc15e84..5fe4a2c 100644
--- a/include/config.hpp
+++ b/include/config.hpp
@@ -19,12 +19,12 @@
#include "stdint.h"
#include "imgui.h"
-#define s8 int8_t
+#define s8 int8_t
#define s16 int16_t
#define s32 int32_t
#define s64 int64_t
-#define u8 uint8_t
+#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
#define u64 uint64_t
diff --git a/include/locales.hpp b/include/locales.hpp
index ec6cc74..d0bf3f2 100644
--- a/include/locales.hpp
+++ b/include/locales.hpp
@@ -16,22 +16,12 @@
#pragma once
-namespace locale {
-
- typedef struct {
- const char* key;
- const char* value;
- } locale_entry;
-
- typedef struct {
- const char* lang_code;
- locale_entry* entries;
- int entry_count;
- } locale_map;
-
- extern locale_entry en_locales[];
- extern const int en_locale_count;
+typedef struct {
+ const char* key;
+ const char* value;
+} locale_entry;
+namespace locale {
const char* get_locale();
void set_locale(const char key[2]);
const char* get(const char* key);
diff --git a/include/strops.hpp b/include/strops.hpp
index 5ecc99a..3a85543 100644
--- a/include/strops.hpp
+++ b/include/strops.hpp
@@ -16,15 +16,16 @@
#pragma once
-#include <stdint.h>
+#include "config.hpp"
namespace strops {
size_t copy(char *dst, const char *src, size_t size);
char* contains(char* a, char* b);
+ bool equals(const char* a, const char* b);
void replace(char *buf, size_t buf_size, const char *search, const char *replace);
- void replace_int32(char *buf, size_t buf_size, const char *search, int32_t number);
- void replace_int64(char *buf, size_t buf_size, const char *search, int64_t number);
+ void replace_int32(char *buf, size_t buf_size, const char *search, s32 number);
+ void replace_int64(char *buf, size_t buf_size, const char *search, s64 number);
void replace_float(char *buf, size_t buf_size, const char *search, float number, int decimals);
bool is_prefixed(const char *pre, const char *str);
char* get_filename(const char* path);