Accept Merge Request #2111: (feature/tool_standard_library_process -> develop)
Merge Request: sf-制造-工艺外协的采购订单确认后,外协的调拨单的作业详情的预留数量跟完成数量不对 Created By: @廖丹龙 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @廖丹龙 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2111
This commit is contained in:
@@ -502,6 +502,7 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
# if technology_design.is_auto is False:
|
# if technology_design.is_auto is False:
|
||||||
# domain = [('origin', '=', self.production_id.name)]
|
# domain = [('origin', '=', self.production_id.name)]
|
||||||
# else:
|
# else:
|
||||||
|
|
||||||
purchase_orders_id = self._get_surface_technics_purchase_ids()
|
purchase_orders_id = self._get_surface_technics_purchase_ids()
|
||||||
result = {
|
result = {
|
||||||
"type": "ir.actions.act_window",
|
"type": "ir.actions.act_window",
|
||||||
@@ -1297,6 +1298,8 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
move_out = picking_id.move_ids
|
move_out = picking_id.move_ids
|
||||||
# move_out = workorder.move_subcontract_workorder_ids[1]
|
# move_out = workorder.move_subcontract_workorder_ids[1]
|
||||||
for mo in move_out:
|
for mo in move_out:
|
||||||
|
if workorder.production_id.bom_id.bom_line_ids.product_id.id != move_out.product_id:
|
||||||
|
continue
|
||||||
if mo.state != 'done':
|
if mo.state != 'done':
|
||||||
mo.write({'state': 'assigned', 'production_id': False})
|
mo.write({'state': 'assigned', 'production_id': False})
|
||||||
if not mo.move_line_ids:
|
if not mo.move_line_ids:
|
||||||
@@ -1338,6 +1341,8 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
||||||
move_out = picking_id.move_ids
|
move_out = picking_id.move_ids
|
||||||
for mo in move_out:
|
for mo in move_out:
|
||||||
|
if workorder.production_id.bom_id.bom_line_ids.product_id.id != move_out.product_id:
|
||||||
|
continue
|
||||||
if mo.state != 'done':
|
if mo.state != 'done':
|
||||||
mo.write({'state': 'assigned', 'production_id': False})
|
mo.write({'state': 'assigned', 'production_id': False})
|
||||||
if not mo.move_line_ids:
|
if not mo.move_line_ids:
|
||||||
@@ -1421,6 +1426,8 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
# [('barcode', 'ilike', 'VL-SPOC')]).id),
|
# [('barcode', 'ilike', 'VL-SPOC')]).id),
|
||||||
# ('origin', '=', self.production_id.name), ('state', 'not in', ['cancel', 'done'])])
|
# ('origin', '=', self.production_id.name), ('state', 'not in', ['cancel', 'done'])])
|
||||||
for mo in move_out:
|
for mo in move_out:
|
||||||
|
if self.production_id.bom_id.bom_line_ids.product_id.id != move_out.product_id:
|
||||||
|
continue
|
||||||
if mo.state != 'done':
|
if mo.state != 'done':
|
||||||
mo.write({'state': 'assigned', 'production_id': False})
|
mo.write({'state': 'assigned', 'production_id': False})
|
||||||
if not mo.move_line_ids:
|
if not mo.move_line_ids:
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ class PurchaseOrder(models.Model):
|
|||||||
lambda wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
lambda wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
||||||
move_out = picking_id.move_ids
|
move_out = picking_id.move_ids
|
||||||
for mo in move_out:
|
for mo in move_out:
|
||||||
|
if production_id.bom_id.bom_line_ids.product_id.id != move_out.product_id:
|
||||||
|
continue
|
||||||
if mo.state != 'done':
|
if mo.state != 'done':
|
||||||
mo.write({'state': 'assigned', 'production_id': False})
|
mo.write({'state': 'assigned', 'production_id': False})
|
||||||
if not mo.move_line_ids:
|
if not mo.move_line_ids:
|
||||||
@@ -226,6 +228,24 @@ class PurchaseOrderLine(models.Model):
|
|||||||
)
|
)
|
||||||
record.part_number = filtered_order_line.product_id.part_number
|
record.part_number = filtered_order_line.product_id.part_number
|
||||||
record.part_name = filtered_order_line.product_id.part_name
|
record.part_name = filtered_order_line.product_id.part_name
|
||||||
|
elif record.order_id.purchase_type == 'consignment':
|
||||||
|
product_name = ''
|
||||||
|
match = re.search(r'(S\d{5}-\d)', record.related_product.name)
|
||||||
|
# 如果匹配成功,提取结果
|
||||||
|
if match:
|
||||||
|
product_name = match.group(0)
|
||||||
|
sale_order_name = ''
|
||||||
|
match_sale = re.search(r'S(\d+)', record.related_product.name)
|
||||||
|
if match_sale:
|
||||||
|
sale_order_name = match_sale.group(0)
|
||||||
|
sale_order = self.env['sale.order'].sudo().search(
|
||||||
|
[('name', '=', sale_order_name)])
|
||||||
|
if sale_order:
|
||||||
|
filtered_order_line = sale_order.order_line.filtered(
|
||||||
|
lambda order_line: re.search(f'{product_name}$', order_line.product_id.name)
|
||||||
|
)
|
||||||
|
record.part_number = filtered_order_line.product_id.part_number
|
||||||
|
record.part_name = filtered_order_line.product_id.part_name
|
||||||
else:
|
else:
|
||||||
record.part_number = record.product_id.part_number
|
record.part_number = record.product_id.part_number
|
||||||
record.part_name = record.product_id.part_name
|
record.part_name = record.product_id.part_name
|
||||||
|
|||||||
@@ -930,6 +930,8 @@ class ReStockMove(models.Model):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def get_move_line(self, production_id, sorted_workorders):
|
def get_move_line(self, production_id, sorted_workorders):
|
||||||
|
# if not self.move_ids[0].product_id.single_manufacturing and self.move_ids[0].product_id.tracking == 'none':
|
||||||
|
qty = production_id.product_qty
|
||||||
return {
|
return {
|
||||||
'move_id': self.id,
|
'move_id': self.id,
|
||||||
'product_id': self.product_id.id,
|
'product_id': self.product_id.id,
|
||||||
@@ -937,7 +939,7 @@ class ReStockMove(models.Model):
|
|||||||
'location_id': self.picking_id.location_id.id,
|
'location_id': self.picking_id.location_id.id,
|
||||||
'location_dest_id': self.picking_id.location_dest_id.id,
|
'location_dest_id': self.picking_id.location_dest_id.id,
|
||||||
'picking_id': self.picking_id.id,
|
'picking_id': self.picking_id.id,
|
||||||
'reserved_uom_qty': 1.0,
|
'reserved_uom_qty': qty,
|
||||||
'lot_id': production_id.move_line_raw_ids.lot_id.id,
|
'lot_id': production_id.move_line_raw_ids.lot_id.id,
|
||||||
'company_id': self.env.company.id,
|
'company_id': self.env.company.id,
|
||||||
# 'workorder_id': '' if not sorted_workorders else sorted_workorders.id,
|
# 'workorder_id': '' if not sorted_workorders else sorted_workorders.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user