Feat: Adding Elta integrations
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="el">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
{{--
|
||||
Geometry is transcribed directly from ELTA_PEL.sydetaE.rdlc
|
||||
(the "delivery copy" RDLC ELTA's own client selects for
|
||||
printer_size==1, i.e. plain A4, per Sydeta.cs::print_vg()) —
|
||||
every .mc-*/.ps-* absolute position below is that report's
|
||||
own Top/Left in cm, walked through its Rectangle/Textbox
|
||||
nesting so each value is already relative to its own
|
||||
containing band. Static label text and font sizes/weights
|
||||
also come from the RDLC's own Textbox/Style elements, not
|
||||
guessed from the screenshot in ELTA's setup manual (that
|
||||
manual image was used only as a sanity check afterwards).
|
||||
--}}
|
||||
@page { margin: 0; size: 21cm 29.7cm; }
|
||||
html, body { margin: 0; padding: 0; }
|
||||
body { font-family: 'DejaVu Sans', sans-serif; font-size: 6.5pt; color: #000; }
|
||||
|
||||
.page { position: relative; width: 21cm; height: 29.7cm; }
|
||||
|
||||
/* Each RDLC "band" (one ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ copy) is its own
|
||||
positioning context, so every child offset below is a direct
|
||||
transcription of the RDLC's own relative-to-band Top/Left —
|
||||
no manual offset arithmetic. */
|
||||
.band { position: absolute; left: 0.27cm; }
|
||||
.band > * { position: absolute; }
|
||||
|
||||
.mc-logo, .mc-company, .mc-box, .mc-cell, .mc-partybox { position: absolute; }
|
||||
.mc-logo img { width: 100%; height: 100%; object-fit: contain; }
|
||||
.mc-company { font-size: 4.6pt; line-height: 1.25; }
|
||||
.mc-company-name { font-weight: bold; font-size: 5.2pt; }
|
||||
.mc-text.mc-small { font-size: 4.6pt; }
|
||||
|
||||
.mc-box { border: 1px solid #000; box-sizing: border-box; }
|
||||
.mc-title { position: absolute; font-weight: bold; font-size: 8pt; text-align: center; white-space: nowrap; }
|
||||
.mc-barcode { position: absolute; text-align: center; }
|
||||
.mc-barcode img { height: 26px; }
|
||||
.mc-voucher { position: absolute; text-align: center; font-weight: bold; font-size: 10.5pt; letter-spacing: 0.5px; }
|
||||
.mc-copylabel { position: absolute; text-align: center; font-weight: bold; font-size: 8pt; }
|
||||
|
||||
.mc-cell { border: 1px solid #000; box-sizing: border-box; padding: 1px 2px; }
|
||||
.mc-cell-label { font-size: 5.5pt; }
|
||||
.mc-cell-val { font-weight: bold; font-size: 8pt; margin-top: 3px; }
|
||||
.mc-cell-service { text-align: center; }
|
||||
|
||||
/* 5-cell deposit/destination/weight/pieces/volumetric row: a real
|
||||
table with border-collapse so each internal shared edge is
|
||||
drawn once, not twice (see _main-copy.blade.php comment). */
|
||||
.mc-cell-row { position: absolute; border-collapse: collapse; table-layout: fixed; }
|
||||
.mc-cell-td { border: 1px solid #000; box-sizing: border-box; padding: 1px 2px; vertical-align: top; }
|
||||
|
||||
.mc-partybox { border: 1px solid #000; box-sizing: border-box; }
|
||||
.mc-party-title { position: absolute; font-weight: bold; font-size: 9pt; }
|
||||
.mc-party-line { position: absolute; font-size: 6.3pt; white-space: nowrap; overflow: hidden; }
|
||||
|
||||
.mc-charge { text-align: center; font-weight: bold; font-size: 8pt; box-sizing: border-box; padding-top: 2px; }
|
||||
|
||||
/* Payment stub (copy 3) reuses the .mc-* classes but at smaller
|
||||
scale, matching the RDLC's own narrower band. */
|
||||
.ps-brandbox { border: 1.5px solid #c8102e; box-sizing: border-box; text-align: center; padding-top: 4px; }
|
||||
.ps-brand-logo img { width: 60%; margin: 0 auto 8px; display: block; }
|
||||
.ps-brand-tag { color: #c8102e; font-weight: bold; font-size: 9pt; }
|
||||
.ps-brandbox-small { border: 1px solid #000; box-sizing: border-box; text-align: center; padding: 2px; }
|
||||
.ps-brand-logo-sm img { width: 40%; margin: 2px auto; display: block; }
|
||||
.ps-legal-sm { font-size: 4.6pt; line-height: 1.3; }
|
||||
|
||||
/* Perforated tear-off strip on the right of copy 1 only, with
|
||||
the rotated "3. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΚΑΤΑΘΕΣΗΣ" label — RDLC's
|
||||
image10 (x=15.42cm) is the dashed perforation line itself;
|
||||
reproduced here as a CSS dashed border since we can't extract
|
||||
that embedded bitmap. transform:rotate() (not
|
||||
writing-mode:vertical-rl, confirmed broken in dompdf) rotates
|
||||
a normal-flow block. */
|
||||
.stub-strip { position: absolute; top: 2.25cm; left: 15.42cm; width: 5.58cm; height: 6.16cm; border-left: 1px dashed #000; }
|
||||
.stub-vtext {
|
||||
position: absolute; top: 2.6cm; left: -1.3cm; width: 6cm;
|
||||
text-align: center; font-size: 6pt; font-weight: bold;
|
||||
white-space: nowrap; transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.cut-line { position: absolute; left: 0; width: 20.9cm; border-top: 1px dashed #000; text-align: center; font-weight: bold; font-size: 7pt; }
|
||||
.cut-line span { position: relative; top: -5px; background: #fff; padding: 0 6px; }
|
||||
|
||||
.footer-ocr { position: absolute; top: 27.35cm; left: 0; width: 21cm; text-align: center; font-family: monospace; font-size: 8pt; letter-spacing: 1.5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page">
|
||||
|
||||
{{-- Copy 1: delivery copy — RDLC band top=0 --}}
|
||||
<div class="band" style="top:0.05cm; width:15.75cm; height:8.7cm;">
|
||||
@include('core::shipping.carriers.elta.partials._main-copy', ['copyType' => 'delivery'])
|
||||
</div>
|
||||
<div class="stub-strip">
|
||||
<div class="stub-vtext">3. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΚΑΤΑΘΕΣΗΣ</div>
|
||||
</div>
|
||||
|
||||
<div class="cut-line" style="top:9.0cm;"><span>✂ ΑΠΟΚΟΨΤΕ ΕΔΩ</span></div>
|
||||
|
||||
{{-- Copy 2: sender's copy — RDLC band top≈8.94cm on the full page --}}
|
||||
<div class="band" style="top:9.05cm; width:15.75cm; height:9.9cm;">
|
||||
@include('core::shipping.carriers.elta.partials._main-copy', ['copyType' => 'sender'])
|
||||
</div>
|
||||
|
||||
<div class="cut-line" style="top:18.75cm;"><span>✂ ΑΠΟΚΟΨΤΕ ΕΔΩ</span></div>
|
||||
|
||||
{{-- Copy 3: ΤΑΧΥΠΛΗΡΩΜΗ ΕΙΣΠΡΑΞΗ / ΜΕΤΑΒΙΒΑΣΗ stub — RDLC band top≈19.22cm --}}
|
||||
<div style="position:absolute; top:19.05cm; left:0.27cm; width:20.4cm; font-weight:bold; font-size:7pt; text-align:center;">
|
||||
ΤΑΧΥΠΛΗΡΩΜΗ ΕΙΣΠΡΑΞΗ / ΜΕΤΑΒΙΒΑΣΗ Ο. Αριθμός Λογ/μού Ταχυπληρωμής {{ $siimvasi }}
|
||||
</div>
|
||||
<div class="band" style="top:19.45cm; width:16.75cm; height:7.4cm;">
|
||||
@include('core::shipping.carriers.elta.partials._payment-stub')
|
||||
</div>
|
||||
|
||||
<div class="cut-line" style="top:26.85cm;"><span>ΜΗ ΣΗΜΕΙΩΝΕΤΕ ΚΑΤΩ ΑΠΟ ΑΥΤΗ ΤΗ ΓΡΑΜΜΗ</span></div>
|
||||
|
||||
<div class="footer-ocr">>{{ $ocr_line }}<</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,225 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="el">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
{{--
|
||||
Geometry transcribed directly from ELTA_PEL.SydetaLabelE.rdlc
|
||||
— the RDLC ELTA's own client selects for printer_size==2
|
||||
(the A6/"thermal label" printer-setup radio button), per
|
||||
Sydeta.cs::print_vg(); RDLCPrinter.cs overrides the actual
|
||||
print DeviceInfo to 10.4cm x 14.8cm for this printer_size
|
||||
regardless of what PageWidth/PageHeight the RDLC itself
|
||||
declares (all ELTA RDLCs declare A4 internally). Every
|
||||
.a6-* absolute position below is that report's own
|
||||
Top/Left in cm.
|
||||
--}}
|
||||
@page { margin: 0; size: 10.4cm 14.8cm; }
|
||||
html, body { margin: 0; padding: 0; }
|
||||
body { font-family: 'DejaVu Sans', sans-serif; font-size: 6.3pt; color: #000; }
|
||||
|
||||
{{--
|
||||
height is deliberately a hair under the true 14.8cm page —
|
||||
dompdf's border-box math isn't quite exact at this scale, and
|
||||
a .page box sized to exactly fill the page (even with
|
||||
box-sizing:border-box) was empirically confirmed to overflow
|
||||
a fraction of a point past the page canvas and silently push
|
||||
a second, blank page (reproduced with an otherwise-empty
|
||||
.page div: only the border's presence, not any content,
|
||||
triggered it — 14.7cm was stable, 14.75cm was not).
|
||||
--}}
|
||||
.page { position: relative; width: 10.4cm; height: 14.65cm; border: 1.5px solid #000; box-sizing: border-box; overflow: hidden; }
|
||||
.page > * { position: absolute; box-sizing: border-box; }
|
||||
|
||||
.a6-logo img { width: 100%; height: 100%; object-fit: contain; }
|
||||
.a6-service-box { border: 1px solid #000; text-align: center; }
|
||||
.a6-service-code { font-weight: bold; font-size: 7pt; }
|
||||
.a6-service-name { font-weight: bold; font-size: 6pt; text-align: center; }
|
||||
|
||||
.a6-title { font-weight: bold; font-size: 7pt; }
|
||||
.a6-datetime { font-size: 6pt; }
|
||||
.a6-copy { font-weight: bold; font-size: 7pt; text-align: right; }
|
||||
|
||||
.a6-station-box { border: 1px solid #000; }
|
||||
.a6-station-label { font-size: 6pt; font-weight: bold; }
|
||||
.a6-station-val { font-weight: bold; font-size: 8pt; }
|
||||
|
||||
.a6-cell { border: 1px solid #000; padding: 1px 3px; }
|
||||
.a6-cell-label { font-size: 6pt; }
|
||||
.a6-cell-val { font-weight: bold; font-size: 8pt; }
|
||||
|
||||
/* ΧΡΕΩΣΗ/REFERENCE/ΣΥΜΒΑΣΗ row and the Γρ.Κατάθεσης/ΒΑΡΟΣ/
|
||||
ΟΓΚΟΜΕΤΡΙΚΟ/Τεμάχια row: real tables with border-collapse so
|
||||
each internal shared edge is drawn once (see label-a6.blade.php
|
||||
comment above their markup). */
|
||||
.a6-cell-row { position: absolute; border-collapse: collapse; border-spacing: 0; table-layout: fixed; }
|
||||
.a6-cell-td { border: 1px solid #000; box-sizing: border-box; padding: 1px 3px; vertical-align: top; overflow: hidden; }
|
||||
|
||||
.a6-box { border: 1px solid #000; padding: 2px 3px; }
|
||||
.a6-party-title { font-weight: bold; font-size: 7pt; }
|
||||
.a6-party-line { font-size: 8pt; white-space: nowrap; overflow: hidden; }
|
||||
|
||||
.a6-return-title { font-weight: bold; font-size: 6pt; }
|
||||
.a6-return-item { font-size: 6pt; }
|
||||
.a6-checkbox { border: 1px solid #000; display: inline-block; width: 6px; height: 6px; margin-right: 3px; vertical-align: middle; }
|
||||
|
||||
.a6-small-title { font-weight: bold; font-size: 5pt; }
|
||||
.a6-small-val { font-size: 6pt; }
|
||||
|
||||
.a6-legal { font-size: 5pt; text-align: center; line-height: 1.4; }
|
||||
|
||||
.a6-barcode { text-align: center; }
|
||||
.a6-barcode img { height: 30px; }
|
||||
.a6-voucher { text-align: center; font-weight: bold; font-size: 12pt; letter-spacing: 1px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page">
|
||||
{{-- Header: logo (0.10,0.12,1.66x1.26) + service box (6.42,0.10,3.93x0.84) --}}
|
||||
<div class="a6-logo" style="top:0.12cm;left:0.10cm;width:1.66cm;height:1.26cm;">
|
||||
<img src="{{ $eltaLogo }}" alt="ELTA Courier">
|
||||
</div>
|
||||
<div class="a6-service-box" style="top:0.10cm;left:6.42cm;width:3.93cm;height:0.84cm;">
|
||||
<div class="a6-service-code" style="position:absolute;top:0.02cm;left:0.09cm;">ΥΠΗΡΕΣΙΑ: {{ $service_code }}</div>
|
||||
<div class="a6-service-name" style="position:absolute;top:0.40cm;left:0.04cm;width:3.81cm;">{{ $service_name }}</div>
|
||||
</div>
|
||||
<div class="a6-licence-box" style="top:1.05cm;left:6.42cm;width:3.88cm;height:0.62cm;border:1px solid #000;text-align:center;font-size:5.3pt;font-weight:bold;line-height:1.3;padding-top:2px;">
|
||||
ΕΕΤΤ ΑΜ: 99-150 Γενική Άδεια<br>Ταχ/κων Υπηρεσιών
|
||||
</div>
|
||||
|
||||
<div class="a6-datetime" style="top:1.68cm;left:0.13cm;width:1.68cm;">{{ $date }}</div>
|
||||
<div class="a6-title" style="top:1.79cm;left:1.93cm;width:5.89cm;">ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣ</div>
|
||||
{{-- The RDLC's own barcode textbox here uses the "Free 3 of 9
|
||||
Extended" barcode font — we don't have that font, so this
|
||||
would-be *{voucher}* fallback text is dropped in favor of the
|
||||
real Code 128 barcode image rendered near the bottom instead. --}}
|
||||
<div class="a6-datetime" style="top:2.00cm;left:0.16cm;width:1.60cm;">{{ $time }}</div>
|
||||
|
||||
<div class="a6-station-box" style="top:2.33cm;left:0.10cm;width:10.20cm;height:0.44cm;">
|
||||
<div class="a6-station-label" style="position:absolute;top:0.05cm;left:0.10cm;">Γρ. Επίδοσης :</div>
|
||||
<div class="a6-station-val" style="position:absolute;top:0.03cm;left:2.50cm;">{{ $station_pros }}</div>
|
||||
<div class="a6-station-val" style="position:absolute;top:0.03cm;left:3.90cm;width:6.06cm;">{{ $station_pros_title }}</div>
|
||||
</div>
|
||||
|
||||
{{-- ΧΡΕΩΣΗ / REFERENCE / ΣΥΜΒΑΣΗ 3-cell row, and the Γρ.Κατάθεσης /
|
||||
ΒΑΡΟΣ / ΟΓΚΟΜΕΤΡΙΚΟ ΒΑΡΟΣ / Τεμάχια row right below it: both are
|
||||
genuinely tabular single rows of fixed-width cells, so — like
|
||||
the equivalent A4 rows — they're built as real
|
||||
<table border-collapse:collapse> instead of independently-
|
||||
bordered absolute divs, which was drawing every shared edge
|
||||
(each cell-to-cell seam, and the seam between these two rows)
|
||||
twice, visibly doubling/thickening those lines versus a real
|
||||
printed ELTA label. Each table is positioned at the row's own
|
||||
RDLC top/left; the first table's bottom border is dropped since
|
||||
the second table's top border already draws that shared line. --}}
|
||||
<table class="a6-cell-row" style="top:2.82cm;left:0.10cm;width:10.16cm;">
|
||||
<colgroup>
|
||||
<col style="width:5.41cm;"><col style="width:2.84cm;"><col style="width:1.91cm;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td class="a6-cell-td" style="height:0.47cm;border-bottom:none;">
|
||||
<div style="font-size:7pt;">{{ $xreosi }}</div>
|
||||
</td>
|
||||
<td class="a6-cell-td" style="height:0.47cm;text-align:center;border-bottom:none;">
|
||||
<div style="font-size:7pt;">{{ $ocr_reference }}</div>
|
||||
</td>
|
||||
<td class="a6-cell-td" style="height:0.47cm;text-align:center;border-bottom:none;">
|
||||
<div style="font-size:7pt;">{{ $siimvasi }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="a6-cell-row" style="top:3.39cm;left:0.10cm;width:9.97cm;">
|
||||
<colgroup>
|
||||
<col style="width:2.00cm;"><col style="width:2.00cm;"><col style="width:4.12cm;"><col style="width:1.85cm;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td class="a6-cell-td" style="height:0.97cm;">
|
||||
<div class="a6-cell-label">Γρ.Κατάθεσης:</div>
|
||||
<div class="a6-cell-val">{{ $station_apo }}</div>
|
||||
</td>
|
||||
<td class="a6-cell-td" style="height:0.97cm;">
|
||||
<div class="a6-cell-label">ΒΑΡΟΣ(Kgr)</div>
|
||||
<div class="a6-cell-val">{{ $weight }}</div>
|
||||
</td>
|
||||
<td class="a6-cell-td" style="height:0.97cm;">
|
||||
<div class="a6-cell-label">ΟΓΚΟΜΕΤΡΙΚΟ ΒΑΡΟΣ(Kgr)</div>
|
||||
<div class="a6-cell-val" style="font-size:7pt;">{{ $volumetric_weight ?? '0.000' }}</div>
|
||||
</td>
|
||||
<td class="a6-cell-td" style="height:0.97cm;">
|
||||
<div class="a6-cell-label">Τεμάχια</div>
|
||||
<div class="a6-cell-val">{{ $package_label }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{{-- ΑΠΟΣΤΟΛΕΑΣ + ΑΙΤΙΑ ΕΠΙΣΤΡΟΦΗΣ --}}
|
||||
<div class="a6-box" style="top:4.43cm;left:0.10cm;width:7.24cm;height:2.44cm;">
|
||||
@include('core::shipping.carriers.elta.partials._party-box', [
|
||||
'title' => 'ΑΠΟΣΤΟΛΕΑΣ',
|
||||
'lines' => $sender_lines,
|
||||
])
|
||||
</div>
|
||||
<div class="a6-box" style="top:4.43cm;left:7.55cm;width:2.80cm;height:2.44cm;">
|
||||
<div class="a6-return-title">ΑΙΤΙΑ ΕΠΙΣΤΡΟΦΗΣ</div>
|
||||
<div style="margin-top:4px;">
|
||||
<div class="a6-return-item"><span class="a6-checkbox"></span>Άγνωστος</div>
|
||||
<div class="a6-return-item" style="margin-top:4px;"><span class="a6-checkbox"></span>Ελλειπή Δ/νση</div>
|
||||
<div class="a6-return-item" style="margin-top:4px;"><span class="a6-checkbox"></span>Απαράδεκτο</div>
|
||||
<div class="a6-return-item" style="margin-top:4px;"><span class="a6-checkbox"></span>Άλλαξε Δ/νση</div>
|
||||
<div class="a6-return-item" style="margin-top:4px;"><span class="a6-checkbox"></span>Αζήτητο</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- ΠΑΡΑΛΗΠΤΗΣ + ΑΝΤΙΚΑΤΑΒΟΛΗ column --}}
|
||||
<div class="a6-box" style="top:6.97cm;left:0.10cm;width:7.26cm;height:2.78cm;">
|
||||
@include('core::shipping.carriers.elta.partials._party-box', [
|
||||
'title' => 'ΠΑΡΑΛΗΠΤΗΣ',
|
||||
'lines' => $recipient_lines,
|
||||
])
|
||||
</div>
|
||||
<div class="a6-box" style="top:6.97cm;left:7.48cm;width:2.85cm;height:2.79cm;">
|
||||
@if ($antik_1 ?? null)
|
||||
<div style="font-size:6pt;">{{ $antik_1 }}</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
{{-- REFERENCE / ΕΠΙΒΑΡΥΝΣΕΙΣ --}}
|
||||
<div class="a6-box" style="top:9.84cm;left:0.10cm;width:5.81cm;height:0.69cm;">
|
||||
<div class="a6-small-title">REFERENCE</div>
|
||||
<div class="a6-small-val" style="margin-top:3px; font-weight:bold;">{{ $order_reference }}</div>
|
||||
</div>
|
||||
<div class="a6-box" style="top:9.84cm;left:6.00cm;width:4.37cm;height:1.78cm;">
|
||||
<div class="a6-small-title">* ΕΠΙΒΑΡΥΝΣΕΙΣ *</div>
|
||||
</div>
|
||||
|
||||
{{-- ΠΑΡΑΤΗΡΗΣΕΙΣ --}}
|
||||
<div class="a6-box" style="top:10.60cm;left:0.10cm;width:5.82cm;height:1.01cm;">
|
||||
<div class="a6-small-title">* ΠΑΡΑΤΗΡΗΣΕΙΣ *</div>
|
||||
</div>
|
||||
|
||||
@if ($multiPiece)
|
||||
<div class="a6-box" style="top:11.68cm;left:0.10cm;width:10.23cm;height:0.54cm;text-align:center;">
|
||||
<div style="font-weight:bold; font-size:9pt; margin-top:2px;">* ΠΟΛΛΑΠΛΗ ΑΠΟΣΤΟΛΗ * {{ $package_label }}</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="a6-box" style="top:12.20cm;left:0.11cm;width:10.23cm;height:0.57cm;">
|
||||
<div class="a6-legal">
|
||||
Ισχύουν οι Γενικοί Οροι Παραχής Υπηρεσιών οι οποίοι βρίσκονται αναρτημένοι στο www.elta-courier.gr<br>
|
||||
και είναι διαθέσιμοι σε ολα τα καταστήματα της εταιρίας.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($antik_1 ?? null)
|
||||
<div class="a6-box" style="top:12.70cm;left:0.10cm;width:10.23cm;height:0.51cm;text-align:center;">
|
||||
<div style="font-weight:bold; font-size:9pt; margin-top:4px;">{{ $antik_1 }}</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="a6-barcode" style="top:13.20cm;left:0.10cm;width:10.27cm;">
|
||||
<img src="{{ $barcode_voucher }}" alt="">
|
||||
</div>
|
||||
<div class="a6-voucher" style="top:13.95cm;left:0.10cm;width:10.30cm;">{{ $voucher_no }}</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,153 @@
|
||||
{{--
|
||||
One "ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣ" copy (delivery or sender's),
|
||||
geometry transcribed directly from ELTA_PEL.sydetaE.rdlc's delivery-
|
||||
copy band (Top/Left values there are relative to that band; here
|
||||
they're absolute cm offsets from THIS partial's own 0,0, since the
|
||||
caller wraps it in a `position:relative` container sized 15.75cm x
|
||||
8.75cm — the same width/height as the RDLC band, read off its own
|
||||
rectangle8/rectangle9/rectangle11/rectangle12 extents).
|
||||
|
||||
Expects: $copyType ('delivery'|'sender') and all of
|
||||
EltaLabelRenderer's $data.
|
||||
--}}
|
||||
<div class="mc-logo" style="top:0.09cm;left:0.32cm;width:2.65cm;height:1.93cm;">
|
||||
<img src="{{ $eltaLogo }}" alt="ELTA Courier">
|
||||
</div>
|
||||
<div class="mc-company" style="top:0.12cm;left:3.15cm;width:5.19cm;">
|
||||
<div class="mc-company-name">ΕΛΛΗΝΙΚΑ ΤΑΧΥΔΡΟΜΕΙΑ Α.Ε.</div>
|
||||
<div>Έδρα: Απελλού 1, 105 51, Αθήνα</div>
|
||||
<div>Υποκ/μα: Λ. Μεσογείων 395, 153 43, Αγ. Παρασκευή</div>
|
||||
<div>Α.Φ.Μ.: 094026421 | Δ.Ο.Υ.: ΚΕΦΟ.Δ.Ε. ΑΤΤΙΚΗΣ</div>
|
||||
<div>Τ. 210-6073000 | Ε. info@elta-courier.gr</div>
|
||||
<div>www.eltacourier.gr</div>
|
||||
</div>
|
||||
<div class="mc-text mc-small" style="top:1.80cm;left:3.15cm;width:5.03cm;">ΕΕΤΤ ΑΜ 99-150 Γενική Αδεια Ταχ/κων Υπηρεσιών</div>
|
||||
|
||||
{{-- Title / barcode / voucher, centered column at x=8.52..15.58 --}}
|
||||
<div class="mc-box" style="top:0.05cm;left:8.52cm;width:7.06cm;height:1.75cm;">
|
||||
<div class="mc-title" style="top:0.19cm;left:0.05cm;width:6.85cm;">ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣ</div>
|
||||
<div class="mc-barcode" style="top:0.57cm;left:0.24cm;width:6.67cm;">
|
||||
<img src="{{ $barcode_voucher }}" alt="">
|
||||
</div>
|
||||
{{-- The RDLC's own barcode textbox uses the "Free 3 of 9 Extended"
|
||||
barcode font (literal *{voucher}* text rendered as bars by that
|
||||
font) — we don't have that font, so we render a real Code 128
|
||||
barcode image above instead (visually equivalent, actually
|
||||
scannable), making this second plain-text *{voucher}* line
|
||||
redundant with it rather than a distinct field. --}}
|
||||
<div class="mc-voucher" style="top:1.29cm;left:0.24cm;width:6.64cm;">{{ $voucher_no }}</div>
|
||||
</div>
|
||||
|
||||
{{-- 5-cell deposit/destination/weight/pieces/volumetric row — a genuinely
|
||||
tabular single row of fixed-width cells, so it's built as a real
|
||||
<table border-collapse:collapse> rather than independently-bordered
|
||||
absolute divs: that was drawing every shared internal edge twice
|
||||
(once per adjacent cell), producing a visibly doubled/thickened line
|
||||
that real printed ELTA labels don't show. The table is positioned via
|
||||
the same absolute top/left/width the RDLC geometry gives the row as a
|
||||
whole; each <td> keeps its own RDLC-derived width via <col>. --}}
|
||||
<table class="mc-cell-row" style="top:2.20cm;left:0.27cm;width:8.44cm;height:0.82cm;">
|
||||
<colgroup>
|
||||
<col style="width:1.51cm;"><col style="width:1.67cm;"><col style="width:1.35cm;"><col style="width:1.08cm;"><col style="width:2.83cm;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td class="mc-cell-td">
|
||||
<div class="mc-cell-label">Γρ.Κατάθεσης</div>
|
||||
<div class="mc-cell-val">{{ $station_apo }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td">
|
||||
<div class="mc-cell-label">Γρ.Προορισμού</div>
|
||||
<div class="mc-cell-val">{{ $station_pros }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td">
|
||||
<div class="mc-cell-label">Βάρος</div>
|
||||
<div class="mc-cell-val">{{ $weight }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td">
|
||||
<div class="mc-cell-label">Τεμάχια</div>
|
||||
<div class="mc-cell-val">{{ $package_label }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td">
|
||||
<div class="mc-cell-label">Ογκ/κο Βάρος</div>
|
||||
<div class="mc-cell-val" style="font-size:7pt;">{{ $volumetric_weight ?? '0.000' }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="mc-cell mc-cell-service" style="top:2.20cm;left:9.19cm;width:6.19cm;height:0.82cm;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.32cm;font-size:6.5pt;">ΥΠΗΡΕΣΙΑ :</div>
|
||||
<div style="position:absolute;top:0.03cm;left:3.21cm;font-size:7.5pt;">{{ $service_code }}</div>
|
||||
<div style="position:absolute;top:0.42cm;left:0.05cm;width:6.08cm;text-align:center;font-size:7.5pt;">{{ $service_name }}</div>
|
||||
</div>
|
||||
|
||||
{{-- Sender box --}}
|
||||
<div class="mc-box mc-partybox" style="top:3.12cm;left:0.27cm;width:6.24cm;height:2.53cm;">
|
||||
<div class="mc-party-title" style="top:0.05cm;left:0.10cm;">ΑΠΟΣΤΟΛΕΑΣ</div>
|
||||
@foreach ($sender_lines as $i => $line)
|
||||
@if (trim((string) $line) !== '')
|
||||
<div class="mc-party-line" style="top:{{ 0.53 + $i * 0.395 }}cm;left:0.05cm;width:6.11cm;">{{ $line }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
{{-- Recipient box --}}
|
||||
<div class="mc-box mc-partybox" style="top:5.76cm;left:0.29cm;width:6.20cm;height:2.68cm;">
|
||||
<div class="mc-party-title" style="top:0.05cm;left:0.05cm;">ΠΑΡΑΛΗΠΤΗΣ</div>
|
||||
@foreach ($recipient_lines as $i => $line)
|
||||
@if (trim((string) $line) !== '')
|
||||
<div class="mc-party-line" style="top:{{ 0.54 + $i * 0.445 }}cm;left:0.05cm;width:6.11cm;">{{ $line }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
{{-- Charge banner + right-column panel stack (ΧΡΕΩΣΗ / Συν.Χρέωσης /
|
||||
REFERENCE / ΠΑΡΑΤΗΡΗΣΕΙΣ, and the Πρόσθετες Υπηρεσίες column beside
|
||||
them): these panels sit only a hair apart (~0.09-0.10cm, the RDLC's
|
||||
own geometry, left untouched), close enough that each pair's two
|
||||
independent borders read as one thick/doubled line at print
|
||||
resolution. Each panel below keeps only the border sides it "owns"
|
||||
on a shared seam (border-top/border-left removed where the
|
||||
neighbouring panel above/left already draws that same line), so
|
||||
every seam is drawn exactly once while every panel's outward-facing
|
||||
sides keep their border. --}}
|
||||
<div class="mc-box mc-charge" style="top:3.09cm;left:6.60cm;width:8.78cm;height:0.48cm;">{{ str_replace(' ΠΙΣΤΩΣΗ', ' ΤΡ.ΠΛΗΡ: ΠΙΣΤΩΣΗ', $xreosi) }}</div>
|
||||
|
||||
<div class="mc-box" style="top:3.66cm;left:6.60cm;width:4.37cm;height:0.44cm;border-top:none;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.05cm;font-size:7pt;font-weight:bold;">Συν.Χρέωσης (€):</div>
|
||||
</div>
|
||||
<div class="mc-box" style="top:3.66cm;left:11.07cm;width:4.31cm;height:2.65cm;border-top:none;">
|
||||
<div style="position:absolute;top:0.04cm;left:0.05cm;font-size:6pt;">Πρόσθετες Υπηρεσίες</div>
|
||||
@foreach ([$sur_1 ?? null, $sur_2 ?? null, $sur_3 ?? null, $sur_4 ?? null] as $i => $sur)
|
||||
@if (!empty($sur))
|
||||
<div style="position:absolute;top:{{ 0.35 + $i * 0.365 }}cm;left:0.08cm;width:4.18cm;font-size:6pt;">{{ $sur }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="mc-box" style="top:4.20cm;left:6.59cm;width:4.37cm;height:0.67cm;border-top:none;border-right:none;">
|
||||
<div style="position:absolute;top:0.03cm;left:0.05cm;font-size:6pt;">* REFERENCE No*</div>
|
||||
<div style="position:absolute;top:0.31cm;left:0.05cm;font-size:6.5pt;">{{ $order_reference }}</div>
|
||||
</div>
|
||||
|
||||
<div class="mc-box" style="top:4.97cm;left:6.60cm;width:4.37cm;height:1.31cm;border-top:none;">
|
||||
<div style="position:absolute;top:0.03cm;left:0.08cm;font-size:6pt;">* ΠΑΡΑΤΗΡΗΣΕΙΣ *</div>
|
||||
</div>
|
||||
|
||||
{{-- Right-hand signature / print-timestamp column, differs by copy type --}}
|
||||
@if ($copyType === 'delivery')
|
||||
<div class="mc-box" style="top:6.37cm;left:6.61cm;width:4.71cm;height:2.07cm;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.08cm;font-size:6.5pt;">{{ $antik_1 ?? '' }}</div>
|
||||
</div>
|
||||
<div class="mc-box" style="top:6.37cm;left:11.48cm;width:3.89cm;height:2.03cm;">
|
||||
<div style="position:absolute;top:0.08cm;left:0.08cm;font-size:6pt;">ΓΙΑ ΤΗΝ ΠΑΡΑΛΑΒΗ</div>
|
||||
<div style="position:absolute;top:0.38cm;left:0.08cm;font-size:6pt;">ΟΝΟΜΑ/ΥΠΟΓΡΑΦΗ</div>
|
||||
<div style="position:absolute;top:1.73cm;left:0.11cm;font-size:6pt;">{{ $date }} {{ $time }}</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="mc-box" style="top:6.37cm;left:6.61cm;width:4.71cm;height:2.07cm;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.08cm;font-size:6.5pt;">{{ $antik_1 ?? '' }}</div>
|
||||
</div>
|
||||
<div class="mc-box" style="top:6.37cm;left:11.48cm;width:3.89cm;height:2.03cm;">
|
||||
<div style="position:absolute;top:0.08cm;left:0.08cm;font-size:6pt;font-weight:bold;">ΥΠΟΓΡΑΦΗ ΑΠΟΣΤΟΛΕΑ</div>
|
||||
<div style="position:absolute;top:1.73cm;left:0.11cm;font-size:6pt;">Ημερομηνία - Ωρα Εκτύπωσης: {{ $date }} {{ $time }}</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,17 @@
|
||||
{{--
|
||||
Sender/recipient box, matching SydetaLabelE.rdlc's rectangle10/
|
||||
rectangle11 (ΑΠΟΣΤΟΛΕΑΣ/ΠΑΡΑΛΗΠΤΗΣ) layout: a bold title line, then
|
||||
the RDLC's sender_1..5 / rec_1..5 fields as separate plain text
|
||||
lines (ELTA's own client pre-wraps the address into these fixed-
|
||||
width lines server-side, so we render each line separately rather
|
||||
than reflowing the address ourselves, to match the real line
|
||||
breaks).
|
||||
|
||||
Expects: $title, $lines (array of up to 5 strings).
|
||||
--}}
|
||||
<div class="pb-title">{{ $title }}</div>
|
||||
@foreach ($lines as $line)
|
||||
@if (trim((string) $line) !== '')
|
||||
<div class="pb-line">{{ $line }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@@ -0,0 +1,120 @@
|
||||
{{--
|
||||
Copy 3: the ΤΑΧΥΠΛΗΡΩΜΗ ΕΙΣΠΡΑΞΗ/ΜΕΤΑΒΙΒΑΣΗ payment-receipt stub,
|
||||
geometry transcribed from sydetaE.rdlc's third band (source Top
|
||||
values there run ~19.22cm-27.0cm on the full A4 page; offsets below
|
||||
are relative to this partial's own container, i.e. the RDLC's Top
|
||||
minus 19.22cm). This band is narrower than copies 1/2 (starts at
|
||||
x=3.01cm instead of x=0.27cm) — the RDLC leaves its left margin for
|
||||
the perforated tear line + rotated "3. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΚΑΤΑΘΕΣΗΣ"
|
||||
text, reproduced by the caller outside this partial.
|
||||
|
||||
Expects all of EltaLabelRenderer's $data.
|
||||
--}}
|
||||
<div class="mc-box" style="top:0.00cm;left:6.44cm;width:6.64cm;height:1.15cm;">
|
||||
<div class="mc-barcode" style="top:0.10cm;left:0.22cm;width:6.27cm;">
|
||||
<img src="{{ $barcode_voucher }}" alt="">
|
||||
</div>
|
||||
<div class="mc-voucher" style="top:0.75cm;left:0.24cm;width:6.14cm;">{{ $voucher_no }}</div>
|
||||
</div>
|
||||
<div class="mc-copylabel" style="position:absolute;top:0.10cm;left:0.00cm;width:3.92cm;font-size:8pt;font-weight:bold;">{{ $voucher_no }}</div>
|
||||
|
||||
{{-- 4-cell deposit/destination/weight/pieces row: same doubled-border
|
||||
issue and same fix as _main-copy.blade.php's 5-cell row — a real
|
||||
<table border-collapse:collapse> in place of 4 independently-bordered
|
||||
absolute divs, positioned at the row's own RDLC top/left/width. --}}
|
||||
<table class="mc-cell-row" style="top:1.60cm;left:0.02cm;width:5.61cm;height:0.82cm;">
|
||||
<colgroup>
|
||||
<col style="width:1.51cm;"><col style="width:1.67cm;"><col style="width:1.35cm;"><col style="width:1.08cm;">
|
||||
</colgroup>
|
||||
{{-- border-bottom:none on every cell: the ΑΠΟΣΤΟΛΕΑΣ party box
|
||||
immediately below (top:2.44cm, this row ends at 2.42cm) already
|
||||
draws that shared line with its own border-top. --}}
|
||||
<tr>
|
||||
<td class="mc-cell-td" style="border-bottom:none;">
|
||||
<div class="mc-cell-label">Γρ.Κατάθεσης</div>
|
||||
<div class="mc-cell-val">{{ $station_apo }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td" style="border-bottom:none;">
|
||||
<div class="mc-cell-label">Γρ.Προορισμού</div>
|
||||
<div class="mc-cell-val">{{ $station_pros }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td" style="border-bottom:none;">
|
||||
<div class="mc-cell-label">Βάρος</div>
|
||||
<div class="mc-cell-val">{{ $weight }}</div>
|
||||
</td>
|
||||
<td class="mc-cell-td" style="border-bottom:none;">
|
||||
<div class="mc-cell-label">Τεμάχια</div>
|
||||
<div class="mc-cell-val">{{ $package_label }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="mc-box" style="top:1.60cm;left:5.90cm;width:4.87cm;height:0.40cm;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.13cm;font-size:6pt;">{{ $service_code }}</div>
|
||||
<div style="position:absolute;top:0.03cm;left:0.85cm;width:3.89cm;font-size:6pt;">{{ $service_name }}</div>
|
||||
</div>
|
||||
|
||||
{{-- Below: several panel pairs sit a hair apart (or, for the
|
||||
Συν.Χρέωσης/ΕΠΙΒΑΡΥΝΣΕΙΣ pair, even overlap slightly) per the RDLC's
|
||||
own geometry — left untouched — close enough that two independent
|
||||
borders read as one doubled/thick line. border-top/border-bottom is
|
||||
removed from one side of each pair so only the remaining box's
|
||||
border draws that shared line. --}}
|
||||
<div class="mc-box mc-charge" style="top:2.02cm;left:5.90cm;width:4.87cm;height:0.37cm;font-size:5.4pt;padding-top:4px;white-space:nowrap;overflow:hidden;border-top:none;">{{ str_replace(' ΠΙΣΤΩΣΗ', ' ΤΡ.ΠΛΗΡ: ΠΙΣΤΩΣΗ', $xreosi) }}</div>
|
||||
|
||||
<div class="mc-box mc-partybox" style="top:2.44cm;left:0.00cm;width:5.98cm;height:0.91cm;overflow:hidden;">
|
||||
<div class="mc-party-title" style="top:0.03cm;left:0.10cm;font-size:6.5pt;">ΑΠΟΣΤΟΛΕΑΣ</div>
|
||||
@foreach ($sender_lines as $i => $line)
|
||||
@if (trim((string) $line) !== '')
|
||||
<div class="mc-party-line" style="top:{{ 0.30 + $i * 0.19 }}cm;left:0.06cm;width:5.85cm;font-size:5.6pt;">{{ $line }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="mc-box" style="top:2.45cm;left:6.06cm;width:4.71cm;height:1.17cm;border-bottom:none;">
|
||||
<div style="position:absolute;top:0.02cm;left:0.16cm;font-size:6pt;">Συν.Χρέωσης (€):</div>
|
||||
<div style="position:absolute;top:0.30cm;left:0.16cm;font-size:6pt;">Πρόσθετες Υπηρεσίες</div>
|
||||
</div>
|
||||
|
||||
<div class="mc-box mc-partybox" style="top:3.35cm;left:0.00cm;width:5.97cm;height:1.63cm;overflow:hidden;border-top:none;">
|
||||
<div class="mc-party-title" style="top:0.06cm;left:0.10cm;font-size:6.5pt;">ΠΑΡΑΛΗΠΤΗΣ</div>
|
||||
@foreach ($recipient_lines as $i => $line)
|
||||
@if (trim((string) $line) !== '')
|
||||
<div class="mc-party-line" style="top:{{ 0.34 + $i * 0.26 }}cm;left:0.10cm;width:5.79cm;font-size:5.6pt;">{{ $line }}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="mc-box" style="top:3.28cm;left:6.06cm;width:4.71cm;height:1.41cm;">
|
||||
<div style="position:absolute;top:0.05cm;left:0.14cm;font-size:6pt;">* ΕΠΙΒΑΡΥΝΣΕΙΣ *</div>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute;top:4.95cm;left:0.05cm;width:8.75cm;font-size:4.6pt;line-height:1.25;white-space:nowrap;">
|
||||
Έλαβα γνώση των όρων που αναγράφονται στο αντίγραφο 1 και 6 και τους αποδέχομαι ανεπιφύλακτα
|
||||
</div>
|
||||
|
||||
{{-- rectangle29 --}}
|
||||
<div class="mc-box" style="top:5.46cm;left:0.03cm;width:2.75cm;height:1.66cm;">
|
||||
<div style="position:absolute;top:0.08cm;left:0.08cm;font-size:6pt;font-weight:bold;">ΥΠΟΓΡΑΦΗ ΑΠΟΣΤΟΛΕΑ</div>
|
||||
<div style="position:absolute;top:1.35cm;left:0.08cm;font-size:6pt;">{{ $date }}</div>
|
||||
</div>
|
||||
{{-- rectangle43 --}}
|
||||
<div class="mc-box" style="top:5.47cm;left:2.89cm;width:3.76cm;height:1.66cm;">
|
||||
<div style="position:absolute;top:0.09cm;left:0.08cm;font-size:6pt;font-weight:bold;">ΟΝΟΜΑ/ΥΠΟΓΡΑΦΗ ΠΑΡΑΛΗΠΤΗ</div>
|
||||
<div style="position:absolute;top:1.35cm;left:0.08cm;font-size:6pt;">Ημ/νία: Ώρα:</div>
|
||||
</div>
|
||||
{{-- rectangle44 --}}
|
||||
<div class="mc-box" style="top:5.48cm;left:6.76cm;width:3.99cm;height:1.68cm;text-align:center;">
|
||||
<div style="position:absolute;top:0.04cm;left:0;width:100%;font-size:7pt;">Π Ο Σ Ο</div>
|
||||
<div style="position:absolute;top:0.75cm;left:0;width:100%;font-size:13pt;font-weight:bold;">{{ number_format($cod_amount ?? 0, 2) }}</div>
|
||||
</div>
|
||||
{{-- rectangle45: small ELTA-branded legal box; the real RDLC fills it via
|
||||
its own Image18 bitmap (baked "ΠΟΡΤΑ-ΠΟΡΤΑ ΕΛΛΗΝΙΚΑ ΤΑΧΥΔΡΟΜΕΙΑ..."
|
||||
legal text + logo graphic) rather than text fields — approximated
|
||||
here with our own extracted logo + the same legal text as plain
|
||||
HTML, since we can't extract that embedded bitmap. --}}
|
||||
<div class="mc-box ps-brandbox-small" style="top:5.55cm;left:10.84cm;width:2.72cm;height:1.61cm;">
|
||||
<div class="ps-brand-logo-sm"><img src="{{ $eltaLogo }}" alt=""></div>
|
||||
<div class="ps-legal-sm">
|
||||
<strong>ΠΟΡΤΑ-ΠΟΡΤΑ</strong><br>
|
||||
ΕΛΛΗΝΙΚΑ ΤΑΧΥΔΡΟΜΕΙΑ Α.Ε.<br>
|
||||
ΕΕΤΤ ΑΜ: 99-150
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user