Dasko
77320d2030
PDV KIR: zaštita od duplog upisa dnevnog pazara maloprodaje
...
SacuvajDnevniPazarKir je upisivao ručni zbirni KIR zapis za dati dan bez provere
da li već postoji — za razliku od auto-KIR-a iz pojedinačnih faktura (koji ima
PostojiZaIzvor zaštitu), ovde ništa nije sprečavalo duplo klikanje/ponovni unos
istog dana, što bi duplo precenilo PDV osnov u zvaničnoj evidenciji.
Broj dokumenta (FISK-YYYYMMDD) je već deterministički po danu, pa se koristi kao
prirodni ključ za proveru. Forma sad prikazuje upozorenje i sakriva dugme za upis
ako je dan već zaveden.
2026-07-01 11:54:35 +02:00
Dasko
0f47c3e56b
Prodaja: retry fiskalizacije kad ESIR nije dostupan pri kreiranju
2026-07-01 11:35:17 +02:00
Dasko
d39df48a56
Servis: oznaka naloga bez izdatog fiskalnog računa u arhivi
2026-07-01 11:21:46 +02:00
Dasko
18f242d73f
Servis: servisni_log tabela — praćenje datuma događaja za eskalacioni list
2026-06-30 22:57:01 +02:00
Dasko
c971b5d075
Servis: upozorenje i retry fiskalizacije kad ESIR nije dostupan pri preuzimanju
2026-06-30 22:47:26 +02:00
Dasko
80d7dd69f1
Servis: eskalacioni list — interni dokument praćenja rokova naloga
2026-06-30 22:42:45 +02:00
Dasko
af67daf7de
Servis: rok za podizanje (DatumZavrsetka + 30 dana) u detaljima naloga i javnoj status stranici
2026-06-30 22:33:09 +02:00
Dasko
e9205665b6
Prodaja: cena/PDV po PDV statusu firme — non-PDV firma vidi bruto cenu i nultu stopu
2026-06-30 22:23:03 +02:00
Dasko
432a559902
KPO: knjiga o ostvarenom prometu — lista, ručni unos, backfill, auto-upis iz prodaje i servisa
2026-06-30 21:13:16 +02:00
Dasko
3166a93e1d
Fiskalizacija: refund pri stornu, dnevni pazar KIR, popust na stavci
2026-06-30 20:52:50 +02:00
Dasko
76a0df1c09
KIR: PostojiZaIzvor + backfill iz prodaje (dugme u KIR listi)
2026-06-30 20:37:38 +02:00
Dasko
5926548402
Merge branch 'feature/prodaja-propusti'
2026-06-30 20:26:11 +02:00
Dasko
82a2484c10
Nabavka: broj računa, datum računa, PDV iznos + KPR backfill za stare nabavke
2026-06-30 20:25:44 +02:00
Dasko
ac7c9df2eb
prodaja: popust, kategorija, cene po režimu, pretraga, zabrana brisanja
...
Migracija 092: popust_procenat na stavke_prodaje.
Model: PopustProcenat u StavkaProdaje, KategorijaNaziv u StavkaProdajeSaArtiklom.
Repo: pretraga prodaje proširena na klijenta i napomenu. DohvatiStavke dodaje popust i kategoriju. Kreiraj primenjuje popust na ukupno.
Handler: artikalUJSONSaCenom proširen sa sifra, barkod, cena_sa_pdv, kategorija_naziv. parseFormuProdaje parsira popust. ObrisiProdaju sada koristi storno (zabrana fizičkog brisanja).
JS: prodajaForma ažurirana — pretraga artikala po nazivu/šifri/barkodu, popust polje, kategorija, kalkulacija sa popustom.
Forma: pretraga artikala, popust kolona, kategorija, PDV režim (cena/cena_sa_pdv). Responsive desktop+mobilne kartice.
Detalji: kategorija ispod naziva, popust kolona, 'Ukloni nalog' (storno) umesto 'Obriši'.
2026-06-30 19:14:40 +02:00
Dasko
5edd16ae3a
podesavanja: CodeQL suppression za go/request-forgery (SSRF već zaštićen)
2026-06-30 18:55:55 +02:00
Dasko
b79ca28b09
Zalihe: storno nabavke umesto brisanja + ponderisana prosečna nabavna cena
2026-06-30 17:08:55 +02:00
Dasko
4806840ba4
Zalihe: razlikovanje manjka i viška pri popisu (manjak_popis/visak_popis tip promene)
2026-06-30 17:08:50 +02:00
Dasko
4daac1eed6
Popis: štampa u novom tabu — standalone A4 stranica sa zaglavljem i sumarima
2026-06-30 16:47:50 +02:00
Dasko
0cfef1d6a0
Popis: štampa A4 sa zaglavljem firme i tipom popisa, lokalizovan naziv tipa
2026-06-30 16:15:30 +02:00
Dasko
42df5b3176
Popis: zakonske kolone (nabavna cena, vrednost, manjak/višak), tip popisa, datum i sačinilac
2026-06-30 15:36:22 +02:00
Dasko
5343fd0a9b
Podešavanja: ispravka preuzimanja backup-a (hx-boost), CodeQL request-forgery (SSRF)
2026-06-30 14:27:20 +02:00
Dasko
313edf06ea
Servis detalji: PDV pravilo na cenama radova/delova, bruto u formama, ispravka otpremnice
2026-06-29 22:35:31 +02:00
Dasko
fb980e76c0
UI: razmaci između kartica, dinari/dinariCeli za int64, PPPDV tabela formatirana
2026-06-28 16:29:09 +02:00
Dasko
147a0d6e88
Bugfix: PDV obračun u prodaji, magacinski trag nabavke, fiskalizacija servisa, admin/podesavanja greške
2026-06-28 16:02:26 +02:00
Dasko
3475422cb9
Dashboard/izveštaji: ispravka obračuna prihoda + KIR servisa, testovi
...
- Prihod meseca: izbačeni stornirani nalozi, servis preko naplaceno+avans
- Servis KIR: neto cena + PDV po stvarnoj stopi (PdvKir.DodajNeto), bez hardkodovanih 20%
- TopKlijenti: samo preuzeti nalozi sa naplatom/avansom
- Izveštaji: mesečni ključevi sidreni na 1. u mesecu (bez preliva dana)
- BUG-04: konačna cena servisa bez dvostrukog računanja delova
- Dashboard: uklonjena kartica „Prihod ovog meseca"
- Default port 3000
- Dodati testovi: prihod/storno/delovi/nivelacija/KIR/mesečni ključevi
2026-06-27 09:41:07 +02:00
Dasko
60e7debad5
PDV pravilo na štampanim dokumentima + fiksni layout + QR popravka
...
- PDV uslovi (Moduli.pdv) na: predračun, otpremnica, garantni list, prodaja_stampa
- Modal za preuzimanje: jedna cena (sa/bez PDV), ne duplo
- Javna status stranica: PDV uslovi za cene, predlog, checkbox-ove
- Svi print templejti: viewport=device-width+min-width, bez responsive
- JavniToken generisan za postojeće naloge bez tokena (QR popravka)
- UkupnoSaPdv() metode na ServisniRad i ServisniDeoSaArtiklom
- UkupnoBezPdv() na StavkaProdaje
2026-06-27 02:06:18 +02:00
Dasko
6727e39348
Dropdown: CSS u main.css, dupli handler fix, Prihod=prodaja+servis, mobilni layout
...
- main.css: cust-sel CSS prebačen iz dodatni-css (dostupan svim stranama)
- servis_detalji: _custClickDodat guard protiv duplog event listenera
- servis_detalji: _ntechPopuniArtikle na window (data-refresh fix)
- izvestaj: PrihodTekuciMesec = prodaja + servis (Preuzeto)
- main.css: mobilni dropdown preko cele širine (grid 1 kolona)
2026-06-27 01:00:41 +02:00
Dasko
2c8b206ec2
PDV modul: uslovno prikazivanje + auto cena_konacna + stanje zaliha sa PDV-om
...
- PDV pravilo (Moduli.pdv) primenjeno na: magacin, usluge, prodaja_detalji, usluge_forma
- magacin: toggle cena bez/sa PDV u zaglavlju kolone, jedna kolona
- stanje_zaliha: Cena sa PDV i Vred. sa PDV kolone, tamne kartice za zaglavlje
- PromeniStatus: auto-izračunavanje cena_konacna (dijagnostika+radovi+delovi) pri Preuzeto
- migrations/088: popravlja postojeće Preuzeto naloge bez cene
- dashboard: prihod cifra sakrivena, hover 1s → prikaz
- izvestaji: aktivni servisi bez Preuzeto, COALESCE u SQL, 0→—
- izvestaji.html: vraćeno — umesto 0 din
2026-06-27 00:26:46 +02:00
Dasko
84bb8aa158
Cena sa PDV-om u magacinu + uslovno prikazivanje po modulu
...
- migrations/087: nova kolona cena_sa_pdv + popunjavanje postojećih
- model.Artikal: polje CenaSaPdv, ispravljene CenaBezPdv/PdvIznos (neto)
- sqlite/artikal.go: SELECT/Scan/INSERT/UPDATE za cena_sa_pdv (6 mesta)
- magacin_forma.go: pdv_stopa iz forme, kalkulacija cena_sa_pdv, default PDV 20%
- magacin.html: dinari format (25.999,00), kolona Sa PDV-om, uslovno po Moduli.pdv
- magacin_forma.html: PDV dropdown + Cena sa PDV polje, uslovno po Moduli.pdv,
optimizovan layout (Naziv/Jed. mere/Kategorija u 1 redu)
- main.go: demo mod bez keširanja šablona (hot-reload)
- model_test.go: ažurirani testovi za novo ponašanje CenaBezPdv/PdvIznos
2026-06-26 23:47:52 +02:00
Dasko
97fd4490ea
Kartica emulator (BE) + fiskalna verifikacija + ime/prezime korisnika
...
- internal/be: emulator kartice (TCP listener za L-PFR mock)
- /v/: javna stranica za verifikaciju fiskalnog računa (QR kod)
- /servis/{id}/fiskalni-racun: štampa fiskalnog računa
- Podešavanja fiskalizacije: BE status/reset, proširen UI
- Korisnik: polja ime i prezime (model, DB, handler, admin profil)
- Fisk server: ažuriran receipt.py i server.py
-, : dokumentacija
2026-06-26 23:17:52 +02:00
Dasko
d74d8c4242
Fiskalni račun: uklonjene ReplaceAll krpe — Fisk server sad šalje prave podatke
2026-06-26 02:16:27 +02:00
Dasko
a50795aaf5
Fiskalni račun: QR kod kao slika + zamena mock podataka firme stvarnim
2026-06-26 02:13:26 +02:00
Dasko
d8f704567e
BUGFIX: DohvatiPoServisu — prodaja_id skeniran u NullInt64 (NULL za servisne račune)
2026-06-26 02:06:19 +02:00
Dasko
996dafcf34
Debug: dodat slog.Error za DohvatiPoServisu
2026-06-26 02:05:15 +02:00
Dasko
6f4aed2184
Servis: automatski upis u KIR pri preuzimanju (ako je firma PDV obveznik)
...
Pri prelasku u Preuzeto, radovi i delovi se automatski knjiže u KIR (20% PDV, opšta stopa). Preskaču se predložene stavke i odbijene popravke.
2026-06-26 01:07:41 +02:00
Dasko
5880d9fd7b
Servis: prikaz fiskalnog računa u detaljima naloga (PFR broj + QR kod)
...
Dodat FiskalRepository.DohvatiPoServisu (repo + interfejs)
PodaciDetaljiNaloga.FiskalniRacun — učitava se pri otvaranju detalja
Kartica u servis_detalji.html — PFR broj, vreme, brojač, QR, link ka PURS-u
2026-06-26 01:04:34 +02:00
Dasko
1bd5125c70
BUGFIX: fiskalni_racuni — dodata podrška za servisne naloge (servis_id kolona)
...
Migracija 083: rekreira fiskalni_racuni tabelu sa servis_id (nullable) i bez FK constraint-a
Model: dodat ServisID int64 polje
Repo: INSERT/SELECT sada koristi i servis_id
Handler: fiskalizujServis koristi ServisID umesto negativnog ProdajaID
2026-06-26 01:00:22 +02:00
Dasko
4a6a623549
Servis: fiskalizacija pri preuzimanju — način plaćanja + iznos + PFR račun
...
Migracija 082: nacin_placanja i naplaceno na servisni_nalog
Model, repo, handler — pun lanac za čuvanje naplate
fiskalizujServis helper — šalje radove+delove ka PFR serveru
Modal za Preuzeto dobio izbor načina plaćanja (Gotovina/Kartica/Virman)
2026-06-26 00:54:13 +02:00
Dasko
2ee45c3a3d
BUGFIX: javni status — kad klijent odbije popravku, ne prikazuju se radovi/delovi; crvena poruka umesto njih
2026-06-26 00:33:36 +02:00
Dasko
37d51e7840
BUGFIX: otpremnica — kad klijent odbije popravku, prikazuje se samo dijagnostika (ne delovi i radovi)
2026-06-26 00:20:09 +02:00
Dasko
72ec4cb2a0
Profil firme: preduzetnik_knjige pokriven u modulima + informativna tabela
...
ModulKpo sada obuhvata i preduzetnik_knjige (proste knjige)
Dodata tabela sa pregledom svih kombinacija pravnog oblika, PDV-a, fiskalizacije, KPO i dvojnog
Napomene: PDV prag 8M, paušalni limit 6M, fiskalizacija obavezna za sve
2026-06-25 23:13:14 +02:00
Dasko
7b62217382
Bezbednost: SSRF — proširena whitelist na privatne mreže (192.168.x, 10.x, 172.16-31.x)
...
Pre: samo 127.0.0.1 i localhost — nije radilo sa Fisk serverom na drugoj mašini u LAN-u
Posle: jePrivatnaAdresa() dozvoljava sve privatne IPv4 opsege + localhost
Hostname se koristi direktno (iz validiranog URL-a), port kao integer
2026-06-25 22:59:17 +02:00
Dasko
edcea0ddcf
Fiskalizacija: inicijalna implementacija (8 koraka)
...
1. migracija 081 — tabela fiskalni_racuni + podešavanja pfr_api_key/pfr_kasir
2. model FiskalniRacun (internal/model/fiskal.go)
3. FiskalRepository interfejs (repository.go)
4. SQLite repozitorijum (sqlite/fiskal.go — Kreiraj, DohvatiPoProdaji)
5. Paket internal/fiskal/ — HTTP klijent + mapiranje prodaja→invoiceRequest
6. Handler proširenje — FiskalRepo + fiskalKlijent() dinamički helper
7. Inicijalizacija kroz Novi() / reinicializuj — klijent se čita dinamički iz podešavanja
8. Prodaja integracija — fiskalizacija u SacuvajProdaju + QR prikaz u prodaja_detalji.html
2026-06-25 22:51:59 +02:00
Dasko
563a7a7fe2
Bezbednost: SSRF — port iz URL-a se izvlači kao integer da preseče CodeQL taint
...
Pre: parsedURL.Host je i dalje nosio korisnički unos u mrežni poziv
Posle: port → strconv.Atoi → validiran int → fmt.Sprintf("%d") — čist URL bez taint-a
2026-06-25 21:42:58 +02:00
Dasko
ac9e96cf07
Bezbednost: SSRF ispravka za CodeQL — URL se rekonstruiše iz validiranih delova
...
Pre: pfrURL + "/api/status" (CodeQL alarm: taint od korisnika do mreže)
Posle: url.URL{Scheme:"http", Host:parsedURL.Host, Path:"/api/status"} — korisnički unos samo u Host nakon validacije
2026-06-25 21:36:49 +02:00
Dasko
a53410d56f
Bezbednost: SSRF i XSS ispravka u TestFiskalizacije
2026-06-25 02:58:10 +02:00
Dasko
e50fe660b1
Servis: garantni list, radovi na otpremnici, selektivno prihvatanje predloga po stavkama
2026-06-25 01:39:56 +02:00
Dasko
a7ec5e9aa9
Servis: garantni list pri preuzimanju, ispravka datuma garancije na otpremnici
2026-06-25 00:37:56 +02:00
Dasko
43c1963c37
Fiskalizacija: test veze koristi URL iz forme, ne iz baze
2026-06-24 23:26:12 +02:00
Dasko
f69e8be988
Fiskalizacija: podešavanja L-PFR veze, test konekcije (HTMX)
2026-06-24 23:18:26 +02:00