Explain the reason for evtl. tax mismatch.
This commit is contained in:
parent
76f1e97b00
commit
7157a5d8d6
3 changed files with 24 additions and 5 deletions
21
document.py
21
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',
|
||||
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
|
||||
|
|
|
@ -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 #
|
||||
|
|
|
@ -35,6 +35,9 @@
|
|||
<record model="ir.message" id="msg_unused_linevalues">
|
||||
<field name="text">The following data was not used to generate the invoice line:</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_tax_amount_mismatch">
|
||||
<field name="text">You have configured tax rounding method '%(rounding)s' in the account configuration. Maybe try with a different method</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
Loading…
Reference in a new issue