From fffbfc21c21233cac2960d39c0747b827abde84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Wed, 7 May 2025 13:02:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E9=9D=A2=E5=B7=A5=E8=89=BA=E5=A4=96?= =?UTF-8?q?=E5=8D=8F=E5=B7=A5=E5=8D=95=E6=B5=81=E7=A8=8B=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E5=88=B6=E9=80=A0=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?product=5Fuom=5Fqty=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/stock.py | 9 +++++---- sf_sale/models/sale_order.py | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 3a1b3cd9..249c3d9b 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -675,6 +675,7 @@ class StockPicking(models.Model): # 创建 外协出库入单 def create_outcontract_picking(self, workorders, item, sorted_workorders): + production = workorders[0].production_id for workorder in workorders: if workorder.move_subcontract_workorder_ids: workorder.move_subcontract_workorder_ids.write({'state': 'cancel'}) @@ -706,7 +707,7 @@ class StockPicking(models.Model): }) moves_in = self.env['stock.move'].sudo().with_context(context).create( self.env['stock.move']._get_stock_move_values_Res(item, outcontract_picking_type_in, - procurement_group_id.id, move_dest_id)) + procurement_group_id.id, move_dest_id, production.product_uom_qty)) picking_in = self.create( moves_in._get_new_picking_values_Res(item, workorder, 'WH/OCIN/')) # pick_ids.append(picking_in.id) @@ -716,7 +717,7 @@ class StockPicking(models.Model): # self.env.context.get('default_production_id') moves_out = self.env['stock.move'].sudo().with_context(context).create( self.env['stock.move']._get_stock_move_values_Res(item, outcontract_picking_type_out, - procurement_group_id.id, moves_in.id)) + procurement_group_id.id, moves_in.id, production.product_uom_qty)) workorder.write({'move_subcontract_workorder_ids': [(6, 0, [moves_in.id, moves_out.id])]}) picking_out = self.create( moves_out._get_new_picking_values_Res(item, workorder, 'WH/OCOUT/')) @@ -848,7 +849,7 @@ class ReStockMove(models.Model): traceback_error = traceback.format_exc() logging.error("零件图号 零件名称获取失败:%s" % traceback_error) - def _get_stock_move_values_Res(self, item, picking_type_id, group_id, move_dest_ids=False): + def _get_stock_move_values_Res(self, item, picking_type_id, group_id, move_dest_ids=False, product_uom_qty=1.0): route_id = self.env.ref('sf_manufacturing.route_surface_technology_outsourcing').id stock_rule = self.env['stock.rule'].sudo().search( [('route_id', '=', route_id), ('picking_type_id', '=', picking_type_id)]) @@ -857,7 +858,7 @@ class ReStockMove(models.Model): 'company_id': item.company_id.id, 'product_id': item.bom_id.bom_line_ids.product_id.id, 'product_uom': item.bom_id.bom_line_ids.product_uom_id.id, - 'product_uom_qty': 1.0, + 'product_uom_qty': product_uom_qty, 'location_id': stock_rule.location_src_id.id, 'location_dest_id': stock_rule.location_dest_id.id, 'origin': item.name, diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index ced49414..dea7a57a 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -419,7 +419,7 @@ class RePurchaseOrder(models.Model): ('detailed_type', '=', 'service')]) server_product_process.append((0, 0, { 'product_id': server_template.product_variant_id.id, - 'product_qty': 1, + 'product_qty': production.product_uom_qty, 'product_uom': server_template.uom_id.id, 'related_product': production.product_id.id, 'manual_part_number': pp.part_number,