Servis: revers i predracun (iz stavki radova+delova), uslovi servisa u podesavanjima, status U dijagnostici
- Revers (servis_revers.html) - dokument prijema bez cena, sa QR, oscecenjima i uslovima servisa - Predracun (servis_predracun.html) - procena iz stavki radova i delova, klauzula, dugme uvek dostupno - Podesavanja > Servis: kartica Uslovi servisa (servis_uslovi + servis_klauzula_predracuna), auto-snimanje, bez dugmeta Sacuvaj - Genericki data-autosave obrazac u base.html - Status U dijagnostici: konstanta + kanban kolona + dugme Pocni dijagnostiku (vidljivo u Primljeno)
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Revers — {{.Nalog.BrojNaloga}}</title>
|
||||
<style>
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; font-size: 13px; color: #111; background: #fff; }
|
||||
|
||||
.strana { max-width: 780px; margin: 0 auto; padding: 32px 40px; }
|
||||
|
||||
/* zaglavlje */
|
||||
.zaglavlje { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 2px solid #111; gap: 20px; }
|
||||
.firma-naziv { font-size: 20px; font-weight: 700; }
|
||||
.firma-info { font-size: 11px; color: #555; margin-top: 4px; line-height: 1.7; }
|
||||
.dok-naslov { text-align: right; }
|
||||
.dok-tip { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: #555; margin-bottom: 4px; }
|
||||
.dok-broj { font-size: 22px; font-weight: 700; font-family: monospace; }
|
||||
.dok-datum { font-size: 12px; color: #555; margin-top: 6px; }
|
||||
|
||||
/* strane */
|
||||
.strane-blok { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
|
||||
.strana-kartica { padding: 12px 14px; border: 0.5px solid #ddd; border-radius: 6px; }
|
||||
.strana-tip { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.6px; color: #888; margin-bottom: 6px; }
|
||||
.strana-naziv { font-size: 14px; font-weight: 600; }
|
||||
.strana-info { font-size: 12px; color: #555; margin-top: 3px; line-height: 1.6; }
|
||||
|
||||
/* odeljci */
|
||||
.odeljak { margin-bottom: 18px; }
|
||||
.odeljak-naslov { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: #555; margin-bottom: 8px; padding-bottom: 4px; border-bottom: 0.5px solid #ccc; }
|
||||
|
||||
/* podaci */
|
||||
.podaci-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
|
||||
.polje-labela { font-size: 10px; color: #777; text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 3px; }
|
||||
.polje-vrednost { font-size: 13px; font-weight: 500; }
|
||||
.polje-vrednost-mono { font-family: monospace; font-size: 13px; font-weight: 500; }
|
||||
.polje-tekst { font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
|
||||
.prazno { color: #aaa; font-style: italic; }
|
||||
|
||||
/* PIN istaknut */
|
||||
.pin-vrednost { font-family: monospace; font-size: 13px; font-weight: 700; background: #fef9c3; padding: 1px 6px; border-radius: 4px; }
|
||||
|
||||
/* napomena klijentu */
|
||||
.napomena-blok { padding: 10px 14px; border: 0.5px solid #cbd5e1; background: #f8fafc; border-radius: 6px; font-size: 12px; line-height: 1.6; white-space: pre-wrap; }
|
||||
|
||||
/* uslovi servisa */
|
||||
.uslovi-blok { font-size: 11px; color: #444; line-height: 1.7; white-space: pre-wrap; }
|
||||
|
||||
/* potpisi */
|
||||
.potpisi { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 36px; padding-top: 16px; border-top: 0.5px solid #ccc; }
|
||||
.potpis-linija { border-top: 1px solid #888; margin-top: 44px; padding-top: 6px; font-size: 11px; color: #555; text-align: center; }
|
||||
|
||||
/* napomena na dnu */
|
||||
.dno-info { margin-top: 20px; font-size: 11px; color: #888; text-align: center; }
|
||||
|
||||
@media print {
|
||||
body { font-size: 12px; }
|
||||
.strana { padding: 16px 20px; max-width: 100%; }
|
||||
.dugme-stampa { display: none !important; }
|
||||
@page { size: A4; margin: 12mm 14mm; }
|
||||
}
|
||||
.dugme-stampa { position: fixed; bottom: 24px; right: 24px; background: #111; color: #fff; border: none; padding: 12px 22px; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
|
||||
.dugme-stampa:hover { background: #333; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="strana">
|
||||
|
||||
<!-- zaglavlje -->
|
||||
<div class="zaglavlje">
|
||||
<div>
|
||||
<div class="firma-naziv">{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}</div>
|
||||
<div class="firma-info">
|
||||
{{if .Podnazlov}}{{.Podnazlov}}<br>{{end}}
|
||||
{{if .Adresa}}{{.Adresa}}<br>{{end}}
|
||||
{{if .Telefon}}Tel: {{telefon .Telefon}}<br>{{end}}
|
||||
{{if .PIB}}PIB: {{.PIB}}{{end}}
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex;align-items:flex-start;gap:14px;">
|
||||
<div class="dok-naslov">
|
||||
<div class="dok-tip">Revers — potvrda o prijemu</div>
|
||||
<div class="dok-broj">{{.Nalog.BrojNaloga}}</div>
|
||||
<div class="dok-datum">Datum prijema: {{.Nalog.DatumPrijema.Format "02.01.2006."}}</div>
|
||||
{{if .Nalog.PredvidjenDatum}}
|
||||
<div class="dok-datum">Predviđen rok: {{.Nalog.PredvidjenDatum.Format "02.01.2006."}}</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{if .QRKod}}
|
||||
<img src="data:image/png;base64,{{.QRKod}}" width="76" height="76"
|
||||
alt="QR {{.Nalog.BrojNaloga}}"
|
||||
style="image-rendering:pixelated;border:1px solid #ddd;border-radius:4px;flex-shrink:0;">
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- primalac (firma) i predao (klijent) -->
|
||||
<div class="strane-blok">
|
||||
<div class="strana-kartica">
|
||||
<div class="strana-tip">Primio (servis)</div>
|
||||
<div class="strana-naziv">{{if .NazivFirme}}{{.NazivFirme}}{{else}}—{{end}}</div>
|
||||
<div class="strana-info">
|
||||
{{if .Adresa}}{{.Adresa}}<br>{{end}}
|
||||
{{if .Telefon}}{{telefon .Telefon}}{{end}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="strana-kartica">
|
||||
<div class="strana-tip">Predao (klijent)</div>
|
||||
{{if .KlijentNaziv}}
|
||||
<div class="strana-naziv">{{.KlijentNaziv}}</div>
|
||||
<div class="strana-info">
|
||||
{{if .Klijent}}
|
||||
{{if .Klijent.Telefon}}Tel: {{telefon .Klijent.Telefon}}<br>{{end}}
|
||||
{{if .Klijent.Mesto}}{{.Klijent.Mesto}}<br>{{end}}
|
||||
{{end}}
|
||||
{{if .KlijentBrojIdent}}{{.KlijentOznakaIdent}}: {{.KlijentBrojIdent}}{{end}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="strana-naziv prazno">— klijent nije naveden —</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- uređaj -->
|
||||
<div class="odeljak">
|
||||
<div class="odeljak-naslov">Uređaj na servisu</div>
|
||||
<div class="podaci-grid" style="margin-bottom:10px;">
|
||||
<div>
|
||||
<div class="polje-labela">Naziv uređaja</div>
|
||||
<div class="polje-vrednost">{{if .Nalog.Uredjaj}}{{.Nalog.Uredjaj}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="polje-labela">Serijski broj</div>
|
||||
<div class="polje-vrednost-mono">{{if .Nalog.SerijskiBroj}}{{.Nalog.SerijskiBroj}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||||
</div>
|
||||
{{if .Nalog.PinUredjaja}}
|
||||
<div>
|
||||
<div class="polje-labela">PIN / lozinka</div>
|
||||
<div><span class="pin-vrednost">{{.Nalog.PinUredjaja}}</span></div>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{if .Nalog.Pribor}}
|
||||
<div style="margin-top:8px;">
|
||||
<div class="polje-labela">Pribor predat uz uređaj</div>
|
||||
<div class="polje-tekst">{{.Nalog.Pribor}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .Nalog.Ostecenja}}
|
||||
<div style="margin-top:8px;">
|
||||
<div class="polje-labela">Vidljiva oštećenja pri prijemu</div>
|
||||
<div class="polje-tekst">{{.Nalog.Ostecenja}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .Nalog.TrazeneNadogradnje}}
|
||||
<div style="margin-top:8px;">
|
||||
<div class="polje-labela">Tražene nadogradnje</div>
|
||||
<div class="polje-tekst">{{.Nalog.TrazeneNadogradnje}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<!-- prijavljeni kvar -->
|
||||
<div class="odeljak">
|
||||
<div class="odeljak-naslov">Prijavljeni kvar (po izjavi klijenta)</div>
|
||||
<div class="polje-tekst">{{if .Nalog.OpisKvara}}{{.Nalog.OpisKvara}}{{else}}<span class="prazno">—</span>{{end}}</div>
|
||||
</div>
|
||||
|
||||
<!-- napomena klijentu -->
|
||||
{{if .Nalog.NapomenaKlijentu}}
|
||||
<div class="odeljak">
|
||||
<div class="odeljak-naslov">Napomena</div>
|
||||
<div class="napomena-blok">{{.Nalog.NapomenaKlijentu}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<!-- uslovi servisa -->
|
||||
{{if .Uslovi}}
|
||||
<div class="odeljak">
|
||||
<div class="odeljak-naslov">Uslovi servisa</div>
|
||||
<div class="uslovi-blok">{{.Uslovi}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<!-- potpisi -->
|
||||
<div class="potpisi">
|
||||
<div>
|
||||
<div class="potpis-linija">Predao (klijent)</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="potpis-linija">Primio{{if .TehnicarNaziv}} — {{.TehnicarNaziv}}{{end}} (servis)</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dno-info">Revers se izdaje u dva primerka — po jedan za klijenta i za servis. Uređaj se preuzima uz ovaj revers.</div>
|
||||
|
||||
</div>
|
||||
|
||||
<button class="dugme-stampa" onclick="window.print()">Štampaj</button>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user