Prodaja: cena/PDV po PDV statusu firme — non-PDV firma vidi bruto cenu i nultu stopu

This commit is contained in:
2026-06-30 22:23:03 +02:00
parent 432a559902
commit e9205665b6
2 changed files with 15 additions and 6 deletions
+7
View File
@@ -189,6 +189,13 @@ func (h *Handler) SacuvajProdaju(w http.ResponseWriter, r *http.Request) {
return return
} }
// za firme koje nisu PDV obveznici prisilno nulliraj PDV stopu (odbrana od klijentske greške)
if !h.modulUkljucen(r.Context(), "pdv") {
for i := range stavke {
stavke[i].PdvStopa = 0
}
}
brojNaloga, err := h.ProdajaRepo.SledeciBroj(r.Context()) brojNaloga, err := h.ProdajaRepo.SledeciBroj(r.Context())
if err != nil { if err != nil {
slog.Error("greška pri generisanju broja naloga", "error", err) slog.Error("greška pri generisanju broja naloga", "error", err)
+8 -6
View File
@@ -159,7 +159,7 @@ document.addEventListener('alpine:init', () => {
).slice(0, 30) ).slice(0, 30)
}, },
dodajStavku() { dodajStavku() {
this.stavke.push({artikal_id: '', kolicina: 1, cena: 0, cena_sa_pdv: 0, pdv_stopa: 20, popust: 0, kategorija_naziv: ''}) this.stavke.push({artikal_id: '', kolicina: 1, cena: 0, cena_sa_pdv: 0, pdv_stopa: this.pdvObveznik ? 20 : 0, popust: 0, kategorija_naziv: ''})
}, },
ukloniStavku(i) { ukloniStavku(i) {
if (this.stavke.length > 1) this.stavke.splice(i, 1) if (this.stavke.length > 1) this.stavke.splice(i, 1)
@@ -167,15 +167,17 @@ document.addEventListener('alpine:init', () => {
popuniCenu(stavka) { popuniCenu(stavka) {
const a = this.artikliOpcije.find(x => x.id == stavka.artikal_id) const a = this.artikliOpcije.find(x => x.id == stavka.artikal_id)
if (a) { if (a) {
stavka.cena = a.cena || 0
stavka.cena_sa_pdv = a.cena_sa_pdv || 0 stavka.cena_sa_pdv = a.cena_sa_pdv || 0
stavka.pdv_stopa = a.pdv_stopa !== undefined ? a.pdv_stopa : 20
stavka.kategorija_naziv = a.kategorija_naziv || '' stavka.kategorija_naziv = a.kategorija_naziv || ''
if (this.pdvObveznik) {
stavka.cena = a.cena || 0
stavka.pdv_stopa = a.pdv_stopa !== undefined ? a.pdv_stopa : 20
} else {
stavka.cena = a.cena_sa_pdv || a.cena || 0
stavka.pdv_stopa = 0
}
} }
}, },
prikaziCenu(stavka) {
return this.pdvObveznik ? (stavka.cena || 0) : (stavka.cena_sa_pdv || stavka.cena || 0)
},
dostupnaKolicina(i) { dostupnaKolicina(i) {
const stavka = this.stavke[i] const stavka = this.stavke[i]
if (!stavka.artikal_id) return null if (!stavka.artikal_id) return null