69 lines
3.8 KiB
Python
69 lines
3.8 KiB
Python
# -*- coding: utf-8 -*-
|
||
import base64
|
||
import logging
|
||
import os
|
||
from datetime import datetime
|
||
from odoo import fields, models
|
||
# from odoo.exceptions import ValidationError
|
||
from odoo.exceptions import UserError
|
||
|
||
_logger = logging.getLogger(__name__)
|
||
|
||
|
||
class Action_Plan_All_Wizard(models.TransientModel):
|
||
_name = 'sf.action.plan.all.wizard'
|
||
_description = u'排程向导'
|
||
|
||
# 选择生产线
|
||
production_line_id = fields.Many2one('sf.production.line', string=u'生产线', required=True)
|
||
date_planned_start = fields.Datetime(string='计划开始时间', index=True, copy=False,
|
||
default=fields.Datetime.now)
|
||
|
||
# 接收传递过来的计划ID
|
||
plan_ids = fields.Many2many('sf.production.plan', string=u'计划ID')
|
||
|
||
# 确认排程按钮
|
||
def action_plan_all(self):
|
||
# 使用传递过来的计划ID
|
||
temp_plan_ids = self.plan_ids
|
||
# 在这里添加您的逻辑来处理这些ID
|
||
for plan in temp_plan_ids:
|
||
# 处理每个计划
|
||
# 比如更新计划状态、分配资源等
|
||
# 示例:plan.state = 'scheduled'
|
||
print('处理计划:', plan.id)
|
||
# 拿到计划对象
|
||
plan_obj = self.env['sf.production.plan'].browse(plan.id)
|
||
plan_obj.production_line_id = self.production_line_id.id
|
||
plan.date_planned_start = self.date_planned_start
|
||
plan_obj.do_production_schedule(self.date_planned_start)
|
||
# plan_obj.state = 'done'
|
||
print('处理计划:', plan.id, '完成')
|
||
|
||
# # 获取当前生产线
|
||
# production_line_id = self.production_line_id
|
||
# # 获取当前生产线的所有生产订单
|
||
# production_order_ids = self.env['mrp.production'].search([('production_line_id', '=', production_line_id.id)])
|
||
# # 获取当前生产线的所有生产订单的id
|
||
# production_order_id_list = []
|
||
# for production_order_id in production_order_ids:
|
||
# production_order_id_list.append(production_order_id.id)
|
||
# # 获取当前生产线的所有生产订单的排程状态
|
||
# production_order_plan_state_list = []
|
||
# for production_order_id in production_order_ids:
|
||
# production_order_plan_state_list.append(production_order_id.plan_state)
|
||
# # 如果当前生产线的所有生产订单的排程状态都是已排程,则报错
|
||
# if all(production_order_plan_state == '已排程' for production_order_plan_state in production_order_plan_state_list):
|
||
# raise UserError('当前生产线的所有生产订单都已排程,请勿重复排程!')
|
||
# # 如果当前生产线的所有生产订单的排程状态都是未排程,则报错
|
||
# if all(production_order_plan_state == '未排程' for production_order_plan_state in production_order_plan_state_list):
|
||
# raise UserError('当前生产线的所有生产订单都未排程,请先排程!')
|
||
# # 如果当前生产线的所有生产订单的排程状态都是已完成,则报错
|
||
# if all(production_order_plan_state == '已完成' for production_order_plan_state in production_order_plan_state_list):
|
||
# raise UserError('当前生产线的所有生产订单都已完成,请勿重复排程!')
|
||
# # 如果当前生产线的所有生产订单的排程状态都是已取消,则报错
|
||
# if all(production_order_plan_state == '已取消' for production_order_plan_state in production_order_plan_state_list):
|
||
# raise UserError('当前生产线的所有生产订单都已取消,请勿重复排程!')
|
||
# # 如果当前生产线的所有生产订单的排程状态都是已暂停,则报错
|
||
# if all(production_order_plan_state == '已暂停' for production_order_plan_state in production
|