Storno kroz modal + ispravka about:blank u fiskalnom tabu Prodaje
- Servis i Prodaja: storniranje naloga sad ide kroz modal — dugme 'Storniraj nalog' prvo traži potvrdu, tek onda otvara modal sa poljem za PIB/JMBG (kad je potrebno za refund); dugme 'Potvrdi storno' ostaje zaključano dok se polje ne popuni. Posle uspešnog storna modal se gasi i sadržaj stranice se osvežava (data-refresh=#sadrzaj). - Dnevni pazar (Fiskalni presek): link u sidebaru i sve tri rute (FiskalniPazar, ZakljuciFiskalniDan, FiskalniIzvestaj) sad proveravaju modul fiskalizacije, ne samo RBAC dozvolu i tehničku dostupnost PFR-a. - Prodaja: čekboks 'Prikaži fiskalni račun' se više ne nudi kad firma ne fiskalizuje, a pripremiFiskalniTab() više ne otvara prazan tab u tom slučaju — do sad je ostajao trajno na about:blank jer odredišna stranica nikad nije imala fiskalni račun da ga popuni. Dodata i odbrana za slučaj kad fiskalizacija jeste uključena ali PFR nije dostupan (zatvara osiroteli tab umesto about:blank). Detalji u docs/Greške.md (van git-a).
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"ntech/internal/config"
|
||||
ntechsqlite "ntech/internal/db/sqlite"
|
||||
"ntech/internal/fiskal"
|
||||
"ntech/internal/middleware"
|
||||
@@ -56,6 +57,12 @@ func (h *Handler) FiskalniPazar(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
podaci := PodaciFiskalniPazar{PodaciStranice: ps, Danas: time.Now().Format("2006-01-02")}
|
||||
|
||||
if !h.modulUkljucen(r.Context(), config.ModulFiskalizacija) {
|
||||
podaci.Greska = "Fiskalizacija nije uključena u profilu firme — Podešavanja → Opšte → Pravni i poreski status."
|
||||
h.renderujTemplate(w, "fiskal_pazar", podaci)
|
||||
return
|
||||
}
|
||||
|
||||
klijent := h.fiskalKlijent()
|
||||
if klijent == nil {
|
||||
podaci.Greska = "Fiskalizacija nije podešena — unesi URL PFR servera u Podešavanja → Fiskalizacija."
|
||||
@@ -82,6 +89,11 @@ func (h *Handler) ZakljuciFiskalniDan(w http.ResponseWriter, r *http.Request) {
|
||||
if _, ok := h.zahtevajDozvolu(w, r, "fiskal.zakljucenje"); !ok {
|
||||
return
|
||||
}
|
||||
if !h.modulUkljucen(r.Context(), config.ModulFiskalizacija) {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Fiskalizacija nije uključena u profilu firme.")
|
||||
http.Redirect(w, r, "/fiskal/pazar", http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
klijent := h.fiskalKlijent()
|
||||
if klijent == nil {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Fiskalizacija nije podešena.")
|
||||
@@ -110,6 +122,11 @@ func (h *Handler) FiskalniIzvestaj(w http.ResponseWriter, r *http.Request) {
|
||||
http.Error(w, "Greška pri čitanju forme", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if !h.modulUkljucen(r.Context(), config.ModulFiskalizacija) {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Fiskalizacija nije uključena u profilu firme.")
|
||||
http.Redirect(w, r, "/fiskal/pazar", http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
klijent := h.fiskalKlijent()
|
||||
if klijent == nil {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Fiskalizacija nije podešena.")
|
||||
|
||||
Reference in New Issue
Block a user