diff --git a/cmd/ntech/main.go b/cmd/ntech/main.go index 0592668..473b1b3 100644 --- a/cmd/ntech/main.go +++ b/cmd/ntech/main.go @@ -300,6 +300,7 @@ func main() { r.With(modul("pdv"), doz("pdv.obrisi")).Post("/pdv/kpr/obrisi/{id}", h.ObrisiPdvKpr) r.With(modul("pdv")).Get("/pdv/obracun", h.PdvObracunStranica) r.Get("/magacin", h.Magacin) + r.Get("/magacin/kartica/{id}", h.MagacinskaKartica) r.Get("/magacin/novi", h.NoviArtikal) r.With(doz("artikal.dodaj")).Post("/magacin/novi", h.SacuvajArtikal) r.Get("/magacin/izmeni/{id}", h.IzmeniArtikal) diff --git a/internal/handler/kes.go b/internal/handler/kes.go index d028f8c..d4ed4ae 100644 --- a/internal/handler/kes.go +++ b/internal/handler/kes.go @@ -22,7 +22,7 @@ var saSidebar = []string{ "izvestaji", "kategorije", "klijenti", "klijent_forma", - "magacin", "magacin_forma", + "magacin", "magacin_forma", "magacin_kartica", "nabavke", "nabavka_forma", "nabavka_detalji", "podesavanja", "podesavanja_opste", "podesavanja_izgled", "podesavanja_sistem", "podesavanja_servis", "pdv_stope", diff --git a/internal/handler/magacin.go b/internal/handler/magacin.go index e1fcbfb..60b9ac6 100644 --- a/internal/handler/magacin.go +++ b/internal/handler/magacin.go @@ -123,3 +123,47 @@ func (h *Handler) ObrisiArtikal(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/magacin?obrisan=1", http.StatusSeeOther) } + +// PodaciMagacinskeKartice su podaci za karticu jednog artikla +type PodaciMagacinskeKartice struct { + model.PodaciStranice + Artikal model.Artikal + Promene []model.MagacinskaPromenaSaDetaljem +} + +// MagacinskaKartica prikazuje sve promene stanja za jedan artikal +func (h *Handler) MagacinskaKartica(w http.ResponseWriter, r *http.Request) { + id, err := strconv.ParseInt(chi.URLParam(r, "id"), 10, 64) + if err != nil { + http.Error(w, "Neispravan ID artikla", http.StatusBadRequest) + return + } + + artikal, err := h.Artikli.DohvatiID(r.Context(), id) + if err != nil { + http.Error(w, "Artikal nije pronađen", http.StatusNotFound) + return + } + + promene, err := h.MagacinskePromeneRepo.Lista(r.Context(), &id, 0) + if err != nil { + http.Error(w, "Greška pri učitavanju promena", http.StatusInternalServerError) + return + } + + podesavanja, err := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB) + if err != nil { + http.Error(w, "Greška pri učitavanju podešavanja", http.StatusInternalServerError) + return + } + + ps := h.popuniPodaciStranice(r, podesavanja) + ps.Stranica = "magacin" + ps.NaslovStranice = "Kartica: " + artikal.Naziv + + h.renderujTemplate(w, "magacin_kartica", PodaciMagacinskeKartice{ + PodaciStranice: ps, + Artikal: *artikal, + Promene: promene, + }) +} diff --git a/web/templates/stranice/magacin.html b/web/templates/stranice/magacin.html index 81f1cb1..ef1a13c 100644 --- a/web/templates/stranice/magacin.html +++ b/web/templates/stranice/magacin.html @@ -79,6 +79,9 @@
+ + Kartica + {{if index $.Dozvole "artikal.izmeni"}} Izmeni @@ -121,6 +124,7 @@ {{end}}
+ Kartica {{if index $.Dozvole "artikal.izmeni"}} Izmeni {{template "promeniCenuMeni" (dict "ID" .ID "Cena" .ProdajnaCena)}} diff --git a/web/templates/stranice/magacin_kartica.html b/web/templates/stranice/magacin_kartica.html new file mode 100644 index 0000000..c56eb30 --- /dev/null +++ b/web/templates/stranice/magacin_kartica.html @@ -0,0 +1,102 @@ +{{template "base" .}} + +{{define "naslov"}}Kartica: {{.Artikal.Naziv}} — NTech{{end}} + +{{define "sadrzaj"}} +
+ + + + Nazad na magacin + + + +
+
+
+
{{.Artikal.Naziv}}
+
+ {{if .Artikal.Sifra}} + Šifra: {{.Artikal.Sifra}} + {{end}} + {{if .Artikal.Barkod}} + Barkod: {{.Artikal.Barkod}} + {{end}} + {{if .Artikal.Lokacija}} + Lokacija: {{.Artikal.Lokacija}} + {{end}} +
+
+
+
+ {{.Artikal.Kolicina}} kom +
+
trenutno stanje
+ {{if gt .Artikal.KolicinMin 0}} +
min. {{.Artikal.KolicinMin}} kom
+ {{end}} +
+
+
+ + +
+
+ Prometna kartica + {{len .Promene}} zapisa +
+ + {{if not .Promene}} +
+ Nema evidentiranih promena za ovaj artikal. +
+ {{else}} +
+ + + + + + + + + + + + + {{range .Promene}} + + + + + + + + + {{end}} + +
DatumVrsta promenePromenaPrePosleNapomena
+ {{.Datum.Format "02.01.2006. 15:04"}} + + {{if eq .TipPromene "ulaz_nabavka"}} + Ulaz — nabavka + {{else if eq .TipPromene "izlaz_prodaja"}} + Izlaz — prodaja + {{else if eq .TipPromene "izlaz_servis"}} + Izlaz — servis + {{else if eq .TipPromene "povracaj"}} + Povraćaj + {{else if eq .TipPromene "korekcija"}} + Korekcija + {{else}} + {{.TipPromene}} + {{end}} + + {{if gt .PromenaKolicine 0}}+{{end}}{{.PromenaKolicine}} + {{.StanjePre}}{{.StanjePosle}}{{.Napomena}}
+
+ {{end}} +
+ +
+{{end}}