From cb4e36d1e10086ebbafa128c0dd053f620b1d3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Mon, 22 Jun 2026 16:25:15 +0200 Subject: [PATCH] =?UTF-8?q?Servis:=20zabrana=20ru=C4=8Dnog=20postavljanja?= =?UTF-8?q?=20statusa=20=C4=8Ceka=20delove=20=C4=8Ceka=20delove=20je=20aut?= =?UTF-8?q?omatski=20status=20(kad=20nedostaje=20deo).=20Server=20odbija?= =?UTF-8?q?=20ru=C4=8Dni=20ulazak=20iz=20bilo=20kog=20drugog=20statusa,=20?= =?UTF-8?q?a=20dropdown=20vi=C5=A1e=20ne=20nudi=20tu=20opciju=20osim=20ako?= =?UTF-8?q?=20je=20nalog=20ve=C4=87=20u=20njoj.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/servis.go | 14 ++++++++++++-- web/templates/stranice/servis_detalji.html | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/internal/handler/servis.go b/internal/handler/servis.go index 40a3a8d..f797cde 100644 --- a/internal/handler/servis.go +++ b/internal/handler/servis.go @@ -1272,10 +1272,20 @@ func (h *Handler) PromeniStatus(w http.ResponseWriter, r *http.Request) { return } + trenutni, e := h.ServisRepo.DohvatiID(r.Context(), id) + + // „Čeka delove" je automatski status (postavlja se kad nedostaje deo) — + // ne može se izabrati ručno ni iz jednog drugog statusa + if noviStatus == model.StatusCekaDelove && e == nil && trenutni.Status != model.StatusCekaDelove { + middleware.SetFlash(w, r, h.DB, "greska", + "Status „Čeka delove\" se postavlja automatski kada nedostaje deo i ne može se izabrati ručno.") + http.Redirect(w, r, "/servis/"+strconv.FormatInt(id, 10), http.StatusSeeOther) + return + } + // zabrana izlaska iz „Čeka delove" dok postoje potraživani delovi — // prvo nabaviti delove, pa obrisati iz potraživanih (ili kroz nabavku) - if nalog, e := h.ServisRepo.DohvatiID(r.Context(), id); e == nil && - nalog.Status == model.StatusCekaDelove && noviStatus != model.StatusCekaDelove { + if e == nil && trenutni.Status == model.StatusCekaDelove && noviStatus != model.StatusCekaDelove { potrazivani, err := h.ServisniPotrazivaniDeloviRepo.DohvatiZaNalog(r.Context(), id) if err == nil && len(potrazivani) > 0 { middleware.SetFlash(w, r, h.DB, "greska", diff --git a/web/templates/stranice/servis_detalji.html b/web/templates/stranice/servis_detalji.html index be2ba88..fcce333 100644 --- a/web/templates/stranice/servis_detalji.html +++ b/web/templates/stranice/servis_detalji.html @@ -48,8 +48,11 @@ {{if .ZakljucanStatus}} 🔒 Status zaključan — obrišite delove koji nedostaju