summaryrefslogtreecommitdiff
path: root/addons/mrp_subcontracting/wizard
diff options
context:
space:
mode:
authorWilliam Henrotin <whe@odoo.com>2019-11-19 15:06:28 +0000
committerArnold Moyaux <arm@odoo.com>2019-12-27 10:00:43 +0000
commit9be6900868a46e0f5b708074126dacc05d37cc64 (patch)
tree645ae92b5aed9118e413854e6e7bb50b1d86bb38 /addons/mrp_subcontracting/wizard
parentdd76e2df97b0f424c3364b2fdb7f39aeae842cb3 (diff)
[FIX] stock: remove dynamic domain on return wizard
Diffstat (limited to 'addons/mrp_subcontracting/wizard')
-rw-r--r--addons/mrp_subcontracting/wizard/stock_picking_return.py27
-rw-r--r--addons/mrp_subcontracting/wizard/stock_picking_return_views.xml19
2 files changed, 32 insertions, 14 deletions
diff --git a/addons/mrp_subcontracting/wizard/stock_picking_return.py b/addons/mrp_subcontracting/wizard/stock_picking_return.py
index c3ec170f811..7a4339bd720 100644
--- a/addons/mrp_subcontracting/wizard/stock_picking_return.py
+++ b/addons/mrp_subcontracting/wizard/stock_picking_return.py
@@ -1,27 +1,26 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import api, models
-from odoo.osv.expression import OR
+from odoo import api, models, fields
+
class ReturnPicking(models.TransientModel):
_inherit = 'stock.return.picking'
+ subcontract_location_id = fields.Many2one('stock.location', compute='_compute_subcontract_location_id')
+
+ @api.depends('picking_id')
+ def _compute_subcontract_location_id(self):
+ for record in self:
+ record.subcontract_location_id = record.picking_id.partner_id.with_company(
+ record.picking_id.company_id
+ ).property_stock_subcontractor
+
@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.with_company(self.picking_id.company_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}
+ if any(self.product_return_moves.filtered(lambda r: r.quantity > 0).move_id.mapped('is_subcontract')):
+ self.location_id = self.picking_id.partner_id.with_company(self.picking_id.company_id).property_stock_subcontractor
return res
def _prepare_move_default_values(self, return_line, new_picking):
diff --git a/addons/mrp_subcontracting/wizard/stock_picking_return_views.xml b/addons/mrp_subcontracting/wizard/stock_picking_return_views.xml
new file mode 100644
index 00000000000..7ad5f2bd200
--- /dev/null
+++ b/addons/mrp_subcontracting/wizard/stock_picking_return_views.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="view_stock_return_picking_form_subcontracting" model="ir.ui.view">
+ <field name="name">Return lines</field>
+ <field name="model">stock.return.picking</field>
+ <field name="inherit_id" ref="stock.view_stock_return_picking_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='location_id']" position="before">
+ <field name="subcontract_location_id" invisible="1"/>
+ <field name="original_location_id" invisible="1"/>
+ </xpath>
+ <xpath expr="//field[@name='location_id']" position="attributes">
+ <attribute name="domain">
+ ['|', '|', ('id', '=', original_location_id), ('return_location', '=', True), ('id', '=', subcontract_location_id)]
+ </attribute>
+ </xpath>
+ </field>
+ </record>
+</odoo>