{"id":"c1160","filename":"c1160_vaucer_bela_spec_fiskalni_test.dok.json","weise3_id":"580d06de792de8abc3a9595db3819c46a77dc7ffdfb3462c62b043636e2a50ba","tip":"implementacija+spec","naziv":"Vaucer/Bela spec + fiskalni test 27/27","kreator":"genesis","datum":"2026-05-28","snippet":"","status":"implementirano","prev_weise3":"","bunker_l":"#4b4354","full":{"tip":"implementacija+spec","naziv":"Vaucer/Bela spec + fiskalni test 27/27","sto_treba":"PaymentMethod.BON + test_fiskalni_67 (27 testova) + vaucer spec","faze":["test_fiskalni_67.py: 27 testova, 27/27 PASSED (MAR+EU)","Trodijelni format (4 parametrizirana testa, 67 tvrtki, anti-salami, cross-company)","QR validacija (PNG header, razliciti racuni razliciti QR)","PaymentMethod.BON dodan u enum (invoicing/models.py)","POS router whitelist: CASH/CARD/BON prihvaceni","Migration 0020_payment_bon.py: ALTER TYPE ADD VALUE BON (MAR+EU)","EU: 0017→0018→0019→0020 sekvencijalno nadogradeno","MAR+EU restart, gunicorn active"],"vaucer_spec":{"naziv":"Bela — interni bon","logika":"BON = vaučer koji je firma izdala korisniku, korisnik ga koristi kao placanje","sprint_1":"PaymentMethod.BON prihvacan u POS (bez validacije koda — slobodan BON)","sprint_2":"BON model: bon_kod, iznos, tvrtka_id, status (VALID/KORISTEN/ISTEKAO), krunica_atom","sprint_3":"UI u POS terminalu: input za kod + validacija + djelomicna naplata","atom_krunica":"Svako iskorištenje BON-a = Krunica atom (weise3_id + chain entry)","ista_logika_svima":"Svaka tvrtka/komuna ima isti model — BON je generički"},"zakon":"ZAKON 27: BON model ce imati weise3_id+bunker_seal_id+created_at (Sprint 2)","weise3_id":"580d06de792de8abc3a9595db3819c46a77dc7ffdfb3462c62b043636e2a50ba","prev_revision":"c1159","datum":"2026-05-28","status":"implementirano"}}