diff --git a/internal/handler/prodaja.go b/internal/handler/prodaja.go index 9ef5421..750aa90 100644 --- a/internal/handler/prodaja.go +++ b/internal/handler/prodaja.go @@ -189,6 +189,13 @@ func (h *Handler) SacuvajProdaju(w http.ResponseWriter, r *http.Request) { 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()) if err != nil { slog.Error("greška pri generisanju broja naloga", "error", err) diff --git a/web/static/js/ntech.js b/web/static/js/ntech.js index e92a49b..e535b03 100644 --- a/web/static/js/ntech.js +++ b/web/static/js/ntech.js @@ -159,7 +159,7 @@ document.addEventListener('alpine:init', () => { ).slice(0, 30) }, 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) { if (this.stavke.length > 1) this.stavke.splice(i, 1) @@ -167,15 +167,17 @@ document.addEventListener('alpine:init', () => { popuniCenu(stavka) { const a = this.artikliOpcije.find(x => x.id == stavka.artikal_id) if (a) { - stavka.cena = a.cena || 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 || '' + 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) { const stavka = this.stavke[i] if (!stavka.artikal_id) return null