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)]}"
/>