From af67daf7de91d9980c7ad1fbb3361afd299a1175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Tue, 30 Jun 2026 22:33:09 +0200 Subject: [PATCH] Servis: rok za podizanje (DatumZavrsetka + 30 dana) u detaljima naloga i javnoj status stranici --- internal/handler/servis.go | 13 +++++++++++++ web/templates/stranice/servis_detalji.html | 4 ++++ web/templates/stranice/servis_status_javni.html | 7 +++++++ 3 files changed, 24 insertions(+) diff --git a/internal/handler/servis.go b/internal/handler/servis.go index bf7e6c1..d7ca53d 100644 --- a/internal/handler/servis.go +++ b/internal/handler/servis.go @@ -82,6 +82,7 @@ type PodaciDetaljiNaloga struct { KorisceneUsluge map[int64]bool // ID-evi usluga već dodatih na nalog — izostavljaju se iz dropdown-a SviStatusi []string FiskalniRacun *model.FiskalniRacun // nil ako nije fiskalizovano + RokPodizanja *time.Time // DatumZavrsetka + 30 dana; nil dok nije završeno } // Servis renderuje listu servisnih naloga sa opcionom pretragom i filterom statusa @@ -734,6 +735,7 @@ func (h *Handler) DetaljiNaloga(w http.ResponseWriter, r *http.Request) { CenaDijagnostikePredlog: podesavanja["servis_cena_dijagnostike"], KorisceneUsluge: korisceneUsluge, SviStatusi: model.SviStatusi, + RokPodizanja: rokPodizanja(nalog.DatumZavrsetka), } // učitaj fiskalni račun ako postoji (za prikaz u detaljima) @@ -753,6 +755,15 @@ func jePredlogStatus(status string) bool { return status != "" && status != model.StatusPrimljeno } +// rokPodizanja vraća datum završetka + 30 dana; nil ako završetak nije postavljen. +func rokPodizanja(datumZavrsetka *time.Time) *time.Time { + if datumZavrsetka == nil { + return nil + } + t := datumZavrsetka.AddDate(0, 0, 30) + return &t +} + // DodajDeloNalogu prima POST formu i dodaje artikal kao deo servisnog naloga func (h *Handler) DodajDeloNalogu(w http.ResponseWriter, r *http.Request) { k, ok := h.zahtevajDozvolu(w, r, "servis.izmeni") @@ -2635,6 +2646,7 @@ type PodaciJavnogStatusa struct { UkupnoSaPredlogom float64 // ukupno ugrađeno + predloženo UkupnoSaPredlogomSaPdv float64 Odgovoreno bool // klijent vec odgovorio (nema predloga, nije "Primljeno") + RokPodizanja *time.Time Moduli map[string]bool SviStatusi []string } @@ -2725,6 +2737,7 @@ func (h *Handler) ServisJavniStatus(w http.ResponseWriter, r *http.Request) { UkupnoSaPredlogom: ukupnoSve + ukupnoPredlog, UkupnoSaPredlogomSaPdv: ukupnoSveSaPdv + ukupnoPredlogSaPdv, Odgovoreno: nalog.OdlukaKlijenta != "" || (!(len(predRadovi) > 0 || len(predDelovi) > 0) && nalog.Status != model.StatusPrimljeno), + RokPodizanja: rokPodizanja(nalog.DatumZavrsetka), Moduli: moduli, SviStatusi: model.SviStatusi, }) diff --git a/web/templates/stranice/servis_detalji.html b/web/templates/stranice/servis_detalji.html index c5bca6c..1402e8a 100644 --- a/web/templates/stranice/servis_detalji.html +++ b/web/templates/stranice/servis_detalji.html @@ -286,6 +286,10 @@
{{if .Nalog.DatumZavrsetka}}{{.Nalog.DatumZavrsetka.Format "02.01.2006."}}{{else}}—{{end}}
+ {{if and .RokPodizanja (eq .Nalog.Status "Završeno")}} +
Rok za podizanje
+
{{.RokPodizanja.Format "02.01.2006."}}
+ {{end}} {{else}}
Predviđen datum popravke
diff --git a/web/templates/stranice/servis_status_javni.html b/web/templates/stranice/servis_status_javni.html index 86187d2..6a5e33e 100644 --- a/web/templates/stranice/servis_status_javni.html +++ b/web/templates/stranice/servis_status_javni.html @@ -214,6 +214,13 @@
{{end}} + {{if .RokPodizanja}} +
+ Rok za podizanje + {{.RokPodizanja.Format "02.01.2006."}} +
+ {{end}} + {{if .Nalog.NalazDijagnostike}}
Utvrđeno na dijagnostici