summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold Moyaux <arm@odoo.com>2019-09-05 07:54:42 +0000
committerSimon Lejeune <sle@openerp.com>2019-09-18 07:14:53 +0000
commit186b5120237b6e9b3dae12f074f9e48d2a2236ad (patch)
tree4f84204068949938efb8c33e8dec0b12baaa5d55
parent69b3b4bcd64fe67940748afb1cb9d8572c97878d (diff)
[FIX] mrp_subcontracting: allow to return to subcontractor
-rw-r--r--addons/mrp_subcontracting/wizard/stock_picking_return.py24
-rw-r--r--addons/stock/wizard/stock_picking_return_views.xml2
2 files changed, 21 insertions, 5 deletions
diff --git a/addons/mrp_subcontracting/wizard/stock_picking_return.py b/addons/mrp_subcontracting/wizard/stock_picking_return.py
index 2e55861c950..cb242839b80 100644
--- a/addons/mrp_subcontracting/wizard/stock_picking_return.py
+++ b/addons/mrp_subcontracting/wizard/stock_picking_return.py
@@ -1,14 +1,30 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import models
-
+from odoo import api, models
+from odoo.osv.expression import OR
class ReturnPicking(models.TransientModel):
_inherit = 'stock.return.picking'
+ @api.onchange('picking_id')
+ def _onchange_picking_id(self):
+ res = super(ReturnPicking, self)._onchange_picking_id()
+ if not any(self.product_return_moves.filtered(lambda r: r.quantity > 0).move_id.mapped('is_subcontract')):
+ return res
+ subcontract_location = self.picking_id.partner_id.property_stock_subcontractor
+ self.location_id = subcontract_location.id
+ domain_location = OR([
+ ['|', ('id', '=', self.original_location_id.id), ('return_location', '=', True)],
+ [('id', '=', subcontract_location.id)]
+ ])
+ if not res:
+ res = {'domain': {'location_id': domain_location}}
+ else:
+ res['domain'] = {'location_id': domain_location}
+ return res
+
def _prepare_move_default_values(self, return_line, new_picking):
vals = super(ReturnPicking, self)._prepare_move_default_values(return_line, new_picking)
- if return_line.move_id.is_subcontract:
- vals['location_dest_id'] = self.picking_id.partner_id.property_stock_subcontractor.id
+ vals['is_subcontract'] = False
return vals
diff --git a/addons/stock/wizard/stock_picking_return_views.xml b/addons/stock/wizard/stock_picking_return_views.xml
index c9417f2bdf5..6e50eba34ce 100644
--- a/addons/stock/wizard/stock_picking_return_views.xml
+++ b/addons/stock/wizard/stock_picking_return_views.xml
@@ -10,7 +10,7 @@
<field name="arch" type="xml">
<form>
<field name="move_dest_exists" invisible="1"/>
- <field name="picking_id" invisible="1"/>
+ <field name="picking_id" invisible="1" force_save="1"/>
<group attrs="{'invisible': [('move_dest_exists', '=', False)]}">
<div class="oe_grey">
<p>This picking appears to be chained with another operation. Later, if you receive the goods you are returning now, make sure to <b>reverse</b> the returned picking in order to avoid logistic rules to be applied again (which would create duplicated operations)</p>