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) 2015-2025 Cédric Krier.
|
||||||
Copyright (C) 2025 Mathias Behrle <mathiasb@m9s.biz>
|
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
|
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
|
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
|
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*
|
*7.0.0 - 19.12.2024*
|
||||||
|
|
||||||
- init
|
- init
|
||||||
|
|
23
document.py
23
document.py
|
@ -101,12 +101,15 @@ class Incoming(metaclass=PoolMeta):
|
||||||
UserError: if calculated values dont match
|
UserError: if calculated values dont match
|
||||||
with xml-values
|
with xml-values
|
||||||
"""
|
"""
|
||||||
|
pool = Pool()
|
||||||
|
Configuration = pool.get('account.configuration.tax_rounding')
|
||||||
|
configuration = Configuration(1)
|
||||||
|
|
||||||
totals = self.parsed_data.get('total', None)
|
totals = self.parsed_data.get('total', None)
|
||||||
if not totals:
|
if not totals:
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'msg_convert_error.msg_convert_error',
|
'msg_convert_error.msg_convert_error',
|
||||||
msg='no totals-section in xml-data'))
|
msg='no totals-section in xml-data'))
|
||||||
|
|
||||||
for xfield, inv_field in [
|
for xfield, inv_field in [
|
||||||
('taxbase', 'untaxed_amount'),
|
('taxbase', 'untaxed_amount'),
|
||||||
('taxtotal', 'tax_amount'),
|
('taxtotal', 'tax_amount'),
|
||||||
|
@ -115,15 +118,25 @@ class Incoming(metaclass=PoolMeta):
|
||||||
inv_val = getattr(invoice, inv_field)
|
inv_val = getattr(invoice, inv_field)
|
||||||
|
|
||||||
if xml_val != inv_val:
|
if xml_val != inv_val:
|
||||||
raise UserError(gettext(
|
rounding = configuration.tax_rounding
|
||||||
'document_incoming_invoice_xml.msg_convert_error',
|
field_name = 'tax_rounding'
|
||||||
msg=' '.join([
|
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',
|
inv_field + ' mismatch',
|
||||||
'from-xml=' + Report.format_currency(
|
'from-xml=' + Report.format_currency(
|
||||||
xml_val, None, invoice.currency),
|
xml_val, None, invoice.currency),
|
||||||
'calculated=' + Report.format_currency(
|
'calculated=' + Report.format_currency(
|
||||||
inv_val, None, invoice.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):
|
def _readxml_xpath(self, tags):
|
||||||
""" generate xpath
|
""" 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:"
|
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:"
|
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 #
|
# document.incoming.configuration #
|
||||||
|
|
|
@ -35,6 +35,9 @@
|
||||||
<record model="ir.message" id="msg_unused_linevalues">
|
<record model="ir.message" id="msg_unused_linevalues">
|
||||||
<field name="text">The following data was not used to generate the invoice line:</field>
|
<field name="text">The following data was not used to generate the invoice line:</field>
|
||||||
</record>
|
</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>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -85,8 +85,6 @@ setup(
|
||||||
'Programming Language :: Python :: 3.8',
|
'Programming Language :: Python :: 3.8',
|
||||||
'Programming Language :: Python :: 3.9',
|
'Programming Language :: Python :: 3.9',
|
||||||
'Programming Language :: Python :: 3.10',
|
'Programming Language :: Python :: 3.10',
|
||||||
'Programming Language :: Python :: 3.11',
|
|
||||||
'Programming Language :: Python :: 3.12',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
keywords='tryton account invoice xrechnung edocument incoming',
|
keywords='tryton account invoice xrechnung edocument incoming',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[tryton]
|
[tryton]
|
||||||
version=7.0.0
|
version=7.0.4
|
||||||
depends:
|
depends:
|
||||||
document_incoming_invoice
|
document_incoming_invoice
|
||||||
edocument_unece
|
edocument_unece
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
sale_point_invoice;7.0.15;7.0.999;mds
|
Loading…
Reference in a new issue