Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
01616c6c4b | ||
![]() |
d52774a77e |
8 changed files with 30 additions and 50 deletions
|
@ -1,6 +1,5 @@
|
|||
Copyright (C) 2015-2025 Cédric Krier.
|
||||
Copyright (C) 2015-2025 B2CK SPRL.
|
||||
Copyright (C) 2021-2025 martin-data services.
|
||||
Copyright (C) 2024-2025 martin-data services.
|
||||
Copyright (C) 2025 Mathias Behrle <mathiasb@m9s.biz>
|
||||
|
||||
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
|
||||
|
|
15
README.rst
15
README.rst
|
@ -9,21 +9,12 @@ pip install mds-document-incoming-invoice-xml
|
|||
|
||||
Requires
|
||||
========
|
||||
- Tryton 6.0
|
||||
- Tryton 7.0
|
||||
|
||||
|
||||
Changes
|
||||
=======
|
||||
|
||||
*6.0.3 - 27.01.2025*
|
||||
*7.0.0 - 19.12.2024*
|
||||
|
||||
- filter product-categories in configuration
|
||||
|
||||
*6.0.2 - 24.01.2025*
|
||||
|
||||
- fix: limit content-check to supplier-invoices
|
||||
|
||||
*6.0.1 - 23.01.2025*
|
||||
|
||||
- import of Factur-X (Basic, EN16931, Extended), CrossIndustryInvoice-D22
|
||||
- with/without PDF-Container
|
||||
- init
|
||||
|
|
14
document.py
14
document.py
|
@ -20,6 +20,7 @@ from trytond.i18n import gettext
|
|||
from trytond.model import fields
|
||||
from trytond.pyson import Eval
|
||||
from trytond.protocols.jsonrpc import JSONEncoder
|
||||
from trytond.modules.product import round_price
|
||||
|
||||
|
||||
xml_types = [
|
||||
|
@ -719,12 +720,15 @@ class Incoming(metaclass=PoolMeta):
|
|||
if units:
|
||||
xml_uom = units[0]
|
||||
|
||||
unitprice = line_data.get('unit_net_price', {}).pop('amount', None)
|
||||
line = Line(
|
||||
invoice=invoice,
|
||||
type='line',
|
||||
unit=xml_uom,
|
||||
quantity=line_data.get('quantity', {}).pop('billed', None),
|
||||
unit_price=line_data.get('unit_net_price', {}).pop('amount', None))
|
||||
quantity=xml_uom.round(
|
||||
line_data.get('quantity', {}).pop('billed', None)),
|
||||
unit_price=round_price(unitprice)
|
||||
if unitprice is not None else Decimal('0.0'))
|
||||
line_no = line_data.pop('line_no', None)
|
||||
|
||||
# description
|
||||
|
@ -963,9 +967,9 @@ class Incoming(metaclass=PoolMeta):
|
|||
result['quantity'] = self._readxml_read_listdata(
|
||||
xmldata, xpath_line, [
|
||||
'ram:SpecifiedLineTradeDelivery'], [
|
||||
('ram:BilledQuantity', 'billed', Decimal),
|
||||
('ram:ChargeFreeQuantity', 'chargefree', Decimal),
|
||||
('ram:PackageQuantity', 'package', Decimal),
|
||||
('ram:BilledQuantity', 'billed', float),
|
||||
('ram:ChargeFreeQuantity', 'chargefree', float),
|
||||
('ram:PackageQuantity', 'package', float),
|
||||
])[0]
|
||||
result['quantity']['unit_code'] = self._readxml_getattrib(
|
||||
xmldata, xpath_quantity + ['ram:BilledQuantity'], 'unitCode')
|
||||
|
|
4
setup.py
4
setup.py
|
@ -34,7 +34,7 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f:
|
|||
modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]}
|
||||
|
||||
# tryton-version
|
||||
major_version = 6
|
||||
major_version = 7
|
||||
minor_version = 0
|
||||
|
||||
requires = ['pypdf', 'factur-x', 'lxml']
|
||||
|
@ -85,6 +85,8 @@ 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',
|
||||
|
|
|
@ -2,18 +2,3 @@
|
|||
# This file is part of the document-incoming-invoice-xml-module
|
||||
# from m-ds for Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
|
||||
import trytond.tests.test_tryton
|
||||
import unittest
|
||||
from .test_module import XmlIncomingTestCase
|
||||
|
||||
|
||||
__all__ = ['suite']
|
||||
|
||||
|
||||
def suite():
|
||||
suite = trytond.tests.test_tryton.suite()
|
||||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
|
||||
XmlIncomingTestCase))
|
||||
return suite
|
||||
|
|
|
@ -23,7 +23,7 @@ parsed_data_ci_invoice = {
|
|||
'total': {'amount': Decimal('1350.00')},
|
||||
'line_no': '1',
|
||||
'quantity': {
|
||||
'billed': Decimal('1.0'),
|
||||
'billed': 1.0,
|
||||
'unit_code': 'KGM'},
|
||||
'unit_net_price': {'amount': Decimal('1350.00')},
|
||||
}, {
|
||||
|
@ -34,7 +34,7 @@ parsed_data_ci_invoice = {
|
|||
'total': {'amount': Decimal('1200.00')},
|
||||
'line_no': '2',
|
||||
'quantity': {
|
||||
'billed': Decimal('1.5'),
|
||||
'billed': 1.5,
|
||||
'unit_code': 'KGM'},
|
||||
'unit_net_price': {'amount': Decimal('800.00')},
|
||||
}, {
|
||||
|
@ -42,7 +42,7 @@ parsed_data_ci_invoice = {
|
|||
'total': {'amount': Decimal('300.00')},
|
||||
'line_no': '3',
|
||||
'quantity': {
|
||||
'billed': Decimal('2.0'),
|
||||
'billed': 2.0,
|
||||
'unit_code': 'MTR'},
|
||||
'unit_net_price': {'amount': Decimal('150.00')}}],
|
||||
'note_list': [{
|
||||
|
@ -101,7 +101,7 @@ parsed_data_facturx_en16931 = {
|
|||
'description': 'Description of Product 1',
|
||||
'unit_net_price': {'amount': Decimal('1350.00')},
|
||||
'quantity': {
|
||||
'billed': Decimal('1.0'), 'unit_code': 'KGM'},
|
||||
'billed': 1.0, 'unit_code': 'KGM'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
'category_code': 'S',
|
||||
|
@ -127,7 +127,7 @@ parsed_data_facturx_en16931 = {
|
|||
'amount': Decimal('950.00'),
|
||||
'basequantity': Decimal('1.0')},
|
||||
'quantity': {
|
||||
'billed': Decimal('1.5'),
|
||||
'billed': 1.5,
|
||||
'unit_code': 'KGM'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
|
@ -141,7 +141,7 @@ parsed_data_facturx_en16931 = {
|
|||
'description': 'Description of Product 3',
|
||||
'unit_net_price': {'amount': Decimal('150.00')},
|
||||
'quantity': {
|
||||
'billed': Decimal('2.0'),
|
||||
'billed': 2.0,
|
||||
'unit_code': 'MTR'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
|
@ -213,7 +213,7 @@ parsed_data_facturx_basic = {
|
|||
'line_no': '1',
|
||||
'name': 'Name of Product 1',
|
||||
'unit_net_price': {'amount': Decimal('1350.00')},
|
||||
'quantity': {'billed': Decimal('1.0'), 'unit_code': 'KGM'},
|
||||
'quantity': {'billed': 1.0, 'unit_code': 'KGM'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
'category_code': 'S',
|
||||
|
@ -231,7 +231,7 @@ parsed_data_facturx_basic = {
|
|||
'amount': Decimal('950.00'),
|
||||
'basequantity': Decimal('1.0')},
|
||||
'quantity': {
|
||||
'billed': Decimal('1.5'),
|
||||
'billed': 1.5,
|
||||
'unit_code': 'KGM'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
|
@ -243,7 +243,7 @@ parsed_data_facturx_basic = {
|
|||
'name': 'Name of Product 3',
|
||||
'unit_net_price': {'amount': Decimal('150.00')},
|
||||
'quantity': {
|
||||
'billed': Decimal('2.0'),
|
||||
'billed': 2.0,
|
||||
'unit_code': 'MTR'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
|
@ -328,7 +328,7 @@ parsed_data_facturx_extended = {
|
|||
'name': 'Name of Product 1',
|
||||
'description': 'Description of Product 1',
|
||||
'unit_net_price': {'amount': Decimal('1350.00')},
|
||||
'quantity': {'billed': Decimal('1.0'), 'unit_code': 'KGM'},
|
||||
'quantity': {'billed': 1.0, 'unit_code': 'KGM'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
'category_code': 'S',
|
||||
|
@ -379,7 +379,7 @@ parsed_data_facturx_extended = {
|
|||
'amount': Decimal('950.00'),
|
||||
'basequantity': Decimal('1.0')},
|
||||
'quantity': {
|
||||
'billed': Decimal('1.5'),
|
||||
'billed': 1.5,
|
||||
'unit_code': 'KGM',
|
||||
'package': Decimal('1.5')},
|
||||
'taxes': [{
|
||||
|
@ -392,7 +392,7 @@ parsed_data_facturx_extended = {
|
|||
'name': 'Name of Product 3',
|
||||
'description': 'Description of Product 3',
|
||||
'unit_net_price': {'amount': Decimal('150.00')},
|
||||
'quantity': {'billed': Decimal('2.0'), 'unit_code': 'MTR'},
|
||||
'quantity': {'billed': 2.0, 'unit_code': 'MTR'},
|
||||
'taxes': [{
|
||||
'type': 'VAT',
|
||||
'category_code': 'S',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[tryton]
|
||||
version=6.0.3
|
||||
version=7.0.0
|
||||
depends:
|
||||
document_incoming_invoice
|
||||
edocument_unece
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
document_incoming_invoice;6.0.0;6.0.999;mds
|
Loading…
Reference in a new issue