优化制造订单菜单
This commit is contained in:
@@ -220,21 +220,22 @@ class Manufacturing_Connect(http.Controller):
|
||||
return json.JSONEncoder().encode(res)
|
||||
# workorder.write({'date_finished': datetime.now()})
|
||||
if ret['IsComplete'] is True:
|
||||
workorder.button_finish()
|
||||
# workorder.process_state = '待解除装夹'
|
||||
# workorder.sudo().production_id.process_state = '待解除装夹'
|
||||
workorder.write({'date_finished': datetime.now()})
|
||||
|
||||
# 根据工单的实际结束时间修改排程单的结束时间、状态,同时修改销售订单的状态
|
||||
# if workorder.date_finished:
|
||||
# request.env['sf.production.plan'].sudo().search([('production_id', '=', production_id)]).write(
|
||||
# {'actual_end_time': workorder.date_finished,
|
||||
# 'state': 'finished'})
|
||||
# production_obj = request.env['mrp.production'].sudo().search([('name', '=', production_id)])
|
||||
# if production_obj:
|
||||
# production_obj.sudo().work_order_state = '已完成'
|
||||
# production_obj.write({'state': 'done'})
|
||||
# request.env['sale.order'].sudo().search(
|
||||
# [('name', '=', production_obj.origin)]).write({'schedule_status': 'to deliver'})
|
||||
# workorder.process_state = '待解除装夹'
|
||||
# workorder.sudo().production_id.process_state = '待解除装夹'
|
||||
|
||||
# 根据工单的实际结束时间修改排程单的结束时间、状态,同时修改销售订单的状态
|
||||
# if workorder.date_finished:
|
||||
# request.env['sf.production.plan'].sudo().search([('production_id', '=', production_id)]).write(
|
||||
# {'actual_end_time': workorder.date_finished,
|
||||
# 'state': 'finished'})
|
||||
# production_obj = request.env['mrp.production'].sudo().search([('name', '=', production_id)])
|
||||
# if production_obj:
|
||||
# production_obj.sudo().work_order_state = '已完成'
|
||||
# production_obj.write({'state': 'done'})
|
||||
# request.env['sale.order'].sudo().search(
|
||||
# [('name', '=', production_obj.origin)]).write({'schedule_status': 'to deliver'})
|
||||
|
||||
except Exception as e:
|
||||
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
||||
|
||||
@@ -102,6 +102,9 @@ class MrpProduction(models.Model):
|
||||
elif not production.workorder_ids and float_compare(production.qty_producing, production.product_qty,
|
||||
precision_rounding=production.product_uom_id.rounding) >= 0:
|
||||
production.state = 'to_close'
|
||||
elif any(
|
||||
wo.test_results == '返工' and wo.state == 'done' for wo in production.workorder_ids):
|
||||
production.state = 'rework'
|
||||
elif any(wo_state in ('progress', 'done') for wo_state in production.workorder_ids.mapped('state')):
|
||||
production.state = 'progress'
|
||||
elif production.product_uom_id and not float_is_zero(production.qty_producing,
|
||||
|
||||
@@ -957,7 +957,6 @@ class ResMrpWorkOrder(models.Model):
|
||||
# record.write({'process_state': '待加工'})
|
||||
record.production_id.process_state = '待解除装夹'
|
||||
if record.test_results in ['返工']:
|
||||
record.production_id.state = 'rework'
|
||||
record.production_id.write({'detection_result_ids': [(0, 0, {
|
||||
'rework_reason': record.reason,
|
||||
'detailed_reason': record.detailed_reason,
|
||||
|
||||
@@ -1,6 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<menuitem action="mrp.mrp_production_action"
|
||||
id="mrp_production_action"
|
||||
sequence="1" active="False"/>
|
||||
|
||||
<!-- <record id="mrp_production_action_sf" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">Manufacturing Orders</field>-->
|
||||
<!-- <field name="type">ir.actions.act_window</field>-->
|
||||
<!-- <field name="res_model">mrp.production</field>-->
|
||||
<!-- <field name="view_mode">tree,kanban,form,calendar,pivot,graph</field>-->
|
||||
<!-- <field name="search_view_id" ref="mrp.view_mrp_production_filter"/>-->
|
||||
<!-- <!– <field name="context">{'search_default_todo': True, 'default_company_id': allowed_company_ids[0]}</field>–>-->
|
||||
<!-- <field name="domain">[('picking_type_id.active', '=', True)]</field>-->
|
||||
<!-- </record>-->
|
||||
<!-- <menuitem action="mrp_production_action_sf"-->
|
||||
<!-- id="menu_mrp_production_action_sf"-->
|
||||
<!-- parent="mrp.menu_mrp_manufacturing"-->
|
||||
<!-- sequence="2"-->
|
||||
<!-- string="制造订单"/>-->
|
||||
<!-- <record id="mrp_production_action_sf" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">Manufacturing Orders</field>-->
|
||||
<!-- <field name="type">ir.actions.act_window</field>-->
|
||||
<!-- <field name="res_model">mrp.production</field>-->
|
||||
<!-- <field name="view_mode">tree,kanban,form,calendar,pivot,graph</field>-->
|
||||
<!-- <field name="view_id" eval="False"/>-->
|
||||
<!-- <field name="search_view_id" ref="mrp.view_mrp_production_filter"/>-->
|
||||
<!-- <field name="context">{'search_default_todo': True, 'default_company_id':-->
|
||||
<!-- allowed_company_ids[0]}-->
|
||||
<!-- </field>-->
|
||||
<!-- <field name="domain">[('picking_type_id.active', '=', True)]</field>-->
|
||||
<!--<!– <!– <field name="help" type="html">–>,'search_default_filter_rework': 1,–>-->
|
||||
<!--<!– 'search_default_filter_programming': 1–>-->
|
||||
<!-- <!– <p class="o_view_nocontent_smiling_face">–>-->
|
||||
<!-- <!– No manufacturing order found. Let's create one.–>-->
|
||||
<!-- <!– </p>–>-->
|
||||
<!-- <!– <p>–>-->
|
||||
<!-- <!– Consume <a name="%(product.product_template_action)d" type='action' tabindex="-1">components</a> and–>-->
|
||||
<!-- <!– build finished products using–>-->
|
||||
<!-- <!– <a name="%(mrp_bom_form_action)d" type='action' tabindex="-1">bills of materials</a>–>-->
|
||||
<!-- <!– </p>–>-->
|
||||
<!-- <!– </field>–>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
<!-- <menuitem action="mrp_production_action_sf"-->
|
||||
<!-- id="sf_manufacturing.menu_mrp_production_action_sf"-->
|
||||
<!-- parent="mrp.menu_mrp_manufacturing"-->
|
||||
<!-- sequence="3" string="制造订单"/>-->
|
||||
|
||||
<menuitem action="mrp.mrp_production_action"
|
||||
id="mrp_production_action"
|
||||
sequence="1" active="False"/>
|
||||
|
||||
<record id="custom_mrp_production_tree_view" model="ir.ui.view">
|
||||
<field name="name">custom.mrp.production.tree</field>
|
||||
<field name="model">mrp.production</field>
|
||||
@@ -429,6 +481,17 @@
|
||||
<field name="model">mrp.production</field>
|
||||
<field name="inherit_id" ref="mrp.view_mrp_production_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- <xpath expr="//filter[@name='filter_in_progress']" position="before">-->
|
||||
<!-- <filter string="返工" name="filter_rework" domain="[('state', '=', 'rework')]"/>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- <xpath expr="//filter[@name='planning_issues']" position="before">-->
|
||||
<!-- <separator/>-->
|
||||
<!-- <filter name="filter_programming" string="编程中"-->
|
||||
<!-- domain="[('programming_state', 'in', ['编程中'])]"/>-->
|
||||
<!-- <filter name="filter_programmed" string="已编程"-->
|
||||
<!-- domain="[('programming_state', 'in', ['已编程'])]"/>-->
|
||||
<!-- <separator/>-->
|
||||
<!-- </xpath>-->
|
||||
<xpath expr="//search" position="inside">
|
||||
<searchpanel class="account_root">
|
||||
<field name="state" icon="fa-filter" enable_counters="1"/>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
<xpath expr="//label[1]" position="before">
|
||||
<field name='routing_type' readonly="1"/>
|
||||
<field name='process_state' attrs='{"invisible": [("routing_type","!=","装夹预调")]}'/>
|
||||
<field name="rfid_code" force_save="1" readonly="1" cache="True"
|
||||
<field name="rfid_code" cache="True"
|
||||
attrs="{'invisible': [('rfid_code_old', '!=', False)]}"/>
|
||||
<field name="rfid_code_old" readonly="1" attrs="{'invisible': [('rfid_code_old', '=', False)]}"/>
|
||||
</xpath>
|
||||
|
||||
Reference in New Issue
Block a user