diff options
| author | Pierre Masereel <pim@odoo.com> | 2019-09-10 12:57:37 +0000 |
|---|---|---|
| committer | Joseph Caburnay <jcb@odoo.com> | 2019-09-12 05:28:49 +0000 |
| commit | dc2e990aec67676a316566a5071ea28fb94b28f1 (patch) | |
| tree | 80af6e109da28150fe41c20139e9f71b39942c6f | |
| parent | 26b692cbe299dc365b883721531fb6d13980ddd4 (diff) | |
[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>
| -rw-r--r-- | addons/delivery/models/sale_order.py | 6 | ||||
| -rw-r--r-- | addons/delivery/models/stock_picking.py | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/addons/delivery/models/sale_order.py b/addons/delivery/models/sale_order.py index 2d263e39d8f..3d26f6843ef 100644 --- a/addons/delivery/models/sale_order.py +++ b/addons/delivery/models/sale_order.py @@ -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: diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py index 66bea256e92..2b2da5777b0 100644 --- a/addons/delivery/models/stock_picking.py +++ b/addons/delivery/models/stock_picking.py @@ -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({ |
