Lot invoicing + Fee padding
This commit is contained in:
@@ -3369,6 +3369,39 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
self.assertEqual(fee_line.fee_quantity, Decimal('7'))
|
||||
self.assertEqual(fee_line.fee_amount, Decimal('14.00'))
|
||||
|
||||
def test_lot_invoice_final_existing_fee_display_ignores_padding(self):
|
||||
'final DN/CN fee display ignores padding for the current value'
|
||||
start = lot_module.LotInvoiceStart()
|
||||
unit = SimpleNamespace(id=1)
|
||||
sale_line = SimpleNamespace(unit=unit, unit_price=Decimal('100'))
|
||||
lot = SimpleNamespace(id=10, sale_line=sale_line)
|
||||
fee = SimpleNamespace(
|
||||
add_padding=True,
|
||||
state='invoiced',
|
||||
mode='pprice',
|
||||
price=Decimal('2'),
|
||||
quantity=Decimal('5'),
|
||||
sale_line=sale_line,
|
||||
_get_effective_fee_lots=Mock(return_value=[lot]),
|
||||
_get_effective_fee_lots_quantity=Mock(return_value=Decimal('5')),
|
||||
_convert_padding_quantity=Mock(
|
||||
side_effect=lambda quantity, unit: Decimal(str(quantity))),
|
||||
get_quantity=Mock(return_value=Decimal('5')))
|
||||
fee_line = SimpleNamespace(
|
||||
fee=fee,
|
||||
fee_quantity=Decimal('5'),
|
||||
fee_amount=Decimal('10'))
|
||||
start.type = 'sale'
|
||||
start.action = 'final'
|
||||
start.sale_padding = Decimal('2')
|
||||
start.lot_s = [SimpleNamespace(lot=lot)]
|
||||
start.fee_sale = [fee_line]
|
||||
|
||||
start.on_change_sale_padding()
|
||||
|
||||
self.assertEqual(fee_line.fee_quantity, Decimal('5'))
|
||||
self.assertEqual(fee_line.fee_amount, Decimal('10.00'))
|
||||
|
||||
def test_fee_get_non_cog_returns_zero_without_move_lines(self):
|
||||
'fee non-cog amount is zero before any accounting move line exists'
|
||||
fee = fee_module.Fee()
|
||||
|
||||
Reference in New Issue
Block a user