[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:
committed by
Joseph Caburnay
parent
26b692cbe2
commit
dc2e990aec
@@ -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:
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user