diff --git a/document.py b/document.py
index 3445df8..75a2003 100644
--- a/document.py
+++ b/document.py
@@ -100,12 +100,15 @@ class Incoming(metaclass=PoolMeta):
UserError: if calculated values dont match
with xml-values
"""
+ pool = Pool()
+ Configuration = pool.get('account.configuration.tax_rounding')
+ configuration = Configuration(1)
+
totals = self.parsed_data.get('total', None)
if not totals:
raise UserError(gettext(
'msg_convert_error.msg_convert_error',
msg='no totals-section in xml-data'))
-
for xfield, inv_field in [
('taxbase', 'untaxed_amount'),
('taxtotal', 'tax_amount'),
@@ -114,15 +117,25 @@ class Incoming(metaclass=PoolMeta):
inv_val = getattr(invoice, inv_field)
if xml_val != inv_val:
- raise UserError(gettext(
- 'document_incoming_invoice_xml.msg_convert_error',
- msg=' '.join([
+ rounding = configuration.tax_rounding
+ field_name = 'tax_rounding'
+ selection_values = configuration.fields_get(
+ [field_name])[field_name]['selection']
+ rounding_cfg = [
+ i[1] for i in selection_values if i[0] == rounding][0]
+ msg = ' '.join([
inv_field + ' mismatch',
'from-xml=' + Report.format_currency(
xml_val, None, invoice.currency),
'calculated=' + Report.format_currency(
inv_val, None, invoice.currency)
- ])))
+ ])
+ msg += '\n\n' + gettext(
+ 'document_incoming_invoice_xml.msg_tax_amount_mismatch',
+ rounding=rounding_cfg)
+ raise UserError(gettext(
+ 'document_incoming_invoice_xml.msg_convert_error',
+ msg=msg))
def _readxml_xpath(self, tags):
""" generate xpath
diff --git a/locale/de.po b/locale/de.po
index 67a498c..84ba775 100644
--- a/locale/de.po
+++ b/locale/de.po
@@ -46,6 +46,9 @@ msgctxt "model:ir.message,text:msg_unused_linevalues"
msgid "The following data was not used to generate the invoice line:"
msgstr "Die folgenden Daten wurden für die Erzeugung der Rechnungszeile nicht verwendet:"
+msgctxt "model:ir.message,text:msg_tax_amount_mismatch"
+msgid "You have configured tax rounding method '%(rounding)s' in the account configuration. Maybe try with a different method"
+msgstr "In Rechnungswesen/Einstellungen ist die Steuerrundungsmethode '%(rounding)s' eingetragen. Versuchen Sie es u.U. mit einer anderen Methode'
###################################
# document.incoming.configuration #
diff --git a/message.xml b/message.xml
index e65f1a2..0b743d1 100644
--- a/message.xml
+++ b/message.xml
@@ -35,6 +35,9 @@
The following data was not used to generate the invoice line:
+
+ You have configured tax rounding method '%(rounding)s' in the account configuration. Maybe try with a different method
+