This commit is contained in:
gsinghpal
2026-04-20 01:16:12 -04:00
parent 8217bb0ff6
commit 54e56ed0e6
39 changed files with 5600 additions and 1131 deletions

View File

@@ -0,0 +1,386 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Recipe: ANODIZE (Sulfuric Anodize — Type II)
Source: Client's Steelhead export (April 2026 transcription).
Anodize is an umbrella workflow covering pre-treatment, the wet
anodize line (alkaline clean → etch → deoxidize → sulfuric anodize
→ hot water seal), and post-treatment (dry, unrack, de-mask).
Tree:
ANODIZE (recipe)
Ready for Solvent Clean (1) (sub-process, auto)
Solvent Clean (1) (operation, customer-visible)
Blasting (sub-process, signoff, auto)
Ready For Blast (operation)
Blast (operation, customer-visible)
Masking (sub-process, signoff, auto)
Ready For Masking (operation)
Masking (operation, customer-visible)
Racking (sub-process, auto)
Ready for Racking (operation)
Racking (operation, customer-visible)
Anodize Line (sub-process, auto)
Ready For Anodize (operation)
Alkaline Clean (Tank A1) (operation, customer-visible)
Primary Rinse (Tank A2)
Secondary Rinse (Tank A4)
Etch (Tank A3) (operation, customer-visible)
Primary Rinse (Tank A4)
Secondary Rinse (Tank A6)
Deoxidize (Tank A5) (operation, customer-visible)
Primary Rinse (Tank A6)
Secondary Rinse (Tank A8)
Sulfuric Anodize (operation, auto)
Sulfuric Anodize Ramp (Tank A9)
Sulfuric Anodize (Tank A9) (operation, signoff, customer-visible)
Primary Rinse (Tank A8)
Secondary Rinse (Tank A12)
Hot Rinse (Tank A17)
Hot Water Seal (Tank A16) (operation, customer-visible)
Primary Rinse (Tank A12)
Hot Rinse (Tank A17) (customer-visible)
Anodize Dry (sub-process)
Unracking (sub-process, auto)
Ready for Unrack (operation)
Unracking (operation, customer-visible)
De-Masking (sub-process, signoff, auto)
Ready for De-Masking (operation)
De-Masking (operation, customer-visible)
-->
<odoo>
<data noupdate="0">
<!-- ========================= ROOT ========================= -->
<record id="recipe_anodize" model="fusion.plating.process.node">
<field name="name">Anodize</field>
<field name="code">ANODIZE</field>
<field name="node_type">recipe</field>
<field name="icon">fa-flask</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 1. Ready for Solvent Clean (1) ========================= -->
<record id="anodize_ready_solvent_clean" model="fusion.plating.process.node">
<field name="name">Ready for Solvent Clean (1)</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-shower</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
</record>
<record id="anodize_solvent_clean" model="fusion.plating.process.node">
<field name="name">Solvent Clean (1)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_ready_solvent_clean"/>
<field name="icon">fa-shower</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 2. Blasting ========================= -->
<record id="anodize_blasting" model="fusion.plating.process.node">
<field name="name">Blasting</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">20</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<record id="anodize_blasting_ready" model="fusion.plating.process.node">
<field name="name">Ready For Blast</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_blasting"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="anodize_blasting_do" model="fusion.plating.process.node">
<field name="name">Blast</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_blasting"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 3. Masking ========================= -->
<record id="anodize_masking" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">30</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<record id="anodize_masking_ready" model="fusion.plating.process.node">
<field name="name">Ready For Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_masking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="anodize_masking_do" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_masking"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 4. Racking ========================= -->
<record id="anodize_racking" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-th</field>
<field name="sequence">40</field>
<field name="auto_complete">True</field>
</record>
<record id="anodize_racking_ready" model="fusion.plating.process.node">
<field name="name">Ready for Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_racking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="anodize_racking_do" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_racking"/>
<field name="icon">fa-th</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 5. Anodize Line (sub-process) ========================= -->
<record id="anodize_line" model="fusion.plating.process.node">
<field name="name">Anodize Line</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-industry</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
</record>
<!-- 5a. Ready For Anodize -->
<record id="anodize_line_ready" model="fusion.plating.process.node">
<field name="name">Ready For Anodize</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<!-- 5b. Alkaline Clean (Tank A-1) -->
<record id="anodize_alkaline_clean" model="fusion.plating.process.node">
<field name="name">Alkaline Clean (Tank A-1)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-shower</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<record id="anodize_alkaline_primary_rinse" model="fusion.plating.process.node">
<field name="name">Primary Rinse (Tank A-2)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_alkaline_clean"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="anodize_alkaline_secondary_rinse" model="fusion.plating.process.node">
<field name="name">Secondary Rinse (Tank A-4)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_alkaline_clean"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 5c. Etch (Tank A-3) -->
<record id="anodize_etch" model="fusion.plating.process.node">
<field name="name">Etch (Tank A-3)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-flask</field>
<field name="sequence">30</field>
<field name="customer_visible">True</field>
</record>
<record id="anodize_etch_primary_rinse" model="fusion.plating.process.node">
<field name="name">Primary Rinse (Tank A-4)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_etch"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="anodize_etch_secondary_rinse" model="fusion.plating.process.node">
<field name="name">Secondary Rinse (Tank A-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_etch"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 5d. Deoxidize (Tank A-5) -->
<record id="anodize_deoxidize" model="fusion.plating.process.node">
<field name="name">Deoxidize (Tank A-5)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-flask</field>
<field name="sequence">40</field>
<field name="customer_visible">True</field>
</record>
<record id="anodize_deoxidize_primary_rinse" model="fusion.plating.process.node">
<field name="name">Primary Rinse (Tank A-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_deoxidize"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="anodize_deoxidize_secondary_rinse" model="fusion.plating.process.node">
<field name="name">Secondary Rinse (Tank A-8)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_deoxidize"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 5e. Sulfuric Anodize (operation container) -->
<record id="anodize_sulfuric" model="fusion.plating.process.node">
<field name="name">Sulfuric Anodize</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-bolt</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
</record>
<record id="anodize_sulfuric_ramp" model="fusion.plating.process.node">
<field name="name">Sulfuric Anodize Ramp (Tank A-9)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_sulfuric"/>
<field name="icon">fa-bolt</field>
<field name="sequence">10</field>
</record>
<record id="anodize_sulfuric_do" model="fusion.plating.process.node">
<field name="name">Sulfuric Anodize (Tank A-9)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_sulfuric"/>
<field name="icon">fa-bolt</field>
<field name="sequence">20</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
</record>
<record id="anodize_sulfuric_do_primary_rinse" model="fusion.plating.process.node">
<field name="name">Primary Rinse (Tank A-8)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_sulfuric_do"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="anodize_sulfuric_do_secondary_rinse" model="fusion.plating.process.node">
<field name="name">Secondary Rinse (Tank A-12)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_sulfuric_do"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<record id="anodize_sulfuric_do_hot_rinse" model="fusion.plating.process.node">
<field name="name">Hot Rinse (Tank A-17)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_sulfuric_do"/>
<field name="icon">fa-thermometer-half</field>
<field name="sequence">30</field>
</record>
<!-- 5f. Hot Water Seal (Tank A-16) -->
<record id="anodize_hot_water_seal" model="fusion.plating.process.node">
<field name="name">Hot Water Seal (Tank A-16)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_line"/>
<field name="icon">fa-tint</field>
<field name="sequence">60</field>
<field name="customer_visible">True</field>
</record>
<record id="anodize_hot_water_seal_primary_rinse" model="fusion.plating.process.node">
<field name="name">Primary Rinse (Tank A-12)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_hot_water_seal"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="anodize_hot_water_seal_hot_rinse" model="fusion.plating.process.node">
<field name="name">Hot Rinse (Tank A-17)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="anodize_hot_water_seal"/>
<field name="icon">fa-thermometer-half</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 6. Anodize Dry ========================= -->
<record id="anodize_dry" model="fusion.plating.process.node">
<field name="name">Anodize Dry</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-sun-o</field>
<field name="sequence">60</field>
</record>
<!-- ========================= 7. Unracking ========================= -->
<record id="anodize_unracking" model="fusion.plating.process.node">
<field name="name">Unracking</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-th</field>
<field name="sequence">70</field>
<field name="auto_complete">True</field>
</record>
<record id="anodize_unracking_ready" model="fusion.plating.process.node">
<field name="name">Ready for Unrack</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_unracking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="anodize_unracking_do" model="fusion.plating.process.node">
<field name="name">Unracking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_unracking"/>
<field name="icon">fa-th</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 8. De-Masking ========================= -->
<record id="anodize_demasking" model="fusion.plating.process.node">
<field name="name">De-Masking</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_anodize"/>
<field name="icon">fa-eraser</field>
<field name="sequence">80</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<record id="anodize_demasking_ready" model="fusion.plating.process.node">
<field name="name">Ready for De-Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_demasking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="anodize_demasking_do" model="fusion.plating.process.node">
<field name="name">De-Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="anodize_demasking"/>
<field name="icon">fa-eraser</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,266 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Recipe: CHEM_CONVERSION (Chemical Conversion Process - Trivalent Chromate)
Source: Client's Steelhead export (April 2026 transcription).
Chemical conversion coating for aluminium (MIL-DTL-5541 Type II /
Trivalent chromate). Optional Nickel Strip lane handles stripping
re-work parts that had previous EN plating.
Tree:
CHEM_CONVERSION (recipe)
Racking (sub-process, auto)
Ready for Racking (operation)
Racking (operation, customer-visible)
Chemical Conversion (sub-process, auto)
Ready For Chemical Conversion (operation)
Drying (operation)
Soak Clean (A-1) (operation, customer-visible)
Rinse (A-2)
Etch (A-3) (operation, customer-visible)
Rinse (A-2)
Rinse (A-4)
Desmutter (A-5) (operation, customer-visible)
Rinse (A-4)
Rinse (A-6)
Trivalent Chromate Conversion (A-14 / A) (operation, signoff, customer-visible)
Rinse (A-15)
Plug The Threaded Holes (sub-process, signoff)
Nickel Strip - Aluminum Line (sub-process, signoff, auto)
Strip Process - AL (operation, auto)
Nitric Acid (A-13 / SP-10)
Final Rinse (A-14 / SP-11)
Drying (operation)
Post Stripping Inspection (operation, auto)
Ready for Post Stripping Inspection
Post Stripping Inspection (customer-visible)
-->
<odoo>
<data noupdate="0">
<!-- ========================= ROOT ========================= -->
<record id="recipe_chem_conversion" model="fusion.plating.process.node">
<field name="name">Chemical Conversion Process</field>
<field name="code">CHEM_CONVERSION</field>
<field name="node_type">recipe</field>
<field name="icon">fa-flask</field>
<field name="sequence">60</field>
<field name="auto_complete">True</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 1. Racking ========================= -->
<record id="cc_racking" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_chem_conversion"/>
<field name="icon">fa-th</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
</record>
<record id="cc_racking_ready" model="fusion.plating.process.node">
<field name="name">Ready for Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_racking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="cc_racking_do" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_racking"/>
<field name="icon">fa-th</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 2. Chemical Conversion (sub-process) ========================= -->
<record id="cc_chem_conversion" model="fusion.plating.process.node">
<field name="name">Chemical Conversion</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_chem_conversion"/>
<field name="icon">fa-industry</field>
<field name="sequence">20</field>
<field name="auto_complete">True</field>
</record>
<record id="cc_chem_ready" model="fusion.plating.process.node">
<field name="name">Ready For Chemical Conversion</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="cc_chem_drying" model="fusion.plating.process.node">
<field name="name">Drying</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-sun-o</field>
<field name="sequence">20</field>
</record>
<!-- 2a. Soak Clean (A-1) -->
<record id="cc_soak_clean" model="fusion.plating.process.node">
<field name="name">Soak Clean (A-1)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-shower</field>
<field name="sequence">30</field>
<field name="customer_visible">True</field>
</record>
<record id="cc_soak_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (A-2)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_soak_clean"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<!-- 2b. Etch (A-3) -->
<record id="cc_etch" model="fusion.plating.process.node">
<field name="name">Etch (A-3)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-flask</field>
<field name="sequence">40</field>
<field name="customer_visible">True</field>
</record>
<record id="cc_etch_rinse1" model="fusion.plating.process.node">
<field name="name">Rinse (A-2)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_etch"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="cc_etch_rinse2" model="fusion.plating.process.node">
<field name="name">Rinse (A-4)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_etch"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 2c. Desmutter (A-5) -->
<record id="cc_desmutter" model="fusion.plating.process.node">
<field name="name">Desmutter (A-5)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-flask</field>
<field name="sequence">50</field>
<field name="customer_visible">True</field>
</record>
<record id="cc_desmutter_rinse1" model="fusion.plating.process.node">
<field name="name">Rinse (A-4)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_desmutter"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<record id="cc_desmutter_rinse2" model="fusion.plating.process.node">
<field name="name">Rinse (A-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_desmutter"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 2d. Trivalent Chromate Conversion (A-14 / A) -->
<record id="cc_trivalent" model="fusion.plating.process.node">
<field name="name">Trivalent Chromate Conversion (A-14 / A)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_chem_conversion"/>
<field name="icon">fa-diamond</field>
<field name="sequence">60</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
</record>
<record id="cc_trivalent_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (A-15)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_trivalent"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
</record>
<!-- ========================= 3. Plug The Threaded Holes ========================= -->
<record id="cc_plug_threaded" model="fusion.plating.process.node">
<field name="name">Plug The Threaded Holes</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_chem_conversion"/>
<field name="icon">fa-shield</field>
<field name="sequence">30</field>
<field name="requires_signoff">True</field>
</record>
<!-- ========================= 4. Nickel Strip - Aluminum Line ========================= -->
<record id="cc_ni_strip" model="fusion.plating.process.node">
<field name="name">Nickel Strip - Aluminum Line</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_chem_conversion"/>
<field name="icon">fa-eraser</field>
<field name="sequence">40</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
</record>
<!-- 4a. Strip Process - AL -->
<record id="cc_ni_strip_process" model="fusion.plating.process.node">
<field name="name">Strip Process - AL</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_ni_strip"/>
<field name="icon">fa-flask</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
</record>
<record id="cc_ni_strip_nitric" model="fusion.plating.process.node">
<field name="name">Nitric Acid (A-13 / SP-10)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_ni_strip_process"/>
<field name="icon">fa-flask</field>
<field name="sequence">10</field>
</record>
<record id="cc_ni_strip_final_rinse" model="fusion.plating.process.node">
<field name="name">Final Rinse (A-14 / SP-11)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_ni_strip_process"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
</record>
<!-- 4b. Drying -->
<record id="cc_ni_strip_drying" model="fusion.plating.process.node">
<field name="name">Drying</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_ni_strip"/>
<field name="icon">fa-sun-o</field>
<field name="sequence">20</field>
</record>
<!-- 4c. Post Stripping Inspection -->
<record id="cc_ni_strip_inspect" model="fusion.plating.process.node">
<field name="name">Post Stripping Inspection</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="cc_ni_strip"/>
<field name="icon">fa-search</field>
<field name="sequence">30</field>
<field name="auto_complete">True</field>
</record>
<record id="cc_ni_strip_inspect_ready" model="fusion.plating.process.node">
<field name="name">Ready for Post Stripping Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_ni_strip_inspect"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
</record>
<record id="cc_ni_strip_inspect_do" model="fusion.plating.process.node">
<field name="name">Post Stripping Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="cc_ni_strip_inspect"/>
<field name="icon">fa-eye</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,577 @@
<?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>

View File

@@ -0,0 +1,469 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Recipe: ENP-STEEL-BASIC (Electroless Nickel Plating - Steel Line)
Source: Client's Steelhead export (April 2026 transcription).
Tree:
ENP-STEEL-BASIC (recipe)
├── Blasting (op, signoff, auto)
│ ├── Ready For Blast
│ └── Blast (signoff, customer-visible)
├── Masking (op, signoff, auto)
│ ├── Ready For Masking
│ └── Masking (customer-visible)
├── Racking (op, auto)
│ ├── Ready for Racking
│ └── Racking (customer-visible)
├── Ready For Steel Line (op)
├── Steel Line (sub-process)
│ ├── Cleaner (op, auto)
│ │ ├── Soak Clean (S-3) (customer-visible)
│ │ ├── Electroclean (S-3)
│ │ └── Primary Rinse (S-4) (customer-visible)
│ ├── Acid Dip (S-5) (op, customer-visible)
│ │ ├── Primary Rinse (S-6) (customer-visible)
│ │ └── Secondary Rinse (S-8) (customer-visible)
│ ├── Nickel Strike (S-7 / SP-5) (op, signoff, customer-visible)
│ │ └── Rinse (S-8 / SP-6) (customer-visible)
│ ├── E-Nickel Plate (Mid Phos)(S-9) (op, opt-out, customer-visible)
│ │ ├── Primary Rinse (S-11) (customer-visible)
│ │ └── Hot Rinse (S-13) (customer-visible)
│ ├── E-Nickel Plate (S-10) (op, signoff, customer-visible)
│ │ ├── Primary Rinse (S-11) (customer-visible)
│ │ └── Hot Rinse (S-13) (customer-visible)
│ ├── Hot Water Porosity (A-15) (op, signoff, customer-visible)
│ └── Dry (op, customer-visible)
├── Oven baking (op, signoff, auto)
│ ├── 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)
└── Post Plate Inspection (op, auto)
├── Ready For Post Plate Inspection
└── Post Plate Inspection (customer-visible)
-->
<odoo>
<data noupdate="0">
<!-- ========================= ROOT ========================= -->
<record id="recipe_enp_steel_basic" model="fusion.plating.process.node">
<field name="name">ENP-STEEL-BASIC</field>
<field name="code">ENP_STEEL_BASIC</field>
<field name="node_type">recipe</field>
<field name="icon">fa-flask</field>
<field name="sequence">20</field>
<field name="auto_complete">True</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 1. Blasting ========================= -->
<record id="enp_sb_blasting" model="fusion.plating.process.node">
<field name="name">Blasting</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_steel_basic"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sb_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_sb_blasting"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_blasting_do" model="fusion.plating.process.node">
<field name="name">Blast</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_blasting"/>
<field name="icon">fa-bullseye</field>
<field name="sequence">20</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 2. Masking ========================= -->
<record id="enp_sb_masking" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_steel_basic"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">20</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sb_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_sb_masking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_masking_do" model="fusion.plating.process.node">
<field name="name">Masking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_masking"/>
<field name="icon">fa-paint-brush</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 3. Racking ========================= -->
<record id="enp_sb_racking" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_steel_basic"/>
<field name="icon">fa-th</field>
<field name="sequence">30</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sb_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_sb_racking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_racking_do" model="fusion.plating.process.node">
<field name="name">Racking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_racking"/>
<field name="icon">fa-th</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 4. Ready For Steel Line ========================= -->
<record id="enp_sb_ready_steel_line" model="fusion.plating.process.node">
<field name="name">Ready For Steel Line</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_enp_steel_basic"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">40</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 5. Steel Line (sub-process) ========================= -->
<record id="enp_sb_steel_line" model="fusion.plating.process.node">
<field name="name">Steel Line</field>
<field name="node_type">sub_process</field>
<field name="parent_id" ref="recipe_enp_steel_basic"/>
<field name="icon">fa-industry</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
</record>
<!-- 5a. Cleaner -->
<record id="enp_sb_sl_cleaner" model="fusion.plating.process.node">
<field name="name">Cleaner</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-shower</field>
<field name="sequence">10</field>
<field name="auto_complete">True</field>
</record>
<record id="enp_sb_sl_soak_clean" model="fusion.plating.process.node">
<field name="name">Soak Clean (S-3)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_cleaner"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sb_sl_electroclean" model="fusion.plating.process.node">
<field name="name">Electroclean (S-3)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_cleaner"/>
<field name="icon">fa-bolt</field>
<field name="sequence">20</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_sl_primary_rinse_s4" model="fusion.plating.process.node">
<field name="name">Primary Rinse (S-4)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_cleaner"/>
<field name="icon">fa-tint</field>
<field name="sequence">30</field>
<field name="customer_visible">True</field>
</record>
<!-- 5b. Acid Dip (S-5) -->
<record id="enp_sb_sl_acid_dip" model="fusion.plating.process.node">
<field name="name">Acid Dip (S-5)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-flask</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sb_sl_acid_rinse_s6" model="fusion.plating.process.node">
<field name="name">Primary Rinse (S-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_acid_dip"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sb_sl_acid_rinse_s8" model="fusion.plating.process.node">
<field name="name">Secondary Rinse (S-8)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_acid_dip"/>
<field name="icon">fa-tint</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- 5c. Nickel Strike (S-7 / SP-5) -->
<record id="enp_sb_sl_nickel_strike" model="fusion.plating.process.node">
<field name="name">Nickel Strike (S-7 / SP-5)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_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_sb_sl_strike_rinse" model="fusion.plating.process.node">
<field name="name">Rinse (S-8 / SP-6)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_nickel_strike"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<!-- 5d. E-Nickel Plate (Mid Phos)(S-9) — opt-out (chosen per job) -->
<record id="enp_sb_sl_enp_mid_phos" model="fusion.plating.process.node">
<field name="name">E-Nickel Plate (Mid Phos)(S-9)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-diamond</field>
<field name="sequence">40</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_sb_sl_enp_mp_rinse_s11" model="fusion.plating.process.node">
<field name="name">Primary Rinse (S-11)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_enp_mid_phos"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sb_sl_enp_mp_hot_rinse" model="fusion.plating.process.node">
<field name="name">Hot Rinse (S-13)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_enp_mid_phos"/>
<field name="icon">fa-thermometer-half</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- 5e. E-Nickel Plate (S-10) — primary plating -->
<record id="enp_sb_sl_enp_s10" model="fusion.plating.process.node">
<field name="name">E-Nickel Plate (S-10)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-diamond</field>
<field name="sequence">50</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sb_sl_enp_s10_rinse_s11" model="fusion.plating.process.node">
<field name="name">Primary Rinse (S-11)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_enp_s10"/>
<field name="icon">fa-tint</field>
<field name="sequence">10</field>
<field name="customer_visible">True</field>
</record>
<record id="enp_sb_sl_enp_s10_hot_rinse" model="fusion.plating.process.node">
<field name="name">Hot Rinse (S-13)</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_sl_enp_s10"/>
<field name="icon">fa-thermometer-half</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- 5f. Hot Water Porosity (A-15) -->
<record id="enp_sb_sl_hot_water_porosity" model="fusion.plating.process.node">
<field name="name">Hot Water Porosity (A-15)</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-tint</field>
<field name="sequence">60</field>
<field name="requires_signoff">True</field>
<field name="customer_visible">True</field>
</record>
<!-- 5g. Dry -->
<record id="enp_sb_sl_dry" model="fusion.plating.process.node">
<field name="name">Dry</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="enp_sb_steel_line"/>
<field name="icon">fa-sun-o</field>
<field name="sequence">70</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 6. 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_sb_oven_baking" 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_steel_basic"/>
<field name="icon">fa-fire</field>
<field name="sequence">60</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">False</field>
</record>
<record id="enp_sb_oven_baking_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_sb_oven_baking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_oven_baking_do" model="fusion.plating.process.node">
<field name="name">Bake</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_oven_baking"/>
<field name="icon">fa-fire</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 7. De-racking ========================= -->
<record id="enp_sb_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_steel_basic"/>
<field name="icon">fa-th</field>
<field name="sequence">70</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sb_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_sb_deracking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_deracking_do" model="fusion.plating.process.node">
<field name="name">DeRacking</field>
<field name="node_type">step</field>
<field name="parent_id" ref="enp_sb_deracking"/>
<field name="icon">fa-hand-paper-o</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 8. De-Masking ========================= -->
<record id="enp_sb_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_steel_basic"/>
<field name="icon">fa-eraser</field>
<field name="sequence">80</field>
<field name="auto_complete">True</field>
<field name="requires_signoff">True</field>
<field name="is_manual">True</field>
</record>
<record id="enp_sb_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_sb_demasking"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_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_sb_demasking"/>
<field name="icon">fa-eraser</field>
<field name="sequence">20</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 9. Oven bake (Post de-rack) ========================= -->
<record id="enp_sb_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_steel_basic"/>
<field name="icon">fa-fire</field>
<field name="sequence">90</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_sb_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_sb_oven_post"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_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_sb_oven_post"/>
<field name="icon">fa-fire</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 10. Post Plate Inspection ========================= -->
<record id="enp_sb_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_steel_basic"/>
<field name="icon">fa-search</field>
<field name="sequence">100</field>
<field name="auto_complete">True</field>
</record>
<record id="enp_sb_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_sb_post_inspection"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="enp_sb_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_sb_post_inspection"/>
<field name="icon">fa-search</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Recipe: GENERAL_PROCESSING (General Processing — common workflow umbrella)
Source: Client's Steelhead export (April 2026 transcription).
This is the "envelope" workflow that sits AROUND every job: contract
review (sales/quoting checkpoint), incoming inspection, scheduling,
final inspection, and shipping. Specific plating recipes (ENP-STEEL,
ENP-SP, ENP-ALUM, etc.) handle the technical processing in between.
Steelhead-only features that did NOT migrate (we don't have these
wired up yet — let me know if you want them):
- "Default Lead Time" on the recipe
- "Product" linkage from the recipe to a product/service record
- "Contract Review Users" — list of users who must approve
contract review before the job can advance
- Treatment Groups / "Use Price Builders" hook into pricing
Tree:
GENERAL_PROCESSING (recipe)
├── Contract Review (op, opt-out, customer-visible)
├── Incoming Inspection (op, auto)
│ ├── Ready for Incoming Inspection
│ └── Incoming Inspection (customer-visible)
├── Scheduling (op)
├── Final Inspection / Packaging (op, auto)
│ ├── Ready For Final Inspection / Packaging
│ └── Final Inspection / Packaging (customer-visible)
└── Shipping (op, auto)
├── Ready For Shipping
├── Packing Slip Created
└── Shipped (customer-visible)
-->
<odoo>
<data noupdate="0">
<!-- ========================= ROOT ========================= -->
<record id="recipe_general_processing" model="fusion.plating.process.node">
<field name="name">General Processing</field>
<field name="code">GENERAL_PROCESSING</field>
<field name="node_type">recipe</field>
<field name="icon">fa-sitemap</field>
<field name="sequence">40</field>
<field name="auto_complete">True</field>
<field name="customer_visible">False</field>
</record>
<!-- ========================= 1. Contract Review ========================= -->
<!-- Sales / quoting checkpoint. Marked opt-out so it can be
skipped on repeat orders where contract terms haven't
changed (per Steelhead's setup). -->
<record id="gp_contract_review" model="fusion.plating.process.node">
<field name="name">Contract Review</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_general_processing"/>
<field name="icon">fa-check-circle</field>
<field name="sequence">10</field>
<field name="opt_in_out">opt_out</field>
<field name="customer_visible">True</field>
<field name="is_manual">True</field>
</record>
<!-- ========================= 2. Incoming Inspection ========================= -->
<record id="gp_incoming_inspection" model="fusion.plating.process.node">
<field name="name">Incoming Inspection</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_general_processing"/>
<field name="icon">fa-search</field>
<field name="sequence">20</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="gp_incoming_ready" model="fusion.plating.process.node">
<field name="name">Ready for Incoming Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_incoming_inspection"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="gp_incoming_do" model="fusion.plating.process.node">
<field name="name">Incoming Inspection</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_incoming_inspection"/>
<field name="icon">fa-eye</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 3. Scheduling ========================= -->
<record id="gp_scheduling" model="fusion.plating.process.node">
<field name="name">Scheduling</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_general_processing"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">30</field>
<field name="customer_visible">False</field>
<field name="is_manual">True</field>
</record>
<!-- ========================= 4. Final Inspection / Packaging ========================= -->
<record id="gp_final_inspection" model="fusion.plating.process.node">
<field name="name">Final Inspection / Packaging</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_general_processing"/>
<field name="icon">fa-cube</field>
<field name="sequence">40</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="gp_final_ready" model="fusion.plating.process.node">
<field name="name">Ready For Final Inspection / Packaging</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_final_inspection"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="gp_final_do" model="fusion.plating.process.node">
<field name="name">Final Inspection / Packaging</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_final_inspection"/>
<field name="icon">fa-cube</field>
<field name="sequence">20</field>
<field name="customer_visible">True</field>
</record>
<!-- ========================= 5. Shipping ========================= -->
<!-- Steelhead shows a truck icon here; our icon list doesn't
include fa-truck so we fall back to fa-cube (the parts
leaving the door). -->
<record id="gp_shipping" model="fusion.plating.process.node">
<field name="name">Shipping</field>
<field name="node_type">operation</field>
<field name="parent_id" ref="recipe_general_processing"/>
<field name="icon">fa-cube</field>
<field name="sequence">50</field>
<field name="auto_complete">True</field>
<field name="is_manual">True</field>
</record>
<record id="gp_shipping_ready" model="fusion.plating.process.node">
<field name="name">Ready For Shipping</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_shipping"/>
<field name="icon">fa-clock-o</field>
<field name="sequence">10</field>
<field name="customer_visible">False</field>
</record>
<record id="gp_shipping_packing_slip" model="fusion.plating.process.node">
<field name="name">Packing Slip Created</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_shipping"/>
<field name="icon">fa-cube</field>
<field name="sequence">20</field>
<field name="customer_visible">False</field>
</record>
<record id="gp_shipping_shipped" model="fusion.plating.process.node">
<field name="name">Shipped</field>
<field name="node_type">step</field>
<field name="parent_id" ref="gp_shipping"/>
<field name="icon">fa-cube</field>
<field name="sequence">30</field>
<field name="customer_visible">True</field>
</record>
</data>
</odoo>