diff --git a/addons/delivery/models/sale_order.py b/addons/delivery/models/sale_order.py index 10ef58973d5..cd09c8490ab 100644 --- a/addons/delivery/models/sale_order.py +++ b/addons/delivery/models/sale_order.py @@ -43,10 +43,7 @@ class SaleOrder(models.Model): self._remove_delivery_line() for order in self: - if order.state not in ('draft', 'sent'): - raise UserError(_('You can add delivery price only on unconfirmed quotations.')) - else: - order._create_delivery_line(carrier, amount, price_unit_in_description=self.carrier_id.invoice_policy == 'real') + order._create_delivery_line(carrier, amount, price_unit_in_description=self.carrier_id.invoice_policy == 'real') return True def action_open_delivery_wizard(self): @@ -66,7 +63,8 @@ class SaleOrder(models.Model): } def recompute_delivery_cost(self): - delivery_line = self.order_line.filtered('is_delivery') + self.ensure_one() + delivery_line = self.order_line.filtered('is_delivery')[:1] res = self.carrier_id.rate_shipment(self) if res.get('success'): self.delivery_message = res.get('warning_message', False) diff --git a/addons/delivery/views/delivery_view.xml b/addons/delivery/views/delivery_view.xml index 4e5423b6f4f..85075d13ab4 100644 --- a/addons/delivery/views/delivery_view.xml +++ b/addons/delivery/views/delivery_view.xml @@ -308,20 +308,20 @@ string="Add a shipping method" name="action_open_delivery_wizard" type="object" - attrs="{'invisible': ['|', '|', ('order_line', '=', []), ('delivery_set', '=', True), ('state', 'not in', ('draft', 'sent'))]}" + attrs="{'invisible': ['|', ('order_line', '=', []), ('delivery_set', '=', True)]}" />