Prodaja: server-side validacija popusta i PDV stope po stavci

parseFormuProdaje je proveravala samo pozitivnu količinu i nenegativnu cenu.
Popust preko 100% bi dao negativnu osnovicu/PDV, a pdv_stopa (hidden/JS polje)
mogla je stići sa proizvoljnom vrednošću direktnim POST-om mimo forme —
fiskal.OznakaPDV bi za takvu stopu tiho vratio pogrešnu poresku oznaku.
Sada se popust ograničava na 0-100%, a pdv_stopa mora biti 0, 10 ili 20.
This commit is contained in:
2026-07-01 12:35:25 +02:00
parent d83c55513b
commit fb7ed811ee
+14 -2
View File
@@ -468,12 +468,24 @@ func parseFormuProdaje(r *http.Request) (model.ProdajniNalog, []model.StavkaProd
var pdvStopa float64 var pdvStopa float64
if i < len(pdvStope) { if i < len(pdvStope) {
pdvStopa, _ = strconv.ParseFloat(strings.TrimSpace(pdvStope[i]), 64) pdvStopa, err = strconv.ParseFloat(strings.TrimSpace(pdvStope[i]), 64)
if err != nil {
return nalog, nil, "Neispravna PDV stopa u stavci."
}
}
if pdvStopa != 0 && pdvStopa != 10 && pdvStopa != 20 {
return nalog, nil, "PDV stopa mora biti 0, 10 ili 20."
} }
var popust float64 var popust float64
if i < len(popusti) { if i < len(popusti) {
popust, _ = strconv.ParseFloat(strings.TrimSpace(popusti[i]), 64) popust, err = strconv.ParseFloat(strings.TrimSpace(popusti[i]), 64)
if err != nil {
return nalog, nil, "Neispravan popust u stavci."
}
}
if popust < 0 || popust > 100 {
return nalog, nil, "Popust mora biti u opsegu 0100%."
} }
stavke = append(stavke, model.StavkaProdaje{ stavke = append(stavke, model.StavkaProdaje{