feat(plating): CoC spec-optional + SO-style header + thickness for any cert
- Drop the hard spec_reference gate on fp.certificate.action_issue. The customer-facing description (_fp_resolve_customer_facing_description, walks job -> SO line, reuses fp_customer_description) now drives the CoC Process column; spec_reference prints only when an estimator fills it. - CoC EN/FR reports swap web.external_layout for fp_external_layout_clean + paperformat_fp_a4_portrait. New shared coc_header (company logo + address left, Nadcap logo centre, title + Code128 barcode right) mirrors the Sale Order header. Removed the 3-logo Nadcap/AS9100/CGP accreditation strip and the body H1s; padding-top 0 on both body wrappers. - Un-gate the Issue Certs wizard thickness upload (was invisible unless the customer was thickness-flagged) so a Fischerscope report can be attached to ANY cert; merge (page 2) + inline readings already render unconditionally. - Update issue-gate tests, bump versions (certificates 19.0.9.1.0, reports 19.0.11.27.0, jobs 19.0.11.2.0), record CLAUDE.md rule 14c. Deployed + render-verified on entech (CoC-30065, 223KB PDF, no QWeb errors). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# License OPL-1 (Odoo Proprietary License v1.0)
|
||||
{
|
||||
'name': 'Fusion Plating — Native Jobs',
|
||||
'version': '19.0.11.1.0',
|
||||
'version': '19.0.11.2.0',
|
||||
'category': 'Manufacturing/Plating',
|
||||
'summary': 'Native plating job model — replaces mrp.production / mrp.workorder bridge.',
|
||||
'author': 'Nexa Systems Inc.',
|
||||
|
||||
@@ -48,20 +48,22 @@
|
||||
<field name="needs_thickness" readonly="1"
|
||||
widget="boolean_toggle"
|
||||
string="Needs Thickness"/>
|
||||
<!-- Upload column. Visible/required only when
|
||||
the cert needs thickness data. Triggers
|
||||
the @onchange-driven .docx parser. -->
|
||||
<!-- Upload column. Available on EVERY cert so a
|
||||
thickness report can be attached to any CoC
|
||||
and pulled onto the printed cert (client
|
||||
request 2026-05-28). needs_thickness still
|
||||
drives the "Needs Thickness" badge + the
|
||||
is_ready blocking gate below. Triggers the
|
||||
@onchange-driven .docx/RTF parser. -->
|
||||
<field name="fischer_filename" column_invisible="1"/>
|
||||
<field name="fischer_file"
|
||||
filename="fischer_filename"
|
||||
widget="binary"
|
||||
string="Fischerscope File (PDF or .docx)"
|
||||
invisible="not needs_thickness"
|
||||
readonly="not needs_thickness"/>
|
||||
string="Fischerscope File (PDF or .docx)"/>
|
||||
<field name="parsed_summary" readonly="1"
|
||||
string="Parsed"
|
||||
optional="show"
|
||||
invisible="not needs_thickness or not parsed_summary"/>
|
||||
invisible="not parsed_summary"/>
|
||||
<field name="is_ready" widget="boolean_toggle"
|
||||
readonly="1"
|
||||
string="Ready"
|
||||
@@ -86,15 +88,13 @@
|
||||
widget="boolean_toggle"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Fischerscope File"
|
||||
invisible="not needs_thickness">
|
||||
<group string="Fischerscope File">
|
||||
<field name="fischer_file"
|
||||
filename="fischer_filename"/>
|
||||
<field name="fischer_filename"
|
||||
invisible="1"/>
|
||||
</group>
|
||||
<group string="Measurement Image (Optional)"
|
||||
invisible="not needs_thickness">
|
||||
<group string="Measurement Image (Optional)">
|
||||
<field name="fischer_image_file"
|
||||
filename="fischer_image_filename"
|
||||
widget="image"
|
||||
@@ -112,20 +112,17 @@
|
||||
</group>
|
||||
<div class="alert alert-info"
|
||||
role="alert"
|
||||
invisible="not needs_thickness or not parsed_summary">
|
||||
invisible="not parsed_summary">
|
||||
<i class="fa fa-check-circle me-1"/>
|
||||
<field name="parsed_summary"
|
||||
readonly="1" nolabel="1"/>
|
||||
</div>
|
||||
<separator string="Thickness Readings"
|
||||
invisible="not needs_thickness"/>
|
||||
<p class="text-muted small"
|
||||
invisible="not needs_thickness">
|
||||
<separator string="Thickness Readings"/>
|
||||
<p class="text-muted small">
|
||||
Auto-filled from the .docx upload above.
|
||||
Edit/add rows manually as needed.
|
||||
</p>
|
||||
<field name="reading_line_ids"
|
||||
invisible="not needs_thickness">
|
||||
<field name="reading_line_ids">
|
||||
<list editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="nip_mils"/>
|
||||
|
||||
Reference in New Issue
Block a user