Compare commits
3 commits
7157a5d8d6
...
970fb9caaf
Author | SHA1 | Date | |
---|---|---|---|
![]() |
970fb9caaf | ||
![]() |
2bf95fb245 | ||
![]() |
9a83b24477 |
4 changed files with 26 additions and 18 deletions
|
@ -15,6 +15,10 @@ 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*
|
*7.0.3 - 27.01.2025*
|
||||||
|
|
||||||
- filter product-categories in configuration
|
- filter product-categories in configuration
|
||||||
|
|
14
document.py
14
document.py
|
@ -20,6 +20,7 @@ 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 = [
|
||||||
|
@ -732,12 +733,15 @@ 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=line_data.get('quantity', {}).pop('billed', None),
|
quantity=xml_uom.round(
|
||||||
unit_price=line_data.get('unit_net_price', {}).pop('amount', None))
|
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)
|
line_no = line_data.pop('line_no', None)
|
||||||
|
|
||||||
# description
|
# description
|
||||||
|
@ -976,9 +980,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', Decimal),
|
('ram:BilledQuantity', 'billed', float),
|
||||||
('ram:ChargeFreeQuantity', 'chargefree', Decimal),
|
('ram:ChargeFreeQuantity', 'chargefree', float),
|
||||||
('ram:PackageQuantity', 'package', Decimal),
|
('ram:PackageQuantity', 'package', float),
|
||||||
])[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')
|
||||||
|
|
|
@ -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': Decimal('1.0'),
|
'billed': 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': Decimal('1.5'),
|
'billed': 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': Decimal('2.0'),
|
'billed': 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': Decimal('1.0'), 'unit_code': 'KGM'},
|
'billed': 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': Decimal('1.5'),
|
'billed': 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': Decimal('2.0'),
|
'billed': 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': Decimal('1.0'), 'unit_code': 'KGM'},
|
'quantity': {'billed': 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': Decimal('1.5'),
|
'billed': 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': Decimal('2.0'),
|
'billed': 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': Decimal('1.0'), 'unit_code': 'KGM'},
|
'quantity': {'billed': 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': Decimal('1.5'),
|
'billed': 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': Decimal('2.0'), 'unit_code': 'MTR'},
|
'quantity': {'billed': 2.0, 'unit_code': 'MTR'},
|
||||||
'taxes': [{
|
'taxes': [{
|
||||||
'type': 'VAT',
|
'type': 'VAT',
|
||||||
'category_code': 'S',
|
'category_code': 'S',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[tryton]
|
[tryton]
|
||||||
version=7.0.3
|
version=7.0.4
|
||||||
depends:
|
depends:
|
||||||
document_incoming_invoice
|
document_incoming_invoice
|
||||||
edocument_unece
|
edocument_unece
|
||||||
|
|
Loading…
Reference in a new issue