diff --git a/internal/handler/izvestaji.go b/internal/handler/izvestaji.go index f0e2e77..c31cf62 100644 --- a/internal/handler/izvestaji.go +++ b/internal/handler/izvestaji.go @@ -316,11 +316,12 @@ func (h *Handler) StanjeZalihaIzvestaj(w http.ResponseWriter, r *http.Request) { // PodaciPopisa su podaci za stranicu popisa type PodaciPopisa struct { model.PodaciStranice - Artikli []model.ArtikalSaKategorijom - Sacuvano bool - Greska string - TipPopisa string // godišnji | vanredni | preuzimanje - DatumPopisa string // formatiran datum za prikaz + Artikli []model.ArtikalSaKategorijom + Sacuvano bool + Greska string + TipPopisa string // godišnji | vanredni | preuzimanje + TipPopisaNaziv string // „Godišnji popis", „Vanredni popis", „Popis pri preuzimanju dužnosti" + DatumPopisa string // formatiran datum za prikaz } // Popis prikazuje formu za unos stvarnog stanja (inventuru) @@ -339,16 +340,30 @@ func (h *Handler) Popis(w http.ResponseWriter, r *http.Request) { ps := h.popuniPodaciStranice(r, podesavanja) ps.Stranica = "izvestaji" ps.NaslovStranice = "Popis" + tp := "godišnji" h.renderujTemplate(w, "popis", PodaciPopisa{ PodaciStranice: ps, Artikli: artikli, Sacuvano: r.URL.Query().Get("sacuvano") == "1", - TipPopisa: "godišnji", + TipPopisa: tp, + TipPopisaNaziv: tipPopisaNaziv(tp), DatumPopisa: time.Now().Format("02.01.2006."), }) } +// tipPopisaNaziv vraća lokalizovani naziv za tip popisa +func tipPopisaNaziv(tp string) string { + switch tp { + case "vanredni": + return "Vanredni popis" + case "preuzimanje": + return "Popis pri preuzimanju dužnosti" + default: + return "Godišnji popis" + } +} + // SacuvajPopis prima POST formu sa prebrojenim količinama i upisuje korekcije func (h *Handler) SacuvajPopis(w http.ResponseWriter, r *http.Request) { k := middleware.KorisnikIzKonteksta(r.Context()) @@ -429,6 +444,7 @@ func (h *Handler) SacuvajPopis(w http.ResponseWriter, r *http.Request) { Artikli: artikli, Greska: fmt.Sprintf("Došlo je do greške pri upisivanju %d artikala.", greskaBroj), TipPopisa: tipPopisa, + TipPopisaNaziv: tipPopisaNaziv(tipPopisa), DatumPopisa: time.Now().Format("02.01.2006."), }) return diff --git a/web/templates/stranice/popis.html b/web/templates/stranice/popis.html index 739446e..02759ac 100644 --- a/web/templates/stranice/popis.html +++ b/web/templates/stranice/popis.html @@ -93,35 +93,107 @@ .popis-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } } - /* ── ŠTAMPA: A4 landscape, bez skrolbara, sve u širinu ─────── + /* ── ŠTAMPA: A4 landscape, fiksni layout, NE responsive ─────── Print poništava mobilne kartice (!important) — i sa telefona se štampa A4 tabela, ne prilagođava se ekranu. */ @media print { - @page { size: A4 landscape; margin: 12mm 10mm; } + @page { size: A4 landscape; margin: 10mm 8mm; } - /* sakrij sve sem tabele */ - .sidebar, .topbar, .popis-akcije, .btn-primarno, .btn-sekundarno, - .nazad-link, .poruka-uspeh, .poruka-greska, .popis-suma { display: none !important; } + /* ── resetuj pozadinu i boje (dark tema + glass efekti) ── */ + html, body, .raspored, .glavni-sadrzaj, .sadrzaj, main, .kolona, + .kartica, .kartica div, .kartica p, .kartica span, .kartica label { + background: #fff !important; + color: #111 !important; + text-shadow: none !important; + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; + } + html { background: #fff !important; } + body { min-width: 780px; font-size: 12px; } + body::before, body::after { display: none !important; } + .raspored { position: static !important; z-index: auto !important; } + .glavni-sadrzaj { margin-left: 0 !important; } + .sadrzaj { padding: 0 !important; max-width: none !important; } - /* ništa ne sme da seče/skroluje → nema skrolbara */ + /* sakrij hrom */ + .sidebar, .sidebar-overlay, .topbar, #hamburger, + .btn-primarno, .btn-sekundarno, .nazad-link, + .poruka-uspeh, .poruka-greska, .flash-toast, + #potvrda-modal, .dugme-stampa, .popis-suma { display: none !important; } + + /* sakrij info karticu (uputstvo) */ + .popis-info-kartica { display: none !important; } + + /* sakrij okvire forme koji nisu tabela */ + .popis-forma-zaglavlje, + .popis-forma-sumarno, + .popis-forma-dugme { display: none !important; } + + /* ništa ne sme da seče/skroluje */ * { overflow: visible !important; } + /* zaglavlje štampe — naziv firme, datum, tip popisa */ + .stampa-zaglavlje { display: block !important; } + /* vrati tabelu iz kartica (mobilni) nazad u pravu tabelu */ - #popis-tabela { display: table !important; width: 100% !important; table-layout: fixed; border-collapse: collapse; font-size: 9px; } + #popis-tabela { + display: table !important; + width: 100% !important; + border-collapse: collapse; + font-size: 10px; + } #popis-tabela thead { display: table-header-group !important; } #popis-tabela tbody { display: table-row-group !important; } - #popis-tabela tr { display: table-row !important; border: none !important; padding: 0 !important; margin: 0 !important; } - #popis-tabela th, #popis-tabela td { + #popis-tabela tfoot { display: table-footer-group !important; } + #popis-tabela tr { + display: table-row !important; + border: none !important; + padding: 0 !important; + margin: 0 !important; + break-inside: avoid; + } + #popis-tabela th { display: table-cell !important; - border: 0.5px solid #999 !important; - padding: 3px 4px !important; + border: 0.5px solid #888 !important; + padding: 4px 6px !important; + font-size: 9px !important; + font-weight: 600 !important; + text-align: center !important; + background: #f0f0f0 !important; + color: #111 !important; + } + #popis-tabela th:first-child { text-align: left !important; } + #popis-tabela td { + display: table-cell !important; + border: 0.5px solid #ccc !important; + padding: 3px 6px !important; text-align: right !important; - font-size: 9px !important; - word-break: break-word; + font-size: 10px !important; + color: #111 !important; + } + #popis-tabela td.kart-naslov { + text-align: left !important; + font-size: 10px !important; + font-weight: 500 !important; } - #popis-tabela td.kart-naslov { text-align: left !important; font-size: 9px !important; font-weight: 500 !important; } #popis-tabela td::before, #popis-tabela th::before { content: none !important; } - .popis-input { border: none !important; background: transparent !important; width: auto !important; padding: 0 !important; font-size: 9px !important; } + + /* inputi — izgledaju kao običan tekst */ + .popis-input { + -moz-appearance: textfield !important; + appearance: textfield !important; + border: none !important; + background: transparent !important; + width: auto !important; + max-width: 60px !important; + padding: 0 !important; + font-size: 10px !important; + color: #111 !important; + text-align: right !important; + } + + /* sakrij labele iz zaglavlja forme (Tip, Napomena) */ + .popis-polje, form .polje-labela { display: none !important; } } {{end}} @@ -129,6 +201,12 @@ {{define "sadrzaj"}}
+ + + {{if .Sacuvano}}
Popis je uspešno sačuvan. Korekcije su upisane u magacinsku evidenciju.
{{end}} @@ -137,7 +215,7 @@ {{end}} -
+
Popis magacina
@@ -162,7 +240,7 @@
-
+
Artikli
@@ -247,7 +325,7 @@
-
+
Manjkovi (kom) @@ -269,7 +347,7 @@
-
+
{{end}}