增加排程单取消

This commit is contained in:
mgw
2025-03-10 14:56:42 +08:00
parent 28a3d52aea
commit 1541326dfc

View File

@@ -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)])