From afbc0b6083c4744c5a44ccad41d077bde532fcf9 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?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kad tražena količina dela prelazi magacinsko stanje, deo se ne ugrađuje (lager ne ide u minus), a nalog se automatski prebacuje u status Čeka delove uz poruku da se naruči deo. --- 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.")