Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
This commit is contained in:
@@ -31,6 +31,10 @@ access_sf_cutting_tool_material,sf_cutting_tool_material,model_sf_cutting_tool_m
|
|||||||
access_sf_cutting_tool_material_admin,sf_cutting_tool_material_admin,model_sf_cutting_tool_material,base.group_system,1,1,1,0
|
access_sf_cutting_tool_material_admin,sf_cutting_tool_material_admin,model_sf_cutting_tool_material,base.group_system,1,1,1,0
|
||||||
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,base.group_user,1,1,1,0
|
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,base.group_user,1,1,1,0
|
||||||
access_sf_cutting_tool_type_admin,sf_cutting_tool_type_admin,model_sf_cutting_tool_type,base.group_system,1,1,1,0
|
access_sf_cutting_tool_type_admin,sf_cutting_tool_type_admin,model_sf_cutting_tool_type,base.group_system,1,1,1,0
|
||||||
|
access_sf_cutting_tool_type_group_purchase_director,sf_cutting_tool_type_group_purchase_director,model_sf_cutting_tool_type,sf_base.group_purchase_director,1,1,0,0
|
||||||
|
access_sf_cutting_tool_type_group_sale_director,sf_cutting_tool_type_group_sale_director,model_sf_cutting_tool_type,sf_base.group_sale_director,1,1,0,0
|
||||||
|
access_sf_cutting_tool_type_group_plan_director,sf_cutting_tool_type_group_plan_director,model_sf_cutting_tool_type,sf_base.group_plan_director,1,1,0,0
|
||||||
|
|
||||||
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,base.group_user,1,1,1,0
|
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,base.group_user,1,1,1,0
|
||||||
access_sf_functional_cutting_tool_admin,sf_functional_cutting_tool_admin,model_sf_functional_cutting_tool,base.group_system,1,1,1,0
|
access_sf_functional_cutting_tool_admin,sf_functional_cutting_tool_admin,model_sf_functional_cutting_tool,base.group_system,1,1,1,0
|
||||||
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,base.group_user,1,1,1,0
|
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,base.group_user,1,1,1,0
|
||||||
@@ -59,12 +63,12 @@ access_sf_tool_materials_basic_parameters,sf_tool_materials_basic_parameters,mod
|
|||||||
access_sf_tool_materials_basic_parameters_admin,sf_tool_materials_basic_parameters_admin,model_sf_tool_materials_basic_parameters,base.group_system,1,1,1,0
|
access_sf_tool_materials_basic_parameters_admin,sf_tool_materials_basic_parameters_admin,model_sf_tool_materials_basic_parameters,base.group_system,1,1,1,0
|
||||||
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,0
|
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,0
|
||||||
access_sf_cutting_speed_admin,sf_cutting_speed_admin,model_sf_cutting_speed,base.group_system,1,1,1,0
|
access_sf_cutting_speed_admin,sf_cutting_speed_admin,model_sf_cutting_speed,base.group_system,1,1,1,0
|
||||||
access_sf_cutting_speed_group_purchase_director,sf_cutting_speed_group_purchase_director,model_sf_cutting_speed,sf_base.group_purchase_director,1,0,1,0
|
access_sf_cutting_speed_group_purchase_director,sf_cutting_speed_group_purchase_director,model_sf_cutting_speed,sf_base.group_purchase_director,1,1,1,0
|
||||||
access_sf_cutting_speed_group_sale_director,sf_cutting_speed_group_sale_director,model_sf_cutting_speed,sf_base.group_sale_director,1,0,1,0
|
access_sf_cutting_speed_group_sale_director,sf_cutting_speed_group_sale_director,model_sf_cutting_speed,sf_base.group_sale_director,1,1,1,0
|
||||||
access_sf_cutting_speed_group_plan_director,sf_cutting_speed_group_plan_director,model_sf_cutting_speed,sf_base.group_plan_director,1,0,1,0
|
access_sf_cutting_speed_group_plan_director,sf_cutting_speed_group_plan_director,model_sf_cutting_speed,sf_base.group_plan_director,1,1,1,0
|
||||||
access_sf_feed_per_tooth_group_purchase_director,sf_feed_per_tooth_group_purchase_director,model_sf_feed_per_tooth,sf_base.group_purchase_director,1,0,1,0
|
access_sf_feed_per_tooth_group_purchase_director,sf_feed_per_tooth_group_purchase_director,model_sf_feed_per_tooth,sf_base.group_purchase_director,1,1,0,0
|
||||||
access_sf_feed_per_tooth_group_sale_director,sf_feed_per_tooth_group_sale_director,model_sf_feed_per_tooth,sf_base.group_sale_director,1,0,1,0
|
access_sf_feed_per_tooth_group_sale_director,sf_feed_per_tooth_group_sale_director,model_sf_feed_per_tooth,sf_base.group_sale_director,1,1,0,0
|
||||||
access_sf_feed_per_tooth_group_plan_director,sf_feed_per_tooth_group_plan_director,model_sf_feed_per_tooth,sf_base.group_plan_director,1,0,1,0
|
access_sf_feed_per_tooth_group_plan_director,sf_feed_per_tooth_group_plan_director,model_sf_feed_per_tooth,sf_base.group_plan_director,1,1,0,0
|
||||||
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,0
|
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,0
|
||||||
access_sf_feed_per_tooth_admin,sf_feed_per_tooth_admin,model_sf_feed_per_tooth,base.group_system,1,1,1,0
|
access_sf_feed_per_tooth_admin,sf_feed_per_tooth_admin,model_sf_feed_per_tooth,base.group_system,1,1,1,0
|
||||||
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,base.group_user,1,1,1,1
|
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,base.group_user,1,1,1,1
|
||||||
@@ -74,12 +78,21 @@ access_sf_cutting_width_depth_admin,sf_cutting_width_depth_admin,model_sf_cuttin
|
|||||||
access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_machine_brand_group_plan_director,sf_machine_brand_group_plan_director,model_sf_machine_brand,sf_base.group_plan_director,1,0,0,0
|
||||||
|
access_sf_machine_brand_group_purchase_director,sf_machine_brand_group_purchase_director,model_sf_machine_brand,sf_base.group_purchase_director,1,0,0,0
|
||||||
|
access_sf_machine_brand_group_sale_director,sf_machine_brand_group_sale_director,model_sf_machine_brand,sf_base.group_sale_director,1,0,0,0
|
||||||
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1
|
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1
|
||||||
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_production_materials_group_plan_director,sf_production_materials_group_plan_director,model_sf_production_materials,sf_base.group_plan_director,1,1,0,0
|
||||||
|
access_sf_production_materials_group_purchase_director,sf_production_materials_group_purchase_director,model_sf_production_materials,sf_base.group_purchase_director,1,1,0,0
|
||||||
|
access_sf_production_materials_group_sale_director,sf_production_materials_group_sale_director,model_sf_production_materials,sf_base.group_sale_director,1,1,0,0
|
||||||
access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_materials_model_group_plan_director,sf_materials_model_group_plan_director,model_sf_materials_model,sf_base.group_plan_director,1,0,0,0
|
||||||
|
access_sf_materials_model_group_purchase_director,sf_materials_model_group_purchase_director,model_sf_materials_model,sf_base.group_purchase_director,1,0,0,0
|
||||||
|
access_sf_materials_model_group_sale_director,sf_materials_model_group_sale_director,model_sf_materials_model,sf_base.group_sale_director,1,0,0,0
|
||||||
access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
@@ -112,9 +125,16 @@ access_sf_tool_materials_basic_parameters_group_plan_director,sf_tool_materials_
|
|||||||
access_sf_tool_materials_basic_parameters_group_purchase_director,sf_tool_materials_basic_parameters_group_purchase_director,model_sf_tool_materials_basic_parameters,sf_base.group_purchase_director,1,0,1,0
|
access_sf_tool_materials_basic_parameters_group_purchase_director,sf_tool_materials_basic_parameters_group_purchase_director,model_sf_tool_materials_basic_parameters,sf_base.group_purchase_director,1,0,1,0
|
||||||
|
|
||||||
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_cutting_speed_group_purchase,sf_cutting_speed_group_purchase,model_sf_cutting_speed,sf_base.group_purchase,1,0,0,0
|
||||||
|
access_sf_cutting_speed_group_sale_salemanager,sf_cutting_speed_group_sale_salemanager,model_sf_cutting_speed,sf_base.group_sale_salemanager,1,0,0,0
|
||||||
|
|
||||||
|
|
||||||
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_feed_per_tooth_group_purchase,sf_feed_per_tooth_group_purchase,model_sf_feed_per_tooth,sf_base.group_purchase,1,0,0,0
|
||||||
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_ramping_angle_group_purchase,sf_ramping_angle_group_purchase,model_sf_ramping_angle,sf_base.group_purchase,1,0,0,0
|
||||||
access_sf_cutting_width_depth,sf_cutting_width_depth,model_sf_cutting_width_depth,sf_base.group_sf_mrp_user,1,0,0,0
|
access_sf_cutting_width_depth,sf_cutting_width_depth,model_sf_cutting_width_depth,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
access_sf_cutting_width_depth_group_purchase,sf_cutting_width_depth_group_purchase,model_sf_cutting_width_depth,sf_base.group_purchase,1,0,0,0
|
||||||
|
|
||||||
access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1
|
access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1
|
||||||
access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0
|
access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0
|
||||||
@@ -154,12 +174,6 @@ access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional
|
|||||||
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,sf_base.group_sf_mrp_user,1,1,0,0
|
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,sf_base.group_sf_mrp_user,1,1,0,0
|
||||||
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,sf_base.group_sf_mrp_user,1,1,0,0
|
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,sf_base.group_sf_mrp_user,1,1,0,0
|
||||||
access_sf_fixture_materials_basic_parameters,sf_fixture_materials_basic_parameters,model_sf_fixture_materials_basic_parameters,sf_base.group_sf_mrp_user,1,1,0,0
|
access_sf_fixture_materials_basic_parameters,sf_fixture_materials_basic_parameters,model_sf_fixture_materials_basic_parameters,sf_base.group_sf_mrp_user,1,1,0,0
|
||||||
|
access_mrp_production_group_sale_salemanager,mrp_production_group_sale_salemanager,mrp.model_mrp_production,sf_base.group_sale_salemanager,1,0,0,0
|
||||||
|
access_mrp_production_group_sale_director,mrp_production_group_sale_director,mrp.model_mrp_production,sf_base.group_sale_director,1,0,0,0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
|
@@ -259,7 +259,7 @@ class ResProductMo(models.Model):
|
|||||||
self.cutting_tool_main_included_angle = self.specification_id.main_included_angle
|
self.cutting_tool_main_included_angle = self.specification_id.main_included_angle
|
||||||
self.cutting_tool_top_angle = self.specification_id.top_angle
|
self.cutting_tool_top_angle = self.specification_id.top_angle
|
||||||
self.cutting_tool_screw = self.specification_id.screw
|
self.cutting_tool_screw = self.specification_id.screw
|
||||||
self.cutting_tool_wrench = self.specification_id.wrench
|
self.cutting_tool_wrench = self.specification_id.spanner
|
||||||
self.cutting_tool_blade_id = self.specification_id.blade_id.id
|
self.cutting_tool_blade_id = self.specification_id.blade_id.id
|
||||||
self.cutting_tool_is_cooling_hole = self.specification_id.is_cooling_hole
|
self.cutting_tool_is_cooling_hole = self.specification_id.is_cooling_hole
|
||||||
self.cutting_tool_locating_slot_code = self.specification_id.locating_slot_code
|
self.cutting_tool_locating_slot_code = self.specification_id.locating_slot_code
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ access_mrp_workcenter_manager,mrp_workcenter,model_mrp_workcenter,sf_base.group_
|
|||||||
access_mrp_workcenter_productivity,mrp_workcenter_productivity,model_mrp_workcenter_productivity,sf_base.group_sf_mrp_user,1,0,0,0
|
access_mrp_workcenter_productivity,mrp_workcenter_productivity,model_mrp_workcenter_productivity,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
access_mrp_workcenter_productivity_manager,mrp_workcenter_productivity,model_mrp_workcenter_productivity,sf_base.group_sf_mrp_manager,1,1,1,0
|
access_mrp_workcenter_productivity_manager,mrp_workcenter_productivity,model_mrp_workcenter_productivity,sf_base.group_sf_mrp_manager,1,1,1,0
|
||||||
access_sf_workpiece_delivery_group_sf_order_user,sf_workpiece_delivery_group_sf_order_user,model_sf_workpiece_delivery,sf_base.group_sf_order_user,1,1,0,0
|
access_sf_workpiece_delivery_group_sf_order_user,sf_workpiece_delivery_group_sf_order_user,model_sf_workpiece_delivery,sf_base.group_sf_order_user,1,1,0,0
|
||||||
|
access_sf_workpiece_delivery_group_sf_equipment_user,sf_workpiece_delivery_group_sf_equipment_user,model_sf_workpiece_delivery,sf_base.group_sf_equipment_user,1,1,0,0
|
||||||
|
|
||||||
access_sf_workpiece_delivery_manager,sf_workpiece_delivery,model_sf_workpiece_delivery,sf_base.group_sf_mrp_manager,1,1,0,0
|
access_sf_workpiece_delivery_manager,sf_workpiece_delivery,model_sf_workpiece_delivery,sf_base.group_sf_mrp_manager,1,1,0,0
|
||||||
access_sf_workpiece_delivery_admin,sf_workpiece_delivery_admin,model_sf_workpiece_delivery,base.group_system,1,1,1,0
|
access_sf_workpiece_delivery_admin,sf_workpiece_delivery_admin,model_sf_workpiece_delivery,base.group_system,1,1,1,0
|
||||||
access_sf_workpiece_delivery_wizard_group_sf_order_user,sf_workpiece_delivery_wizard_group_sf_order_user,model_sf_workpiece_delivery_wizard,sf_base.group_sf_order_user,1,1,1,0
|
access_sf_workpiece_delivery_wizard_group_sf_order_user,sf_workpiece_delivery_wizard_group_sf_order_user,model_sf_workpiece_delivery_wizard,sf_base.group_sf_order_user,1,1,1,0
|
||||||
@@ -40,6 +42,10 @@ access_mrp_workcenter_manager,mrp.workcenter.manager,mrp.model_mrp_workcenter,sf
|
|||||||
access_mrp_routing_workcenter_manager,mrp.routing.workcenter.manager,mrp.model_mrp_routing_workcenter,sf_base.group_sf_mrp_user,1,1,1,0
|
access_mrp_routing_workcenter_manager,mrp.routing.workcenter.manager,mrp.model_mrp_routing_workcenter,sf_base.group_sf_mrp_user,1,1,1,0
|
||||||
access_mrp_bom_manager,mrp.bom.manager,mrp.model_mrp_bom,sf_base.group_sf_mrp_user,1,1,1,0
|
access_mrp_bom_manager,mrp.bom.manager,mrp.model_mrp_bom,sf_base.group_sf_mrp_user,1,1,1,0
|
||||||
access_mrp_bom_line_manager,mrp.bom.line.manager,mrp.model_mrp_bom_line,sf_base.group_sf_mrp_user,1,1,1,0
|
access_mrp_bom_line_manager,mrp.bom.line.manager,mrp.model_mrp_bom_line,sf_base.group_sf_mrp_user,1,1,1,0
|
||||||
|
access_mrp_bom_line_group_plan_director,mrp_bom_line_group_plan_director,mrp.model_mrp_bom_line,sf_base.group_plan_director,1,1,1,0
|
||||||
|
access_mrp_bom_line_group_sale_director,mrp_bom_line_group_sale_director,mrp.model_mrp_bom_line,sf_base.group_sale_director,1,1,1,0
|
||||||
|
access_mrp_bom_line_group_purchase_director,mrp_bom_line_group_purchase_director,mrp.model_mrp_bom_line,sf_base.group_purchase_director,1,1,1,0
|
||||||
|
|
||||||
access_mrp_bom_byproduct_manager,mrp.bom.byproduct manager,mrp.model_mrp_bom_byproduct,sf_base.group_sf_mrp_user,1,1,1,0
|
access_mrp_bom_byproduct_manager,mrp.bom.byproduct manager,mrp.model_mrp_bom_byproduct,sf_base.group_sf_mrp_user,1,1,1,0
|
||||||
access_mrp_production_stock_worker,mrp.production stock_worker,mrp.model_mrp_production,stock.group_stock_user,1,0,0,0
|
access_mrp_production_stock_worker,mrp.production stock_worker,mrp.model_mrp_production,stock.group_stock_user,1,0,0,0
|
||||||
access_product_product_user,product.product user,product.model_product_product,sf_base.group_sf_mrp_user,1,0,0,0
|
access_product_product_user,product.product user,product.model_product_product,sf_base.group_sf_mrp_user,1,0,0,0
|
||||||
|
|||||||
|
File diff suppressed because it is too large
Load Diff
@@ -119,6 +119,6 @@
|
|||||||
<menuitem sequence="21" name="快速订单" id="menu_quick_easy_order"
|
<menuitem sequence="21" name="快速订单" id="menu_quick_easy_order"
|
||||||
action="action_quick_easy_order"
|
action="action_quick_easy_order"
|
||||||
parent="sale.sale_order_menu"
|
parent="sale.sale_order_menu"
|
||||||
groups="sales_team.group_sale_salesman"/>
|
groups="sales_team.group_sale_salesman,sf_base.group_sale_salemanager,sf_base.group_sale_director"/>
|
||||||
</data>
|
</data>
|
||||||
</odoo>
|
</odoo>
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
'wizard/wizard_view.xml',
|
'wizard/wizard_view.xml',
|
||||||
'views/tool_base_views.xml',
|
'views/tool_base_views.xml',
|
||||||
|
'views/mrp_workcenter_views.xml',
|
||||||
'views/sf_maintenance_equipment.xml',
|
'views/sf_maintenance_equipment.xml',
|
||||||
'views/menu_view.xml',
|
'views/menu_view.xml',
|
||||||
'views/tool_material_search.xml',
|
'views/tool_material_search.xml',
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from . import base
|
from . import base
|
||||||
from . import tool_material_search
|
from . import tool_material_search
|
||||||
from . import maintenance_equipment
|
from . import maintenance_equipment
|
||||||
|
from . import mrp_workorder
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from odoo import models, api, fields
|
from odoo import models, api, fields
|
||||||
|
from odoo.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
class SfMaintenanceEquipmentTool(models.Model):
|
class SfMaintenanceEquipmentTool(models.Model):
|
||||||
@@ -26,3 +27,68 @@ class SfMaintenanceEquipmentTool(models.Model):
|
|||||||
'cutter_spacing_code_id': tool.id
|
'cutter_spacing_code_id': tool.id
|
||||||
})
|
})
|
||||||
return tools
|
return tools
|
||||||
|
|
||||||
|
|
||||||
|
class StockLot(models.Model):
|
||||||
|
_inherit = 'stock.lot'
|
||||||
|
|
||||||
|
tool_material_search_id = fields.Many2one('sf.tool.material.search', string='刀具物料搜索')
|
||||||
|
tool_material_status = fields.Selection([('可用', '可用'), ('在用', '在用'), ('报废', '报废')], string='状态',
|
||||||
|
compute='_compute_tool_material_status')
|
||||||
|
|
||||||
|
@api.depends('quant_ids')
|
||||||
|
def _compute_tool_material_status(self):
|
||||||
|
for record in self:
|
||||||
|
if record:
|
||||||
|
if record.quant_ids[-1].location_id.name == '刀具组装位置':
|
||||||
|
record.tool_material_status = '在用'
|
||||||
|
else:
|
||||||
|
record.tool_material_status = '可用'
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
||||||
|
# 调用父类的name_search方法
|
||||||
|
records = super(StockLot, self).name_search(name=name, args=args, operator=operator, limit=limit)
|
||||||
|
if records:
|
||||||
|
return records
|
||||||
|
else:
|
||||||
|
# 在调用父类方法之后执行自定义逻辑
|
||||||
|
self.tool_verify(args, name)
|
||||||
|
return records
|
||||||
|
|
||||||
|
def tool_verify(self, args, name):
|
||||||
|
# 刀具物料验证
|
||||||
|
if 5 >= len(args) > 3:
|
||||||
|
objs = self.search([('name', '=', name), ('quant_ids.location_id.name', 'in', ['刀具房']),
|
||||||
|
('quant_ids.quantity', '>', 0)])
|
||||||
|
if args[2][2] in ['整体式刀具', '刀片', '刀杆', '刀盘', '刀柄', '夹头']:
|
||||||
|
if objs.product_id.categ_id.name == '刀具':
|
||||||
|
raise ValidationError('这是【%s】物料,请扫入正确的【%s】物料!!!' % (
|
||||||
|
objs.product_id.cutting_tool_material_id.name, args[2][2]))
|
||||||
|
|
||||||
|
@api.model_create_multi
|
||||||
|
def create(self, vals_list):
|
||||||
|
records = super(StockLot, self).create(vals_list)
|
||||||
|
for record in records:
|
||||||
|
if record.product_id.categ_id.name == '刀具':
|
||||||
|
tool_material_search = self.env['sf.tool.material.search'].sudo().search(
|
||||||
|
[('cutting_tool_material_id', '=', record.product_id.cutting_tool_material_id.id),
|
||||||
|
('cutting_tool_standard_library_id', '=', record.product_id.cutting_tool_model_id.id),
|
||||||
|
('specification_id', '=', record.product_id.specification_id.id)])
|
||||||
|
if tool_material_search:
|
||||||
|
record.tool_material_search_id = tool_material_search
|
||||||
|
return records
|
||||||
|
|
||||||
|
|
||||||
|
class ProductProduct(models.Model):
|
||||||
|
_inherit = 'product.product'
|
||||||
|
|
||||||
|
@api.model_create_multi
|
||||||
|
def create(self, vals_list):
|
||||||
|
records = super(ProductProduct, self).create(vals_list)
|
||||||
|
for record in records:
|
||||||
|
if record.categ_id.name == '刀具':
|
||||||
|
self.env['sf.tool.material.search'].sudo().create({
|
||||||
|
'product_id': record.id
|
||||||
|
})
|
||||||
|
return records
|
||||||
|
|||||||
@@ -36,3 +36,12 @@ class CNCprocessing(models.Model):
|
|||||||
# 调用CAM工单程序用刀计划创建方法
|
# 调用CAM工单程序用刀计划创建方法
|
||||||
self.env['sf.cam.work.order.program.knife.plan'].create_cam_work_plan(obj)
|
self.env['sf.cam.work.order.program.knife.plan'].create_cam_work_plan(obj)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
class MrpWorkCenter(models.Model):
|
||||||
|
_inherit = 'mrp.workcenter'
|
||||||
|
|
||||||
|
def action_tool_order(self):
|
||||||
|
action = self.env.ref('sf_tool_management.sf_functional_tool_assembly_view_act')
|
||||||
|
result = action.read()[0]
|
||||||
|
return result
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from odoo import fields, models, api, SUPERUSER_ID
|
|||||||
# from odoo.exceptions import ValidationError
|
# from odoo.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
# 刀具物料搜索
|
# 刀具物料搜索(待删除)
|
||||||
class SfToolMaterialSearch(models.Model):
|
class SfToolMaterialSearch(models.Model):
|
||||||
_name = 'sf.tool.material.search'
|
_name = 'sf.tool.material.search'
|
||||||
_description = '刀具物料搜索'
|
_description = '刀具物料搜索'
|
||||||
@@ -302,3 +302,55 @@ class SfToolMaterialSearch(models.Model):
|
|||||||
warehouse_area = fields.Char('库区')
|
warehouse_area = fields.Char('库区')
|
||||||
warehouse_location = fields.Char('库位')
|
warehouse_location = fields.Char('库位')
|
||||||
three_d_model = fields.Many2one('ir.attachment', '3D模型')
|
three_d_model = fields.Many2one('ir.attachment', '3D模型')
|
||||||
|
|
||||||
|
|
||||||
|
class ToolMaterial(models.Model):
|
||||||
|
_name = 'sf.tool.material.search'
|
||||||
|
_description = '刀具物料搜索'
|
||||||
|
|
||||||
|
product_id = fields.Many2one('product.product', string='刀具物料产品')
|
||||||
|
|
||||||
|
name = fields.Char('名称', related='product_id.name')
|
||||||
|
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料',
|
||||||
|
related='product_id.cutting_tool_material_id',
|
||||||
|
store=True,
|
||||||
|
group_expand='_read_group_cutting_tool_material_id')
|
||||||
|
tool_material_name = fields.Char('物料名称', related='product_id.cutting_tool_material_id.name')
|
||||||
|
cutting_tool_standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', '刀具型号',
|
||||||
|
related='product_id.cutting_tool_model_id')
|
||||||
|
specification_id = fields.Many2one('sf.tool.materials.basic.parameters', '规格',
|
||||||
|
related='product_id.specification_id')
|
||||||
|
image = fields.Binary('图片', related='product_id.image_1920')
|
||||||
|
number = fields.Integer('总数量', readonly=True, compute='_compute_number')
|
||||||
|
usable_num = fields.Integer('可用数量', readonly=True)
|
||||||
|
have_been_used_num = fields.Integer('在用数量', readonly=True)
|
||||||
|
scrap_num = fields.Integer('报废数量', readonly=True)
|
||||||
|
|
||||||
|
barcode_ids = fields.One2many('stock.lot', 'tool_material_search_id', string='序列号', readonly=True)
|
||||||
|
|
||||||
|
@api.depends('barcode_ids')
|
||||||
|
def _compute_number(self):
|
||||||
|
usable_num = 0
|
||||||
|
have_been_used_num = 0
|
||||||
|
scrap_num = 0
|
||||||
|
for record in self:
|
||||||
|
if record.barcode_ids:
|
||||||
|
record.number = len(record.barcode_ids)
|
||||||
|
for barcode_id in record.barcode_ids:
|
||||||
|
if barcode_id.quant_ids[-1].location_id.name == '刀具组装位置':
|
||||||
|
have_been_used_num = have_been_used_num + 1
|
||||||
|
else:
|
||||||
|
usable_num = usable_num + 1
|
||||||
|
record.usable_num = usable_num
|
||||||
|
record.have_been_used_num = have_been_used_num
|
||||||
|
record.scrap_num = scrap_num
|
||||||
|
else:
|
||||||
|
record.number = 0
|
||||||
|
record.usable_num = 0
|
||||||
|
record.have_been_used_num = 0
|
||||||
|
record.scrap_num = 0
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _read_group_cutting_tool_material_id(self, categories, domain, order):
|
||||||
|
cutting_tool_material_id = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
|
||||||
|
return categories.browse(cutting_tool_material_id)
|
||||||
|
|||||||
33
sf_tool_management/views/mrp_workcenter_views.xml
Normal file
33
sf_tool_management/views/mrp_workcenter_views.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<odoo>
|
||||||
|
<record id="mrp_workcenter_kanban_tool" model="ir.ui.view">
|
||||||
|
<field name="name">mrp.workcenter.kanban.tool</field>
|
||||||
|
<field name="model">mrp.workcenter</field>
|
||||||
|
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//kanban//templates//t//div//div[2]//div//div//div//t[2]" position="after">
|
||||||
|
<t t-if="record.name != '功能刀具组装中心'">
|
||||||
|
<button string="组装单" name="action_tool_order" type="object" class="btn-primary"
|
||||||
|
attrs="{'invisible': [('name', '!=', '功能刀具组装中心')]}"/>
|
||||||
|
</t>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//kanban//templates//t//div//div[2]//div//div//div//t[2]" position="replace">
|
||||||
|
<t t-if="record.workorder_count.raw_value <= 0">
|
||||||
|
<button class="btn btn-warning" name="%(mrp.act_product_mrp_production_workcenter)d" type="action"
|
||||||
|
attrs="{'invisible': [('name', '=', '功能刀具组装中心')]}">
|
||||||
|
<span>安排订单</span>
|
||||||
|
</button>
|
||||||
|
</t>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//kanban//templates//t//div//div[2]//div//div//div//t[1]" position="replace">
|
||||||
|
<t t-if="record.workorder_count.raw_value > 0">
|
||||||
|
<button class="btn btn-primary" name="action_work_order" type="object"
|
||||||
|
attrs="{'invisible': [('name', '=', '功能刀具组装中心')]}"
|
||||||
|
context="{'search_default_ready': 1, 'search_default_progress': 1}">
|
||||||
|
<span>工单</span>
|
||||||
|
</button>
|
||||||
|
</t>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
@@ -6,116 +6,13 @@
|
|||||||
<field name="model">sf.tool.material.search</field>
|
<field name="model">sf.tool.material.search</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="刀具物料查询">
|
<tree string="刀具物料查询">
|
||||||
<field name="sequence" invisible="True"/>
|
|
||||||
<field name="code"/>
|
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="mrs_cutting_tool_type_id"/>
|
<field name="cutting_tool_material_id"/>
|
||||||
<field name="mrs_machine_brand_id"/>
|
<field name="cutting_tool_standard_library_id"/>
|
||||||
<!-- <field name="mrs_cutting_tool_model_id"/> -->
|
<field name="specification_id"/>
|
||||||
<field name="mrs_materials_model_id"/>
|
<field name="number"/>
|
||||||
<field name="mrs_cutting_tool_material_id"/>
|
<field name="usable_num"/>
|
||||||
|
<field name="image" widget="image"/>
|
||||||
<!-- <field name="blade_code" optional="hide"/> -->
|
|
||||||
<field name="blade_length" optional="hide"/>
|
|
||||||
<field name="blade_width" optional="hide"/>
|
|
||||||
<field name="blade_height" optional="hide"/>
|
|
||||||
<field name="blade_top_angle" optional="hide"/>
|
|
||||||
<field name="blade_front_angle" optional="hide"/>
|
|
||||||
<field name="blade_rear_angle" optional="hide"/>
|
|
||||||
<field name="blade_main_included_angle" optional="hide"/>
|
|
||||||
<field name="blade_r_angle" optional="hide"/>
|
|
||||||
<field name="blade_hardness" optional="hide"/>
|
|
||||||
<field name="blade_accuracy" optional="hide"/>
|
|
||||||
<field name="blade_coating_material_id" optional="hide"/>
|
|
||||||
<field name="blade_radius" optional="hide"/>
|
|
||||||
<field name="blade_nut" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" optional="hide"/>
|
|
||||||
|
|
||||||
<!-- <field name="integral_code" readonly="1"/> -->
|
|
||||||
<!-- <field name="integral_total_length" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_shank_length" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_blade_length" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_diameter" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_blade_number" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_front_angle" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_rear_angle" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_main_included_angle" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_accuracy" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_hardness" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_coating_material" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_nut" optional="hide"/>-->
|
|
||||||
<!-- <field name="integral_scope" optional="hide"/>-->
|
|
||||||
|
|
||||||
<!-- <field name="bar_code" readonly="1"/> -->
|
|
||||||
<field name="bar_c_diameter" optional="hide"/>
|
|
||||||
<field name="bar_total_length" optional="hide"/>
|
|
||||||
<field name="bar_blade_number" optional="hide"/>
|
|
||||||
<field name="bar_d_diameter" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags" optional="hide"/>
|
|
||||||
<field name="bar_wrench" optional="hide"/>
|
|
||||||
<field name="bar_screw" optional="hide"/>
|
|
||||||
<field name="bar_radius" optional="hide"/>
|
|
||||||
<field name="bar_accuracy" optional="hide"/>
|
|
||||||
<field name="bar_hardness" optional="hide"/>
|
|
||||||
<field name="bar_scope" optional="hide"/>
|
|
||||||
|
|
||||||
<!-- <field name="pad_code" readonly="1"/> -->
|
|
||||||
<field name="pad_c_diameter" optional="hide"/>
|
|
||||||
<field name="pad_total_length" optional="hide"/>
|
|
||||||
<field name="pad_blade_number" optional="hide"/>
|
|
||||||
<field name="pad_d_diameter" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags" optional="hide"/>
|
|
||||||
<field name="pad_wrench" optional="hide"/>
|
|
||||||
<field name="pad_screw" optional="hide"/>
|
|
||||||
<field name="pad_radius" optional="hide"/>
|
|
||||||
<field name="pad_accuracy" optional="hide"/>
|
|
||||||
<field name="pad_hardness" optional="hide"/>
|
|
||||||
<field name="pad_scope" optional="hide"/>
|
|
||||||
|
|
||||||
<!-- <field name="handle_code" readonly="1"/> -->
|
|
||||||
<field name="handle_length" optional="hide"/>
|
|
||||||
<field name="handle_diameter" optional="hide"/>
|
|
||||||
<field name="handle_flange_length" optional="hide"/>
|
|
||||||
<field name="handle_flange_diameter" optional="hide"/>
|
|
||||||
<field name="handle_clamping_diameter_min" optional="hide"/>
|
|
||||||
<field name="handle_clamping_diameter_max" optional="hide"/>
|
|
||||||
<field name="handle_jump_accuracy" optional="hide"/>
|
|
||||||
<field name="handle_max_speed" optional="hide"/>
|
|
||||||
<field name="handle_weight" optional="hide"/>
|
|
||||||
<field name="handle_body_accuracy" optional="hide"/>
|
|
||||||
<field name="handle_nut" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"
|
|
||||||
optional="hide"/>
|
|
||||||
<field name="handle_clamping_range" optional="hide"/>
|
|
||||||
<field name="handle_detection_accuracy" optional="hide"/>
|
|
||||||
<field name="handle_detection_hardness" optional="hide"/>
|
|
||||||
<field name="handle_standard_speed" optional="hide"/>
|
|
||||||
|
|
||||||
<!-- <field name="chuck_code" readonly="1"/> -->
|
|
||||||
<field name="chuck_accuracy" optional="hide"/>
|
|
||||||
<field name="chuck_clamping_diameter_min" optional="hide"/>
|
|
||||||
<field name="chuck_clamping_diameter_max" optional="hide"/>
|
|
||||||
<field name="chuck_diameter" optional="hide"/>
|
|
||||||
<field name="chuck_inner_diameter" optional="hide"/>
|
|
||||||
<field name="chuck_height" optional="hide"/>
|
|
||||||
<field name="chuck_nut" optional="hide"/>
|
|
||||||
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"
|
|
||||||
optional="hide"/>
|
|
||||||
<field name="chuck_clamping_range" optional="hide"/>
|
|
||||||
<field name="chuck_feature" optional="hide"/>
|
|
||||||
<field name="image" widget="image" optional="hide"/>
|
|
||||||
|
|
||||||
<field name="number" optional="hide"/>
|
|
||||||
<field name="mrs_materials_model_id" optional="hide"/>
|
|
||||||
<field name="purchase_date" optional="hide"/>
|
|
||||||
<field name="purchase_batch" optional="hide"/>
|
|
||||||
<field name="supplier" optional="hide"/>
|
|
||||||
<field name="warehouse_name" optional="show"/>
|
|
||||||
<field name="warehouse_area" optional="show"/>
|
|
||||||
<field name="warehouse_location" optional="show"/>
|
|
||||||
<field name="three_d_model" widget="many2one" optional="show"/>
|
|
||||||
|
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -128,221 +25,44 @@
|
|||||||
<sheet>
|
<sheet>
|
||||||
<div class="oe_title">
|
<div class="oe_title">
|
||||||
<h1>
|
<h1>
|
||||||
<field name="name"/>
|
<field name="product_id" readonly="1"/>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="mrs_cutting_tool_material_name" invisible="1"/>
|
<field name="name" invisible="1"/>
|
||||||
<field name="sequence" invisible="True"/>
|
<field name="cutting_tool_material_id"/>
|
||||||
<field name="code"/>
|
<field name="cutting_tool_standard_library_id"/>
|
||||||
<field name="mrs_cutting_tool_material_id"/>
|
<field name="specification_id"/>
|
||||||
<field name="mrs_cutting_tool_type_id"/>
|
<field name="number"/>
|
||||||
<field name="mrs_machine_brand_id"/>
|
|
||||||
<!-- <field name="mrs_materials_model_id" attrs="{'invisible':[('cutting_tool_type','=','整体式刀具')]}"/>-->
|
|
||||||
<!-- <field name="mrs_cutting_tool_model_id"/> -->
|
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="image" widget="image"/>
|
<field name="image" widget="image"/>
|
||||||
<field name="three_d_model" widget="many2one"/>
|
</group>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<group col="3">
|
||||||
|
<group>
|
||||||
|
<field name="usable_num"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="have_been_used_num"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="scrap_num"/>
|
||||||
|
</group>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string='刀具库存信息'>
|
<page string="序列号">
|
||||||
<group >
|
<field name="barcode_ids">
|
||||||
<group>
|
<tree>
|
||||||
<field name="number"/>
|
<field name="name"/>
|
||||||
<field name="mrs_materials_model_id"/>
|
<field name="tool_material_status"/>
|
||||||
<field name="purchase_date"/>
|
</tree>
|
||||||
<field name="purchase_batch"/>
|
</field>
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="supplier"/>
|
|
||||||
<field name="warehouse_name"/>
|
|
||||||
<field name="warehouse_area"/>
|
|
||||||
<field name="warehouse_location"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="刀片信息" attrs="{'invisible': [('cutting_tool_type','!=','刀片')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="blade_code" invisible="True"/>
|
|
||||||
<field name="blade_length" string="长度L(mm)"/>
|
|
||||||
<field name="blade_width" string="宽度D(mm)"/>
|
|
||||||
<field name="blade_height" string="高度T(mm)"/>
|
|
||||||
<field name="blade_radius" string="刀尖半径(mm)"/>
|
|
||||||
<field name="blade_hardness" string="加工硬度"/>
|
|
||||||
<field name="blade_accuracy" string="精度等级"/>
|
|
||||||
<field name="blade_coating_material_id" string="涂层材质"/>
|
|
||||||
<!-- <field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags"/>-->
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="blade_top_angle" string="顶角(°)"/>
|
|
||||||
<field name="blade_front_angle" string="前角(°)"/>
|
|
||||||
<field name="blade_rear_angle" string="后角(°)"/>
|
|
||||||
<field name="blade_main_included_angle" string="主偏角(°)"/>
|
|
||||||
<field name="blade_r_angle" string="R角(°)"/>
|
|
||||||
<field name="blade_nut" string="配对螺母(mm)"/>
|
|
||||||
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<!-- -->
|
|
||||||
<page string="整体式刀具信息" attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="integral_code" invisible="True"/>
|
|
||||||
<field name="integral_total_length" string="总长度(mm)"/>
|
|
||||||
<field name="mrs_materials_model_id" string="刀具材质" placeholder="请选择"
|
|
||||||
attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
|
||||||
<field name="integral_hardness" string="刀具硬度(HRC)"/>
|
|
||||||
<field name="integral_blade_length" string="刃部长度(mm)"/>
|
|
||||||
<field name="integral_blade_diameter" string="刃部直径(mm)" class="diameter"/>
|
|
||||||
<field name="integral_blade_type" string="刃部类型"/>
|
|
||||||
<field name="integral_blade_helix_angle" string="刃部螺旋角(°)"/>
|
|
||||||
<field name="integral_blade_number" string="刃数(个)"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="integral_shank_length" string="柄部长度(mm)"/>
|
|
||||||
<field name="integral_shank_diameter" string="柄部直径(mm)" class="diameter"/>
|
|
||||||
<field name="integral_neck_length" string="颈部长度(mm)"/>
|
|
||||||
<field name="integral_neck_diameter" string="颈部直径(mm)" class="diameter"/>
|
|
||||||
<field name="integral_blade_tip_diameter" string="刀尖直径(mm)" class="diameter"/>
|
|
||||||
<field name="integral_blade_tip_taper" string="刀尖锥度(°)"/>
|
|
||||||
<label for="integral_run_out_accuracy_min" string="端跳精度:"/>
|
|
||||||
<div class="test_model">
|
|
||||||
<label for="integral_run_out_accuracy_min" string="最小(min)"/>
|
|
||||||
<field name="integral_run_out_accuracy_min" class="o_address_zip" required="1"
|
|
||||||
options="{'format': false}" attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
|
||||||
<span>(mm)&nbsp;</span>
|
|
||||||
<label for="integral_run_out_accuracy_max" string="最大(max)"/>
|
|
||||||
<field name="integral_run_out_accuracy_max" class="o_address_zip" required="1"
|
|
||||||
options="{'format': false}" attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
|
||||||
<span>(mm)&nbsp;</span>
|
|
||||||
</div>
|
|
||||||
<field name="integral_coarse_medium_fine" string="粗/中/精" placeholder="请选择"
|
|
||||||
attrs="{'required': [('cutting_tool_type','=','整体式刀具')]}"/>
|
|
||||||
<field name="integral_coating_material" string="涂层材质"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
<group string="适合加工方式">
|
|
||||||
<field name="suitable_machining_method_ids" string="" widget="custom_many2many_checkboxes"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<group string="刀尖特征">
|
|
||||||
<field name="blade_tip_characteristics_id" string="" widget="many2one_radio"/>
|
|
||||||
</group>
|
|
||||||
<group string="柄部类型">
|
|
||||||
<field name="handle_type_id" string="" widget="many2one_radio"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<group string="走刀方向">
|
|
||||||
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"/>
|
|
||||||
</group>
|
|
||||||
<group string="适合冷却方式">
|
|
||||||
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="切削速度Vc" attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}">
|
|
||||||
<field name="cutting_speed_ids" string=""/>
|
|
||||||
</page>
|
|
||||||
<page string="每齿走刀量fz" attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}">
|
|
||||||
<field name="feed_per_tooth_ids" string=""/>
|
|
||||||
</page>
|
|
||||||
<page string="刀杆信息" attrs="{'invisible': [('cutting_tool_type','!=','刀杆')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="bar_code" invisible="True"/>
|
|
||||||
<field name="bar_c_diameter" string="C柄径(mm)"/>
|
|
||||||
<field name="bar_total_length" string="L总长(mm)"/>
|
|
||||||
<field name="bar_blade_number" string="刃数"/>
|
|
||||||
<field name="bar_d_diameter" string="D刃径(mm)"/>
|
|
||||||
<field name="bar_scope" string="适用范围"/>
|
|
||||||
<field name="mrs_cutting_tool_model_bar_blade_ids" string="适用刀片型号" widget="many2many_tags"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="bar_wrench" string="配对扳手(mm)"/>
|
|
||||||
<field name="bar_screw" string="配备螺丝(mm)"/>
|
|
||||||
<field name="bar_radius" string="刀尖圆角半径"/>
|
|
||||||
<field name="bar_accuracy" string="精度等级"/>
|
|
||||||
<field name="bar_hardness" string="硬度(°)"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="刀盘信息" attrs="{'invisible': [('cutting_tool_type','!=','刀盘')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="pad_code" invisible="True"/>
|
|
||||||
<field name="pad_c_diameter" string="C柄径(mm)"/>
|
|
||||||
<field name="pad_total_length" string="L总长(mm)"/>
|
|
||||||
<field name="pad_blade_number" string="刃数"/>
|
|
||||||
<field name="pad_d_diameter" string="D刃径(mm)"/>
|
|
||||||
<field name="pad_scope" string="适用范围"/>
|
|
||||||
<field name="mrs_cutting_tool_model_pad_blade_ids" string="适用刀片型号" widget="many2many_tags"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="pad_wrench" string="配对扳手(mm)"/>
|
|
||||||
<field name="pad_screw" string="配备螺丝(mm)"/>
|
|
||||||
<field name="pad_radius" string="刀尖圆角半径"/>
|
|
||||||
<field name="pad_accuracy" string="精度等级"/>
|
|
||||||
<field name="pad_hardness" string="硬度(°)"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="刀柄信息" attrs="{'invisible': [('cutting_tool_type','!=','刀柄')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="handle_code" invisible="True"/>
|
|
||||||
<field name="handle_length" string="柄长L(mm)"/>
|
|
||||||
<field name="handle_diameter" string="直径D(mm)"/>
|
|
||||||
<field name="handle_flange_length" string="法兰柄长L1(mm)"/>
|
|
||||||
<field name="handle_flange_diameter" string="法兰直径D1(mm)"/>
|
|
||||||
<field name="handle_clamping_diameter_min" string="夹持直径min(mm)"/>
|
|
||||||
<field name="handle_clamping_diameter_max" string="夹持直径max(mm)"/>
|
|
||||||
<field name="handle_clamping_range" string="夹持范围(mm)"/>
|
|
||||||
<field name="handle_detection_accuracy" string="检测精度"/>
|
|
||||||
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="handle_jump_accuracy" string="径跳精度"/>
|
|
||||||
<field name="handle_standard_speed" string="标准转速"/>
|
|
||||||
<field name="handle_max_speed" string="最大转速n/min"/>
|
|
||||||
<field name="handle_standard_speed" string=""/>
|
|
||||||
<field name="handle_weight" string="重量(kg)"/>
|
|
||||||
<field name="handle_body_accuracy" string="本体精度(mm)"/>
|
|
||||||
<field name="handle_nut" string="配对螺母(mm)"/>
|
|
||||||
<field name="handle_detection_hardness" string="检测硬度"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="夹头信息" attrs="{'invisible': [('cutting_tool_type','!=','夹头')]}">
|
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="chuck_code" invisible="True"/>
|
|
||||||
<field name="chuck_clamping_diameter_min" string="夹持直径min(mm)"/>
|
|
||||||
<field name="chuck_clamping_diameter_max" string="夹持直径max(mm)"/>
|
|
||||||
<field name="chuck_diameter" string="外径(mm)"/>
|
|
||||||
<field name="chuck_inner_diameter" string="内径(mm)"/>
|
|
||||||
<field name="chuck_feature" string="特性"/>
|
|
||||||
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<field name="chuck_accuracy" string="精度(mm)"/>
|
|
||||||
<field name="chuck_height" string="高度(mm)"/>
|
|
||||||
<field name="chuck_nut" string="配对螺母(mm)"/>
|
|
||||||
<field name="chuck_clamping_range" string="夹持范围(mm)"/>
|
|
||||||
<field name="image" string="图片"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
<group>
|
|
||||||
<field name="cutting_tool_material_name" invisible="True"/>
|
|
||||||
<field name="cutting_tool_type" invisible="True"/>
|
|
||||||
</group>
|
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
@@ -356,9 +76,10 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<search string="刀具物料搜索">
|
<search string="刀具物料搜索">
|
||||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
<field name="cutting_tool_standard_library_id" string="刀具型号搜索"/>
|
||||||
|
<field name="specification_id" string="规格搜索"/>
|
||||||
<searchpanel>
|
<searchpanel>
|
||||||
<field name="mrs_cutting_tool_material_id" icon="fa-building" enable_counters="1"/>
|
<field name="cutting_tool_material_id" icon="fa-building" enable_counters="1"/>
|
||||||
</searchpanel>
|
</searchpanel>
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
Reference in New Issue
Block a user