summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorSimon Lejeune <sle@openerp.com>2017-10-31 16:37:14 +0100
committerSimon Lejeune <sle@openerp.com>2017-10-31 17:20:46 +0100
commitee2b9fae3519c2494f34dacf15d0a3b5bd8fbd06 (patch)
treecbffe00194571bd322dfc46d2d197385fb2893af /addons
parent3b91780bc02023be4fc8455e89da9b8a83aee8e6 (diff)
[FIX] sale_stock: launch procurement rule and locked
If the user chose to "lock confirmed orders" in the sales's settings, the procurements where not runned correctly and the associated delivery orders were not created. This issue is caused by the fact that `_action_launch_procurement_rule` was done on done sale order line. We refactore the method so that we call this method always when the sale order line are in `sale` state. Fixes #20599
Diffstat (limited to 'addons')
-rw-r--r--addons/sale/models/sale.py11
-rw-r--r--addons/sale_stock/models/sale_order.py5
2 files changed, 10 insertions, 6 deletions
diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py
index 24b35183f68..e05b4db37cc 100644
--- a/addons/sale/models/sale.py
+++ b/addons/sale/models/sale.py
@@ -515,7 +515,7 @@ class SaleOrder(models.Model):
self.write({'state': 'sale'})
@api.multi
- def action_confirm(self):
+ def _action_confirm(self):
for order in self.filtered(lambda order: order.partner_id not in order.message_partner_ids):
order.message_subscribe([order.partner_id.id])
self.write({
@@ -524,8 +524,6 @@ class SaleOrder(models.Model):
})
if self.env.context.get('send_email'):
self.force_quotation_send()
- if self.env['ir.config_parameter'].sudo().get_param('sale.auto_done_setting'):
- self.action_done()
# create an analytic account if at least an expense product
if any([expense_policy != 'no' for expense_policy in self.order_line.mapped('product_id.expense_policy')]):
@@ -535,6 +533,13 @@ class SaleOrder(models.Model):
return True
@api.multi
+ def action_confirm(self):
+ self._action_confirm()
+ if self.env['ir.config_parameter'].sudo().get_param('sale.auto_done_setting'):
+ self.action_done()
+ return True
+
+ @api.multi
def _create_analytic_account(self, prefix=None):
for order in self:
name = order.name
diff --git a/addons/sale_stock/models/sale_order.py b/addons/sale_stock/models/sale_order.py
index 38a01917cf4..e61adb554b1 100644
--- a/addons/sale_stock/models/sale_order.py
+++ b/addons/sale_stock/models/sale_order.py
@@ -34,11 +34,10 @@ class SaleOrder(models.Model):
procurement_group_id = fields.Many2one('procurement.group', 'Procurement Group', copy=False)
@api.multi
- def action_confirm(self):
- result = super(SaleOrder, self).action_confirm()
+ def _action_confirm(self):
+ super(SaleOrder, self)._action_confirm()
for order in self:
order.order_line._action_launch_procurement_rule()
- return result
@api.depends('picking_ids')
def _compute_picking_ids(self):