fix(reports): collapse sig-row to one bordered table — kill duplicate borders

User reported "multiple unwanted vertical lines in the boxes" on the
portrait BoL. Pixel analysis confirmed it: previous design had 3
separate `<div class="sig-box">` each with its own 1px border, with a
4-8px gap between adjacent boxes — visually those adjacent borders
read as a doubled / "duplicate" line between cells.

Fix: replace 3-box layout with a single `<table class="bordered
sig-table">` containing 3 td cells. With border-collapse: collapse,
adjacent cells share their border — so the row now shows 4 vertical
lines (1 outer left + 2 internal dividers + 1 outer right) instead
of 6 close-together border lines.

- Dropped `.sig-box` class entirely (no per-box border anymore)
- Added `.sig-table` + `.sig-cell` with explicit 1px borders so the
  layout works without depending on `.bordered` class inheritance
- Applied to both portrait + landscape variants
- Landscape sig-row was still using the OLD Bootstrap row+col-4
  layout (never got replaced earlier) — also migrated to the new
  table layout

Verified: page count unchanged (portrait 1, landscape 1), all
labels and content present, structure clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-19 08:14:07 -04:00
parent 8b20853ac7
commit cb9baa03ad
7 changed files with 113 additions and 37 deletions

View File

@@ -3,7 +3,7 @@
# License OPL-1 (Odoo Proprietary License v1.0)
{
'name': 'Fusion Plating — Reports',
'version': '19.0.4.5.0',
'version': '19.0.4.7.0',
'category': 'Manufacturing/Plating',
'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.',
'depends': [

View File

@@ -46,10 +46,9 @@
.fp-report .status-ok { color: #2e7d32; font-weight: bold; }
.fp-report .status-warning { color: #f57f17; font-weight: bold; }
.fp-report .status-fail { color: #c62828; font-weight: bold; }
.fp-report .sig-box { border: 1px solid #000; padding: 12px; page-break-inside: avoid; break-inside: avoid; }
.fp-report .sig-line { border-bottom: 1px solid #000; height: 60px; margin-bottom: 4px; }
.fp-report .sig-table { width: 100%; border-collapse: separate; border-spacing: 8px 0; margin-top: 16px; page-break-inside: avoid; break-inside: avoid; }
.fp-report .sig-table td { padding: 0; vertical-align: top; page-break-inside: avoid; break-inside: avoid; }
.fp-report .sig-table { width: 100%; border-collapse: collapse; margin-top: 16px; border: 1px solid #000; page-break-inside: avoid; break-inside: avoid; }
.fp-report .sig-table .sig-cell { padding: 14px 12px 8px 12px; vertical-align: top; border: 1px solid #000; page-break-inside: avoid; break-inside: avoid; }
.fp-report .small-muted { font-size: 8pt; color: #666; }
.fp-report .fp-cell-mid { vertical-align: middle !important; }
.fp-report .fp-keep-together { page-break-inside: avoid; break-inside: avoid; }
@@ -88,10 +87,9 @@
.fp-landscape .status-ok { color: #2e7d32; font-weight: bold; }
.fp-landscape .status-warning { color: #f57f17; font-weight: bold; }
.fp-landscape .status-fail { color: #c62828; font-weight: bold; }
.fp-landscape .sig-box { border: 1px solid #000; padding: 8px 10px; page-break-inside: avoid; break-inside: avoid; }
.fp-landscape .sig-line { border-bottom: 1px solid #000; height: 45px; margin-bottom: 3px; }
.fp-landscape .sig-table { width: 100%; border-collapse: separate; border-spacing: 6px 0; margin-top: 6px; page-break-inside: avoid; break-inside: avoid; }
.fp-landscape .sig-table td { padding: 0; vertical-align: top; page-break-inside: avoid; break-inside: avoid; }
.fp-landscape .sig-table { width: 100%; border-collapse: collapse; margin-top: 6px; border: 1px solid #000; page-break-inside: avoid; break-inside: avoid; }
.fp-landscape .sig-table .sig-cell { padding: 10px 10px 6px 10px; vertical-align: top; border: 1px solid #000; page-break-inside: avoid; break-inside: avoid; }
.fp-landscape .small-muted { font-size: 9pt; color: #666; }
.fp-landscape .fp-cell-mid { vertical-align: middle !important; }
.fp-landscape .fp-keep-together { page-break-inside: avoid; break-inside: avoid; }

View File

@@ -183,25 +183,19 @@
according to the applicable regulations of the Department of Transportation.
</div>
<table class="sig-table">
<table class="bordered sig-table">
<tr>
<td style="width: 33.33%;">
<div class="sig-box">
<div class="sig-line"/>
<div class="small-muted">Shipper (Signature / Date)</div>
</div>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Shipper (Signature / Date)</div>
</td>
<td style="width: 33.33%;">
<div class="sig-box">
<div class="sig-line"/>
<div class="small-muted">Carrier / Driver (Signature / Date)</div>
</div>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Carrier / Driver (Signature / Date)</div>
</td>
<td style="width: 33.33%;">
<div class="sig-box">
<div class="sig-line"/>
<div class="small-muted">Consignee (Signature / Date)</div>
</div>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Consignee (Signature / Date)</div>
</td>
</tr>
</table>
@@ -374,26 +368,22 @@
</div>
<!-- Sign off -->
<div class="row" style="margin-top: 20px;">
<div class="col-4">
<div class="sig-box">
<table class="bordered sig-table">
<tr>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Shipper (Signature / Date)</div>
</div>
</div>
<div class="col-4">
<div class="sig-box">
</td>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Carrier / Driver (Signature / Date)</div>
</div>
</div>
<div class="col-4">
<div class="sig-box">
</td>
<td class="sig-cell" style="width: 33.33%;">
<div class="sig-line"/>
<div class="small-muted">Consignee (Signature / Date)</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>