批量重新安排
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
'wizard/production_wizard_views.xml',
|
'wizard/production_wizard_views.xml',
|
||||||
'wizard/production_technology_wizard_views.xml',
|
'wizard/production_technology_wizard_views.xml',
|
||||||
'wizard/production_technology_re_adjust_wizard_views.xml',
|
'wizard/production_technology_re_adjust_wizard_views.xml',
|
||||||
|
'wizard/mrp_workorder_batch_replan_wizard_views.xml',
|
||||||
'views/mrp_views_menus.xml',
|
'views/mrp_views_menus.xml',
|
||||||
'views/agv_scheduling_views.xml',
|
'views/agv_scheduling_views.xml',
|
||||||
'views/stock_lot_views.xml',
|
'views/stock_lot_views.xml',
|
||||||
@@ -38,6 +39,7 @@
|
|||||||
'views/sf_maintenance_equipment.xml',
|
'views/sf_maintenance_equipment.xml',
|
||||||
'views/res_config_settings_views.xml',
|
'views/res_config_settings_views.xml',
|
||||||
'views/sale_order_views.xml',
|
'views/sale_order_views.xml',
|
||||||
|
'views/mrp_workorder_batch_replan.xml',
|
||||||
],
|
],
|
||||||
'assets': {
|
'assets': {
|
||||||
|
|
||||||
|
|||||||
@@ -182,3 +182,5 @@ access_sf_manual_product_model_type_routing_sort_group_sf_mrp_user,sf_manual_pro
|
|||||||
access_sf_manual_product_model_type_routing_sort_manager,sf_manual_product_model_type_routing_sort,model_sf_manual_product_model_type_routing_sort,sf_base.group_sf_mrp_manager,1,1,1,1
|
access_sf_manual_product_model_type_routing_sort_manager,sf_manual_product_model_type_routing_sort,model_sf_manual_product_model_type_routing_sort,sf_base.group_sf_mrp_manager,1,1,1,1
|
||||||
access_sf_manual_product_model_type_routing_sort_group_plan_dispatch,sf_manual_product_model_type_routing_sort_group_plan_dispatch,model_sf_manual_product_model_type_routing_sort,sf_base.group_plan_dispatch,1,0,0,0
|
access_sf_manual_product_model_type_routing_sort_group_plan_dispatch,sf_manual_product_model_type_routing_sort_group_plan_dispatch,model_sf_manual_product_model_type_routing_sort,sf_base.group_plan_dispatch,1,0,0,0
|
||||||
access_sf_detection_result_manager,sf_detection_result_manager,model_sf_detection_result,,1,1,1,1
|
access_sf_detection_result_manager,sf_detection_result_manager,model_sf_detection_result,,1,1,1,1
|
||||||
|
|
||||||
|
access_mrp_workorder_batch_replan_wizard_group_plan_dispatch,mrp_workorder_batch_replan_wizard_group_plan_dispatch,model_mrp_workorder_batch_replan_wizard,sf_base.group_plan_dispatch,1,1,1,0
|
||||||
|
17
sf_manufacturing/views/mrp_workorder_batch_replan.xml
Normal file
17
sf_manufacturing/views/mrp_workorder_batch_replan.xml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
<record id="mrp_production_workorder_tree_editable_view_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">>mrp.workorder.tree.editable.inherit</field>
|
||||||
|
<field name="model">mrp.workorder</field>
|
||||||
|
<field name="inherit_id" ref="mrp.mrp_production_workorder_tree_editable_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//tree/field[1]" position="before">
|
||||||
|
<header>
|
||||||
|
<button string="重新安排" name="%(sf_manufacturing.mrp_workorder_batch_replan_wizard)d" type="action"
|
||||||
|
class="treeHeaderBtn"/>
|
||||||
|
</header>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
@@ -3,3 +3,4 @@ from . import rework_wizard
|
|||||||
from . import production_wizard
|
from . import production_wizard
|
||||||
from . import production_technology_wizard
|
from . import production_technology_wizard
|
||||||
from . import production_technology_re_adjust_wizard
|
from . import production_technology_re_adjust_wizard
|
||||||
|
from . import mrp_workorder_batch_replan_wizard
|
||||||
|
|||||||
42
sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard.py
Normal file
42
sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard.py
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import logging
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
from odoo import models, api, fields, _
|
||||||
|
|
||||||
|
|
||||||
|
class MrpWorkorderBatchReplanWizard(models.TransientModel):
|
||||||
|
_name = 'mrp.workorder.batch.replan.wizard'
|
||||||
|
_description = '制造订单批量重新安排向导'
|
||||||
|
|
||||||
|
def _get_date_planned_start(self):
|
||||||
|
planned_start_date = datetime.now() + timedelta(hours=2)
|
||||||
|
logging.info('计划开始加工时间: %s', planned_start_date)
|
||||||
|
return planned_start_date
|
||||||
|
|
||||||
|
def _get_default_workorder_count(self):
|
||||||
|
active_ids = self.env.context.get('active_ids', [])
|
||||||
|
return len(active_ids)
|
||||||
|
|
||||||
|
def _get_default_workorder_type(self):
|
||||||
|
active_ids = self.env.context.get('active_ids', [])
|
||||||
|
if active_ids:
|
||||||
|
workorders = self.env['mrp.workorder'].browse(active_ids)
|
||||||
|
if workorders:
|
||||||
|
unique_types = set(workorders.mapped('type'))
|
||||||
|
return '/'.join(sorted(unique_types)) if unique_types else None
|
||||||
|
return None
|
||||||
|
|
||||||
|
workorder_type = fields.Char(string='工单类型', default=_get_default_workorder_type, readonly=True)
|
||||||
|
|
||||||
|
date_planned_start = fields.Datetime(string='计划开始加工时间', index=True, copy=False,
|
||||||
|
default=_get_date_planned_start)
|
||||||
|
|
||||||
|
workorder_count = fields.Integer(string='工单数量',
|
||||||
|
default=_get_default_workorder_count,
|
||||||
|
readonly=True)
|
||||||
|
|
||||||
|
workorder_id = fields.Many2many('mrp.workorder', string=u'工单')
|
||||||
|
|
||||||
|
def confirm(self):
|
||||||
|
print("ddd")
|
||||||
|
pass
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<odoo>
|
||||||
|
<record id="mrp_workorder_batch_replan_wizard_form" model="ir.ui.view">
|
||||||
|
<field name="name">mrp.workorder.batch.replan.wizard.form.view</field>
|
||||||
|
<field name="model">mrp.workorder.batch.replan.wizard</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<group>
|
||||||
|
<field name="workorder_type"/>
|
||||||
|
<field name="date_planned_start"/>
|
||||||
|
<field name="workorder_count"/>
|
||||||
|
</group>
|
||||||
|
<footer>
|
||||||
|
<button string="确认" name="confirm" type="object" class="oe_highlight"/>
|
||||||
|
<button string="取消" class="btn-primary" special="cancel"/>
|
||||||
|
</footer>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<record id="mrp_workorder_batch_replan_wizard" model="ir.actions.act_window">
|
||||||
|
<field name="name">重新安排</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">mrp.workorder.batch.replan.wizard</field>
|
||||||
|
<field name="view_mode">form</field>
|
||||||
|
<field name="view_id" ref="mrp_workorder_batch_replan_wizard_form"/>
|
||||||
|
<field name="target">new</field>
|
||||||
|
<field name="context">{'default_workorder_id': active_ids}</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
Reference in New Issue
Block a user