Nije re-zbrajanje Synesisovih vlastitih polja. Ovo je stvarna funkcija _izracunaj_stavku() iz produkcijskog koda (pos/services/checkout.py), pozvana nad 49.416 sirovih blagajničkih stavki dviju stvarnih firmi, čiji rezultat je uspoređen sa Synesisovim spremljenim iznosima. Jedina razlika koja je ostala — točno jedan cent, na točno jednom retku od 15.510 — pronađena je do korijena i objašnjena niže, ne sakrivena.
Prethodni testovi (i dalje istiniti) provjeravali su da se Synesisovi vlastiti brojevi slažu sami sa sobom — stavka-suma jednaka je zaglavlju bona, zaglavlje jednako zaključku smjene, sve iz iste Synesis baze. To je vrijedna provjera integriteta uvezenih podataka, ali ne dokazuje da naš sustav, kad primi iste sirove ulaze, sam izračuna isti broj.
Ovaj test to popravlja: umjesto ponovnog zbrajanja Synesisovih polja, uvozimo i pozivamo pravu funkciju iz živog koda nad svakom stavkom (količina, cijena, PDV stopa) i uspoređujemo NJEZIN nezavisan izračun sa Synesisovim spremljenim rezultatom po stavci i po računu.
brutto = zaokruzi( količina × cijena )
pdv_iznos = zaokruzi( brutto_neto × pdv% / (100 + pdv%) )
neto = brutto_neto − pdv_iznos
ROUND_HALF_UP na 2 decimale (0.01), PO STAVCI, ne po računu
Široki Šor: konačan iznos = naš_brutto − Item_DiscountAmmount (rabat zaseban, npr. 15% na hranu)
Friško: konačan iznos = naš_brutto (Item_Discount = šifra vjernosti, NE postotak)
| Račun | Artikl | Kol. | Cijena | PDV% | Rabat | Synesis | Naš POS | Razlika |
|---|---|---|---|---|---|---|---|---|
| 69 | BEEF BURGER | 3 | 10,00 | 13% | 4,50 (15%) | 25,50 | 25,50 | 0,00 |
| 69 | CEVAPI VELIKI | 1 | 8,00 | 13% | 1,20 (15%) | 6,80 | 6,80 | 0,00 |
| 69 | PALAČINKE | 1 | 4,00 | 13% | 0,60 (15%) | 3,40 | 3,40 | 0,00 |
| 2 | PIVO OSJEČKO 0,5 | 2 | 2,50 | 25% | — | 5,00 | 5,00 | 0,00 |
| 4409 | SIR (1,49 kg — vidi nalaz niže) | 1,49 | 12,50 | 25% | 1,86 (10%) | 16,76 | 16,77 | 0,01 |
| svih 7.471 | 7.471 / 7.471 računa unutar objašnjenog raspona · 15.510 / 15.510 stavki obrađeno | Σ 0,01 | ||||||
| Račun | Artikl | Kol. | Cijena | PDV% | Rabat | Synesis | Naš POS | Razlika |
|---|---|---|---|---|---|---|---|---|
| 1 | SLANAC 80gr | 2 | 0,40 | 5% | kod "200" (ne rabat!) | 0,80 | 0,80 | 0,00 |
| 1 | KIFLA PECIVO 80gr | 1 | 0,40 | 5% | — | 0,40 | 0,40 | 0,00 |
| svih 22.360 | 22.360 / 22.360 računa OK · 33.906 / 33.906 stavki OK | Σ 0,00 | ||||||
Prvi pokušaj usporedbe pokazao je 173 "razlike" reda veličine 0,00000000000001 € — to je bio lažni trag: Synesisova stara Access baza sprema iznose kao binarni decimalni broj (IEEE-754) koji ne može točno zapisati brojeve poput 9,20 (sprema ih kao 9,199999999999999). Kad se to ukloni pravilnim zaokruživanjem, ostaje točno jedan pravi slučaj:
Zadnja znamenka (2) je parna → ostaje. − rabat 1,86 = 16,76 €
Pola centa uvijek gore, po zakonskom fiskalnom pravilu. − rabat 1,86 = 16,77 €
Zašto baš ovaj jedan redak od 15.510: samo roba koja se prodaje na težinu (kg, s decimalnom količinom) može slučajno proizvesti umnožak koji točno padne na granicu 0,xx5. Komadna roba (cijeli brojevi) to praktički nikad ne proizvede. Nije formula-greška ni s jedne strane — dvije različite, obje legitimne konvencije zaokruživanja koje se razlikuju samo na toj točnoj granici.
Odluka za Ivana/Mariju: zadržati ROUND_HALF_UP (vjerojatno zakonski ispravnije, CIS standard) i prihvatiti ovu objašnjenu, dokumentiranu iznimku — ili mijenjati zaokruživanje da kopira Synesisovu naviku. CC preporuča zadržati fiskalni standard.
Naš POS engine (produkcijski kod, ne testni stub), pokrenut nad sirovim Synesis ulazima dvije stvarne firme, samostalno je izračunao:
Formule korištene u testu su doslovno iste funkcije koje danas rade u produkcijskom Genesis POS-u — nisu preslikane niti pojednostavljene za potrebe ovog testa.
Ovaj zapis ne zatvara O-030 — dokazuje da je tehnički izračun ispravan. Amen je Marijina presuda, ne CC-ova ni Ivanova.
Ovaj zapis nije samo tvrdnja na stranici. Zapečaćen je i stoji na pet čvorova u različitim mrežama i kod različitih pružatelja — nijedan od njih nije nužan da bi se provjerio.
| čvor | poveznica za provjeru | pravi atom | izmišljen ID |
|---|---|---|---|
| EU | genesis.limit-connect.com/v/db4d18344e… | 200 autentično | 404 |
| ES | no-limit.world/v/db4d18344e… | 200 autentično | 404 |
| DE | sati.ink/v/db4d18344e… | 200 autentično | 404 |
| NEW | fina-connect.online/v/db4d18344e… | 200 autentično | 404 |
| MAR | limit-connect.com/v/db4d18344e… | 200 autentično | 404 |
Stupac „izmišljen ID“ nije ukras. Da svih pet čvorova vraća „autentično“ na bilo što, poveznica ne bi ništa značila. Zato se svaki provjerava i s izmišljenim brojem — i svaki mora reći ne.
Puni otisak: db4d18344e46e76cc3f7cf4420ff6aeb2610f4130def025b7cd97513dcf3908f
Pošteno o vremenu: novi atom ne osvane na svih pet istog trenutka — izmjereno kašnjenje od pečaćenja do prvog udaljenog čvora bilo je oko 6 minuta. Prije toga udaljeni čvor odgovara 404, i to je točan odgovor, ne kvar.