summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-08-16 12:57:53 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-08-16 12:57:53 +0200
commit12afa4c63e642452676f77830ec0383a6132883e (patch)
tree63e23c4892e2d399e23040016e0f10cffd01d341 /include
parent05bc81cd42c5aeff7cfb6cf6b18f88792e7c16c9 (diff)
working on invoice form
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index fd55978..af449bb 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -62,6 +62,9 @@ typedef struct
typedef enum
{
+ INVOICE_CONCEPT,
+ INVOICE_SENT,
+ INVOICE_REMINDED,
INVOICE_PAID,
INVOICE_EXPIRED,
INVOICE_CANCELLED,
@@ -84,14 +87,11 @@ typedef struct
float net;
char currency[CURRENCY_LENGTH];
char tax_bracket_id[16];
+ float tax;
+ float total;
// todo
char tax_section[16];
- float tax;
- float total;
- bool is_intra_community;
- bool is_triangulation;
- char internal_code[64];
} billing_item;
typedef struct
@@ -100,26 +100,27 @@ typedef struct
char sequential_number[16]; // INV0000000000 - INV9999999999
char customer_id[16];
char supplier_id[16];
- address shipping_address;
+ contact addressee;
time_t issued_at;
time_t expires_at;
time_t delivered_at;
char document[255]; // path to copy of document for incomming invoice.
char project_id[16];
char cost_center_id[16];
-
list_t billing_items;
float total;
float tax;
float net;
- invoice_status status;
char currency[CURRENCY_LENGTH];
-
+ bool is_triangulation;
+
+ bool is_intra_community; // TODO
+ invoice_status status; // TODO
time_t payment_on_account_date; // TODO
char tax_representative[64]; // TODO
char corrected_sequential_number[16]; // TODO
- // Not stored.
+ // Used for forms, not stored on disk. Filled when retrieved.
contact supplier;
contact customer;
} invoice;
@@ -184,9 +185,12 @@ bool administration_update_cost_center(cost_center data);
invoice administration_create_empty_invoice();
void administration_invoice_set_currency(invoice* invoice, char* currency);
+bool administration_is_invoice_valid(invoice* invoice);
+bool administration_add_invoice(invoice* invoice);
billing_item administration_create_empty_billing_item();
u32 administration_get_all_billing_items_for_invoice(invoice* invoice, billing_item* buffer);
u32 administration_get_billing_items_count(invoice* invoice);
bool administration_add_billing_item_to_invoice(invoice* invoice, billing_item item);
-bool administration_update_billing_item_of_invoice(invoice* invoice, billing_item item); \ No newline at end of file
+bool administration_update_billing_item_of_invoice(invoice* invoice, billing_item item);
+bool administration_remove_billing_item_from_invoice(invoice* invoice, billing_item item); \ No newline at end of file