← DokArh Portal
fiskal_implementacija

FISKAL Sprint v1 — FINA certifikat i fiskalizacija u fenix-v4

Kreator: CC (Claude Code) Datum: 2026-05-31 Status: LIVE
WeisE3™ ID: (nema)
tipfiskal_implementacija
statusLIVE
verzija1.0
kontekst{ "odluka": "FISKAL otvoren tek kad ULAZ dokazan (Korak 5a) — redoslijed iz REKAPITULACIJE", "izvor": "Port iz fina-connect/fiskalizacija/fisk.py (dokazano u produkciji)", "temelj": "FiscalConfig na company_wid (dijeljeni sloj pravne osobe, ne POS-specifičan)" }
sto_je_izgradjeno{ "server": "MAR (212.227.181.201)", "fajlovi": [ "/var/www/fenix-v4/fiscal/__init__.py", "/var/www/fenix-v4/fiscal/fisk.py — engine: load_p12, generate_zki, send_to_fina, ping_fina", "/var/www/fenix-v4/fiscal/models.py — FiscalConfig (SQLAlchemy, Fernet lozinka, ZAKON 27)", "/var/www/fenix-v4/fiscal/service.py — get_config, health, zki_offline, jir_online, save_cert", "/var/www/fenix-v4/fiscal/router.py — 5 endpointa", "/var/www/fenix-v4/migr
endpointi{ "POST /api/v1/fiscal/cert/upload": "Upload .p12, provjera prije pohrane, Fernet lozinka, expiry iz P12", "POST /api/v1/fiscal/cert/test": "Ping FINA CIS EchoRequest — bez slanja računa", "GET /api/v1/fiscal/health/{wid}": "Health: cert valid, dani do isteka, pending racuni", "POST /api/v1/fiscal/zki": "ZKI offline — ne treba mrežu, tiska se odmah na račun", "POST /api/v1/fiscal/jir": "JIR online — FINA CIS, zakonski rok 48h" }
kljucne_odluke{ "model_lokacija": "company_wid (weise3_id tvrtke) = primarni ključ — ne company.id UUID", "lozinka": "Fernet enkriptirana (AES-128-CBC, ključ = SHA256(SECRET_KEY)) — nije goli CharField", "cert_dir": "/var/www/fenix-v4/certs/fiscal/ — odvojen od ostatka media", "zki_offline": "generate_zki radi bez mreže — ZKI na račun odmah, JIR u roku 48h", "engine": "Portano iz fina-connect bez Django ovisnosti — čisti Python" }
zakon[ "ZAKON 0", "ZAKON 11", "ZAKON 27", "ZAKON 29" ]
vau_efekt{ "pilot_firme": [ "Širok Šor", "OPG Kruljac Slađana" ], "flow": "Upload .p12 → test ping → ZKI offline na blagajni → JIR FINA CIS", "offline_korist": "ZKI lokalno bez interneta, JIR queue kad mreža dostupna" }
dokazano{ "import_test": "from fiscal.fisk/models/service/router → import ok", "endpoints_count": "5 endpointa registrirana", "migration": "alembic upgrade 0023 → tablica fiscal_config kreirana", "servis": "gunicorn-fenix-v4 restart → active", "health_endpoint": "GET /api/v1/fiscal/health/test → 401 (zahtijeva token, ispravno)" }
otvoreno{ "5b_zicanje": "require_online() na sve user_id-dependent rute (7 modula) — nije blokiralo FISKAL", "jir_queue": "Celery Beat retry za pending JIR-ove (zakonski rok 48h) — Korak 2 FISKAL", "html_widget": "fiscal_health widget u POS HTML sučelju — Korak 3 FISKAL", "pilot_test": "Stvarni .p12 certifikat Širok Šor / OPG Kruljac Slađana" }
chain_prevc1204_ulaz_korak5a_require_online.dok.json