diff --git a/rma/models/rma_order.py b/rma/models/rma_order.py index 4b7caf00..253f968a 100644 --- a/rma/models/rma_order.py +++ b/rma/models/rma_order.py @@ -2,7 +2,7 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) from odoo import api, fields, models, _ -from odoo.exceptions import UserError, ValidationError +from odoo.exceptions import UserError from datetime import datetime @@ -110,8 +110,6 @@ class RmaOrder(models.Model): if move.picking_id.location_id == suppliers: picking_ids.append(move.picking_id.id) shipments = list(set(picking_ids)) - if not shipments: - raise ValidationError(_("No shipments found!")) # choose the view_mode accordingly if shipments: if len(shipments) > 1: @@ -139,10 +137,8 @@ class RmaOrder(models.Model): if move.picking_id.location_id != suppliers: picking_ids.append(move.picking_id.id) shipments = list(set(picking_ids)) - if not shipments: - raise ValidationError(_("No deliveries found!")) # choose the view_mode accordingly - if len(shipments) > 1: + if len(shipments) != 1: result['domain'] = [('id', 'in', shipments)] else: res = self.env.ref('stock.view_picking_form', False) @@ -167,10 +163,8 @@ class RmaOrder(models.Model): res = self.env.ref('rma.view_rma_line_supplier_form', False) result = action.read()[0] lines = self._get_valid_lines() - if not lines: - raise ValidationError(_("No rma %s lines found!") % self.type) # choose the view_mode accordingly - if len(lines.ids) > 1: + if len(lines.ids) != 1: result['domain'] = [('id', 'in', lines.ids)] else: result['views'] = [(res and res.id or False, 'form')] @@ -185,10 +179,8 @@ class RmaOrder(models.Model): lines = self.rma_line_ids for line_id in lines: related_lines = [line.id for line in line_id.supplier_rma_line_ids] - if not related_lines: - raise ValidationError(_("No rma supplier lines found!")) # choose the view_mode accordingly - if len(related_lines) > 1: + if len(related_lines) != 1: result['domain'] = [('id', 'in', related_lines)] else: res = self.env.ref('rma.view_rma_line_supplier_form', False) diff --git a/rma/models/rma_order_line.py b/rma/models/rma_order_line.py index f3394670..7f074365 100644 --- a/rma/models/rma_order_line.py +++ b/rma/models/rma_order_line.py @@ -514,15 +514,13 @@ class RmaOrderLine(models.Model): picking_ids = self.env['stock.picking'].search( [('origin', '=', self.name), ('picking_type_code', '=', 'incoming')]).ids - if not picking_ids: - raise ValidationError(_("No shipments found!")) # choose the view_mode accordingly if len(picking_ids) > 1: result['domain'] = [('id', 'in', picking_ids)] else: res = self.env.ref('stock.view_picking_form', False) result['views'] = [(res and res.id or False, 'form')] - result['res_id'] = picking_ids[0] + result['res_id'] = picking_ids and picking_ids[0] return result @api.multi @@ -532,13 +530,11 @@ class RmaOrderLine(models.Model): picking_ids = self.env['stock.picking'].search( [('origin', '=', self.name), ('picking_type_code', '=', 'outgoing')]).ids - if not picking_ids: - raise ValidationError(_("No deliveries found!")) # choose the view_mode accordingly if len(picking_ids) > 1: result['domain'] = [('id', 'in', picking_ids)] else: res = self.env.ref('stock.view_picking_form', False) result['views'] = [(res and res.id or False, 'form')] - result['res_id'] = picking_ids[0] + result['res_id'] = picking_ids and picking_ids[0] return result diff --git a/rma/tests/__init__.py b/rma/tests/__init__.py index 619dbb54..7262aab1 100644 --- a/rma/tests/__init__.py +++ b/rma/tests/__init__.py @@ -1,5 +1,6 @@ # Copyright (C) 2017 Eficent Business and IT Consulting Services S.L. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) + from . import test_rma from . import test_supplier_rma from . import test_rma_dropship diff --git a/rma/tests/test_rma.py b/rma/tests/test_rma.py index 425dd030..81d20e43 100644 --- a/rma/tests/test_rma.py +++ b/rma/tests/test_rma.py @@ -224,7 +224,6 @@ class TestRma(common.TransactionCase): })._default_delivery_address() line._compute_in_shipment_count() line._compute_out_shipment_count() - line._compute_procurement_count() data = {'reference_move_id': line.reference_move_id.id} new_line = self.rma_line.new(data) @@ -252,7 +251,6 @@ class TestRma(common.TransactionCase): line.action_view_in_shipments() line.action_view_out_shipments() - line.action_view_procurements() self.rma_customer_id.action_view_supplier_lines() with self.assertRaises(ValidationError): line.rma_id.partner_id = partner2.id @@ -274,12 +272,7 @@ class TestRma(common.TransactionCase): 'active_id': 1 }).default_get({}) procurements = wizard._create_picking() - for proc in procurements: - proc._get_stock_move_values() - - group_ids = set([proc.group_id.id for proc in procurements if - proc.group_id]) - domain = [('group_id', 'in', list(group_ids))] + domain = [('origin', '=', procurements)] picking = self.stockpicking.search(domain) self.assertEquals(len(picking), 1, "Incorrect number of pickings created") @@ -351,9 +344,7 @@ class TestRma(common.TransactionCase): 'picking_type': 'outgoing', }).create({}) procurements = wizard._create_picking() - group_ids = set([proc.group_id.id for proc in procurements if - proc.group_id]) - domain = [('group_id', 'in', list(group_ids))] + domain = [('origin', '=', procurements)] pickings = self.stockpicking.search(domain) self.assertEquals(len(pickings), 2, "Incorrect number of pickings created") diff --git a/rma/tests/test_rma_dropship.py b/rma/tests/test_rma_dropship.py index b22dfbc2..d149fc18 100644 --- a/rma/tests/test_rma_dropship.py +++ b/rma/tests/test_rma_dropship.py @@ -48,9 +48,7 @@ class TestRmaDropship(test_rma.TestRma): 'picking_type': 'incoming', }).create({}) procurements = wizard._create_picking() - group_ids = set([proc.group_id.id for proc in procurements if - proc.group_id]) - domain = [('group_id', 'in', list(group_ids))] + domain = [('origin', '=', procurements)] picking = self.stockpicking.search(domain) self.assertEquals(len(picking), 1, "Incorrect number of pickings created") diff --git a/rma/tests/test_supplier_rma.py b/rma/tests/test_supplier_rma.py index 27666386..b5444691 100644 --- a/rma/tests/test_supplier_rma.py +++ b/rma/tests/test_supplier_rma.py @@ -22,9 +22,7 @@ class TestSupplierRma(test_rma.TestRma): 'active_id': 1 }).create({}) procurements = wizard._create_picking() - group_ids = set([proc.group_id.id for proc in procurements if - proc.group_id]) - domain = [('group_id', 'in', list(group_ids))] + domain = [('origin', '=', procurements)] picking = self.stockpicking.search(domain) self.assertEquals(len(picking), 1, "Incorrect number of pickings created") @@ -91,9 +89,7 @@ class TestSupplierRma(test_rma.TestRma): 'picking_type': 'incoming', }).create({}) procurements = wizard._create_picking() - group_ids = set([proc.group_id.id for proc in procurements if - proc.group_id]) - domain = [('group_id', 'in', list(group_ids))] + domain = [('origin', '=', procurements)] pickings = self.stockpicking.search(domain) self.assertEquals(len(pickings), 2, "Incorrect number of pickings created") diff --git a/rma/wizards/rma_add_stock_move.py b/rma/wizards/rma_add_stock_move.py index 75cf39ab..1f276a2c 100644 --- a/rma/wizards/rma_add_stock_move.py +++ b/rma/wizards/rma_add_stock_move.py @@ -101,15 +101,16 @@ class RmaAddStockMove(models.TransientModel): existing_stock_moves = self._get_existing_stock_moves() for sm in self.move_ids: if sm not in existing_stock_moves: - if sm.lot_ids: - for lot in sm.lot_ids: - data = self._prepare_rma_line_from_stock_move(sm, - lot=lot) - rma_line_obj.with_context( - default_rma_id=self.rma_id.id).create(data) + if sm.product_id.tracking == 'none': + data = self._prepare_rma_line_from_stock_move(sm, + lot=False) + rma_line_obj.with_context( + default_rma_id=self.rma_id.id).create(data) else: + lot_ids = [x.lot_id.id for x in sm.move_line_ids if + x.lot_id] data = self._prepare_rma_line_from_stock_move( - sm, lot=False) + sm, lot=lot_ids[0]) rma_line_obj.with_context( default_rma_id=self.rma_id.id).create(data) return {'type': 'ir.actions.act_window_close'} diff --git a/rma/wizards/rma_make_picking.py b/rma/wizards/rma_make_picking.py index f361b427..5da02b0f 100644 --- a/rma/wizards/rma_make_picking.py +++ b/rma/wizards/rma_make_picking.py @@ -209,7 +209,7 @@ class RmaMakePicking(models.TransientModel): else: form = self.env.ref('stock.view_picking_form', False) action['views'] = [(form and form.id or False, 'form')] - action['res_id'] = pickings[0] + action['res_id'] = pickings and pickings[0] return action @api.multi