Servis: zabrana ručnog postavljanja statusa Čeka delove

Čeka delove je automatski status (kad nedostaje deo). Server odbija ručni
ulazak iz bilo kog drugog statusa, a dropdown više ne nudi tu opciju
osim ako je nalog već u njoj.
This commit is contained in:
2026-06-22 16:25:15 +02:00
parent 4668c5819a
commit 801f004e2d
2 changed files with 15 additions and 2 deletions
+12 -2
View File
@@ -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",