Invoice Melya template
This commit is contained in:
@@ -5,7 +5,7 @@ import datetime
|
||||
from contextlib import nullcontext
|
||||
from decimal import Decimal
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import ANY, Mock, patch
|
||||
from unittest.mock import ANY, Mock, call, patch
|
||||
from xml.etree import ElementTree
|
||||
|
||||
from trytond.pool import Pool
|
||||
@@ -8257,8 +8257,8 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
invoice.report_quantity_lines,
|
||||
'910.00 LBS (910.00 LBS)')
|
||||
|
||||
def test_invoice_validation_creates_weight_snapshot_for_proforma_lines(self):
|
||||
'invoice validation snapshots lot weights for pro forma invoice lines'
|
||||
def test_invoice_validation_creates_weight_snapshot_for_report_lines(self):
|
||||
'invoice validation snapshots lot weights for pro forma and final lines'
|
||||
Invoice = Pool().get('account.invoice')
|
||||
|
||||
lot_ref = Mock(id=10)
|
||||
@@ -8293,8 +8293,9 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
|
||||
invoice._create_lot_weight_snapshots()
|
||||
|
||||
snapshot_model.create_for_invoice_line.assert_called_once_with(
|
||||
proforma, lot)
|
||||
self.assertEqual(
|
||||
snapshot_model.create_for_invoice_line.call_args_list,
|
||||
[call(proforma, lot), call(final, lot)])
|
||||
|
||||
def test_invoice_report_lbs_converts_kilogram_to_lbs(self):
|
||||
'invoice lbs helper converts kilogram quantities with the proper uom ratio'
|
||||
@@ -8429,8 +8430,8 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
'999990.0 KILOGRAM (2204597.95 LBS)',
|
||||
])
|
||||
|
||||
def test_invoice_report_weights_use_single_virtual_lot_when_no_physical(self):
|
||||
'invoice uses the unique virtual lot hist when no physical lot exists'
|
||||
def test_invoice_report_weights_ignore_origin_virtual_lot(self):
|
||||
'invoice report falls back to invoice quantity instead of origin virtual lot'
|
||||
Invoice = Pool().get('account.invoice')
|
||||
|
||||
virtual = Mock(id=1, lot_type='virtual', lot_unit_line=Mock(rec_name='LBS'))
|
||||
@@ -8448,13 +8449,14 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
)
|
||||
invoice = Invoice()
|
||||
invoice.lines = [line]
|
||||
line.invoice = invoice
|
||||
|
||||
self.assertEqual(invoice.report_net, Decimal('930'))
|
||||
self.assertEqual(invoice.report_gross, Decimal('930'))
|
||||
self.assertEqual(invoice.report_weight_unit_upper, 'LBS')
|
||||
self.assertEqual(invoice.report_net, Decimal('1000'))
|
||||
self.assertEqual(invoice.report_gross, Decimal('1000'))
|
||||
self.assertEqual(invoice.report_weight_unit_upper, 'MT')
|
||||
|
||||
def test_invoice_report_weights_prefer_physical_lots_over_virtual(self):
|
||||
'invoice uses physical lot hist values whenever physical lots exist'
|
||||
def test_invoice_report_weights_use_lot_linked_to_invoice_line(self):
|
||||
'invoice uses the physical lot explicitly linked to the invoice line'
|
||||
Invoice = Pool().get('account.invoice')
|
||||
|
||||
virtual = Mock(id=1, lot_type='virtual', lot_unit_line=Mock(rec_name='LBS'))
|
||||
@@ -8467,16 +8469,23 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
Decimal('950'),
|
||||
Decimal('980'),
|
||||
)
|
||||
origin = Mock(lots=[virtual, physical])
|
||||
physical.sale_invoice_line = None
|
||||
line = Mock(
|
||||
id=100,
|
||||
type='line',
|
||||
quantity=Decimal('1000'),
|
||||
lot=virtual,
|
||||
origin=origin,
|
||||
unit=Mock(rec_name='MT'),
|
||||
)
|
||||
physical.sale_invoice_line_prov = line
|
||||
physical.invoice_line = None
|
||||
physical.invoice_line_prov = None
|
||||
origin = Mock(lots=[virtual, physical])
|
||||
line.origin = origin
|
||||
invoice = Invoice()
|
||||
invoice.lines = [line]
|
||||
invoice.sales = [Mock(lines=[origin])]
|
||||
line.invoice = invoice
|
||||
|
||||
self.assertEqual(invoice.report_net, Decimal('950'))
|
||||
self.assertEqual(invoice.report_gross, Decimal('980'))
|
||||
|
||||
Reference in New Issue
Block a user