summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp23
-rw-r--r--include/administration_reader.hpp3
-rw-r--r--include/administration_writer.hpp11
-rw-r--r--include/config.hpp1
4 files changed, 30 insertions, 8 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index 9df4335..b971e2c 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -307,6 +307,15 @@ typedef struct
quarterly_report quarters[MAX_LEN_INCOME_STATEMENT_REPORT_QUARTERS];
} income_statement;
+// Administration callback functions.
+typedef void (*data_changed_event)();
+typedef void (*data_deleted_event)(char id[MAX_LEN_ID]);
+typedef void (*invoice_changed_event)(invoice* invoice);
+typedef void (*contact_changed_event)(contact* contact);
+typedef void (*taxbracket_changed_event)(country_tax_bracket* bracket);
+typedef void (*costcenter_changed_event)(cost_center* cost_center);
+typedef void (*project_changed_event)(project* project);
+
typedef struct
{
contact company_info; // Company info used for invoices. User cannot create invoices when this is empty/invalid.
@@ -333,9 +342,19 @@ void administration_create();
void administration_destroy();
void administration_create_empty(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_taxbracket_changed_event_callback(taxbracket_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);
+
// Other functions.
// =======================
-administration* administration_get();
+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_set(contact data);
@@ -343,7 +362,7 @@ void administration_create_income_statement(income_statement* statement);
char* administration_get_currency_symbol_from_currency(char* code);
char* administration_get_default_currency();
bool administration_can_create_invoices();
-bool administration_is_loaded();
+bool administration_has_save_path();
// Contact functions.
// =======================
diff --git a/include/administration_reader.hpp b/include/administration_reader.hpp
new file mode 100644
index 0000000..528cc40
--- /dev/null
+++ b/include/administration_reader.hpp
@@ -0,0 +1,3 @@
+#pragma once
+
+bool administration_reader_open_new(); \ No newline at end of file
diff --git a/include/administration_writer.hpp b/include/administration_writer.hpp
index fa5f0db..317739f 100644
--- a/include/administration_writer.hpp
+++ b/include/administration_writer.hpp
@@ -4,18 +4,17 @@
#define ADMIN_FILE_INFO "info.xml"
+// Setup functions.
bool administration_writer_create();
void administration_writer_destroy();
+bool administration_writer_start_new();
+
+// Individual entity writing.
bool administration_writer_delete_entry(char* id);
-bool administration_writer_save_project_blocking(project project);
-bool administration_writer_save_cost_center_blocking(cost_center cost);
-bool administration_writer_save_tax_bracket_blocking(country_tax_bracket bracket);
-bool administration_writer_save_contact_blocking(contact c);
-bool administration_writer_save_invoice_blocking(invoice inv);
+// Archiving functions.
bool administration_writer_save_all_administration_info_blocking();
bool administration_writer_save_all_tax_brackets_blocking();
bool administration_writer_save_all_cost_centers_blocking();
-
bool administration_writer_save_all_async(); \ No newline at end of file
diff --git a/include/config.hpp b/include/config.hpp
index 88fd041..a0f11c0 100644
--- a/include/config.hpp
+++ b/include/config.hpp
@@ -1,5 +1,6 @@
#pragma once
+// major.minor.patch
#define PROGRAM_VERSION "0.1.0"
#include "stdint.h"