tipplan_izvrsavanja
sustavgenesispos
prethodnic0116_cc1_cc2_merge_integration.dok.json
verzija1.0
statusPLAN_DOGOVOREN
dogovorIvan Seki, 2026-05-08 — split CC1/CC2 potvrđen, QR dodan
sto_trebaCC1 izvršava frontend/PWA/template zadatke na GenosisPOS-u. Teritorij: templates/, static/, migrations/ (samo nova polja), order_intake.py, nginx CSP. Ne dira backend/fiscal/alati.
teritorij{
"smije": [
"pos/templates/",
"pos/static/",
"pos/migrations/ (samo weise3_id/bunker_seal_id polja)",
"pos/ai/order_intake.py",
"/etc/nginx/sites-enabled/genesispos"
],
"ne_smije": [
"pos/services/",
"pos/alati/",
"pos/tasks.py",
"pos/fiscal/",
"pos/views.py (API logika)",
"pos/models.py (poslovna logika)"
]
}
zadaci[
{
"id": "T01",
"naziv": "CDN → Lokalni aseti",
"problem": "kasa.html učitava Tailwind/HTMX/Alpine.js/Dexie.js s CDN-a — offline fail",
"zakoni": [
"ZAKON 29"
],
"chain": "c0119"
},
{
"id": "T02",
"naziv": "Service Worker precache lista",
"problem": "SW ne cachira lokalne asete eksplicitno — offline blagajna puca",
"zakoni": [
"ZAKON 33"
],
"chain": "c0120"
},
{
"id": "T03",
"naziv": "ZAKON 27 migracija — 15 modela",
definicija_done[
"kasa.html učitava 0 CDN resursa",
"SW cachira sve lokalne asete eksplicitno",
"15 modela imaju weise3_id i bunker_seal_id",
"Jedan Complaint model (POSComplaint), drugi deprecated",
"order_intake.py prolazi SemanticStripper",
"Isprintani račun ima QR koji vodi na porezna.gov.hr s ispravnim ZKI/OIB",
"CSP header aktivan na genesispos.online",
"python manage.py check → 0 errors",
"python manage.py test pos → sve zeleno"
]
qr_specifikacija{
"url_format": "https://porezna.gov.hr/provjera-racuna/?zki={ZKI}&datIzd={dd.MM.yyyyTHH:mm:ss}&oib={OIB}",
"zki_format": "32-char hex, MD5(RSA-SHA1 potpis), case-insensitive",
"dat_izd_format": "dd.MM.yyyyTHH:mm:ss — identičan kao za ZKI računanje",
"oib_format": "11-cifarski OIB izdavatelja",
"sto_radi": "Porezna uprava šalje ZKI na FINA CIS, FINA vraća JIR ako je račun fiskalkan. User vidi: Račun je fiskaliziran + JIR.",
"offline_fallback": "JavaScript qrcode.js generira QR lokaln
faze[
{
"faza": 1,
"naziv": "CDN eliminacija + SW precache",
"zadaci": [
"T01",
"T02"
]
},
{
"faza": 2,
"naziv": "Model compliance",
"zadaci": [
"T03",
"T04"
]
},
{
"faza": 3,
"naziv": "Input normalizacija",
"zadaci": [
"T05"
]
},
{
"faza": 4,
"naziv": "QR prikaz + CSP",
"zadaci": [
"T06",
"T07"
]
}
]
zakonZAKON 27 + ZAKON 29 + ZAKON 31 + ZAKON 32 + ZAKON 33 — svaki zadatak uklanja specifično kršenje
plan_urlhttps://genesis.limit-connect.com/plans/cc1_genesispos_frontend.md
v_urlhttps://genesis.limit-connect.com/v/385626a8fd3aca9573f05f76266e518c9ae7c4d0627d4e4b40be3b2b9637cfb9