Sprečeno dupliranje prodaje/servisa, alat za usklađivanje šifri artikla, ispravke osvežavanja stranica, zaštita od duplikata kategorije/artikla/usluge/troška

- Prodaja i servis: broj naloga se generiše unutar transakcije upisa umesto unapred u handleru, čime se otklanja duplo kreiranje naloga pri dvostrukom slanju forme
- Servis izmena: uklonjen sudar generičkog i sopstvenog auto-snimanja forme (dva paralelna POST-a)
- Magacin: novi alat 'Uskladi šifre sa kategorijama' za masovnu ispravku šifri artikala posle uvođenja šifarnika po kategoriji
- Ispravljeno da forme na 9 stranica (kategorije, admin korisnici/dozvole, profil, podešavanja) posle akcije osveže prikaz umesto da ostanu zastarele do F5
- Kategorija, artikal, usluga i trošak: sprečeno dupliranje naziva/šifre/koda (UNIQUE indeksi + razumljive poruke grešaka)
This commit is contained in:
2026-07-07 03:50:31 +02:00
parent 1ff572dd77
commit bc60288a0d
28 changed files with 682 additions and 110 deletions
+13
View File
@@ -16,6 +16,19 @@ var ErrArtikalUUpotrebi = errors.New("ntech: artikal je u upotrebi")
// referencirana od strane artikla.
var ErrKategorijaUUpotrebi = errors.New("ntech: kategorija je u upotrebi")
// ErrKategorijaDuplikat se vraća kad naziv ili kôd kategorije već postoji
// kod druge kategorije (vidi migraciju 104_kategorije_unique.sql).
var ErrKategorijaDuplikat = errors.New("ntech: kategorija sa tim nazivom ili kodom već postoji")
// ErrArtikalDuplikatSifre se vraća kad šifra ili barkod artikla već postoji
// kod drugog artikla (vidi migraciju 055_artikal_sifra_barkod.sql).
var ErrArtikalDuplikatSifre = errors.New("ntech: šifra ili barkod artikla već postoji kod drugog artikla")
// ErrUslugaDuplikatSifre i ErrTrosakDuplikatSifre se vraćaju kad šifra usluge/
// troška već postoji kod drugog reda (vidi migraciju 105_usluge_troskovi_sifra_unique.sql).
var ErrUslugaDuplikatSifre = errors.New("ntech: šifra usluge već postoji")
var ErrTrosakDuplikatSifre = errors.New("ntech: šifra troška već postoji")
// ArtikalRepository definiše operacije nad artiklima
type ArtikalRepository interface {
Lista(ctx context.Context, filter ArtikalFilter) ([]model.ArtikalSaKategorijom, error)