diff --git a/internal/handler/kategorija.go b/internal/handler/kategorija.go index 5216d09..f86809d 100644 --- a/internal/handler/kategorija.go +++ b/internal/handler/kategorija.go @@ -138,7 +138,13 @@ func normalizujKod(s string) string { b.WriteRune(r) } } - return b.String() + kod := b.String() + // USL i TRO su rezervisani prefiksi (usluge i troškovi) — ne dozvoljavamo ih + // kao kôd kategorije da auto-šifra artikla ne bi pala u rezervisani prostor + if kod == "USL" || kod == "TRO" { + return "" + } + return kod } // ObrisiKategoriju briše kategoriju po ID-u diff --git a/internal/handler/magacin_forma.go b/internal/handler/magacin_forma.go index e4cab5b..32dd6c5 100644 --- a/internal/handler/magacin_forma.go +++ b/internal/handler/magacin_forma.go @@ -306,7 +306,14 @@ func parseFormuArtikla(r *http.Request) (model.Artikal, string) { var artikal model.Artikal artikal.Naziv = naziv - artikal.Sifra = r.FormValue("sifra") + artikal.Sifra = strings.TrimSpace(r.FormValue("sifra")) + // prefiksi USL- i TRO- su rezervisani za šifre usluga i troškova + if artikal.Sifra != "" { + velika := strings.ToUpper(artikal.Sifra) + if strings.HasPrefix(velika, "USL-") || strings.HasPrefix(velika, "TRO-") { + return artikal, "Šifre sa prefiksom USL- i TRO- su rezervisane za usluge i troškove." + } + } artikal.Barkod = r.FormValue("barkod") artikal.Opis = r.FormValue("opis") artikal.Lokacija = r.FormValue("lokacija")