From 26152c3328f1f1c43bbcc4a336e480f30004431e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Mon, 22 Jun 2026 01:20:16 +0200 Subject: [PATCH] =?UTF-8?q?Servis:=20prekora=C4=8Denje=20dela=20prebacuje?= =?UTF-8?q?=20nalog=20u=20=C4=8Ceka=20delove=20Kad=20tra=C5=BEena=20koli?= =?UTF-8?q?=C4=8Dina=20dela=20prelazi=20magacinsko=20stanje,=20deo=20se=20?= =?UTF-8?q?ne=20ugra=C4=91uje=20(lager=20ne=20ide=20u=20minus),=20a=20nalo?= =?UTF-8?q?g=20se=20automatski=20prebacuje=20u=20status=20=C4=8Ceka=20delo?= =?UTF-8?q?ve=20uz=20poruku=20da=20se=20naru=C4=8Di=20deo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/servis.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/handler/servis.go b/internal/handler/servis.go index e215dfb..b3a63fc 100644 --- a/internal/handler/servis.go +++ b/internal/handler/servis.go @@ -525,6 +525,18 @@ func (h *Handler) DodajDeloNalogu(w http.ResponseWriter, r *http.Request) { return } + // ako tražena količina prelazi magacinsko stanje, deo se NE ugrađuje (da lager + // ne ode u minus), a nalog se automatski prebacuje u „Čeka delove" radi nabavke + if art, e := h.Artikli.DohvatiID(r.Context(), artikalID); e == nil && art != nil && kolicina > art.Kolicina { + if e := h.ServisRepo.AzurirajStatus(r.Context(), nalogID, model.StatusCekaDelove); e != nil { + slog.Error("greška pri prebacivanju naloga u Čeka delove", "error", e) + } + middleware.SetFlash(w, r, h.DB, "greska", + "Nema dovoljno „"+art.Naziv+"\" na stanju (ima "+strconv.Itoa(art.Kolicina)+"). Nalog je prebačen u „Čeka delove\" — naručite deo.") + http.Redirect(w, r, "/servis/"+strconv.FormatInt(nalogID, 10), http.StatusSeeOther) + return + } + if _, err := h.ServisniDeloviRepo.Dodaj(r.Context(), nalogID, artikalID, kolicina, cena, &k.ID); err != nil { slog.Error("greška pri dodavanju dela", "error", err) middleware.SetFlash(w, r, h.DB, "greska", "Greška pri dodavanju dela. Proverite stanje na magacinu.")