diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-21 20:37:34 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-21 20:37:34 +0200 |
| commit | 051666a90b2c4779efdc8cfb49ab7316c94b58b0 (patch) | |
| tree | 041ad949685731db2b824f502f0a7a8e64715517 /include | |
| parent | 946a0c939c0cb7c28c9af9b7e4e2b20c45dd3702 (diff) | |
peppol file importing + invoice rw tests
Diffstat (limited to 'include')
| -rw-r--r-- | include/administration.hpp | 5 | ||||
| -rw-r--r-- | include/administration_reader.hpp | 3 | ||||
| -rw-r--r-- | include/file_templates.hpp | 33 |
3 files changed, 30 insertions, 11 deletions
diff --git a/include/administration.hpp b/include/administration.hpp index e2ff80d..130993f 100644 --- a/include/administration.hpp +++ b/include/administration.hpp @@ -270,7 +270,6 @@ typedef struct bool is_outgoing; // Outgoing or incomming invoice. payment_information payment_means; - // Used for forms, not stored on disk. Filled when retrieved. contact supplier; contact customer; } invoice; @@ -474,6 +473,7 @@ 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); @@ -486,7 +486,7 @@ 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); @@ -494,6 +494,7 @@ bool administration_invoice_get_subtotal_for_tax_rate(invoice* invoice, tax_r // ======================= 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); diff --git a/include/administration_reader.hpp b/include/administration_reader.hpp index cbd69ba..7765680 100644 --- a/include/administration_reader.hpp +++ b/include/administration_reader.hpp @@ -24,4 +24,5 @@ bool administration_reader_import_administration_info(char* buffer, size_t buffe bool administration_reader_import_tax_rate(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 +bool administration_reader_import_contact(char* buffer, size_t buffer_size); +bool administration_reader_import_invoice(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 9064abf..4ed3611 100644 --- a/include/file_templates.hpp +++ b/include/file_templates.hpp @@ -94,6 +94,12 @@ const char* peppol_invoice_line_template = " <cac:Item>\n" " <cbc:Name>{{ITEM_NAME}}</cbc:Name>\n" + +" <cac:AdditionalItemProperty>\n" +" <cbc:Name>Internal Tax Rate ID</cbc:Name>\n" +" <cbc:Value>{{LINE_TAX_ID}}</cbc:Value>\n" +" </cac:AdditionalItemProperty>\n" + " <cac:ClassifiedTaxCategory>\n" " <cbc:ID>{{LINE_TAX_CATEGORY}}</cbc:ID>\n" " <cbc:Percent>{{LINE_TAX_PERCENT}}</cbc:Percent>\n" @@ -123,24 +129,28 @@ const char *peppol_invoice_template = " <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>\n" " <cbc:DocumentCurrencyCode>{{CURRENCY}}</cbc:DocumentCurrencyCode>\n" "\n" +" <cac:DespatchDocumentReference>\n" +" <cbc:ID>{{INVOICE_STATUS}}</cbc:ID>\n" +" </cac:DespatchDocumentReference>\n" +"\n" " <cac:AdditionalDocumentReference>\n" " <cbc:ID>{{INVOICE_DOCUMENT}}</cbc:ID>\n" " </cac:AdditionalDocumentReference>\n" "\n" " <cac:OrderReference>\n" -" <cbc:ID>{{INVOICE_ID}}</cbc:ID>\n" +" <cbc:ID>{{INVOICE_SEQUENCE_ID}}</cbc:ID>\n" " </cac:OrderReference>\n" "\n" " <cac:ProjectReference>\n" " <cbc:ID>{{PROJECT_ID}}</cbc:ID>\n" " </cac:ProjectReference>\n" -" <cbc:AccountingCost>{{COST_CENTER_CODE}}</cbc:AccountingCost>\n" +" <cbc:AccountingCost>{{COST_CENTER_ID}}</cbc:AccountingCost>\n" "\n" " <cac:AccountingSupplierParty>\n" " <cac:Party>\n" " <cbc:EndpointID schemeID=\"{{SUPPLIER_ENDPOINT_SCHEME}}\">{{SUPPLIER_ENDPOINT_ID}}</cbc:EndpointID>\n" " <cac:PartyIdentification>\n" -" <cbc:ID schemeID=\"ZZZ\">{{SUPPLIER_ID}}</cbc:ID>\n" +" <cbc:ID schemeID=\"ZZZ\">{{SUPPLIER_BUSINESS_ID}}</cbc:ID>\n" " </cac:PartyIdentification>\n" " <cac:PartyName>\n" " <cbc:Name>{{SUPPLIER_NAME}}</cbc:Name>\n" @@ -167,7 +177,7 @@ const char *peppol_invoice_template = " </cac:PartyLegalEntity>\n" "\n" " <cac:Contact>\n" -" <cbc:Name>{{SUPPLIER_NAME}}</cbc:Name>\n" +" <cbc:Name>{{SUPPLIER_ID}}</cbc:Name>\n" " <cbc:Telephone>{{SUPPLIER_PHONE_NUMBER}}</cbc:Telephone>\n" " <cbc:ElectronicMail>{{SUPPLIER_EMAIL}}</cbc:ElectronicMail>\n" " </cac:Contact>\n" @@ -179,7 +189,7 @@ const char *peppol_invoice_template = " <cac:Party>\n" " <cbc:EndpointID schemeID=\"{{CUSTOMER_ENDPOINT_SCHEME}}\">{{CUSTOMER_ENDPOINT_ID}}</cbc:EndpointID>\n" " <cac:PartyIdentification>\n" -" <cbc:ID schemeID=\"ZZZ\">{{CUSTOMER_ID}}</cbc:ID>\n" +" <cbc:ID schemeID=\"ZZZ\">{{CUSTOMER_BUSINESS_ID}}</cbc:ID>\n" " </cac:PartyIdentification>\n" " <cac:PartyName>\n" " <cbc:Name>{{CUSTOMER_NAME}}</cbc:Name>\n" @@ -206,7 +216,7 @@ const char *peppol_invoice_template = " </cac:PartyLegalEntity>\n" "\n" " <cac:Contact>\n" -" <cbc:Name>{{CUSTOMER_NAME}}</cbc:Name>\n" +" <cbc:Name>{{CUSTOMER_ID}}</cbc:Name>\n" " <cbc:Telephone>{{CUSTOMER_PHONE_NUMBER}}</cbc:Telephone>\n" " <cbc:ElectronicMail>{{CUSTOMER_EMAIL}}</cbc:ElectronicMail>\n" " </cac:Contact>\n" @@ -238,14 +248,21 @@ const char *peppol_invoice_template = " <cac:PaymentMeans>\n" " <cbc:PaymentMeansCode>{{PAYMENT_TYPE}}</cbc:PaymentMeansCode>\n" " <cbc:PaymentID>{{INVOICE_ID}}</cbc:PaymentID>\n" + " <cac:PayeeFinancialAccount>\n" -" <cbc:ID>{{SUPPLIER_IBAN}}</cbc:ID>\n" +" <cbc:ID>{{RECIPIENT_IBAN}}</cbc:ID>\n" +" <cbc:Name>{{RECIPIENT_NAME}}</cbc:Name>\n" " <cac:FinancialInstitutionBranch>\n" " <cac:FinancialInstitution>\n" -" <cbc:ID>{{SUPPLIER_BIC}}</cbc:ID>\n" +" <cbc:ID>{{RECIPIENT_BIC}}</cbc:ID>\n" " </cac:FinancialInstitution>\n" " </cac:FinancialInstitutionBranch>\n" " </cac:PayeeFinancialAccount>\n" + +" <cac:PayerFinancialAccount>\n" +" <cbc:ID>{{SENDER_IBAN}}</cbc:ID>\n" +" </cac:PayerFinancialAccount>\n" + " </cac:PaymentMeans>\n" "\n" " <cac:TaxTotal>\n" |
