Accept Merge Request #1723: (feature/customer_supply -> develop)
Merge Request: 工艺确认修改采购单状态变动逻辑 Created By: @廖丹龙 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @廖丹龙 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1723?initial=true
This commit is contained in:
@@ -433,6 +433,7 @@ class MrpProduction(models.Model):
|
|||||||
def technology_confirm(self):
|
def technology_confirm(self):
|
||||||
process_parameters = []
|
process_parameters = []
|
||||||
account_moves = []
|
account_moves = []
|
||||||
|
purchase_orders = []
|
||||||
parameters_not = []
|
parameters_not = []
|
||||||
# 获取原有的工单对应的工序
|
# 获取原有的工单对应的工序
|
||||||
origin_designs = self.workorder_ids.technology_design_id
|
origin_designs = self.workorder_ids.technology_design_id
|
||||||
@@ -444,8 +445,10 @@ class MrpProduction(models.Model):
|
|||||||
purchase = workorder._get_surface_technics_purchase_ids()
|
purchase = workorder._get_surface_technics_purchase_ids()
|
||||||
account = self.env['account.move'].search([('id', 'in', purchase.invoice_ids.ids)])
|
account = self.env['account.move'].search([('id', 'in', purchase.invoice_ids.ids)])
|
||||||
if account.state not in ['cancel', False]:
|
if account.state not in ['cancel', False]:
|
||||||
if purchase.name not in account_moves:
|
if account.name not in account_moves:
|
||||||
account_moves.append(purchase.name)
|
account_moves.append(account.name)
|
||||||
|
if purchase.state not in ['cancel','draft', False]:
|
||||||
|
purchase_orders.append(purchase.name)
|
||||||
special_design = self.technology_design_ids.filtered(
|
special_design = self.technology_design_ids.filtered(
|
||||||
lambda a: a.routing_tag == 'special' and a.is_auto is False)
|
lambda a: a.routing_tag == 'special' and a.is_auto is False)
|
||||||
for special in special_design:
|
for special in special_design:
|
||||||
@@ -459,7 +462,9 @@ class MrpProduction(models.Model):
|
|||||||
process_parameters.append(special.process_parameters_id.display_name)
|
process_parameters.append(special.process_parameters_id.display_name)
|
||||||
|
|
||||||
if account_moves:
|
if account_moves:
|
||||||
raise UserError(_("请联系工厂生产经理对会计凭证为%s生成的账单进行取消", ", ".join([move.name for move in account_moves])))
|
raise UserError(_("请联系工厂生产经理对该(%s)账单进行取消", ", ".join(account_moves)))
|
||||||
|
if purchase_orders:
|
||||||
|
raise UserError(_("请联系工厂生产经理对该(%s)采购订单进行取消", ", ".join(purchase_orders)))
|
||||||
if parameters_not:
|
if parameters_not:
|
||||||
raise UserError(_("【工艺设计】-【工序】为%s未选择参数,请选择", ", ".join(parameters_not)))
|
raise UserError(_("【工艺设计】-【工序】为%s未选择参数,请选择", ", ".join(parameters_not)))
|
||||||
if process_parameters:
|
if process_parameters:
|
||||||
@@ -799,7 +804,7 @@ class MrpProduction(models.Model):
|
|||||||
if process_parameter_workorder:
|
if process_parameter_workorder:
|
||||||
# 将这些特殊表面工艺工单的采购单与调拨单置为失效
|
# 将这些特殊表面工艺工单的采购单与调拨单置为失效
|
||||||
for workorder in process_parameter_workorder:
|
for workorder in process_parameter_workorder:
|
||||||
workorder._get_surface_technics_purchase_ids().write({'state': 'cancel'})
|
# workorder._get_surface_technics_purchase_ids().write({'state': 'cancel'})
|
||||||
workorder.move_subcontract_workorder_ids.write({'state': 'cancel'})
|
workorder.move_subcontract_workorder_ids.write({'state': 'cancel'})
|
||||||
workorder.move_subcontract_workorder_ids.picking_id.write({'state': 'cancel'})
|
workorder.move_subcontract_workorder_ids.picking_id.write({'state': 'cancel'})
|
||||||
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
||||||
@@ -1480,7 +1485,10 @@ class MrpProduction(models.Model):
|
|||||||
"""
|
"""
|
||||||
重载创建制造订单的方法,单个制造订单,同一成品只创建一个采购组,用于后续单据的创建
|
重载创建制造订单的方法,单个制造订单,同一成品只创建一个采购组,用于后续单据的创建
|
||||||
"""
|
"""
|
||||||
group_id = self.env["procurement.group"].create({'name':vals_list[0].get('origin')}).id
|
group_id = False
|
||||||
|
first_origin = next((obj['origin'] for obj in vals_list if 'origin' in obj), None)
|
||||||
|
if first_origin:
|
||||||
|
group_id = self.env["procurement.group"].create({'name':first_origin}).id
|
||||||
for vals in vals_list:
|
for vals in vals_list:
|
||||||
if not vals.get('name', False) or vals['name'] == _('New'):
|
if not vals.get('name', False) or vals['name'] == _('New'):
|
||||||
picking_type_id = vals.get('picking_type_id')
|
picking_type_id = vals.get('picking_type_id')
|
||||||
@@ -1488,7 +1496,7 @@ class MrpProduction(models.Model):
|
|||||||
picking_type_id = self._get_default_picking_type_id(vals.get('company_id', self.env.company.id))
|
picking_type_id = self._get_default_picking_type_id(vals.get('company_id', self.env.company.id))
|
||||||
vals['picking_type_id'] = picking_type_id
|
vals['picking_type_id'] = picking_type_id
|
||||||
vals['name'] = self.env['stock.picking.type'].browse(picking_type_id).sequence_id.next_by_id()
|
vals['name'] = self.env['stock.picking.type'].browse(picking_type_id).sequence_id.next_by_id()
|
||||||
if not vals.get('procurement_group_id'):
|
if not vals.get('procurement_group_id') and group_id:
|
||||||
vals['procurement_group_id'] = group_id
|
vals['procurement_group_id'] = group_id
|
||||||
return super(MrpProduction, self).create(vals_list)
|
return super(MrpProduction, self).create(vals_list)
|
||||||
|
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ class RePurchaseOrder(models.Model):
|
|||||||
server_product_process = []
|
server_product_process = []
|
||||||
purchase_order = pp._get_surface_technics_purchase_ids()
|
purchase_order = pp._get_surface_technics_purchase_ids()
|
||||||
if purchase_order:
|
if purchase_order:
|
||||||
purchase_order.write({'state': 'draft'})
|
# purchase_order.write({'state': 'draft'})
|
||||||
pp.purchase_id = [(6, 0, [purchase_order.id])]
|
pp.purchase_id = [(6, 0, [purchase_order.id])]
|
||||||
else:
|
else:
|
||||||
server_template = self.env['product.template'].search(
|
server_template = self.env['product.template'].search(
|
||||||
|
|||||||
Reference in New Issue
Block a user