Files
Odoo-Modules/fusion_plating/fusion_plating/data/fp_recipe_enp_sp.xml
gsinghpal 54e56ed0e6 changes
2026-04-20 01:16:12 -04:00

578 lines
28 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Recipe: ENP-SP (Electroless Nickel Plating - Special Process)
Source: Client's Steelhead export (April 2026 transcription).
Notes:
- Steelhead allows a node to appear at multiple positions in the
same recipe ("occurrence #2"). Our parent_id model is strict
single-parent so we duplicate the node — see "Oven baking"
appearing first as #1 and again later in the flow.
- The Electroless Nickel Plating sub-process holds the wet line;
everything inside it is a separate plating step (cleaner →
activation → strike → plate → drying).
Tree:
ENP-SP (recipe)
├── Oven baking (op, signoff, auto) — first oven cycle
│ ├── Ready for bake
│ └── Bake (customer-visible)
├── Adhesion Test Coupon (op, opt-out)
├── Blasting (op, signoff, auto)
│ ├── Ready For Blast
│ └── Blast (customer-visible)
├── Masking (op, signoff, auto)
│ ├── Ready For Masking
│ └── Masking (customer-visible)
├── Racking (op, auto)
│ ├── Ready for racking
│ └── Racking (customer-visible)
├── Ready For Plating (op)
├── Electroless Nickel Plating (sub-process, auto)
│ ├── Soak Clean (SP-1)
│ │ ├── ElectroClean (SP-1)
│ │ └── Rinse (SP-2)
│ ├── HCl Activation (SP-3)
│ │ └── Rinse (SP-6)
│ ├── Woods Nickel Strike (SP-5) (signoff)
│ │ └── Rinse (SP-6)
│ ├── E-Nickel Plate (Mid-Phos) (SP-7) (signoff)
│ │ └── Rinse (SP-11)
│ ├── E-Nickel Plate (Hi-Phos) (SP-8) (opt-out)
│ │ └── Rinse (SP-11)
│ └── Drying
├── Oven baking (op, signoff, auto) — second oven cycle (#2)
│ ├── Ready for bake
│ └── Bake (customer-visible)
├── De-racking (op, auto)
│ ├── Ready For DeRacking
│ └── DeRacking (customer-visible)
├── De-Masking (op, signoff, auto)
│ ├── Ready for De-Masking
│ └── De-Masking
├── Oven bake (Post de-rack) (op, opt-out, auto)
│ ├── Ready for bake
│ └── Bake (customer-visible)
├── Adhesion Testing (op, opt-out)
├── Post Plate Inspection (op, auto)
│ ├── Ready For Post Plate Inspection
│ └── Post Plate Inspection (customer-visible)
├── Salt Spray Masking (op, signoff, auto)
│ ├── Ready for Salt Spray Masking
│ └── Salt Spray Masking
├── Corrosion Testing (op, signoff, auto)
│ ├── Corrosion Testing
│ └── Corrosion Test Inspection
└── Lab Testing (op, signoff, auto)
├── Lab Testing
└── Lab Testing Results
-->
<odoo>
<data noupdate="0">
<!-- ========================= ROOT ========================= -->
<record id="recipe_enp_sp" model="fusion.plating.process.node">
<field name="name">ENP-SP</field>
<field name="code">ENP_SP_BASIC</field>
<field name="node_type">recipe</field>
<field name="icon">fa-flask</field>
<field name="sequence">30</field>
<field name="auto_complete">True</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 1. Pre-plate Bake (Stress Relief) =========================
Done before plating on high-strength steel to relieve residual
machining/forming stresses (ASTM B850 / AMS 2759). -->
<record id="enp_sp_oven_baking_1" model="fusion.plating.process.node">
<field name="name">Pre-plate Bake (Stress Relief)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-fire</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sp_oven_baking_1_ready" model="fusion.plating.process.node">
<field name="name">Ready for bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_baking_1"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_oven_baking_1_do" model="fusion.plating.process.node">
<field name="name">Bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_baking_1"/>
<field name="icon">fa-fire</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 2. Adhesion Test Coupon ========================= -->
<record id="enp_sp_adhesion_coupon" model="fusion.plating.process.node">
<field name="name">Adhesion Test Coupon</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-cube</field>
<field name="sequence">20</field>
<field name="opt_in_out">opt_out</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 3. Blasting ========================= -->
<record id="enp_sp_blasting" model="fusion.plating.process.node">
<field name="name">Blasting</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">30</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_blasting_ready" model="fusion.plating.process.node">
<field name="name">Ready For Blast</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_blasting"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_blasting_do" model="fusion.plating.process.node">
<field name="name">Blast</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_blasting"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 4. Masking ========================= -->
<record id="enp_sp_masking" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">40</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_masking_ready" model="fusion.plating.process.node">
<field name="name">Ready For Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_masking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_masking_do" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_masking"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 5. Racking ========================= -->
<record id="enp_sp_racking" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-th</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_racking_ready" model="fusion.plating.process.node">
<field name="name">Ready for racking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_racking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_racking_do" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_racking"/>
<field name="icon">fa-th</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 6. Ready For Plating ========================= -->
<record id="enp_sp_ready_plating" model="fusion.plating.process.node">
<field name="name">Ready For Plating</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">60</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 7. Electroless Nickel Plating (sub-process) ========================= -->
<record id="enp_sp_enp_line" model="fusion.plating.process.node">
<field name="name">Electroless Nickel Plating</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-industry</field>
<field name="sequence">70</field>
<field name="auto_complete">True</field>
</record>
<!-- 7a. Soak Clean (SP-1) -->
<record id="enp_sp_soak_clean" model="fusion.plating.process.node">
<field name="name">Soak Clean (SP-1)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-shower</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sp_electroclean" model="fusion.plating.process.node">
<field name="name">ElectroClean (SP-1)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_soak_clean"/>
<field name="icon">fa-bolt</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_soak_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (SP-2)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_soak_clean"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- 7b. HCl Activation (SP-3) -->
<record id="enp_sp_hcl_activation" model="fusion.plating.process.node">
<field name="name">HCl Activation (SP-3)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-flask</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sp_hcl_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (SP-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_hcl_activation"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- 7c. Woods Nickel Strike (SP-5) -->
<record id="enp_sp_woods_strike" model="fusion.plating.process.node">
<field name="name">Woods Nickel Strike (SP-5)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-bolt</field>
<field name="sequence">30</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sp_woods_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (SP-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_woods_strike"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- 7d. E-Nickel Plate (Mid-Phos) (SP-7) -->
<record id="enp_sp_enp_mid_phos" model="fusion.plating.process.node">
<field name="name">E-Nickel Plate (Mid-Phos) (SP-7)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-diamond</field>
<field name="sequence">40</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sp_enp_mp_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (SP-11)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_enp_mid_phos"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- 7e. E-Nickel Plate (Hi-Phos) (SP-8) — opt-out -->
<record id="enp_sp_enp_hi_phos" model="fusion.plating.process.node">
<field name="name">E-Nickel Plate (Hi-Phos) (SP-8)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-diamond</field>
<field name="sequence">50</field>
<field name="opt_in_out">opt_out</field>
<field name="customer_visible">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sp_enp_hp_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (SP-11)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_enp_hi_phos"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- 7f. Drying -->
<record id="enp_sp_drying" model="fusion.plating.process.node">
<field name="name">Drying</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sp_enp_line"/>
<field name="icon">fa-sun-o</field>
<field name="sequence">60</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 8. Post-plate Bake (H2 Embrittlement Relief) =========================
Drives out hydrogen absorbed during plating. Must START within
~4 hours of plate exit (ASTM B850 / AMS 2759). Parts still on
rack — de-rack happens after this bake. -->
<record id="enp_sp_oven_baking_2" model="fusion.plating.process.node">
<field name="name">Post-plate Bake (H2 Embrittlement Relief)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-fire</field>
<field name="sequence">80</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sp_oven_baking_2_ready" model="fusion.plating.process.node">
<field name="name">Ready for bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_baking_2"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_oven_baking_2_do" model="fusion.plating.process.node">
<field name="name">Bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_baking_2"/>
<field name="icon">fa-fire</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 9. De-racking ========================= -->
<record id="enp_sp_deracking" model="fusion.plating.process.node">
<field name="name">De-racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-th</field>
<field name="sequence">90</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_deracking_ready" model="fusion.plating.process.node">
<field name="name">Ready For DeRacking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_deracking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_deracking_do" model="fusion.plating.process.node">
<field name="name">DeRacking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_deracking"/>
<field name="icon">fa-hand-paper-o</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 10. De-Masking ========================= -->
<record id="enp_sp_demasking" model="fusion.plating.process.node">
<field name="name">De-Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-eraser</field>
<field name="sequence">100</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_demasking_ready" model="fusion.plating.process.node">
<field name="name">Ready for De-Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_demasking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_demasking_do" model="fusion.plating.process.node">
<field name="name">De-Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_demasking"/>
<field name="icon">fa-eraser</field>
<field name="sequence">20</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 11. Oven bake (Post de-rack) ========================= -->
<record id="enp_sp_oven_post" model="fusion.plating.process.node">
<field name="name">Oven bake (Post de-rack)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-fire</field>
<field name="sequence">110</field>
<field name="auto_complete">True</field>
<field name="opt_in_out">opt_out</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sp_oven_post_ready" model="fusion.plating.process.node">
<field name="name">Ready for bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_post"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_oven_post_do" model="fusion.plating.process.node">
<field name="name">Bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_oven_post"/>
<field name="icon">fa-fire</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 12. Adhesion Testing ========================= -->
<record id="enp_sp_adhesion_testing" model="fusion.plating.process.node">
<field name="name">Adhesion Testing</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-check-circle</field>
<field name="sequence">120</field>
<field name="opt_in_out">opt_out</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 13. Post Plate Inspection ========================= -->
<record id="enp_sp_post_inspection" model="fusion.plating.process.node">
<field name="name">Post Plate Inspection</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-search</field>
<field name="sequence">130</field>
<field name="auto_complete">True</field>
</record>
<record id="enp_sp_post_inspection_ready" model="fusion.plating.process.node">
<field name="name">Ready For Post Plate Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_post_inspection"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_post_inspection_do" model="fusion.plating.process.node">
<field name="name">Post Plate Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_post_inspection"/>
<field name="icon">fa-search</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 14. Salt Spray Masking ========================= -->
<record id="enp_sp_salt_masking" model="fusion.plating.process.node">
<field name="name">Salt Spray Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">140</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sp_salt_masking_ready" model="fusion.plating.process.node">
<field name="name">Ready for Salt Spray Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_salt_masking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sp_salt_masking_do" model="fusion.plating.process.node">
<field name="name">Salt Spray Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_salt_masking"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">20</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 15. Corrosion Testing ========================= -->
<record id="enp_sp_corrosion_testing" model="fusion.plating.process.node">
<field name="name">Corrosion Testing</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-search</field>
<field name="sequence">150</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<record id="enp_sp_corrosion_test_do" model="fusion.plating.process.node">
<field name="name">Corrosion Testing</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_corrosion_testing"/>
<field name="icon">fa-flask</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sp_corrosion_test_inspect" model="fusion.plating.process.node">
<field name="name">Corrosion Test Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_corrosion_testing"/>
<field name="icon">fa-search</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 16. Lab Testing ========================= -->
<record id="enp_sp_lab_testing" model="fusion.plating.process.node">
<field name="name">Lab Testing</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_sp"/>
<field name="icon">fa-flask</field>
<field name="sequence">160</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<record id="enp_sp_lab_test_do" model="fusion.plating.process.node">
<field name="name">Lab Testing</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_lab_testing"/>
<field name="icon">fa-flask</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sp_lab_test_results" model="fusion.plating.process.node">
<field name="name">Lab Testing Results</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sp_lab_testing"/>
<field name="icon">fa-search</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
</data>
</odoo>