diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py index c3f18d1..4271ea7 100644 --- a/modules/purchase_trade/valuation.py +++ b/modules/purchase_trade/valuation.py @@ -501,7 +501,29 @@ class ValuationBase(ModelSQL): for lot in sale_line.lots or []: if sale_line.price_type == 'basis': - for pc in sale_line.price_summary or []: + summaries = sale_line.price_summary or [] + if not summaries: + values = cls._build_simple_pnl_from_sale_line( + sale_line=sale_line, + lot=lot, + price=Decimal(0), + state='unfixed', + pnl_type='sale priced' + ) + if sale_line.mtm and cls._supports_strategy_mtm(values): + for strat in sale_line.mtm: + values['mtm_price'] = cls._get_strategy_mtm_price(strat, sale_line) + values['mtm'] = strat.get_mtm(sale_line, values['quantity']) + values['strategy'] = strat + + if values: + price_lines.append(values) + else: + if values: + price_lines.append(values) + continue + + for pc in summaries: values = cls._build_basis_pnl_from_sale_line( sale_line=sale_line, lot=lot, pc=pc) if sale_line.mtm and cls._supports_strategy_mtm(values):