- Nalepnica: uklonjen QR (ostaje na uređaju u servisu, klijent nema šta da skenira);
oslobođen prostor iskorišćen za telefon klijenta i datume (prijem + rok)
- Radni nalog: obrisani „servis_stampa" i „servis_predracun"; nov interni
„servis_radni_nalog" (ruta /servis/{id}/radni-nalog) sa podacima samo za
servisera, bez cena, sa barkodom i praznim poljima (dijagnoza, urađen rad, potpis)
- Forma „Izmeni nalog": kartice „Serviser" i „Avans i napomena" spojene u jednu
„Serviser, avans i napomena"
- Servis kanban: dugme uz SN broj otvara internu napomenu (hover na desktopu,
tap→focus na mobilnom); okidač na omotaču da napomena ne treperi
- Detalji naloga (responsive): forme „Dodaj rad/deo" izvučene iz inline grid-a u
klase + @media (2 kolone na telefonu); tabele radova/delova u tabela-skrol
90 lines
3.9 KiB
HTML
90 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="sr">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Nalepnica — {{.Nalog.BrojNaloga}}</title>
|
||
<style>
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
html, body { background: #f4f4f5; }
|
||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #111; }
|
||
|
||
/* nalepnica 70×40 mm */
|
||
.nalepnica {
|
||
width: 70mm;
|
||
height: 40mm;
|
||
background: #fff;
|
||
padding: 2.5mm 3mm;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 1.5mm;
|
||
overflow: hidden;
|
||
}
|
||
/* na ekranu — centrirano sa okvirom radi pregleda */
|
||
@media screen {
|
||
.nalepnica { margin: 24px auto; border: 1px dashed #bbb; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
|
||
}
|
||
|
||
/* barkod na vrhu — preko cele širine, za laserski skener */
|
||
.barkod { flex: 0 0 auto; text-align: center; }
|
||
.barkod img { display: block; width: 100%; height: 9mm; object-fit: fill; }
|
||
|
||
.donji-red { flex: 1; min-width: 0; display: flex; align-items: stretch; }
|
||
|
||
.podaci { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1.2mm; }
|
||
.broj { font-family: monospace; font-size: 14pt; font-weight: 700; line-height: 1.1; }
|
||
.red { font-size: 8pt; line-height: 1.25; display: flex; gap: 2mm; }
|
||
.red .labela { color: #777; text-transform: uppercase; letter-spacing: .3px; font-size: 6.5pt; flex: 0 0 14mm; align-self: center; }
|
||
.red .vrednost { font-weight: 600; word-break: break-word; }
|
||
.prazno { color: #aaa; font-style: italic; font-weight: 400; }
|
||
.datumi { display: flex; gap: 5mm; font-size: 8pt; }
|
||
.datumi .stavka { display: flex; gap: 1.5mm; align-items: baseline; }
|
||
.datumi .labela { color: #777; text-transform: uppercase; letter-spacing: .3px; font-size: 6.5pt; }
|
||
.datumi .vrednost { font-weight: 600; }
|
||
|
||
@page { size: 70mm 40mm; margin: 0; }
|
||
@media print {
|
||
html, body { background: #fff; }
|
||
.nalepnica { margin: 0; border: 0; box-shadow: none; }
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="nalepnica">
|
||
{{if .Barkod}}
|
||
<div class="barkod"><img src="data:image/png;base64,{{.Barkod}}" alt="Barkod"></div>
|
||
{{end}}
|
||
<div class="donji-red">
|
||
<div class="podaci">
|
||
<div class="broj">{{.Nalog.BrojNaloga}}</div>
|
||
<div class="red">
|
||
<div class="labela">Klijent</div>
|
||
<div class="vrednost">{{if .KlijentNaziv}}{{.KlijentNaziv}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||
</div>
|
||
<div class="red">
|
||
<div class="labela">Telefon</div>
|
||
<div class="vrednost">{{if .Telefon}}{{telefon .Telefon}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||
</div>
|
||
<div class="red">
|
||
<div class="labela">Uređaj</div>
|
||
<div class="vrednost">{{if .Nalog.Uredjaj}}{{.Nalog.Uredjaj}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||
</div>
|
||
<div class="datumi">
|
||
<div class="stavka">
|
||
<span class="labela">Primljen</span>
|
||
<span class="vrednost">{{.DatumPrijema}}</span>
|
||
</div>
|
||
{{if .PredvidjenRok}}
|
||
<div class="stavka">
|
||
<span class="labela">Rok</span>
|
||
<span class="vrednost">{{.PredvidjenRok}}</span>
|
||
</div>
|
||
{{end}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>window.addEventListener('load', function(){ window.print(); });</script>
|
||
</body>
|
||
</html>
|