← DokArh Portal
fiskal_implementacija

FISKAL — PNP + ZKI žičanje (mock → pravi)

Kreator: CC (Claude Code) Datum: 2026-05-31 Status: LIVE
WeisE3™ ID: (nema)

pos/router.py: mock ZKI/JIR → pravi fiscal/service.py pozivi · pos/router.py: _parse_br_ozn_rac() — izvlači BrOznRac int iz 'R-42/1/1' · pos/router.py: _send_jir_background() — JIR async background ta

tipfiskal_implementacija
statusLIVE
sto_je_napravljeno[ "pos/router.py: mock ZKI/JIR → pravi fiscal/service.py pozivi", "pos/router.py: _parse_br_ozn_rac() — izvlači BrOznRac int iz 'R-42/1/1'", "pos/router.py: _send_jir_background() — JIR async background task (48h rok)", "pos/router.py: PNP izračun po stavci (line_base * pnp_stopa/100)", "fiscal/models.py: pnp_stopa Decimal(5,2) na FiscalConfig", "fiscal/service.py: pnp_stopa parametar u save_cert_file()", "fiscal/router.py: pnp_stopa Form param na /cert/upload, pnp_stopa u FiscalHe
tok_po_racunu{ "1_zki": "compute_zki_offline() — RSA-SHA1+MD5, OFFLINE, tiska se odmah", "2_pnp": "line_base * (pnp_stopa/100) po stavci — 0 ako općina nema PNP", "3_jir": "background_tasks.add_task(_send_jir_background) — ne blokira blagajnu", "fallback": "ako nema FiscalConfig → mock ZKI (prefiks ZKI-MOCK::), upozorenje u logu" }
pnp_logika{ "tko_postavlja": "blagajnik/voditelj JEDNOM pri cert uploadu — stopa po prostoru", "kako": "POST /api/v1/fiscal/cert/upload pnp_stopa=3 (ili 0, 1.5, 2)", "izracun": "pnp_iznos = line_base * pnp_stopa/100, zaokruženo na 0.01", "fina": "PNP NE ulazi u ZKI/JIR — FINA ne zna za PNP, to je komunalni prihod", "racun_prikaz": "pnp_iznos se prikazuje kao zaseban redak na računu (PDF template — TODO)" }
pilot_uvjettest-firma pekare: kruh (PDV 5%, PNP 0) vs kava (PDV 25%, PNP 3%) — usporedba sa Synesisom
otvoreno{ "pdf_template": "PNP redak u PDF predlošku — Korak 3 FISKAL", "jir_retry": "Celery Beat retry za pending JIR (background task ne retryira sam) — Korak 2", "48h_health": "pending_count/hours u fiscal_health — aktivira se kad jir='' stariji od 48h" }
dokazano{ "import": "fiscal/router, service, models, pos/router — import ok", "model_fields": "pnp_stopa na FiscalConfig: True, pnp_iznos na InvoiceLine: True", "migration": "alembic upgrade 0024 → ok", "servis": "gunicorn-fenix-v4 restart → active" }
chain_prevc1205_fiskal_sprint_v1.dok.json