feat(fusion_plating_jobs): internal sticker — add factory logo, customer→row 2, bigger 4-field row 3
Internal Job Sticker (Layout A) redesign per operator feedback: - Factory (ENTECH) logo added to the black header band on a white chip (mirrors the external sticker; visible on the dark band + thermal print). - Customer moved out of row 3 up next to Part# in row 2. Part# keeps the dominant width (stripped customer name is short + consistent), MASK/BAKE flags still float at the Part# edge. - Row 3 now PO# / Qty / Due / Thk (4 fields, customer removed) with bigger values (13/14/12/11pt) spread across the full width. - Internal header QR trimmed 30→27mm so the QR-driven band is shorter; the freed height flows to the NOTES block. Rendered + verified on entech (WO-30072 / AMP-CANA). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -107,9 +107,11 @@
|
|||||||
.qffull { line-height: 36mm; }
|
.qffull { line-height: 36mm; }
|
||||||
.qfwrap-full { display: inline-block; position: relative; overflow: hidden; width: 33mm; height: 33mm; vertical-align: middle; }
|
.qfwrap-full { display: inline-block; position: relative; overflow: hidden; width: 33mm; height: 33mm; vertical-align: middle; }
|
||||||
.qfwrap-full img { position: absolute; width: 41mm; height: 41mm; top: -4.1mm; left: -4.1mm; }
|
.qfwrap-full img { position: absolute; width: 41mm; height: 41mm; top: -4.1mm; left: -4.1mm; }
|
||||||
/* Internal (Layout A) header QR — same ~10% quiet-zone crop, bigger box. */
|
/* Internal (Layout A) header QR — same ~10% quiet-zone crop. Trimmed
|
||||||
.qfwrap-int { display: inline-block; position: relative; overflow: hidden; width: 30mm; height: 30mm; vertical-align: middle; }
|
30mm -> 27mm so the QR-driven black band is shorter and the freed
|
||||||
.qfwrap-int img { position: absolute; width: 37.5mm; height: 37.5mm; top: -3.75mm; left: -3.75mm; }
|
height flows to the NOTES block below. Still well above scan size. */
|
||||||
|
.qfwrap-int { display: inline-block; position: relative; overflow: hidden; width: 27mm; height: 27mm; vertical-align: middle; }
|
||||||
|
.qfwrap-int img { position: absolute; width: 33.75mm; height: 33.75mm; top: -3.375mm; left: -3.375mm; }
|
||||||
.r-fld { padding: 1mm 2.2mm; }
|
.r-fld { padding: 1mm 2.2mm; }
|
||||||
.gtbl { border-collapse: collapse; width: 100%; height: 100%; }
|
.gtbl { border-collapse: collapse; width: 100%; height: 100%; }
|
||||||
.gtbl td { padding: 1mm 2.2mm; vertical-align: middle; }
|
.gtbl td { padding: 1mm 2.2mm; vertical-align: middle; }
|
||||||
@@ -122,34 +124,47 @@
|
|||||||
<template id="fp_job_internal_body">
|
<template id="fp_job_internal_body">
|
||||||
<div class="label-page"><div class="label">
|
<div class="label-page"><div class="label">
|
||||||
<table class="fpt">
|
<table class="fpt">
|
||||||
<tr style="height:22mm" class="rule">
|
<tr style="height:20mm" class="rule">
|
||||||
<td class="band pad">
|
<td class="band pad">
|
||||||
<span style="float:right"><span class="tag">INTERNAL</span></span>
|
<span style="float:right;text-align:right">
|
||||||
|
<t t-if="_logo"><span style="display:inline-block;background:#fff;padding:0.8mm 1.6mm;border-radius:1mm"><img t-att-src="image_data_uri(_logo)" style="max-height:8mm;max-width:38mm;vertical-align:middle"/></span></t>
|
||||||
|
<div style="margin-top:1.6mm"><span class="tag">INTERNAL</span></div>
|
||||||
|
</span>
|
||||||
<span class="lbl" style="color:#fff">Work Order</span>
|
<span class="lbl" style="color:#fff">Work Order</span>
|
||||||
<div style="font-size:30pt;font-weight:900;line-height:0.95"><t t-esc="d['wo']"/></div>
|
<div style="font-size:30pt;font-weight:900;line-height:0.95"><t t-esc="d['wo']"/></div>
|
||||||
</td>
|
</td>
|
||||||
<td style="width:34mm;border-left:0.9mm solid #000;text-align:center;vertical-align:middle;padding:1mm">
|
<td style="width:31mm;border-left:0.9mm solid #000;text-align:center;vertical-align:middle;padding:1mm">
|
||||||
<span class="qfwrap-int"><img t-att-src="_qr"/></span>
|
<span class="qfwrap-int"><img t-att-src="_qr"/></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr style="height:12mm" class="rule">
|
<!-- Part# (dominant) + Customer moved up here. Customer is short +
|
||||||
<td class="pad" colspan="2">
|
consistent (name stripped for privacy) so it needs little room;
|
||||||
<span class="lbl">Part#</span>
|
Part# gets the bulk. MASK/BAKE flags float at the Part# edge. -->
|
||||||
<span style="font-size:18pt;font-weight:900"> <t t-esc="d['part'] or '-'"/></span>
|
<tr style="height:13mm" class="rule">
|
||||||
<t t-if="d['rev']"><span style="font-size:11pt;font-weight:bold"> Rev <t t-esc="d['rev']"/></span></t>
|
|
||||||
<span style="float:right">
|
|
||||||
<t t-if="d['mask']"><span class="badge">MASK</span></t>
|
|
||||||
<t t-if="d['bake']"><span class="badge">BAKE</span></t>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr style="height:10mm" class="rule">
|
|
||||||
<td style="padding:0" colspan="2"><table class="fpt"><tr>
|
<td style="padding:0" colspan="2"><table class="fpt"><tr>
|
||||||
<td class="pad vrule" style="width:25%"><span class="lbl">Customer</span><br/><span style="font-size:12pt;font-weight:900"><t t-esc="d['customer']"/></span></td>
|
<td class="pad vrule" style="width:72%">
|
||||||
<td class="pad vrule" style="width:21%"><span class="lbl">PO#</span><br/><span style="font-size:11pt;font-weight:bold"><t t-esc="d['po'] or '-'"/></span></td>
|
<span style="float:right">
|
||||||
<td class="pad vrule" style="width:13%"><span class="lbl">Qty</span><br/><span style="font-size:12pt;font-weight:900"><t t-esc="d['qty']"/></span></td>
|
<t t-if="d['mask']"><span class="badge">MASK</span></t>
|
||||||
<td class="pad vrule" style="width:22%"><span class="lbl">Due</span><br/><span style="font-size:10pt;font-weight:bold"><t t-esc="d['due'] or '-'"/></span></td>
|
<t t-if="d['bake']"><span class="badge">BAKE</span></t>
|
||||||
<td class="pad"><span class="lbl">Thk</span><br/><span style="font-size:9.5pt;font-weight:bold"><t t-esc="d['thk'] or '-'"/></span></td>
|
</span>
|
||||||
|
<span class="lbl">Part#</span>
|
||||||
|
<span style="font-size:18pt;font-weight:900"> <t t-esc="d['part'] or '-'"/></span>
|
||||||
|
<t t-if="d['rev']"><span style="font-size:11pt;font-weight:bold"> Rev <t t-esc="d['rev']"/></span></t>
|
||||||
|
</td>
|
||||||
|
<td class="pad" style="width:28%">
|
||||||
|
<span class="lbl">Customer</span>
|
||||||
|
<span style="font-size:13pt;font-weight:900;display:block;line-height:1.05"><t t-esc="d['customer']"/></span>
|
||||||
|
</td>
|
||||||
|
</tr></table></td>
|
||||||
|
</tr>
|
||||||
|
<!-- PO# / Qty / Due / Thk — Customer removed, 4 fields share the row
|
||||||
|
with bigger values; freed vertical room flows to NOTES. -->
|
||||||
|
<tr style="height:12mm" class="rule">
|
||||||
|
<td style="padding:0" colspan="2"><table class="fpt"><tr>
|
||||||
|
<td class="pad vrule" style="width:34%"><span class="lbl">PO#</span><br/><span style="font-size:13pt;font-weight:900"><t t-esc="d['po'] or '-'"/></span></td>
|
||||||
|
<td class="pad vrule" style="width:16%"><span class="lbl">Qty</span><br/><span style="font-size:14pt;font-weight:900"><t t-esc="d['qty']"/></span></td>
|
||||||
|
<td class="pad vrule" style="width:30%"><span class="lbl">Due</span><br/><span style="font-size:12pt;font-weight:bold"><t t-esc="d['due'] or '-'"/></span></td>
|
||||||
|
<td class="pad" style="width:20%"><span class="lbl">Thk</span><br/><span style="font-size:11pt;font-weight:bold"><t t-esc="d['thk'] or '-'"/></span></td>
|
||||||
</tr></table></td>
|
</tr></table></td>
|
||||||
</tr>
|
</tr>
|
||||||
<t t-if="d['bake']">
|
<t t-if="d['bake']">
|
||||||
@@ -242,6 +257,7 @@
|
|||||||
<t t-set="_note_pt" t-value="job._fp_note_pt(_note)"/>
|
<t t-set="_note_pt" t-value="job._fp_note_pt(_note)"/>
|
||||||
<t t-set="_base" t-value="job.env['ir.config_parameter'].sudo().get_param('web.base.url', '')"/>
|
<t t-set="_base" t-value="job.env['ir.config_parameter'].sudo().get_param('web.base.url', '')"/>
|
||||||
<t t-set="_qr" t-value="job.env['ir.actions.report'].sudo().barcode_data_uri('QR', _base + '/fp/job/' + str(job.id), width=1000, height=1000)"/>
|
<t t-set="_qr" t-value="job.env['ir.actions.report'].sudo().barcode_data_uri('QR', _base + '/fp/job/' + str(job.id), width=1000, height=1000)"/>
|
||||||
|
<t t-set="_logo" t-value="job.env.company.logo or job.env.company.logo_web or job.env.company.partner_id.image_1920 or False"/>
|
||||||
<t t-call="fusion_plating_jobs.fp_job_internal_body"/>
|
<t t-call="fusion_plating_jobs.fp_job_internal_body"/>
|
||||||
</t>
|
</t>
|
||||||
</t>
|
</t>
|
||||||
|
|||||||
Reference in New Issue
Block a user