diff options
Diffstat (limited to 'src/administration_reader.cpp')
| -rw-r--r-- | src/administration_reader.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/administration_reader.cpp b/src/administration_reader.cpp index f316f40..a72ba8a 100644 --- a/src/administration_reader.cpp +++ b/src/administration_reader.cpp @@ -232,6 +232,17 @@ bool administration_reader_read_invoice_from_xml(invoice* result, char* buffer, bi.discount = xml_get_float_x(child, "cac:AllowanceCharge", "cbc:MultiplierFactorNumeric", 0); } + // Import service could set tax rate id to shorthandle. + tax_rate tax_rate; + if (administration_tax_rate_get_by_id(&tax_rate, bi.tax_rate_id) == A_ERR_NOT_FOUND) { + if (administration_tax_rate_get_by_shorthandle(&tax_rate, bi.tax_rate_id) == A_ERR_SUCCESS) { + strops_copy(bi.tax_rate_id, tax_rate.id, MAX_LEN_ID); + } + else { + strops_copy(bi.tax_rate_id, "", MAX_LEN_ID); + } + } + administration_billing_item_import_to_invoice(&data, bi); } |
