fee mode rate sale side

This commit is contained in:
2026-04-29 19:47:59 +02:00
parent 589ff16401
commit 616cf6d73c
3 changed files with 74 additions and 16 deletions

View File

@@ -273,6 +273,35 @@ class PurchaseTradeTestCase(ModuleTestCase):
self.assertEqual(fee.get_amount(), Decimal('13.33'))
def test_sale_rate_fee_amount_uses_bl_date_estimate(self):
'sale rate fee amount uses BL estimated date plus financing delta'
Fee = Pool().get('fee.fee')
fee = Fee()
fee.mode = 'rate'
fee.price = Decimal('12')
fee.fee_date = datetime.date(2026, 4, 23)
fee.quantity = Decimal('10')
fee.unit = Mock()
fee.shipment_in = None
fee.line = None
fee.sale_line = Mock(
unit_price=Decimal('100'),
lots=[],
estimated_date=[
Mock(
trigger='bldate',
estimated_date=datetime.date(2026, 5, 23),
fin_int_delta=10,
),
],
)
with patch('trytond.modules.purchase_trade.fee.Pool') as PoolMock:
PoolMock.return_value.get.return_value = Mock(
today=Mock(return_value=datetime.date(2026, 4, 23)))
self.assertEqual(fee.get_amount(), Decimal('13.33'))
def test_create_pnl_price_from_line_keeps_finished_physical_sale_line(self):
'purchase valuation keeps finished sale-side pnl on physical lots'
Valuation = Pool().get('valuation.valuation')