@@ -462,7 +462,7 @@
-
+
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index 322cf096..9e45b879 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -481,9 +481,9 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
product_id = self.env['product.product'].search([('name', '=', '功能刀具')])
# 创建组装入库单
# 创建功能刀具批次/序列号记录
- stock_lot = product_id.create_assemble_warehouse_receipt(self.id, functional_tool_assembly)
+ stock_lot = product_id.create_assemble_warehouse_receipt(self.id, functional_tool_assembly, self)
# 创建刀具组装入库单
- self.env['stock.picking'].create_stocking_picking(stock_lot, functional_tool_assembly)
+ self.env['stock.picking'].create_stocking_picking(stock_lot, functional_tool_assembly, self)
# 刀具物料出库
if self.integral_code_id:
product_id.tool_material_stock_moves(self.integral_code_id)
@@ -583,6 +583,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
return {
'barcode_id': stock_lot.id,
'code': self.tool_code,
+ 'name': self.after_assembly_functional_tool_name,
'rfid': self.rfid,
'tool_groups_id': self.tool_groups_id.id,
'functional_tool_name_id': functional_tool_assembly_id.id,
@@ -618,7 +619,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
class StockPicking(models.Model):
_inherit = 'stock.picking'
- def create_stocking_picking(self, stock_lot, functional_tool_assembly):
+ def create_stocking_picking(self, stock_lot, functional_tool_assembly, obj):
"""
创建刀具组装入库单
"""
@@ -639,7 +640,14 @@ class StockPicking(models.Model):
'location_dest_id': picking_id.location_dest_id.id,
'lot_id': stock_lot.id,
'qty_done': 1,
- 'functional_tool_name_id': functional_tool_assembly.id
+ 'functional_tool_name_id': functional_tool_assembly.id,
+ 'functional_tool_type_id': obj.functional_tool_type_id.id,
+ 'diameter': obj.after_assembly_functional_tool_diameter,
+ 'knife_tip_r_angle': obj.after_assembly_knife_tip_r_angle,
+ 'code': obj.tool_code,
+ 'rfid': obj.rfid,
+ 'functional_tool_name': obj.after_assembly_functional_tool_name,
+ 'tool_groups_id': obj.tool_groups_id.id
})
# 将刀具组装入库单的状态更改为就绪
picking_id.action_confirm()
@@ -664,7 +672,7 @@ class StockPicking(models.Model):
class ProductProduct(models.Model):
_inherit = 'product.product'
- def create_assemble_warehouse_receipt(self, tool_assembly_order_id, functional_tool_assembly):
+ def create_assemble_warehouse_receipt(self, tool_assembly_order_id, functional_tool_assembly, obj):
"""
创建功能刀具批次/序列号记录
"""
@@ -680,7 +688,7 @@ class ProductProduct(models.Model):
stock_location_id = self.env['stock.location'].search([('name', '=', '组装后')])
# 创建功能刀具该批次/序列号 库存移动和移动历史
stock_lot.create_stock_quant(location_inventory_id, stock_location_id, functional_tool_assembly.id,
- '功能刀具组装')
+ '功能刀具组装', obj)
return stock_lot
@@ -714,13 +722,13 @@ class ProductProduct(models.Model):
location_inventory_id = tool_material.quant_ids.location_id[-1]
stock_location_id = self.env['stock.location'].search([('name', '=', '刀具组装位置')])
# 创建功能刀具该批次/序列号 库存移动和移动历史
- tool_material.create_stock_quant(location_inventory_id, stock_location_id, None, '功能刀具组装')
+ tool_material.create_stock_quant(location_inventory_id, stock_location_id, None, '功能刀具组装', False)
class StockLot(models.Model):
_inherit = 'stock.lot'
- def create_stock_quant(self, location_inventory_id, stock_location_id, functional_tool_assembly_id, name):
+ def create_stock_quant(self, location_inventory_id, stock_location_id, functional_tool_assembly_id, name, obj):
"""
对功能刀具组装过程的功能刀具和刀具物料进行库存移动,以及创建移动历史
"""
@@ -743,6 +751,25 @@ class StockLot(models.Model):
'move_id': stock_move_id.id,
'install_tool_time': fields.Datetime.now(),
'qty_done': 1.0,
- 'state': 'done'
+ 'state': 'done',
+ 'functional_tool_type_id': False if not obj else obj.functional_tool_type_id.id,
+ 'diameter': None if not obj else obj.after_assembly_functional_tool_diameter,
+ 'knife_tip_r_angle': None if not obj else obj.after_assembly_knife_tip_r_angle,
+ 'code': '' if not obj else obj.tool_code,
+ 'rfid': '' if not obj else obj.rfid,
+ 'functional_tool_name': '' if not obj else obj.after_assembly_functional_tool_name,
+ 'tool_groups_id': False if not obj else obj.tool_groups_id.id
})
return stock_move_id, stock_move_line_id
+
+
+class StockQuant(models.Model):
+ _inherit = 'stock.quant'
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ records = super(StockQuant, self).create(vals_list)
+ for record in records:
+ if record.lot_id.product_id.categ_id.name == '刀具':
+ record.lot_id.enroll_tool_material_stock()
+ return records