diff options
| author | William Henrotin <whe@odoo.com> | 2019-11-19 15:06:28 +0000 |
|---|---|---|
| committer | Arnold Moyaux <arm@odoo.com> | 2019-12-27 10:00:43 +0000 |
| commit | 9be6900868a46e0f5b708074126dacc05d37cc64 (patch) | |
| tree | 645ae92b5aed9118e413854e6e7bb50b1d86bb38 /addons/mrp_subcontracting/wizard | |
| parent | dd76e2df97b0f424c3364b2fdb7f39aeae842cb3 (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.py | 27 | ||||
| -rw-r--r-- | addons/mrp_subcontracting/wizard/stock_picking_return_views.xml | 19 |
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> |
