Pnl shipment

This commit is contained in:
2026-06-04 19:27:50 +02:00
parent a98415fe62
commit a114c14e89
6 changed files with 106 additions and 36 deletions

View File

@@ -2408,6 +2408,7 @@ class PurchaseTradeTestCase(ModuleTestCase):
'sale and purchase trader/operator fields are filtered by TRADER/OPERATOR categories'
Sale = Pool().get('sale.sale')
Purchase = Pool().get('purchase.purchase')
ShipmentIn = Pool().get('stock.shipment.in')
self.assertEqual(
Sale.trader.domain, [('categories.name', '=', 'TRADER')])
@@ -2417,6 +2418,34 @@ class PurchaseTradeTestCase(ModuleTestCase):
Purchase.trader.domain, [('categories.name', '=', 'TRADER')])
self.assertEqual(
Purchase.operator.domain, [('categories.name', '=', 'OPERATOR')])
self.assertEqual(
ShipmentIn.operator.domain, [('categories.name', '=', 'OPERATOR')])
def test_shipment_in_pnl_lines_use_physical_and_open_lots(self):
'shipment PnL uses valuation lines from physical and open lot links'
ShipmentIn = Pool().get('stock.shipment.in')
shipment = ShipmentIn()
physical_lot = Mock(id=1)
open_purchase_lot = Mock(id=2)
open_sale_lot = Mock(id=3)
shipment.incoming_moves = [
Mock(lot=physical_lot),
Mock(lot=None),
]
shipment.lotqt = [
Mock(lot_p=open_purchase_lot, lot_s=open_sale_lot),
Mock(lot_p=open_purchase_lot, lot_s=None),
]
valuation_model = Mock()
valuation_model.search.return_value = [Mock(id=10), Mock(id=11)]
with patch('trytond.modules.purchase_trade.stock.Pool') as PoolMock:
PoolMock.return_value.get.return_value = valuation_model
self.assertEqual(shipment.get_pnl_lines(None), [10, 11])
valuation_model.search.assert_called_once_with(
[('lot', 'in', [1, 2, 3])],
order=[('date', 'DESC'), ('id', 'DESC')])
def test_sale_and_purchase_tolerance_option_defaults_to_empty(self):
'sale and purchase tolerance option defaults to empty'