Compare commits
8 commits
main
...
tax_amount
Author | SHA1 | Date | |
---|---|---|---|
![]() |
28eb6b478b | ||
![]() |
897f565a19 | ||
![]() |
a35e9dec7b | ||
![]() |
76f1e97b00 | ||
![]() |
83af0ba7ca | ||
![]() |
fc41dca55a | ||
![]() |
8c221fcbfd | ||
![]() |
f1c710eab8 |
8 changed files with 46 additions and 10 deletions
|
@ -1,5 +1,6 @@
|
|||
Copyright (C) 2024-2025 martin-data services.
|
||||
Copyright (C) 2025 Mathias Behrle <mathiasb@m9s.biz>
|
||||
Copyright (C) 2015-2025 Cédric Krier.
|
||||
Copyright (C) 2015-2025 B2CK SPRL.
|
||||
Copyright (C) 2021-2025 martin-data services.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
17
README.rst
17
README.rst
|
@ -15,6 +15,23 @@ Requires
|
|||
Changes
|
||||
=======
|
||||
|
||||
*7.0.4 - 29.01.2025*
|
||||
|
||||
- add: Round unit_price + quantity to match the decimal places of the fields.
|
||||
|
||||
*7.0.3 - 27.01.2025*
|
||||
|
||||
- filter product-categories in configuration
|
||||
|
||||
*7.0.2 - 24.01.2025*
|
||||
|
||||
- fix: limit content-check to supplier-invoices
|
||||
|
||||
*7.0.1 - 23.01.2025*
|
||||
|
||||
- import of Factur-X (Basic, EN16931, Extended), CrossIndustryInvoice-D22
|
||||
- with/without PDF-Container
|
||||
|
||||
*7.0.0 - 19.12.2024*
|
||||
|
||||
- init
|
||||
|
|
23
document.py
23
document.py
|
@ -101,12 +101,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'),
|
||||
|
@ -115,15 +118,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
|
||||
|
|
|
@ -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>
|
||||
|
|
2
setup.py
2
setup.py
|
@ -85,8 +85,6 @@ setup(
|
|||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
'Programming Language :: Python :: 3.12',
|
||||
],
|
||||
|
||||
keywords='tryton account invoice xrechnung edocument incoming',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[tryton]
|
||||
version=7.0.0
|
||||
version=7.0.4
|
||||
depends:
|
||||
document_incoming_invoice
|
||||
edocument_unece
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
sale_point_invoice;7.0.15;7.0.999;mds
|
Loading…
Reference in a new issue