diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py index 9ff0b4f..c3f18d1 100644 --- a/modules/purchase_trade/valuation.py +++ b/modules/purchase_trade/valuation.py @@ -489,6 +489,12 @@ class ValuationBase(ModelSQL): return values + @classmethod + def _get_sale_lot_price(cls, sale_line, lot): + if lot.lot_price_sale is not None: + return lot.lot_price_sale + return sale_line.unit_price + @classmethod def create_pnl_price_from_sale_line(cls, sale_line): price_lines = [] @@ -510,11 +516,14 @@ class ValuationBase(ModelSQL): if values: price_lines.append(values) - elif sale_line.price_type in ('priced', 'efp') and lot.lot_price_sale: + elif sale_line.price_type in ('priced', 'efp'): + price = cls._get_sale_lot_price(sale_line, lot) + if price is None: + continue values = cls._build_simple_pnl_from_sale_line( sale_line=sale_line, lot=lot, - price=lot.lot_price_sale, + price=price, state='fixed' if sale_line.price_type == 'priced' else 'not fixed', pnl_type=f'sale {sale_line.price_type}' )