diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/administration.hpp | 276 | ||||
| -rw-r--r-- | include/config.hpp | 4 | ||||
| -rw-r--r-- | include/locales.hpp | 20 | ||||
| -rw-r--r-- | include/strops.hpp | 7 |
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); |
