[FIX] sale_margin: make sale.order.line create override handle section lines
The sale.order.line model has a 'display_type' field since 762adedece
that specify if the line is a dummy line used for presentation purposes.
These dummy lines are 'section' lines or 'note' lines.
If it is the case, the line does not have a product_id.
The sale_margin module overrides the create method of lines to add the margin
computation, assuming there are no dummy lines since that part of the code
is older than the new feature.
As a result the line creation would crash on a key error on dummy lines.
We now skip the margin computation if the line has a display_type.
opw 1939881
closes odoo/odoo#31035
This commit is contained in:
@@ -46,7 +46,7 @@ class SaleOrderLine(models.Model):
|
||||
|
||||
# Calculation of the margin for programmatic creation of a SO line. It is therefore not
|
||||
# necessary to call product_id_change_margin manually
|
||||
if 'purchase_price' not in vals:
|
||||
if 'purchase_price' not in vals and ('display_type' not in vals or not vals['display_type']):
|
||||
order_id = self.env['sale.order'].browse(vals['order_id'])
|
||||
product_id = self.env['product.product'].browse(vals['product_id'])
|
||||
product_uom_id = self.env['uom.uom'].browse(vals['product_uom'])
|
||||
|
||||
Reference in New Issue
Block a user