Knjigovodstvo i fiskalizacija: dashboard upozorenje za praznine, KPO dozvole, pojednostavljen storno, ispravke verifikacije i kasira

- Dashboard kartica prikazuje naloge bez KIR/KPO/fiskalnog upisa i sumnjive duplikate (double-submit), sa zaštitom od automatskog dupliranja prihoda pri bulk dopuni
- Registrovane nedostajuće KPO dozvole (kpo.pregled/dodaj/obrisi) — modul je bio potpuno nedostupan
- Uklonjen suvišan/nefunkcionalan 'Ukloni nalog' (duplirao Storno bez stvarne razlike); Storno u listi prodaje sad vodi direktno na formu
- Kasir na fiskalnom računu koristi ime prijavljenog korisnika umesto fiksnog podešavanja
- Fiskalni računi za nalog uvek prikazuju najnoviji zapis (original vs. refund posle storna)
- Verifikaciona stranica (/v/) jasno označena kao lokalna test simulacija, ne prava provera kod PURS-a; dodat prikaz kusura
- Mock brojač fiskalnih računa (kartica emulator) sad preživljava restart servera
This commit is contained in:
2026-07-01 23:01:26 +02:00
parent fcae2ae441
commit 3a0f98622b
20 changed files with 417 additions and 124 deletions
+8
View File
@@ -101,6 +101,13 @@ func (h *Handler) Dashboard(w http.ResponseWriter, r *http.Request) {
}
}
var prazninaKnjigovodstva model.PrazninaKnjigovodstva
if p, err := h.PraznineKnjigovodstva(ctx); err != nil {
slog.Error("dashboard: praznine knjigovodstva", "error", err)
} else {
prazninaKnjigovodstva = p
}
// poslednjih 5 prodajnih naloga
var poslednjeProdaje []model.StavkaProdajePregled
if redovi, err := h.IzvestajRepo.PoslednjeProdaje(ctx, 5); err != nil {
@@ -130,6 +137,7 @@ func (h *Handler) Dashboard(w http.ResponseWriter, r *http.Request) {
KriticneZalihe: kriticneZalihe,
PoslednjeProdaje: poslednjeProdaje,
FlashGreska: flashGreska,
PrazninaKnjige: prazninaKnjigovodstva,
}
h.renderujTemplate(w, "dashboard", podaci)