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:
@@ -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 0–100%."
|
||||||
}
|
}
|
||||||
|
|
||||||
stavke = append(stavke, model.StavkaProdaje{
|
stavke = append(stavke, model.StavkaProdaje{
|
||||||
|
|||||||
Reference in New Issue
Block a user