From 4a6d666246b7b679d8c13060bf2cd9e9632a4a10 Mon Sep 17 00:00:00 2001 From: Pierre Masereel Date: Tue, 20 Aug 2019 12:38:20 +0000 Subject: [PATCH] [FIX] delivery: set carrier on order when carrier line added When you are adding a line on your sale order that is a delivery line, the carrier is not always set on the sale order which means that when the carrier is not explicitly set on the sale order, the carrier won't be set on picking created from the sale order. When you are using the wizard on sale order, it works, but when the carrier is selected on the e-commerce, it is not set on the sale order. To avoid such difference in behavior, we are writing the carrier_id of sale order in the function 'set_delivery_line' insread of the wizard and e-commerce. closes odoo/odoo#35855 Signed-off-by: pimodoo --- addons/delivery/models/sale_order.py | 1 + addons/delivery/wizard/choose_delivery_carrier.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/delivery/models/sale_order.py b/addons/delivery/models/sale_order.py index 509f47dd1a4..41d098c6dcb 100644 --- a/addons/delivery/models/sale_order.py +++ b/addons/delivery/models/sale_order.py @@ -43,6 +43,7 @@ class SaleOrder(models.Model): self._remove_delivery_line() for order in self: + order.carrier_id = carrier.id order._create_delivery_line(carrier, amount, price_unit_in_description=self.carrier_id.invoice_policy == 'real') return True diff --git a/addons/delivery/wizard/choose_delivery_carrier.py b/addons/delivery/wizard/choose_delivery_carrier.py index c7bac396c61..9953d15912e 100644 --- a/addons/delivery/wizard/choose_delivery_carrier.py +++ b/addons/delivery/wizard/choose_delivery_carrier.py @@ -74,6 +74,5 @@ class ChooseDeliveryCarrier(models.TransientModel): } def button_confirm(self): - self.order_id.carrier_id = self.carrier_id self.order_id.delivery_message = self.delivery_message self.order_id.set_delivery_line(self.carrier_id, self.delivery_price)