diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py index c35bfcd..61179b7 100755 --- a/modules/purchase_trade/lot.py +++ b/modules/purchase_trade/lot.py @@ -2719,12 +2719,20 @@ class LotInvoice(Wizard): val_s['lot_price'] = lot.lot_price_sale val_s['lot_amount'] = lot.get_current_quantity_converted() * lot.lot_price_sale if lot.lot_price_sale else Decimal(0) val_s['lot_diff_quantity'] = 0 - val_s['lot_diff_price'] = 0 - val_s['lot_diff_amount'] = 0 - if lot.sale_invoice_line_prov: - val_s['lot_diff_quantity'] = val_s['lot_quantity'] - Decimal(lot.sale_invoice_line_prov.quantity) - val_s['lot_diff_price'] = val_s['lot_price'] - Decimal(lot.sale_invoice_line_prov.unit_price) - val_s['lot_diff_amount'] = val_s['lot_amount'] - Decimal(lot.sale_invoice_line_prov.amount) + val_s['lot_diff_price'] = 0 + val_s['lot_diff_amount'] = 0 + if lot.sale_invoice_line_prov: + provisional_quantity = ( + Decimal(lot.sale_invoice_line_prov.quantity) + - Decimal(str(lot.sale_invoice_padding or 0))) + val_s['lot_diff_quantity'] = ( + val_s['lot_quantity'] - provisional_quantity) + val_s['lot_diff_price'] = val_s['lot_price'] - Decimal(lot.sale_invoice_line_prov.unit_price) + provisional_amount = ( + provisional_quantity + * Decimal(lot.sale_invoice_line_prov.unit_price)) + val_s['lot_diff_amount'] = ( + val_s['lot_amount'] - provisional_amount) val_s['lot_currency'] = lot.lot_price_ct_symbol_sale val_s['lot_unit'] = sale_line.unit.id if sale_line else None lot_s.append(val_s)