Commit Graph
484 Commits
Author SHA1 Message Date
Dasko 6cfca34484 BUGFIX: dropdown CSS prebačen u main.css — radi i kad HTMX učita detalje sa kanbana 2026-06-26 01:48:21 +02:00
Dasko 94d974ad20 BUGFIX: dropdown — left:-9999px umesto display:none (neuništivo) 2026-06-26 01:46:18 +02:00
Dasko 93f5a7c8b6 BUGFIX: dropdown vraćen na original — čist CSS, bez JS manipulacije display-a 2026-06-26 01:45:07 +02:00
Dasko 340b27a7ea BUGFIX: dropdown — removeProperty umesto setProperty('none') da ne ostaje inline blok 2026-06-26 01:41:40 +02:00
Dasko 9d4503a4ea Tema: kartice spuštene na pozadinu, pozadina još tamnija — manje belog 2026-06-26 01:37:34 +02:00
Dasko 719ac8e0ff Tema: svetla još toplija i mekša — pozadina #e8ebe6 2026-06-26 01:37:03 +02:00
Dasko 3e9fc3681a BUGFIX: dropdown — !important na CSS + setProperty('important') u JS (neuništivo) 2026-06-26 01:36:51 +02:00
Dasko 8d595851b0 BUGFIX: dropdown — inline display:none + JS menja inline stil (ne samo klasu) 2026-06-26 01:35:21 +02:00
Dasko e6ad72e2e5 Tema: svetla — topliji tonovi (paper), manje drečavo belo 2026-06-26 01:27:05 +02:00
Dasko 26cf7bdb32 Servis: providni glass overlay rgba(128,128,128,0.12) — radi u obe teme 2026-06-26 01:25:02 +02:00
Dasko 4a5a0682b8 Servis: naslovi — color-mix prati karticu + 10% tamnije 2026-06-26 01:24:00 +02:00
Dasko d9fbedc0ce Servis: naslovi koriste --pozadina-hover (prati karticu) 2026-06-26 01:23:38 +02:00
Dasko 927e8e7301 Servis: naslovi prate boju kartice + 10% tamnije (automatski uz temu) 2026-06-26 01:22:46 +02:00
Dasko db5fc85a5f Servis: 80% crna pozadina naslova 2026-06-26 01:21:05 +02:00
Dasko 1212c35c1d Servis: naslovi 90% crna pozadina + beli tekst 2026-06-26 01:20:52 +02:00
Dasko f2a4bee0ee Servis: tamnija pozadina naslova (0.12) 2026-06-26 01:19:58 +02:00
Dasko 6a63a65023 Servis: naslovi — providna tamna pozadina rgba(0,0,0,0.07) 2026-06-26 01:19:31 +02:00
Dasko 8319654b89 Servis: naslovi — zatamnjena pozadina (frosted staklo efekat) 2026-06-26 01:18:16 +02:00
Dasko d92624866b Servis: naslovi — deblja linija (1.5px) za bolju istaknutost 2026-06-26 01:16:36 +02:00
Dasko a534d94ac0 Servis: pojednostavljeni naslovi — uklonjeni badge-ovi i emoji, čist tekst sa linijom 2026-06-26 01:15:56 +02:00
Dasko 3e61d42f52 BUGFIX: migracija 085 — ispravlja izvor 'prodaja'→'servis' za SN- naloge i briše duplikate 2026-06-26 01:11:27 +02:00
Dasko 9d682cce33 Migracija 084: retroaktivni upis u KIR za postojeće Preuzeto servisne naloge 2026-06-26 01:09:38 +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 280460b9cf Servis: Otpremnica i Garantni list vidljivi i za Preuzeto (ne samo Završeno) 2026-06-26 00:58:50 +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 ac659d2a3e Dockerfile: dodat za Docker deployment 2026-06-26 00:43:45 +02:00
Dasko f0622c3eac Čišćenje: izbačeni Fisk/data/counters/ fajlovi iz gita, dodati u .gitignore 2026-06-26 00:38:47 +02:00
Dasko c5c28bc668 Merge grane feature/fiskalizacija-migracija: fiskalizacija + servis unapređenja + pravni status 2026-06-26 00:36:39 +02:00
Dasko 7320ead51b Javni status: dodat datum završetka i cena dijagnostike u karticu odbijene popravke 2026-06-26 00:34:56 +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 c6ef6143f7 Servis: ✕ Klijent je odbio popravku — istaknut kao naslov ispod SN broja, sa objašnjenjem 2026-06-26 00:24:01 +02:00
Dasko 5543b92bb8 Otpremnica: kad je popravka odbijena — opis radova prikazuje da je urađena samo dijagnostika 2026-06-26 00:21:26 +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 bb60ec748e Servis: crveni badge ✕ Klijent odbio popravku pored statusa 2026-06-26 00:17:21 +02:00
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