summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp16
-rw-r--r--include/administration_reader.hpp9
-rw-r--r--include/file_templates.hpp15
-rw-r--r--include/strops.hpp3
4 files changed, 31 insertions, 12 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index b971e2c..fe3d7b2 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -25,6 +25,8 @@
#define MAX_LEN_PROJECT_REPORT_COSTCENTERS 50
#define MAX_BILLING_ITEMS 50
+#define MY_COMPANY_ID "C/1"
+
typedef struct
{
char id[MAX_LEN_ID]; // T/[id]
@@ -63,7 +65,7 @@ typedef struct
address address;
contact_type type;
char taxid[MAX_LEN_TAXID]; // Required for business contact
- char businessid[MAX_LEN_TAXID]; // Required for business contact
+ char businessid[MAX_LEN_BUSINESSID]; // Required for business contact
char email[MAX_LEN_EMAIL];
char phone_number[MAX_LEN_PHONE];
char bank_account[MAX_LEN_BANK];
@@ -308,6 +310,8 @@ typedef struct
} income_statement;
// Administration callback functions.
+// These are called when adding/updating/deleting entries.
+// These are NOT called when using import functions.
typedef void (*data_changed_event)();
typedef void (*data_deleted_event)(char id[MAX_LEN_ID]);
typedef void (*invoice_changed_event)(invoice* invoice);
@@ -338,9 +342,10 @@ typedef struct
// Setup functions.
// =======================
-void administration_create();
-void administration_destroy();
+void administration_create(); // TODO remove and move into other setup functions
+void administration_destroy(); // TODO remove and move into other setup functions
void administration_create_empty(char* save_file);
+void administration_create_from_file(char* save_file);
// Callback functions.
// =======================
@@ -357,6 +362,7 @@ void administration_set_project_changed_event_callback(project_changed_event
administration* administration_get(); // TODO get rid of this and make indivual getters and setters
char* administration_file_path_get();
contact administration_company_info_get();
+void administration_company_info_import(contact data);
void administration_company_info_set(contact data);
void administration_create_income_statement(income_statement* statement);
char* administration_get_currency_symbol_from_currency(char* code);
@@ -368,6 +374,7 @@ bool administration_has_save_path();
// =======================
u32 administration_contact_count();
contact administration_contact_create_empty();
+bool administration_contact_import(contact data);
bool administration_contact_add(contact data);
bool administration_contact_update(contact data);
bool administration_contact_remove(contact data);
@@ -385,6 +392,7 @@ u32 administration_contact_get_all(contact* buffer);
// =======================
u32 administration_project_count();
project administration_project_create_empty();
+bool administration_project_import(project data);
bool administration_project_add(project data);
bool administration_project_update(project data);
bool administration_project_remove(project data);
@@ -400,6 +408,7 @@ bool administration_project_get_by_id(project* buffer, char* id);
// Tax bracket functions.
// =======================
u32 administration_tax_bracket_count();
+bool administration_tax_bracket_import(country_tax_bracket data);
bool administration_tax_bracket_add(country_tax_bracket data);
bool administration_tax_bracket_update(country_tax_bracket data);
@@ -410,6 +419,7 @@ u32 administration_tax_bracket_get_by_country(country_tax_bracket* buffer, c
// Cost center functions.
// =======================
u32 administration_cost_center_count();
+bool administration_cost_center_import(cost_center data);
bool administration_cost_center_add(cost_center data);
bool administration_cost_center_update(cost_center data);
diff --git a/include/administration_reader.hpp b/include/administration_reader.hpp
index 528cc40..ed932bc 100644
--- a/include/administration_reader.hpp
+++ b/include/administration_reader.hpp
@@ -1,3 +1,10 @@
#pragma once
-bool administration_reader_open_new(); \ No newline at end of file
+bool administration_reader_open_new();
+bool administration_reader_open_existing(char* file_path);
+
+bool administration_reader_import_administration_info(char* buffer, size_t buffer_size);
+bool administration_reader_import_tax_bracket(char* buffer, size_t buffer_size);
+bool administration_reader_import_cost_center(char* buffer, size_t buffer_size);
+bool administration_reader_import_project(char* buffer, size_t buffer_size);
+bool administration_reader_import_contact(char* buffer, size_t buffer_size); \ No newline at end of file
diff --git a/include/file_templates.hpp b/include/file_templates.hpp
index de3f509..cb89050 100644
--- a/include/file_templates.hpp
+++ b/include/file_templates.hpp
@@ -5,22 +5,22 @@ const char* project_save_template =
" <State>{{PROJECT_STATE}}</State>\n"
" <StartDate>{{PROJECT_STARTDATE}}</StartDate>\n"
" <EndDate>{{PROJECT_ENDDATE}}</EndDate>\n"
-"</Project>\n";
+"</Project>";
const char* costcenter_save_template =
"<CostCenter>\n"
" <Id>{{COSTCENTER_ID}}</Id>\n"
" <Code>{{COSTCENTER_CODE}}</Code>\n"
" <Description>{{COSTCENTER_DESCRIPTION}}</Description>\n"
-"</CostCenter>\n";
+"</CostCenter>";
const char* taxbracket_save_template =
"<CountryTaxBracket>\n"
" <Id>{{TAXBRACKET_ID}}</Id>\n"
" <CountryCode>{{TAXBRACKET_COUNTRY}}</CountryCode>\n"
" <Rate>{{TAXBRACKET_RATE}}</Rate>\n"
-" <Description>{{TAXBRACKET_CATEGORY}}</Description>\n"
-"</CountryTaxBracket>\n";
+" <Category>{{TAXBRACKET_CATEGORY}}</Category>\n"
+"</CountryTaxBracket>";
const char* contact_save_template =
"<Contact>\n"
@@ -40,14 +40,15 @@ const char* contact_save_template =
" <Postal>{{CONTACT_POSTAL}}</Postal>\n"
" <Region>{{CONTACT_REGION}}</Region>\n"
" </Address>\n"
-"</Contact>\n";
+"</Contact>";
const char* administration_save_template =
"<Administration>\n"
" <NextId>{{NEXT_ID}}</NextId>\n"
+" <CompanyInfoId>{{COMPANY_ID}}</CompanyInfoId>\n"
" <NextSequenceNumber>{{NEXT_SEQUENCE_NUMBER}}</NextSequenceNumber>\n"
" <ProgramVersion>{{PROGRAM_VERSION}}</ProgramVersion>\n"
-"</Administration>\n";
+"</Administration>";
const char* peppol_invoice_tax_subtotal_template =
" <cac:TaxSubtotal>\n"
@@ -173,4 +174,4 @@ const char *peppol_invoice_template =
"\n"
" {{INVOICE_LINE_LIST}}"
"\n"
-"</Invoice>\n";
+"</Invoice>";
diff --git a/include/strops.hpp b/include/strops.hpp
index 2874c4d..412becc 100644
--- a/include/strops.hpp
+++ b/include/strops.hpp
@@ -6,4 +6,5 @@ char* strops_stristr(char* a, char* b);
void strops_replace(char *buf, size_t buf_size, const char *search, const char *replace);
void strops_replace_int32(char *buf, size_t buf_size, const char *search, int32_t number);
void strops_replace_int64(char *buf, size_t buf_size, const char *search, int64_t number);
-void strops_replace_float(char *buf, size_t buf_size, const char *search, float number, int decimals); \ No newline at end of file
+void strops_replace_float(char *buf, size_t buf_size, const char *search, float number, int decimals);
+bool strops_prefix(const char *pre, const char *str); \ No newline at end of file