[FIX] delivery: get correct carrier for invoicing policy

The carrier argument passed to the _create_delivery_line function
can be different to the carrier already existing in the sale order
so we should use the correct setting of carrier where we are calling
the function.

closes odoo/odoo#36424

Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
This commit is contained in:
Pierre Masereel
2019-09-12 05:28:49 +00:00
committed by Joseph Caburnay
parent 26b692cbe2
commit dc2e990aec
2 changed files with 4 additions and 4 deletions
+3 -3
View File
@@ -48,7 +48,7 @@ class SaleOrder(models.Model):
self._remove_delivery_line()
for order in self:
order._create_delivery_line(carrier, amount, price_unit_in_description=self.carrier_id.invoice_policy == 'real')
order._create_delivery_line(carrier, amount)
return True
def action_open_delivery_wizard(self):
@@ -73,7 +73,7 @@ class SaleOrder(models.Model):
}
}
def _create_delivery_line(self, carrier, price_unit, price_unit_in_description=False):
def _create_delivery_line(self, carrier, price_unit):
SaleOrderLine = self.env['sale.order.line']
if self.partner_id:
# set delivery detail in the customer language
@@ -101,7 +101,7 @@ class SaleOrder(models.Model):
'tax_id': [(6, 0, taxes_ids)],
'is_delivery': True,
}
if price_unit_in_description:
if carrier.invoice_policy == 'real':
values['price_unit'] = 0
values['name'] += _(' (Estimated Cost: %s )') % self._format_currency_amount(price_unit)
else:
+1 -1
View File
@@ -171,7 +171,7 @@ class StockPicking(models.Model):
if sale_order and self.carrier_id.invoice_policy == 'real' and self.carrier_price:
delivery_lines = sale_order.order_line.filtered(lambda l: l.is_delivery and l.currency_id.is_zero(l.price_unit) and l.product_id == self.carrier_id.product_id)
if not delivery_lines:
sale_order._create_delivery_line(self.carrier_id, self.carrier_price, price_unit_in_description=False)
sale_order._create_delivery_line(self.carrier_id, self.carrier_price)
else:
delivery_line = delivery_lines[0]
delivery_line[0].write({