feat(configurator): menu reorder, currency/unit display polish, line description templates

Three UX improvements:

1. Sales menu reordered — New Quote (seq 1) is now the first entry,
   followed by New Direct Order (5), Quotations (10), Sale Orders (20).
   "New Quote" moved out of Configurator submenu into Sales so both
   quote-creation paths live side-by-side.

2. Currency + unit display audit:
   - fp.customer.price.list.unit_price flipped from Float to Monetary
     with currency_field='currency_id' — list view now shows $ symbol
     and a Total sum row
   - fp.direct.order.wizard.unit_price flipped to Monetary, added
     currency_id field and computed line_subtotal ($)
   - % suffix appended to deposit_percent and progress_initial_percent
     in the wizard
   - Unit suffixes added where missing: bake_window.quantity (pcs),
     window_hours (h), bake_temp (°F), bake_duration_hours (h);
     bath.volume (L), bath.mto_count (turnovers); tank.volume shows
     volume_uom inline

3. Saved line descriptions (new feature):
   - New model fp.sale.description.template with name, description,
     tag (standard/masking/rework/aerospace/nuclear/packaging/other),
     optional coating_config_id and partner_id, usage_count bumped
     on each use
   - List + form + search views; new "Line Descriptions" menu under
     Configurator
   - 8 starter templates seeded (noupdate=1): ENP Standard/Aerospace/
     Nuclear, masking variants, rework, packaging, delicate handling
   - Direct Order Wizard gets a template picker (searchable Many2one)
     + editable paragraph; picking a template copies text to the
     editable field, user tweaks freely, tweaked text lands on the
     SO line as "<header>\n\n<description>"
   - Auto-suggests template on coating+partner match if nothing
     picked yet

Smoke-tested end-to-end: picked aerospace template, tweaked text,
confirmed wizard → SO S00030 has full description on line, usage
counter bumped from 0 to 1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-17 18:43:58 -04:00
parent b09538b4e2
commit b85642816f
14 changed files with 406 additions and 38 deletions

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
Eight starter description templates covering the common things
estimators write on SO lines. noupdate="1" so customers can edit
freely without upgrades clobbering their changes.
-->
<odoo noupdate="1">
<record id="desc_tpl_enp_standard" model="fp.sale.description.template">
<field name="name">ENP — Standard (AMS 2404 Class I)</field>
<field name="tag">standard</field>
<field name="sequence">10</field>
<field name="description">Electroless nickel plating per AMS 2404, Class I, Type II (medium phosphorus, 69%). Plate to 0.0005" thickness, heat-treat 4 hours @ 375°F for hydrogen embrittlement relief. Parts to be cleaned, deoxidised and activated prior to plating. All threaded holes &amp; tapped features to remain unplated.</field>
</record>
<record id="desc_tpl_enp_aerospace" model="fp.sale.description.template">
<field name="name">ENP — Aerospace (AMS 2404 w/ CoC)</field>
<field name="tag">aerospace</field>
<field name="sequence">20</field>
<field name="description">Electroless nickel plating per AMS 2404, Class I, Type II, Grade A. Plate to customer-specified thickness. Post-bake 4 hours @ 375°F min. Certificate of Conformance and thickness readings (3 points minimum per lot) required. Traceability to raw material heat lot. Nadcap-accredited process.</field>
</record>
<record id="desc_tpl_enp_nuclear" model="fp.sale.description.template">
<field name="name">ENP — Nuclear (CSA N299 / 10CFR50 App B)</field>
<field name="tag">nuclear</field>
<field name="sequence">25</field>
<field name="description">Electroless nickel plating under CSA N299 / 10CFR50 Appendix B quality program. Full material traceability, dedicated tooling, independent QA inspection. Certificate package includes thickness, adhesion tape test, visual inspection sign-off, and chemistry log for the processing shift.</field>
</record>
<record id="desc_tpl_masking_threaded" model="fp.sale.description.template">
<field name="name">Masking — Threaded &amp; Tapped Features</field>
<field name="tag">masking</field>
<field name="sequence">30</field>
<field name="description">Selective plating. Mask all threaded holes, tapped features and mating surfaces per customer drawing. Non-plated areas to be free of residue. Remove masking prior to shipment. Any masking residue is cause for rejection.</field>
</record>
<record id="desc_tpl_masking_od" model="fp.sale.description.template">
<field name="name">Masking — Selective O.D. / Journals</field>
<field name="tag">masking</field>
<field name="sequence">35</field>
<field name="description">Plate O.D. and specified journal surfaces only. Mask all bore surfaces, end faces, and sealing surfaces. Maintain ±0.0001" on masked-feature edges. Rack holes to be plugged.</field>
</record>
<record id="desc_tpl_rework_strip" model="fp.sale.description.template">
<field name="name">Rework — Strip &amp; Replate</field>
<field name="tag">rework</field>
<field name="sequence">40</field>
<field name="description">Rework of previously-plated parts. Chemically strip existing nickel deposit without attacking the base metal. Dimensional inspection after strip — any parts outside blueprint tolerance to be held for customer disposition. Replate to original spec. New Certificate of Conformance issued for the rework lot.</field>
</record>
<record id="desc_tpl_packaging_individual" model="fp.sale.description.template">
<field name="name">Packaging — Individual Bag + Desiccant</field>
<field name="tag">packaging</field>
<field name="sequence">50</field>
<field name="description">Each part individually bagged in anti-static poly bag with desiccant pack. Bagged parts packed in cushioned cardboard cartons with corner protection. Outer carton labelled with part number, lot, quantity, and Entech W/O number. Do not ship open-top or mixed part-number cartons.</field>
</record>
<record id="desc_tpl_hazmat_note" model="fp.sale.description.template">
<field name="name">Handling — Delicate / No Tumble</field>
<field name="tag">other</field>
<field name="sequence">60</field>
<field name="description">Delicate parts — rack plating only, no barrel. No tumbling or vibratory finishing before or after plating. Inspect for handling damage prior to final packaging. Any edge, surface or impact damage is cause for segregation.</field>
</record>
</odoo>