summaryrefslogtreecommitdiff
path: root/src/administration_reader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/administration_reader.cpp')
-rw-r--r--src/administration_reader.cpp11
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);
}