From 44ac5670016a28908f21579f8e571a0700c42bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Bertolani?= <gaston.bertolani@gmail.com> Date: Tue, 20 Nov 2018 16:54:28 -0300 Subject: [PATCH 1/2] [FIX]Repeat picking list --- models/barcode_scanning.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/models/barcode_scanning.py b/models/barcode_scanning.py index 51f4ff3..d2694ad 100644 --- a/models/barcode_scanning.py +++ b/models/barcode_scanning.py @@ -74,7 +74,6 @@ class StockPickingBarcodeScan(models.Model): move_obj = self.env['stock.move'] picking_split_conf_obj = self.env['scan.picking.split.config'] operation_type = self.picking_type_id.code - pick_to_filter = [] #Solamente para outs if operation_type != 'outgoing': @@ -117,10 +116,8 @@ class StockPickingBarcodeScan(models.Model): picking.action_assign() for move in picking.move_lines: move.write({'quantity_done': move.product_uom_qty}) - pick_to_filter.append(picking.id) picking.action_done() - pick_set_ids = set(pick_to_filter) - new_picks = [(0, False, {'picking_id': pick_id}) for pick_id in pick_set_ids] + new_picks = [(0, False, {'picking_id': picking.id})] pick_lst.extend(new_picks) self.write({'barcode_picking_line_ids': pick_lst}) -- GitLab From fd43c15ee89ba6a5a0dc8e3d5b344b122ab3e386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Bertolani?= <gaston.bertolani@gmail.com> Date: Thu, 22 Nov 2018 15:41:02 -0300 Subject: [PATCH 2/2] [ADD]Split group by line --- models/barcode_scanning.py | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/models/barcode_scanning.py b/models/barcode_scanning.py index d2694ad..27fa4d7 100644 --- a/models/barcode_scanning.py +++ b/models/barcode_scanning.py @@ -47,15 +47,11 @@ class StockPickingBarcodeScan(models.Model): group_lst = [] if source == 'product': - products = lines.mapped('product_id') - product_ids = list(set(products.ids)) - for i, product_id in enumerate(product_ids): + for i, line in enumerate(lines): if not i % picking_group: group_lst.append(barcode_lines_obj) index = int(i / picking_group) - barcode_lines = lines.filtered(lambda x: \ - x.product_id.id == product_id) - group_lst[index] += barcode_lines + group_lst[index] += line else: products = lines.mapped('product_id') templates = products.mapped('product_tmpl_id') @@ -73,7 +69,7 @@ class StockPickingBarcodeScan(models.Model): picking_obj = self.env['stock.picking'] move_obj = self.env['stock.move'] picking_split_conf_obj = self.env['scan.picking.split.config'] - operation_type = self.picking_type_id.code + operation_type = self.picking_type_code #Solamente para outs if operation_type != 'outgoing': @@ -89,7 +85,7 @@ class StockPickingBarcodeScan(models.Model): location_dest = self._get_location_dest() if not location or not location_dest: - raise Warning('Origin or destination not set for stock picking type') + raise Warning(_('Origin or destination not set for stock picking type')) conf_source = picking_split_conf.source group_lst = self._get_barcode_line_groups(self.barcode_line_ids, @@ -100,18 +96,15 @@ class StockPickingBarcodeScan(models.Model): picking_vals = self._prepare_picking() picking = picking_obj.create(picking_vals) for barcode_line in groups: - po_line = barcode_line.purchase_line_id - so_line = barcode_line.sale_line_id - move_vals = self._prepare_stock_move(barcode_line, picking, - po_line=po_line, so_line=so_line) - new_move = move_obj.create(move_vals) - barcode_line_state = 'done' - if operation_type == 'internal' and not self.operation_scan_id: - barcode_line_state = 'to_receive' + move_ids = [] + move_lst = self._prepare_stock_move(barcode_line, picking) + for move_vals in move_lst: + new_move = move_obj.create(move_vals) + move_ids.append(new_move.id) barcode_line.write({ 'picking_id': picking.id, - 'move_id': new_move.id, - 'state': barcode_line_state + 'move_ids': [(6, False, move_ids)], + 'state': 'done' }) picking.action_assign() for move in picking.move_lines: -- GitLab