Dasko
daeaab3ea4
Servis: uklonjeni prazni redovi — ako nema radova/delova, ne prikazuje se ništa (samo UKUPNO)
2026-06-26 00:15:13 +02:00
Dasko
a6f01b5515
Servis: badge stilizacija naslova — Obavljeni radovi (plavo) i Ugrađeni delovi (zeleno) sa ikonicama 🔧 💾
2026-06-26 00:13:07 +02:00
Dasko
6ada2ad759
Servis: reorganizovana Ukupno kartica — listing radova i delova sa subtotalima, finalni total boldiran
2026-06-26 00:10:14 +02:00
Dasko
45516a8e10
Servis: listing radova i delova iznad Ukupno, ne ispod
2026-06-26 00:06:24 +02:00
Dasko
056d7f033b
Servis: ispravka — .Delovi→.ServisniDelovi, .Radovi→.ServisniRadovi (pogrešna imena promenljivih)
2026-06-26 00:04:45 +02:00
Dasko
97ef0906d7
Servis: listing ugrađenih delova i obavljenih radova u Ukupno kartici kad je status Završeno/Preuzeto
2026-06-25 23:30:08 +02:00
Dasko
ecf5f484cb
Podešavanja: uputstvo za režime Pun i Samo evidencija
2026-06-25 23:26:09 +02:00
Dasko
ab43f9018d
Podešavanja: JS logika zaključavanja — PDV se gasi uz Fiskalizaciju u režimu „Samo evidencija"
...
Proširena postojeća JS logika: sada i PDV i Fiskalizacija idu na „Ne" i zasive se kad je režim „samo evidencija". Refaktorisano u lockGrupa/unlockGrupa helper-e.
2026-06-25 23:23:13 +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
4425f7294a
Servis: kanban kolone proporcionalno raširene po širini ekrana
...
Pre: flex: 0 0 250px (fiksna širina, prazan prostor desno)
Posle: flex: 1 1 0 + min-width: 220px (ravnomerno popunjavaju širinu)
2026-06-25 23:02:28 +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
a4114627e0
Servis: custom dropdown za usluge i artikle (naziv+cena), live preračun na javnoj stranici
2026-06-25 02:45:30 +02:00
Dasko
ee38f986d5
Servis: cene u dropdownu usluga i artikala
2026-06-25 02:11:44 +02:00
Dasko
21e13cdc43
Servis: zamena svih tipografskih navodnika u odbij-popravku formi
2026-06-25 02:09:29 +02:00
Dasko
5f742a9878
Servis: ispravka tipografskih navodnika u data-potvrda (lomili HTML parser)
2026-06-25 02:07:32 +02:00
Dasko
0d28d0e143
Servis: odbij-popravku data-full-reload, AJAX ne sme da ostane na stranici posle promene statusa
2026-06-25 01:53:46 +02:00
Dasko
e914c15132
Servis: ispravka predlozeno-blok (sadrzaj bio u pogresnoj if grani)
2026-06-25 01:47:32 +02:00
Dasko
f21807578d
Servis: predlozeno-blok se pojavljuje odmah pri dodavanju prve predlozene stavke
2026-06-25 01:44:34 +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
d199112301
Podešavanja: QR URL primer kao domen umesto lokalne IP adrese
2026-06-24 23:37:18 +02:00
Dasko
673ec5fd2a
Fisk compose: external mreža ntech-net, bez izloženog porta
2026-06-24 23:32:18 +02:00
Dasko
4713d5aeff
Uklonjen fisk-test.sh, .gitignore cleanup
2026-06-24 23:27:48 +02:00
Dasko
2d755baa38
Podešavanja: uklonjen konkretan IP iz placeholder teksta QR URL polja
2026-06-24 23:26:49 +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
Dasko
4be0e34c75
README: samostalni docker-compose za Fisk mock server
2026-06-24 23:06:07 +02:00
Dasko
a7a1a9180c
Build: paralelni UPX u odvojenim tmp folderima (bez race condition)
2026-06-24 22:47:46 +02:00
Dasko
4b50172a5e
Build: sekvencijalni UPX kad se grade obe platforme (race condition fix)
2026-06-24 22:47:01 +02:00
Dasko
7e8430c47f
Build alat: opcija za build i push ntech-fisk Docker slike
2026-06-24 22:35:48 +02:00
Dasko
8b2bbc475e
Dodaj bezbednosnu politiku (SECURITY.md)
2026-06-24 22:32:09 +02:00
Dasko and GitHub
ba79353e6c
Update issue templates
2026-06-24 22:29:58 +02:00
Dasko
4af466b4d3
Dodaj MIT licencu
2026-06-24 22:27:06 +02:00
Dasko
fa60e54034
README: usklađeno sa stvarnim stanjem — servis modul, troškovi, usluge, izveštaji, HTMX
2026-06-24 22:15:49 +02:00
Dasko
3549a1754c
README: Teron mock server sekcija, fiskalizacija u toku
2026-06-24 22:13:15 +02:00
Dasko
01dd703e4f
Docker: uklonjen example compose (osetljive informacije)
2026-06-24 22:10:06 +02:00
Dasko
682a338b57
Docker: interna mreža između ntech i teron-mock, port 4566 nije izložen
2026-06-24 22:08:50 +02:00
Dasko
ef3bb6e4ab
Docker: primer compose fajla za README (ntech + teron-mock)
2026-06-24 22:07:57 +02:00
Dasko
6b5e6a0be4
Teron mock: jedan compose fajl, named volume za podatke
2026-06-24 22:06:34 +02:00
Dasko
d37c7a321c
Teron mock: docker-compose za Dockge (named volume)
2026-06-24 22:05:27 +02:00
Dasko
e6cfe00ccd
Teron mock: Dockerfile, requirements.txt i docker-compose za Docker deploy
2026-06-24 22:03:06 +02:00
Dasko
9b720dfa17
Fisk mock server: preuredjen za Teron API (port 4566, Teron putanje i format odgovora)
2026-06-24 21:23:31 +02:00
Dasko
d27694cdb8
Fisk mock server: PDV obračun iz bruto cene po poreskoj oznaci
2026-06-24 20:42:10 +02:00
Dasko
c8fa49967e
Servis predlog delovi: lager integracija, brisanje predloženih delova, odluka klijenta (migracija 079)
2026-06-24 19:39:30 +02:00
Dasko
f61b3bd5ca
Javno odobravanje predloga: Prihvati/Odbij sa komentarom
...
- Dodati handleri za prihvatanje i odbijanje predloga sa mobilnog
- Prihvatanje: predložene stavke prelaze u ugrađene (predlozeno 1→0)
- Odbijanje: brišu se predložene stavke
- Komentar klijenta uz odluku (textarea na mobilnom, prikaz u detaljima)
- Oznaka na kanbanu za naloge sa predlozima (narandžasta tačka + leva ivica)
- Oznaka na kanbanu za poruku klijenta (💬 dugme, tap za prikaz)
- Spojene kartice Radovi/Predložene usluge i Delovi/Predloženi delovi
- Auto-detekcija predlozeno=1 kad status != Primljeno
- Obrisana Otključaj/Zaključaj dugmad
- Ukupno sa predlogom na javnoj status stranici
- CSRF middleware premešten u zaštićenu grupu
- Migracija 078: komentar_klijenta
- Repo metode: ObrisiPredlozene, AzurirajKomentarKlijenta
- Popravljeno: 405 na odbij, duple rute, razmak između kartica
2026-06-24 02:41:06 +02:00
Dasko
3c6b0376b8
Dashboard: klikabilne stavke u kartici Poslednji servisi (link ka detaljima naloga)
2026-06-23 23:01:29 +02:00