diff options
| author | Arnold Moyaux <arm@odoo.com> | 2019-09-05 07:54:42 +0000 |
|---|---|---|
| committer | Simon Lejeune <sle@openerp.com> | 2019-09-18 07:14:53 +0000 |
| commit | 186b5120237b6e9b3dae12f074f9e48d2a2236ad (patch) | |
| tree | 4f84204068949938efb8c33e8dec0b12baaa5d55 | |
| parent | 69b3b4bcd64fe67940748afb1cb9d8572c97878d (diff) | |
[FIX] mrp_subcontracting: allow to return to subcontractor
| -rw-r--r-- | addons/mrp_subcontracting/wizard/stock_picking_return.py | 24 | ||||
| -rw-r--r-- | addons/stock/wizard/stock_picking_return_views.xml | 2 |
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> |
