Delta neg

This commit is contained in:
2026-05-20 09:15:17 +02:00
parent c3d768d5a8
commit 22a083a853
4 changed files with 100 additions and 45 deletions

View File

@@ -416,6 +416,53 @@ class PurchaseTradeTestCase(ModuleTestCase):
self.assertEqual(fee.get_amount(), Decimal('3.33'))
def test_sale_rate_fee_amount_stays_positive_with_negative_delta(self):
'sale rate fee display amount is unsigned even when financing delta is negative'
Fee = Pool().get('fee.fee')
fee = Fee()
fee.mode = 'rate'
fee.price = Decimal('12')
fee.fee_date = None
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,
),
],
)
self.assertEqual(fee.get_amount(), Decimal('3.33'))
def test_fee_pnl_applies_pay_sign_to_unsigned_rate_amount(self):
'fee pnl sign is applied once from PAY/REC'
Valuation = Pool().get('valuation.valuation')
lot = Mock()
lot.get_current_quantity_converted.return_value = Decimal('10')
fee = Mock(
mode='rate',
price=Decimal('12'),
unit=Mock(),
line=None,
sale_line=Mock(
unit_price=Decimal('100'),
estimated_date=[
Mock(trigger='bldate', fin_int_delta=-10),
],
),
)
self.assertEqual(
Valuation._fee_amount_for_lot_or_zero(fee, lot),
Decimal('3.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')