Compare commits

..

5 commits

Author SHA1 Message Date
Frederik Jaeckel
76f1e97b00 Version 7.0.3 2025-01-27 13:04:56 +01:00
Frederik Jaeckel
83af0ba7ca Merge branch 'main' into 7.0 2025-01-27 13:03:07 +01:00
Frederik Jaeckel
fc41dca55a Version 7.0.2 2025-01-24 09:22:24 +01:00
Frederik Jaeckel
8c221fcbfd Merge branch 'main' into 7.0 2025-01-24 09:21:35 +01:00
Frederik Jaeckel
f1c710eab8 Version 7.0.1 2025-01-23 12:02:01 +01:00
7 changed files with 35 additions and 26 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

@ -15,6 +15,19 @@ Requires
Changes Changes
======= =======
*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

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

@ -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=7.0.3
depends: depends:
document_incoming_invoice document_incoming_invoice
edocument_unece edocument_unece

View file

@ -0,0 +1 @@
sale_point_invoice;7.0.15;7.0.999;mds