diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py
index 77b23e0a..6643bfb1 100644
--- a/sf_manufacturing/models/mrp_production.py
+++ b/sf_manufacturing/models/mrp_production.py
@@ -378,16 +378,37 @@ class MrpProduction(models.Model):
if process_parameters:
raise UserError(_("【工艺设计】-【参数】为%s的在【产品】中不存在,请先创建", ", ".join(process_parameters)))
if production_confirmed:
- return {
- 'name': _('退回调整'),
- 'type': 'ir.actions.act_window',
- 'view_mode': 'form',
- 'res_model': 'sf.production.technology.re_adjust.wizard',
- 'target': 'new',
- 'context': {
- 'default_production_id': self.id,
- 'default_origin': self.origin,
- }}
+ production_count = self.env['mrp.production'].search_count([
+ ('origin', '=', self.origin),
+ ('product_id', '=', self.product_id.id),
+ ('state', '=', 'confirmed')
+ ])
+ if production_count > 1:
+ return {
+ 'name': _('退回调整'),
+ 'type': 'ir.actions.act_window',
+ 'views': [(self.env.ref(
+ 'sf_manufacturing.sf_production_technology_re_adjust_wizard_form_view').id,
+ 'form')],
+ 'res_model': 'sf.production.technology.re_adjust.wizard',
+ 'target': 'new',
+ 'context': {
+ 'default_production_id': self.id,
+ 'default_origin': self.origin,
+ }}
+ else:
+ return {
+ 'name': _('退回调整'),
+ 'type': 'ir.actions.act_window',
+ 'views': [(self.env.ref(
+ 'sf_manufacturing.sf_production_technology_re_adjust_wizard_confirm_form_view').id,
+ 'form')],
+ 'res_model': 'sf.production.technology.re_adjust.wizard',
+ 'target': 'new',
+ 'context': {
+ 'default_production_id': self.id,
+ 'default_origin': self.origin,
+ }}
# 工艺确认
def technology_confirm(self):
@@ -441,16 +462,37 @@ class MrpProduction(models.Model):
error_panel.append(design.panel)
else:
if not error_panel and not process_parameters:
- return {
- 'name': _('工艺确认'),
- 'type': 'ir.actions.act_window',
- 'view_mode': 'form',
- 'res_model': 'sf.production.technology.wizard',
- 'target': 'new',
- 'context': {
- 'default_production_id': self.id,
- 'default_origin': self.origin,
- }}
+ production_count = self.env['mrp.production'].search_count([
+ ('origin', '=', self.origin),
+ ('product_id', '=', self.product_id.id),
+ ('state', '=', 'technology_to_confirmed')
+ ])
+ if production_count > 1:
+ return {
+ 'name': _('工艺确认'),
+ 'type': 'ir.actions.act_window',
+ 'views': [(self.env.ref(
+ 'sf_manufacturing.sf_production_technology_wizard_form_view').id,
+ 'form')],
+ 'res_model': 'sf.production.technology.wizard',
+ 'target': 'new',
+ 'context': {
+ 'default_production_id': self.id,
+ 'default_origin': self.origin,
+ }}
+ else:
+ return {
+ 'name': _('工艺确认'),
+ 'type': 'ir.actions.act_window',
+ 'views': [(self.env.ref(
+ 'sf_manufacturing.sf_production_technology_wizard_confirm_form_view').id,
+ 'form')],
+ 'res_model': 'sf.production.technology.wizard',
+ 'target': 'new',
+ 'context': {
+ 'default_production_id': self.id,
+ 'default_origin': self.origin,
+ }}
if error_panel:
raise UserError(_("【加工面】为%s的标准工序顺序有误,请调整后重试", ", ".join(error_panel)))
return True
@@ -762,7 +804,7 @@ class MrpProduction(models.Model):
# 立即创建外协出入库单和采购订单
# self.env['stock.picking'].create_outcontract_picking(workorder, production)
# self.env['purchase.order'].get_purchase_order(workorder, production,
- # product_id_to_production_names)
+ # product_id_to_production_names)
consecutive_workorders = []
# 处理最后一个组,即使它可能只有一个工作订单
@@ -774,6 +816,7 @@ class MrpProduction(models.Model):
for workorders in reversed(proc_workorders):
self.env['stock.picking'].create_outcontract_picking(workorders, production, sorted_workorders)
self.env['purchase.order'].get_purchase_order(workorders, production, product_id_to_production_names)
+
# 工单排序
def _reset_work_order_sequence1(self, k):
for rec in self:
diff --git a/sf_manufacturing/wizard/production_technology_re_adjust_wizard_views.xml b/sf_manufacturing/wizard/production_technology_re_adjust_wizard_views.xml
index 48346cb2..4ab7fc86 100644
--- a/sf_manufacturing/wizard/production_technology_re_adjust_wizard_views.xml
+++ b/sf_manufacturing/wizard/production_technology_re_adjust_wizard_views.xml
@@ -21,6 +21,26 @@
+
+ sf.production.technology.re_adjust.wizard.form.view
+ sf.production.technology.re_adjust.wizard
+
+
+
+
+
工艺退回调整
sf.production.technology.re_adjust.wizard
diff --git a/sf_manufacturing/wizard/production_technology_wizard_views.xml b/sf_manufacturing/wizard/production_technology_wizard_views.xml
index 134fb8a9..8706ef83 100644
--- a/sf_manufacturing/wizard/production_technology_wizard_views.xml
+++ b/sf_manufacturing/wizard/production_technology_wizard_views.xml
@@ -1,6 +1,6 @@
-
+
sf.production.technology.wizard.form.view
sf.production.technology.wizard
@@ -13,7 +13,28 @@
对当前制造订单,同一销售订单相同产品所生成的制造订单统一进行工艺调整与确认
+
+
+
+
+
+
+ sf.production.technology.wizard.form.view
+ sf.production.technology.wizard
+
+