{"id":"c1174","filename":"c1174_sprint3_pos_bon_ui.dok.json","weise3_id":"","tip":"implementacija","naziv":"Sprint 3 — POS BON Vaucer UI","kreator":"genesis","datum":"2026-05-29","snippet":"Dodan treci gumb 'BON Vaucer' u pos-pay-methods grid (3 stupca, ranije 2) · Dodan bon-section div — skriva se dok CASH/CARD odabran, pojavljuje se uz BON · bonKodInput s oninput=posOnBonInput — 300ms debounce za validaciju","status":"DONE","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"implementacija","naziv":"Sprint 3 — POS BON Vaucer UI","status":"DONE","sto_je_napravljeno":["Dodan treci gumb 'BON Vaucer' u pos-pay-methods grid (3 stupca, ranije 2)","Dodan bon-section div — skriva se dok CASH/CARD odabran, pojavljuje se uz BON","bonKodInput s oninput=posOnBonInput — 300ms debounce za validaciju","QR scan gumb — getUserMedia + requestAnimationFrame scan petlja (BarcodeDetector/jsQR)","bon-status badge s tri stanja: checking/valid/invalid (CSS klase)","bon-doplata redak — iskazuje koliko BON pokriva vs koliko je doplata (parcijalno placanje)","posValidirajBon kori API: POST /api/v4/bon/{kod}/validiraj?company_id={{ company_id }}","posNaplati() prosirena: provjerava bonValjan, dodaje bon_kod u payload kad je metoda BON","Background verify loop: na network erroru s BON metodom — retry svakih 2s, max 30s","posNoviRacun() reset ukljucuje bon state i vraca na CASH","Uspjesni racun modal sada prikazuje bon_kod redak ako je koristeno BON placanje","QR scanner modal s qr-video-wrap + qr-scan-line vizualnom crtom"],"api_diferencijal":{"spec_kaze":"POST /api/v4/bon/{kod}/validiraj body {tvrtka_id: string}","stvarnost":"POST /api/v4/bon/{kod}/validiraj?company_id=XXXX (query param)","rijesenje":"Koristen query param - tocno kao sto bon/router.py definira"},"fajlovi":["/var/www/fenix-v4/templates/pos/terminal.html"],"deployed_na":["EU 217.160.71.124","MAR 212.227.181.201"],"sljedeci_koraci":["Manual test: Robi Android tablet (pravi kamera test QR scan)","Marija vizualni AMEN","Playwright testovi (12 scenarija iz SPRINT_3_UI_NACRT.md)","jsQR.min.js upload u /var/www/fenix-v4/pos/static/pos/lib/ za offline QR scan"],"zakon":["ZAKON 3 — nema novog modela, samo UI","ZAKON 32 — ovo je chain entry"],"nastao":"2026-05-29","_opp_seal":"FENIX2026::POS_BON_UI_SPRINT3"}}