From 555802b2716747e503242bd6c11ee6fb0a88746b Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Mon, 24 Feb 2025 14:46:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=8B=E6=B8=B8=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/wizard/sale_order_cancel.py | 39 ++++++++++---------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/sf_manufacturing/wizard/sale_order_cancel.py b/sf_manufacturing/wizard/sale_order_cancel.py index bcfcf96d..78c8875e 100644 --- a/sf_manufacturing/wizard/sale_order_cancel.py +++ b/sf_manufacturing/wizard/sale_order_cancel.py @@ -170,7 +170,7 @@ class SFSaleOrderCancelLine(models.TransientModel): 'doc_name': '交货单', 'operation_type': '调拨', 'doc_number': picking.name, - 'line_number': b, + 'line_number': move.product_id.name.split('-')[-1] if move.product_id else '', 'product_name': f'[{move.product_id.default_code}] {move.product_id.name}' if move else '', # 'quantity': picking.product_qty if hasattr(picking, 'product_qty') else 0, 'quantity': move.product_uom_qty, @@ -219,7 +219,7 @@ class SFSaleOrderCancelLine(models.TransientModel): 'doc_name': '制造订单', 'doc_number': mo.name, 'operation_type': '', - 'line_number': d, + 'line_number': mo.product_id.name.split('-')[-1] if mo.product_id else '', 'product_name': f'[{mo.product_id.default_code}] {mo.product_id.name}', 'quantity': mo.product_qty, 'doc_state': map_dict.get(mo.state, mo.state), @@ -257,21 +257,22 @@ class SFSaleOrderCancelLine(models.TransientModel): f = 0 for picking in mo.picking_ids: f += 1 - vals = { - 'wizard_id': wizard_id, - 'sequence': sequence, - 'category': '制造', - 'doc_name': '库存移动', - 'doc_number': picking.name, - 'line_number': f, - 'operation_type': picking.picking_type_id.name, - 'product_name': picking.product_id.name if picking.product_id else '', - 'quantity': sum(picking.move_ids.mapped('product_uom_qty') or [0]), - 'doc_state': map_dict.get(picking.state, picking.state), - 'cancel_reason': '已有异动' if picking.state not in ['draft', 'cancel', 'waiting'] else '' - } - lines.append(self.create(vals)) - sequence += 1 + for move in picking.move_ids: + vals = { + 'wizard_id': wizard_id, + 'sequence': sequence, + 'category': '制造', + 'doc_name': '库存移动', + 'doc_number': picking.name, + 'line_number': move.product_id.name.split(' ')[0].split('-')[-1] if move.product_id else '', + 'operation_type': picking.picking_type_id.name, + 'product_name': move.product_id.name if move.product_id else '', + 'quantity': move.product_uom_qty, + 'doc_state': map_dict.get(picking.state, picking.state), + 'cancel_reason': '已有异动' if picking.state not in ['draft', 'cancel', 'waiting'] else '' + } + lines.append(self.create(vals)) + sequence += 1 # 检查制造订单的工单 if mo.workorder_ids: @@ -284,7 +285,7 @@ class SFSaleOrderCancelLine(models.TransientModel): 'category': '制造', 'doc_name': '工单', 'doc_number': workorder.name, - 'line_number': g, + 'line_number': mo.product_id.name.split('-')[-1] if mo.product_id else '', 'operation_type': '', 'product_name': f'[{mo.product_id.default_code}] {mo.product_id.name}', 'quantity': workorder.qty_production, @@ -357,7 +358,7 @@ class SFSaleOrderCancelLine(models.TransientModel): 'doc_name': '质检单', 'operation_type': '', 'doc_number': check.name, - 'line_number': i, + 'line_number': check.product_id.name.split('-')[-1] if check.product_id else '', 'product_name': f'[{check.product_id.default_code}] {check.product_id.name}', 'quantity': 1, 'doc_state': map_dict.get(check.quality_state, check.quality_state),