Cena sa PDV-om u magacinu + uslovno prikazivanje po modulu
- migrations/087: nova kolona cena_sa_pdv + popunjavanje postojećih - model.Artikal: polje CenaSaPdv, ispravljene CenaBezPdv/PdvIznos (neto) - sqlite/artikal.go: SELECT/Scan/INSERT/UPDATE za cena_sa_pdv (6 mesta) - magacin_forma.go: pdv_stopa iz forme, kalkulacija cena_sa_pdv, default PDV 20% - magacin.html: dinari format (25.999,00), kolona Sa PDV-om, uslovno po Moduli.pdv - magacin_forma.html: PDV dropdown + Cena sa PDV polje, uslovno po Moduli.pdv, optimizovan layout (Naziv/Jed. mere/Kategorija u 1 redu) - main.go: demo mod bez keširanja šablona (hot-reload) - model_test.go: ažurirani testovi za novo ponašanje CenaBezPdv/PdvIznos
This commit is contained in:
@@ -62,7 +62,7 @@ func (h *Handler) NoviArtikal(w http.ResponseWriter, r *http.Request) {
|
||||
PodaciStranice: ps,
|
||||
Kategorije: kategorije,
|
||||
Dobavljaci: dobavljaci,
|
||||
Artikal: model.Artikal{Sifra: predlogSifre, Tip: tip, JedinicaMere: "kom"},
|
||||
Artikal: model.Artikal{Sifra: predlogSifre, Tip: tip, JedinicaMere: "kom", PdvStopa: 20.0},
|
||||
Izmena: false,
|
||||
})
|
||||
}
|
||||
@@ -389,6 +389,15 @@ func parseFormuArtikla(r *http.Request) (model.Artikal, string) {
|
||||
artikal.NabavnaCena = v
|
||||
}
|
||||
|
||||
// PDV stopa — podrazumevano 20%
|
||||
pdvStopa := 20.0
|
||||
if p := r.FormValue("pdv_stopa"); p != "" {
|
||||
if v, err := strconv.ParseFloat(p, 64); err == nil && v >= 0 {
|
||||
pdvStopa = v
|
||||
}
|
||||
}
|
||||
artikal.PdvStopa = pdvStopa
|
||||
|
||||
if c := r.FormValue("prodajna_cena"); c != "" {
|
||||
v, err := strconv.ParseFloat(c, 64)
|
||||
if err != nil || v < 0 {
|
||||
@@ -413,6 +422,21 @@ func parseFormuArtikla(r *http.Request) (model.Artikal, string) {
|
||||
}
|
||||
}
|
||||
|
||||
// kalkulacija cena_sa_pdv na osnovu unetog polja
|
||||
if c := r.FormValue("cena_sa_pdv"); c != "" {
|
||||
// korisnik je uneo bruto cenu → izračunaj neto
|
||||
if v, err := strconv.ParseFloat(c, 64); err == nil && v >= 0 {
|
||||
artikal.CenaSaPdv = v
|
||||
// ako prodajna_cena nije uneta ručno, izračunaj je
|
||||
if r.FormValue("prodajna_cena") == "" {
|
||||
artikal.ProdajnaCena = v / (1 + artikal.PdvStopa/100)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// korisnik je uneo neto cenu → izračunaj bruto
|
||||
artikal.CenaSaPdv = artikal.ProdajnaCena * (1 + artikal.PdvStopa/100)
|
||||
}
|
||||
|
||||
return artikal, ""
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user