增加排程单取消
This commit is contained in:
@@ -94,6 +94,12 @@ class SFSaleOrderCancelWizard(models.TransientModel):
|
||||
if mo_quality_checks:
|
||||
mo_quality_checks.write({'quality_state': 'cancel'})
|
||||
|
||||
# 取消制造订单的排程单
|
||||
mo_plan_orders = self.env['sf.production.plan'].search([
|
||||
('origin', '=', order.name)])
|
||||
if mo_plan_orders:
|
||||
mo_plan_orders.write({'state': 'cancel'})
|
||||
|
||||
# 取消制造订单的子制造订单
|
||||
child_mo_ids = self.env['mrp.production'].search([
|
||||
('origin', '=', mo.name)
|
||||
@@ -182,6 +188,12 @@ class SFSaleOrderCancelLine(models.TransientModel):
|
||||
'progress': '加工中',
|
||||
'assigned': '就绪'
|
||||
}
|
||||
plan_map_dict = {
|
||||
'draft': '待排程',
|
||||
'done': '已排程',
|
||||
'processing': '加工中',
|
||||
'finished': '已完成',
|
||||
'cancel': '已取消'}
|
||||
|
||||
module_name_dict = {
|
||||
'purchase': '采购',
|
||||
@@ -288,6 +300,31 @@ class SFSaleOrderCancelLine(models.TransientModel):
|
||||
}
|
||||
lines.append(self.create(vals))
|
||||
|
||||
# 检查所有的排程单
|
||||
sf_plan_orders = self.env['sf.production.plan'].search([
|
||||
('origin', '=', order.name)])
|
||||
if sf_plan_orders:
|
||||
p1 = 0
|
||||
for plan_order in sf_plan_orders:
|
||||
if not plan_order.product_id.default_code:
|
||||
continue
|
||||
p1 += 1
|
||||
vals = {
|
||||
'wizard_id': wizard_id,
|
||||
'sequence': sequence,
|
||||
'category': '排程',
|
||||
'doc_name': '排程单',
|
||||
'operation_type': '',
|
||||
'doc_number': plan_order.name,
|
||||
'line_number': p1,
|
||||
'product_name': f'[{plan_order.product_id.default_code}] {plan_order.product_id.name}',
|
||||
'quantity': 1,
|
||||
'doc_state': plan_map_dict.get(plan_order.state, plan_order.state),
|
||||
'cancel_reason': '已有异动' if plan_order.state not in ['draft', 'cancel'] else ''
|
||||
}
|
||||
lines.append(self.create(vals))
|
||||
sequence += 1
|
||||
|
||||
# 检查组件的制造单
|
||||
# component_mos = self.env['mrp.production'].search([
|
||||
# ('origin', '=', mo.name)])
|
||||
|
||||
Reference in New Issue
Block a user