diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-28 17:41:50 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-28 17:41:50 +0200 |
| commit | a2299b0bae21c8f05f091732a78fc250cbd5e016 (patch) | |
| tree | b1de8319d1088b1209ba377665995b4543180d4b /src/administration_reader.cpp | |
| parent | d8c4d84dc75300c6d4d8b0adceafa33741960b92 (diff) | |
openAI invoice importing v0.1
Diffstat (limited to 'src/administration_reader.cpp')
| -rw-r--r-- | src/administration_reader.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/administration_reader.cpp b/src/administration_reader.cpp index b8b4958..f316f40 100644 --- a/src/administration_reader.cpp +++ b/src/administration_reader.cpp @@ -123,14 +123,13 @@ bool administration_reader_open_existing(char* file_path) return true; } -bool administration_reader_import_invoice(char* buffer, size_t buffer_size) +bool administration_reader_read_invoice_from_xml(invoice* result, char* buffer, size_t buffer_size) { - STOPWATCH_START; - xml_document* document = xml_parse_document((uint8_t *)buffer, buffer_size); if (!document) return false; struct xml_node* root = xml_document_root(document); + if (!root) return false; invoice data = administration_invoice_create_empty(); xml_get_str(root, data.id, MAX_LEN_ID, "cbc:ID"); @@ -238,8 +237,19 @@ bool administration_reader_import_invoice(char* buffer, size_t buffer_size) free(child_name); } - + + *result = data; + return true; +} + +bool administration_reader_import_invoice(char* buffer, size_t buffer_size) +{ + STOPWATCH_START; + + invoice data; + if (!administration_reader_read_invoice_from_xml(&data, buffer, buffer_size)) return false; a_err result = administration_invoice_import(&data); + if (result == A_ERR_SUCCESS) { log_info("Loaded invoice '%s' in %.3fms.", data.sequential_number, STOPWATCH_TIME); } |
