Servis: razdvojeno prikazivanje avansa/konačnog/refunda na fiskalnim računima

Dashboard: 'bez fiskalnog računa' razdvojeno na prodaju i servis (posebna
dugmad koja vode na tačan spisak, ne uvek na /prodaja).

Servis detalji: kartica 'Fiskalni račun' sad jasno razlikuje avansni od
konačnog računa; dodata posebna kartica za povraćaj viška avansa. Modal
za preuzimanje više se ne zaglavljuje kad avans pokrije ceo iznos (dugme
'Preuzmi' bez obaveznog unosa u polju Primljeno).

Štampa fiskalnog računa (/servis/{id}/fiskalni-racun) sad prioritetno
vraća konačan (Normal/Sale) račun umesto poslednjeg upisanog — ranije je
avansni povraćaj (upisan posle konačnog računa) prekrivao prikaz stvarne
fakture. Kad postoji i povraćaj viška avansa, štampa se u istom prozoru
odmah posle konačnog računa (izbegnut drugi popup koji brauzer blokira).
This commit is contained in:
2026-07-02 13:30:45 +02:00
parent fcda706edd
commit 56e52036b6
5 changed files with 138 additions and 47 deletions
+13 -6
View File
@@ -78,16 +78,23 @@ type PodaciDashboarda struct {
// sumnjivih duplikata (naloga koje automatski backfill namerno preskače) — prikazuje
// se kao kartica na dashboard-u.
type PrazninaKnjigovodstva struct {
BezKir int
BezKpo int
BezFiskalnog int
BezRefunda int // stornirani nalozi čiji fiskalni refund nije uspeo (best-effort poziv pao)
SumnjiviDupli int
BezKir int
BezKpo int
BezFiskalnogProdaja int // prodajni nalozi bez izdatog fiskalnog računa
BezFiskalnogServis int // preuzeti servisni nalozi bez izdatog fiskalnog računa
BezRefunda int // stornirani nalozi čiji fiskalni refund nije uspeo (best-effort poziv pao)
SumnjiviDupli int
}
// BezFiskalnog vraća ukupan broj naloga (prodaja + servis) bez izdatog fiskalnog
// računa — koristi se za prikaz zbirnog broja na dashboard-u.
func (p PrazninaKnjigovodstva) BezFiskalnog() int {
return p.BezFiskalnogProdaja + p.BezFiskalnogServis
}
// Ukupno vraća zbir svih praznina UKLJUČUJUĆI sumnjive duplikate — koristi se da se
// odluči da li se kartica uopšte prikazuje na dashboard-u (i kad ostanu samo
// duplikati za ručnu proveru, kartica mora da ostane vidljiva).
func (p PrazninaKnjigovodstva) Ukupno() int {
return p.BezKir + p.BezKpo + p.BezFiskalnog + p.BezRefunda + p.SumnjiviDupli
return p.BezKir + p.BezKpo + p.BezFiskalnog() + p.BezRefunda + p.SumnjiviDupli
}