Compare commits

..

6 commits

Author SHA1 Message Date
Frederik Jaeckel
148f237084 Version 6.8.3 2025-01-27 13:11:58 +01:00
Frederik Jaeckel
ca29e8eeec Merge branch 'main' into 6.8 2025-01-27 13:08:22 +01:00
Frederik Jaeckel
446be5bb05 Version 6.8.2 2025-01-24 09:27:16 +01:00
Frederik Jaeckel
f80c06db02 Merge branch 'main' into 6.8 2025-01-24 09:25:46 +01:00
Frederik Jaeckel
5575408be7 Version 6.8.1 2025-01-23 14:40:36 +01:00
Frederik Jaeckel
95aca437fc compatibility to Tryton 6.8 2025-01-23 14:39:37 +01:00
7 changed files with 38 additions and 31 deletions

View file

@ -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

View file

@ -9,12 +9,22 @@ pip install mds-document-incoming-invoice-xml
Requires Requires
======== ========
- Tryton 7.0 - Tryton 6.8
Changes Changes
======= =======
*7.0.0 - 19.12.2024* *6.8.3 - 27.01.2025*
- init - filter product-categories in configuration
*6.8.2 - 24.01.2025*
- fix: limit content-check to supplier-invoices
*6.8.1 - 19.12.2024*
- compatibility to Tryton 6.8
- import of Factur-X (Basic, EN16931, Extended), CrossIndustryInvoice-D22
- with/without PDF-Container

View file

@ -20,7 +20,6 @@ from trytond.i18n import gettext
from trytond.model import fields from trytond.model import fields
from trytond.pyson import Eval from trytond.pyson import Eval
from trytond.protocols.jsonrpc import JSONEncoder from trytond.protocols.jsonrpc import JSONEncoder
from trytond.modules.product import round_price
xml_types = [ xml_types = [
@ -720,15 +719,12 @@ class Incoming(metaclass=PoolMeta):
if units: if units:
xml_uom = units[0] xml_uom = units[0]
unitprice = line_data.get('unit_net_price', {}).pop('amount', None)
line = Line( line = Line(
invoice=invoice, invoice=invoice,
type='line', type='line',
unit=xml_uom, unit=xml_uom,
quantity=xml_uom.round( quantity=line_data.get('quantity', {}).pop('billed', None),
line_data.get('quantity', {}).pop('billed', None)), unit_price=line_data.get('unit_net_price', {}).pop('amount', None))
unit_price=round_price(unitprice)
if unitprice is not None else Decimal('0.0'))
line_no = line_data.pop('line_no', None) line_no = line_data.pop('line_no', None)
# description # description
@ -967,9 +963,9 @@ class Incoming(metaclass=PoolMeta):
result['quantity'] = self._readxml_read_listdata( result['quantity'] = self._readxml_read_listdata(
xmldata, xpath_line, [ xmldata, xpath_line, [
'ram:SpecifiedLineTradeDelivery'], [ 'ram:SpecifiedLineTradeDelivery'], [
('ram:BilledQuantity', 'billed', float), ('ram:BilledQuantity', 'billed', Decimal),
('ram:ChargeFreeQuantity', 'chargefree', float), ('ram:ChargeFreeQuantity', 'chargefree', Decimal),
('ram:PackageQuantity', 'package', float), ('ram:PackageQuantity', 'package', Decimal),
])[0] ])[0]
result['quantity']['unit_code'] = self._readxml_getattrib( result['quantity']['unit_code'] = self._readxml_getattrib(
xmldata, xpath_quantity + ['ram:BilledQuantity'], 'unitCode') xmldata, xpath_quantity + ['ram:BilledQuantity'], 'unitCode')

View file

@ -34,8 +34,8 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f:
modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]} modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]}
# tryton-version # tryton-version
major_version = 7 major_version = 6
minor_version = 0 minor_version = 8
requires = ['pypdf', 'factur-x', 'lxml'] requires = ['pypdf', 'factur-x', 'lxml']
for dep in info.get('depends', []): for dep in info.get('depends', []):
@ -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',

View file

@ -23,7 +23,7 @@ parsed_data_ci_invoice = {
'total': {'amount': Decimal('1350.00')}, 'total': {'amount': Decimal('1350.00')},
'line_no': '1', 'line_no': '1',
'quantity': { 'quantity': {
'billed': 1.0, 'billed': Decimal('1.0'),
'unit_code': 'KGM'}, 'unit_code': 'KGM'},
'unit_net_price': {'amount': Decimal('1350.00')}, 'unit_net_price': {'amount': Decimal('1350.00')},
}, { }, {
@ -34,7 +34,7 @@ parsed_data_ci_invoice = {
'total': {'amount': Decimal('1200.00')}, 'total': {'amount': Decimal('1200.00')},
'line_no': '2', 'line_no': '2',
'quantity': { 'quantity': {
'billed': 1.5, 'billed': Decimal('1.5'),
'unit_code': 'KGM'}, 'unit_code': 'KGM'},
'unit_net_price': {'amount': Decimal('800.00')}, 'unit_net_price': {'amount': Decimal('800.00')},
}, { }, {
@ -42,7 +42,7 @@ parsed_data_ci_invoice = {
'total': {'amount': Decimal('300.00')}, 'total': {'amount': Decimal('300.00')},
'line_no': '3', 'line_no': '3',
'quantity': { 'quantity': {
'billed': 2.0, 'billed': Decimal('2.0'),
'unit_code': 'MTR'}, 'unit_code': 'MTR'},
'unit_net_price': {'amount': Decimal('150.00')}}], 'unit_net_price': {'amount': Decimal('150.00')}}],
'note_list': [{ 'note_list': [{
@ -101,7 +101,7 @@ parsed_data_facturx_en16931 = {
'description': 'Description of Product 1', 'description': 'Description of Product 1',
'unit_net_price': {'amount': Decimal('1350.00')}, 'unit_net_price': {'amount': Decimal('1350.00')},
'quantity': { 'quantity': {
'billed': 1.0, 'unit_code': 'KGM'}, 'billed': Decimal('1.0'), 'unit_code': 'KGM'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
'category_code': 'S', 'category_code': 'S',
@ -127,7 +127,7 @@ parsed_data_facturx_en16931 = {
'amount': Decimal('950.00'), 'amount': Decimal('950.00'),
'basequantity': Decimal('1.0')}, 'basequantity': Decimal('1.0')},
'quantity': { 'quantity': {
'billed': 1.5, 'billed': Decimal('1.5'),
'unit_code': 'KGM'}, 'unit_code': 'KGM'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
@ -141,7 +141,7 @@ parsed_data_facturx_en16931 = {
'description': 'Description of Product 3', 'description': 'Description of Product 3',
'unit_net_price': {'amount': Decimal('150.00')}, 'unit_net_price': {'amount': Decimal('150.00')},
'quantity': { 'quantity': {
'billed': 2.0, 'billed': Decimal('2.0'),
'unit_code': 'MTR'}, 'unit_code': 'MTR'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
@ -213,7 +213,7 @@ parsed_data_facturx_basic = {
'line_no': '1', 'line_no': '1',
'name': 'Name of Product 1', 'name': 'Name of Product 1',
'unit_net_price': {'amount': Decimal('1350.00')}, 'unit_net_price': {'amount': Decimal('1350.00')},
'quantity': {'billed': 1.0, 'unit_code': 'KGM'}, 'quantity': {'billed': Decimal('1.0'), 'unit_code': 'KGM'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
'category_code': 'S', 'category_code': 'S',
@ -231,7 +231,7 @@ parsed_data_facturx_basic = {
'amount': Decimal('950.00'), 'amount': Decimal('950.00'),
'basequantity': Decimal('1.0')}, 'basequantity': Decimal('1.0')},
'quantity': { 'quantity': {
'billed': 1.5, 'billed': Decimal('1.5'),
'unit_code': 'KGM'}, 'unit_code': 'KGM'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
@ -243,7 +243,7 @@ parsed_data_facturx_basic = {
'name': 'Name of Product 3', 'name': 'Name of Product 3',
'unit_net_price': {'amount': Decimal('150.00')}, 'unit_net_price': {'amount': Decimal('150.00')},
'quantity': { 'quantity': {
'billed': 2.0, 'billed': Decimal('2.0'),
'unit_code': 'MTR'}, 'unit_code': 'MTR'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
@ -328,7 +328,7 @@ parsed_data_facturx_extended = {
'name': 'Name of Product 1', 'name': 'Name of Product 1',
'description': 'Description of Product 1', 'description': 'Description of Product 1',
'unit_net_price': {'amount': Decimal('1350.00')}, 'unit_net_price': {'amount': Decimal('1350.00')},
'quantity': {'billed': 1.0, 'unit_code': 'KGM'}, 'quantity': {'billed': Decimal('1.0'), 'unit_code': 'KGM'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
'category_code': 'S', 'category_code': 'S',
@ -379,7 +379,7 @@ parsed_data_facturx_extended = {
'amount': Decimal('950.00'), 'amount': Decimal('950.00'),
'basequantity': Decimal('1.0')}, 'basequantity': Decimal('1.0')},
'quantity': { 'quantity': {
'billed': 1.5, 'billed': Decimal('1.5'),
'unit_code': 'KGM', 'unit_code': 'KGM',
'package': Decimal('1.5')}, 'package': Decimal('1.5')},
'taxes': [{ 'taxes': [{
@ -392,7 +392,7 @@ parsed_data_facturx_extended = {
'name': 'Name of Product 3', 'name': 'Name of Product 3',
'description': 'Description of Product 3', 'description': 'Description of Product 3',
'unit_net_price': {'amount': Decimal('150.00')}, 'unit_net_price': {'amount': Decimal('150.00')},
'quantity': {'billed': 2.0, 'unit_code': 'MTR'}, 'quantity': {'billed': Decimal('2.0'), 'unit_code': 'MTR'},
'taxes': [{ 'taxes': [{
'type': 'VAT', 'type': 'VAT',
'category_code': 'S', 'category_code': 'S',

View file

@ -1,5 +1,5 @@
[tryton] [tryton]
version=7.0.0 version=6.8.3
depends: depends:
document_incoming_invoice document_incoming_invoice
edocument_unece edocument_unece

View file

@ -0,0 +1,2 @@
document_incoming_invoice;6.8.0;6.8.999;mds
sale_point_invoice;6.8.15;6.8.999;mds