From 409fa82a6c7f15fb93849f0535f3fd2b60ff7f1b Mon Sep 17 00:00:00 2001 From: lreficent Date: Thu, 19 Oct 2017 11:12:20 +0200 Subject: [PATCH] [9.0][FIX] rma: wizard --- rma/wizards/rma_add_stock_move.py | 79 +++++++++++++++---------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/rma/wizards/rma_add_stock_move.py b/rma/wizards/rma_add_stock_move.py index fd6e2e18..4bbc4834 100644 --- a/rma/wizards/rma_add_stock_move.py +++ b/rma/wizards/rma_add_stock_move.py @@ -2,7 +2,7 @@ # © 2017 Eficent Business and IT Consulting Services S.L. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) -from openerp import api, fields, models +from openerp import api, fields, models, _ from openerp.exceptions import ValidationError @@ -27,17 +27,18 @@ class RmaAddStockMove(models.TransientModel): res['move_ids'] = False return res - rma_id = fields.Many2one('rma.order', - string='RMA Order', - readonly=True, - ondelete='cascade') - - partner_id = fields.Many2one(comodel_name='res.partner', string='Partner', - readonly=True) - - move_ids = fields.Many2many('stock.move', - string='Stock Moves', - domain="[('state', '=', 'done')]") + rma_id = fields.Many2one( + comodel_name='rma.order', string='RMA Order', + readonly=True, ondelete='cascade', + ) + partner_id = fields.Many2one( + comodel_name='res.partner', string='Partner', + readonly=True, + ) + move_ids = fields.Many2many( + comodel_name='stock.move', string='Stock Moves', + domain="[('state', '=', 'done')]", + ) def _prepare_rma_line_from_stock_move(self, sm, lot=False): if self.env.context.get('customer'): @@ -46,48 +47,46 @@ class RmaAddStockMove(models.TransientModel): else: operation = sm.product_id.rma_supplier_operation_id or \ sm.product_id.categ_id.rma_supplier_operation_id - data = { - 'reference_move_id': sm.id, - 'product_id': sm.product_id.id, - 'lot_id': lot and lot.id or False, - 'name': sm.product_id.name_template, - 'origin': sm.picking_id.name or sm.name, - 'uom_id': sm.product_uom.id, - 'operation_id': operation.id, - 'product_qty': sm.product_uom_qty, - 'delivery_address_id': sm.picking_id.partner_id.id, - 'rma_id': self.rma_id.id - } if not operation: operation = self.env['rma.operation'].search( [('type', '=', self.rma_id.type)], limit=1) if not operation: - raise ValidationError("Please define an operation first") + raise ValidationError(_("Please define an operation first")) + if not operation.in_route_id or not operation.out_route_id: route = self.env['stock.location.route'].search( [('rma_selectable', '=', True)], limit=1) if not route: - raise ValidationError("Please define an rma route") + raise ValidationError(_("Please define an RMA route")) if not operation.in_warehouse_id or not operation.out_warehouse_id: warehouse = self.env['stock.warehouse'].search( [('company_id', '=', self.rma_id.company_id.id), ('lot_rma_id', '!=', False)], limit=1) if not warehouse: - raise ValidationError("Please define a warehouse with a " - "default rma location") - data.update( - {'receipt_policy': operation.receipt_policy, - 'operation_id': operation.id, - 'delivery_policy': operation.delivery_policy, - 'in_warehouse_id': operation.in_warehouse_id.id or warehouse.id, - 'out_warehouse_id': operation.out_warehouse_id.id or warehouse.id, - 'in_route_id': operation.in_route_id.id or route.id, - 'out_route_id': operation.out_route_id.id or route.id, - 'location_id': (operation.location_id.id or - operation.in_warehouse_id.lot_rma_id.id or - warehouse.lot_rma_id.id) - }) + raise ValidationError(_( + "Please define a warehouse with a default RMA location")) + data = { + 'partner_id': self.partner_id.id, + 'reference_move_id': sm.id, + 'product_id': sm.product_id.id, + 'lot_id': lot and lot.id or False, + 'origin': sm.picking_id.name or sm.name, + 'uom_id': sm.product_uom.id, + 'operation_id': operation.id, + 'product_qty': sm.product_uom_qty, + 'delivery_address_id': sm.picking_id.partner_id.id, + 'rma_id': self.rma_id.id, + 'receipt_policy': operation.receipt_policy, + 'delivery_policy': operation.delivery_policy, + 'in_warehouse_id': operation.in_warehouse_id.id or warehouse.id, + 'out_warehouse_id': operation.out_warehouse_id.id or warehouse.id, + 'in_route_id': operation.in_route_id.id or route.id, + 'out_route_id': operation.out_route_id.id or route.id, + 'location_id': (operation.location_id.id or + operation.in_warehouse_id.lot_rma_id.id or + warehouse.lot_rma_id.id) + } return data @api.model