Logboek
Wat er nieuw is
Elke wijziging krijgt een buildnummer, en dat nummer staat
linksonder in je kassa. Loopt jouw omgeving achter, dan zie je bij Winkels
hoeveel builds dat zijn en werk je met één druk bij. De nieuwste is 1.2 build 275.
1.2
build 275
5 oktober 2026
nu in gebruik
- Clubkaart: bij afrekenen groot de naam van de kaarthouder, het kaartnummer apart eronder
1.2
build 274
5 oktober 2026
- Licenties: elk apparaat neemt een licentie in (X-Toestel), aantal per zaak door Cloudsys (Winkels en centraal bij Omgevingen), eigenaar ziet en meldt apparaten af onder Instellingen; kassa's niet meer dan de licentie
1.2
build 273
4 oktober 2026
- Pinautomaat: SumUp Solo (Cloud API, Solo koppelen met koppelcode) en Mollie-terminal (pointofsale) als betaaldienst
1.2
build 272
4 oktober 2026
- Contant aan de bar uit te zetten (Instellingen → Betalen aan de bar); geldt voor de bar in de webkassa en Kassanext Bar 2.3
1.2
build 271
4 oktober 2026
- Clubkaarten: tabblad (kaart scannen, koppelen, opwaarderen, vervangen, blokkeren); kaartlezer werkt overal aan kassa/bar/balie, aan bar en balie meteen betalen van het tegoed
1.2
build 270
2 oktober 2026
- Wegboeken: posten (bestuur, personeel…) open of met code, aan bar en balie; dagstaat per post en boekhoudregel Weggeboekt
1.2
build 269
2 oktober 2026
- Een pc aan de bar koppelen: de eigenaar meldt hem één keer aan met zijn wachtwoord, daarna melden medewerkers zich daar aan met een tik op hun naam, zonder wachtwoord
- Een verkoop die door een weggevallen verbinding opnieuw wordt verstuurd, wordt niet meer dubbel geboekt — ook niet na een geslaagde pinbetaling
1.2
build 268
2 oktober 2026
- Bar indelen: plaatjes op de knoppen aan of uit, voor de hele bar — aan toont de foto van het artikel op de knop, uit alleen de gekleurde knop met naam en prijs
1.2
build 267
2 oktober 2026
- De bar kan nu ook als los programma op een Windows-pc draaien (Kassanext Bar): dan staat alleen de bar in beeld, schermvullend, zonder menu, en gaat de bon rechtstreeks naar de bonnenprinter
1.2
build 266
2 oktober 2026
- Bar indelen: de zaak maakt zelf groepen met een naam bovenin, en per groep een raster met knoppen op een vaste plek, in een eigen kleur, met lege vakken waar je ze wilt
- Indeling aanpassen staat op de Bar voor de eigenaar en wie artikelen mag beheren: knop maken, kleur wijzigen, verplaatsen, weghalen, rij erbij, kolommen kiezen; zonder eigen indeling blijft de automatische
1.2
build 265
2 oktober 2026
- Nieuw tabblad Bar in horecazaken: grote groepknoppen in een eigen kleur, drankjes aantikken en meteen afrekenen met pin, contant gepast of een biljet met wisselgeld — zonder eerst een tafel te kiezen
- Aan de bar zie je op elke knop hoeveel er al in het mandje ligt; een tosti of iets anders voor de keuken gaat nog steeds met een nummer naar de keuken
1.2
build 264
4 september 2026
- Euroteken instelbaar: PC858, WPC1252 of de letters EUR — printers kunnen niet allemaal dezelfde tekentabel
- Proefbon die alle vier de manieren op een bon afdrukt, zodat je ziet welke jouw printer kan
- Keuken-, bar- en proefbon gebruiken nu dezelfde tekentabel als de kassabon
1.2
build 263
4 september 2026
- Bonontwerper: de bon zelf instellen — blokken in eigen volgorde, breedte vast, logo erop
- Voorbeeld komt uit dezelfde printerbytes als de echte bon, dus het kan niet uit elkaar lopen
- Winkellogo wordt omgezet naar zwart-wit met foutdiffusie en als GS v 0 afgedrukt
1.2
build 262
3 september 2026
- Een controleronde over de hele boom. Vijf echte fouten gevonden en verholpen, waarvan drie in code die er al maanden zo stond.
- fout_opschrijven() bestond niet. Hij werd op drie plekken aangeroepen, allemaal in een catch — bij Lightspeed en unTill. Ging daar iets mis, dan werd de nette foutafhandeling zélf een fatale fout. Bij het uitzetten van de Lightspeed-koppeling was dat het ergst: daar staat met zoveel woorden dat een zaak los moet kunnen komen van een koppeling die stuk is, en juist dan viel het om. Het is publiek_fout() geworden, die bestaat en dezelfde vorm heeft.
- tafel_uit() bestond niet. Daardoor liepen de drie knoppen om een tafelplan over te nemen uit Mplus, Lightspeed of unTill dood op een lege fout. Nu geschreven, met twee dingen die er niet in mochten ontbreken: een tafel die hier al bestond houdt zijn eigen id — anders wijzen alle reserveringen naar een tafel die niet meer bestaat — en wat er van buiten komt wordt begrensd, want dertig stoelen is het maximum en een plek van min negenduizend maakt de plattegrond onbruikbaar.
- Een factuur met één al afgevinkte bon kon niet op betaald worden gezet. De code ving daar een fout op om door te gaan, maar verkoop_voldaan() weigert via json_fout() en dat beëindigt het verzoek. Nu wordt er per bon gekeken of het kan, en de catch blijft staan voor wat er wél gegooid kan worden.
- Een geweigerde tegoedbetaling verbrandde een bonnummer: de teller ging omhoog vóórdat het saldo werd getoetst. Dat gaf een gat in de nummering dat niemand kon uitleggen. De toets zit nu vóór het nummer.
- Het klantenoverzicht deed bij vierhonderd klanten ruim achthonderd queries, waarvan vierhonderd met vijfduizend verkopen erin. Sinds er een pas aan de kassa te scannen valt hing dat ook achter een knop waar iemand met een klant aan de bar op drukt. Nu drie queries, en de kassa vraagt een lichte variant zonder de openstaande bedragen.
- db_klaarzetten() deed bij élk verzoek twee CREATE TABLE IF NOT EXISTS. Bij een kiosk die elke twee tellen vraagt en een keukenscherm dat elke drie tellen vraagt is dat de hele dag door. Nu één keer, met een stempeltje ernaast.
- Twee catch-blokken in het tegoed die niets konden vangen zijn weg. In plaats daarvan wordt er getoetst voordat er geld wordt aangenomen — met dezelfde toets die de mutatie zelf gebruikt, zodat de grens op één plek staat.
1.2
build 261
3 september 2026
- De plaatjes op de kassaknoppen en de balietegels groeien nu mee met de knop in plaats van een vaste hoogte van 64 pixels te houden. Op een breed kassascherm zijn ze daardoor bijna twee keer zo groot; op de 360 pixels van een pinterminal blijven ze even goed te zien.
- In het voorbeeldbestand voor artikelen stond Cola 0,25 op 21% btw. Een drank zonder alcohol valt onder het lage tarief van 9% — alleen bier en wijn zijn 21%. Dit is het bestand dat mensen overnemen, dus stond het fout dan importeerde iemand zijn hele frisrange op het verkeerde tarief. De prijs stond er ook boven die van een fluitje bier; nu 2,25 excl (2,45 incl).
1.2
build 260
3 september 2026
- Kleine plaatjes bij de artikelen. Staat er een foto bij een artikel, dan komt hij nu ook op de kassaknop en op de balietegel — niet alleen in de webshop en op de kiosk. Op een kassa met zestig knoppen is een plaatje sneller te vinden dan een woord.
- Er is een tweede, kleine maat van 200 pixels bij gekomen. Tweehonderd knoppen met de grote foto van 800 is megabytes over de lijn, en dan opent de kassa niet meer op de wifi van een sportkantine. De kleine wordt afgeleid uit de grote zodra iemand hem opvraagt, dus hij bestaat ook voor alle foto's die er al stonden — zonder migratie en zonder dat iemand iets hoeft te doen.
- Artikelen zonder foto krijgen een leeg vlak met een plusje in plaats van niets. Anders rekt het raster die knop uit tot de hoogte van zijn rijgenoten en staat de prijs los onderaan met een gat erboven, en dat leest als een fout. Zo blijft het raster regelmatig en zie je meteen waar er nog een foto moet komen.
- In de artikelenlijst staat een miniatuur voor elk artikel, met een leeg vakje waar nog geen foto is.
- Bij Instellingen → Prijzen staat een schakelaar om de plaatjes op de kassaknoppen uit te zetten. Van zichzelf staan ze aan: een zaak zonder foto's merkt er niets van.
1.2
build 259
3 september 2026
- De kiosk geeft de gast een afhaalbon. Eén papiertje: het afhaalnummer vier keer zo groot bovenaan, de bon eronder met de artikelen, de btw en wat er is betaald, en het nummer nog een keer onderaan — wie hem in zijn zak stopt ziet dat stuk als eerste weer.
- Bij de kiosk stel je in welke printer de afhaalbon uitspuugt. Dat hoort de printer naast het scherm te zijn: de gast loopt weg met het papiertje in zijn hand. Laat je het leeg, dan komt hij achter de toonbank uit en moet iemand hem aangeven.
- Een kioskverkoop print niet meer ook nog een gewone bon achter de toonbank. Er kwam anders twee keer papier uit waarvan er één op niemand wachtte.
1.2
build 258
3 september 2026
- Bij een kioskbestelling komt er nu ook een barbon. Aan de balie staat degene die afrekent naast de tap en schenkt hij het biertje zelf; bij een kiosk staat er niemand. Zonder barbon wist niemand dat er een cola moest komen, en bij een bestelling van alleen drinken kwam er zelfs geen nummer — dan was er niemand om te roepen.
- Het keukenscherm en het barscherm zien allebei hetzelfde nummer met hun eigen regels erop. Chips uit het rek en statiegeldregels blijven er in alle gevallen buiten.
1.2
build 257
3 september 2026
- Een verkeerd overgetikte kiosksleutel gaf "niet aangemeld" op het scherm. Nu staat er wat er mis is met het adres.
1.2
build 256
3 september 2026
- Keukenmanagement: gangen. Een artikel of een hele groep krijgt een gang — drank, voor, tussen, hoofd, na. Een bon met een voorgerecht en een hoofdgerecht komt als twee kaarten op het keukenscherm: de eerste gang staat er meteen op, de rest wacht.
- De bediening vraagt de volgende gang uit met één knop aan de tafel, en ziet daar ook wanneer de keuken hem klaar heeft gemeld. Niemand hoeft meer naar de keuken te lopen om te vragen of het al komt.
- Laat je de gang leeg, dan is alles één gang en werkt het keukenscherm precies zoals het werkte. Een snackbar merkt van dit hele stelsel niets, en bonnen die er al stonden gaan langs de oude weg.
- Een overzicht voor de chef boven het keukenscherm: hoeveel tafels, hoeveel couverts, hoe lang de oudste bon staat, en wat er nu gemaakt moet worden — per gerecht bij elkaar geteld over alle tafels.
- Per keukenscherm stel je in of het groot of compact is, na hoeveel minuten een bon oranje en rood wordt, of wachtende gangen blijven staan, en welke gangen dat scherm aangaan. De bar hoeft geen nagerechten te zien.
- De bediening kan een tafel meegeven dat er haast is, dat het een VIP is, hoeveel couverts er zitten, en een notitie over de timing. Dat staat op het keukenscherm en gaat er bij het afrekenen weer af.
- De kiosk: een scherm waar de gast zelf aanslaat en met pin afrekent. De bestelling gaat naar de keuken en de gast krijgt een nummer, net als aan de balie. Vóór het afrekenen biedt hij nog iets uit een groep naar keuze aan.
- De kiosk heeft zijn eigen sleutel en niet de aanmelding van een medewerker: hij staat in het publiek. Wat hij mag is de kaart lezen, een bestelling beginnen, vragen hoe het gaat en afbreken — geen omzet, geen klanten, geen instellingen. De sleutel is in te trekken zonder dat er iemand opnieuw hoeft in te loggen.
- De kiosk stuurt wát iemand wil hebben en niet wat het kost, en hij kan zelf geen bon maken: de server boekt de verkoop pas als hij bij de betaaldienst heeft nagekeken dat er werkelijk is afgeschreven. Die controle stond in één endpoint en staat nu op één plek, zodat beide wegen hem doen.
- Wat op is staat niet op de kiosk. Aan tafel kan de bediening nog zeggen dat iets er niet meer is; bij een kiosk staat er niemand, en dan is een gast die betaalt voor iets wat niet komt het slechtste wat er kan gebeuren.
- Het invoerbestand voor artikelen kent nu een kolom gang, en leest 'voorgerecht', 'voor' en '1' als hetzelfde.
1.2
build 255
3 september 2026
- Kantinetegoed op de pas. Een ouder zet twintig euro op de pas van zijn kind, en dat kind koopt ranja zonder geld op zak. Opwaarderen doe je bij de klant; afrekenen is één tik op de kassa of de balie, en er staat meteen wat er nog op staat.
- Elke mutatie komt in een afschrift per pas te staan, met het saldo erna, de bon en wie het deed. Zo kun je nawijzen waar een tientje is gebleven. Een controle telt het afschrift na tegen het saldo.
- Opwaarderen is geen omzet maar een schuld: je hebt het geld en moet nog leveren. De dagstaat houdt het buiten de omzet en zet het er apart onder; de dagboeking boekt het als uitgegeven tegoed. Zonder dat onderscheid draag je twee keer btw af over dezelfde euro.
- Een fout in de dagboeking die er al zat: betalen met een cadeaubon werd wel als betaalwijze geteld maar nergens gedebiteerd. De boeking stond dan precies het bestede bedrag scheef, en dan ging er die nacht niets naar de boekhouding, met alleen een foutregel in het logboek. Cadeaubon en tegoed staan nu aan beide kanten.
- Meer van een pas afhalen dan erop staat kan niet, en er geldt een maximum per keer en per pas. Het saldo verandert onder een slot, dus twee bars die tegelijk van dezelfde pas afboeken kunnen niet allebei van hetzelfde saldo uitgaan.
1.2
build 254
3 september 2026
- Ledenprijs. Een klant kan in een groep zitten — leden, personeel, jeugd — en een prijsregel kan aan zo'n groep hangen. Dan betaalt een lid twee euro voor een pils waar een gast er tweeënhalf voor betaalt.
- Bij de klant vul je een groep en een pas in. Aan de kassa en op de balie kies of scan je de klant vóór het afrekenen, en de mand rekent zich om naar de ledenprijs. Op een anonieme bon geldt hij nooit — dan zou iedereen lid zijn.
- Streepjes en hoofdletters in een pascode maken niet uit: LID-0042 en lid 0042 zijn dezelfde pas. Twee klanten met dezelfde pas worden geweigerd bij het opslaan, met de naam erbij die hem al heeft.
- De kassa leest het bedrag na bij de server voordat het betaalscherm opengaat. De prijsregels worden daar toegepast, dus daar staat wat de klant werkelijk betaalt — anders zou de kassa een lid het wisselgeld van de gastprijs meegeven.
- Onder het totaal staat welke regel de prijs verlaagde. Een lager bedrag zonder uitleg lijkt op een tikfout van de bediening.
- Op een tafel geldt de ledenprijs op het moment van bestellen en niet bij het afrekenen: wie pas bij de rekening opstaat als lid krijgt geen korting met terugwerkende kracht op wat de tafel al heeft gedronken.
1.2
build 253
3 september 2026
- De proefbon is een keuring geworden. Hij raakt nu elk commando aan dat een echte bon gebruikt — groot, vet, uitlijnen, de codepagina met het euroteken, afsnijden en de kassalade — en er staat op de bon zelf wat je moet zien. Zo weet je bij een nieuwe printer wat er mankeert in plaats van dat er papier uitkomt.
- Op de proefbon staat een meetlat die precies zo breed is als de rol hoort te zijn en op een blokje eindigt. Staat dat blokje nog op dezelfde regel, dan is de breedte goed ingesteld.
- De voettekst van de bon werd niet afgebroken. Een afsluittekst van meer dan een regel liep over de rand en werd door de printer middenin een woord doorgeknipt. Dat gold ook voor het adres in de kop. Beide breken nu af op het woord.
1.2
build 252
3 september 2026
- Bij de pinautomaat kun je nu kiezen wie de bon print: de kassa, of de terminal zelf als die een printer heeft. Een Ciontek CS50C heeft die, en als dat het enige papier in de zaak is hoort hij de bon aan te bieden.
- Op de artikelknoppen plakte "op voorraad: 0" tegen de prijs aan op een smal scherm — "€ 3,50op voorraad: 0". Staat nu op zijn eigen regel.
1.2
build 251
3 september 2026
- Pinnen met Viva.com is af: het bedrag gaat vanzelf naar de terminal, over hun wolk, dus zonder iets in de winkel. Werkt op elke kassa en ook op de iPad.
- Een eigen instelscherm voor de pinautomaat: kies de dienst, vul de gegevens van Viva in, en wijs per kassa aan welk apparaat moet piepen. De terminals worden bij Viva opgehaald, dus je hoeft geen nummer over te tikken.
- Een logboek bij de pinautomaat. Elke betaling met de uitkomst, de kaartsoort en het autorisatienummer; daarboven apart wat er aan de koppeling zelf mankeerde. Een geweigerde kaart is geen storing en staat dus niet tussen de storingen.
- Bij een geweigerde betaling staat er nu waarom: te weinig saldo, pincode fout, kaart geblokkeerd. Dat scheelt de bediening het gokken.
- De kassa is als app op een Android-toestel te zetten, met ons merk op het beginscherm en zonder de balk van de browser. Bedoeld voor een pinterminal met de Play Store erop: een Ciontek doet dan de kassa en het pinnen op een apparaat.
- Mollie en de pinautomaat schreven elke nacht een foutregel in hun logboek omdat de nachtelijke ronde een dagboeking van hen verwachtte. Die verwachten we niet meer.
1.2
build 250
2 september 2026
- Je kunt nu per groep zeggen waar de artikelen gemaakt worden: Artikelen → Groepen. Zet 'Warme snacks' op keuken en alle artikelen erin gaan mee — nieuwe artikelen in die groep krijgen het daarna vanzelf.
- De uitkomst na het afrekenen staat nu ook op het gewone kassascherm en niet alleen op de balie. Daar rekende je af en verdween het mandje met alleen een melding in een hoek, en dan weet je niet of het is gelukt of hoeveel wisselgeld eruit moet.
1.2
build 249
2 september 2026
- Na het afrekenen aan de balie staat er nu altijd een uitkomst in beeld: afgerekend, hoeveel wisselgeld eruit moet, en welk nummer de klant krijgt. Ook zonder pinautomaat — daarvoor verdween het mandje en stond er een melding in een hoek.
- Ging het mis, dan blijft die kaart staan tot je hem wegtikt en staat je mandje er nog. Een fout mag niet vanzelf verdwijnen.
- En de Pin-knop zegt nu 'Pin — zelf op het apparaat' zolang er geen pinautomaat is ingesteld, in plaats van stil iets anders te doen dan je verwacht. Zet je hem aan bij Integraties, dan merkt de balie dat zonder herladen.
1.2
build 248
2 september 2026
- De Pin-knop aan de balie stuurt het bedrag nu naar de terminal en wacht op groen, in plaats van meteen een pinverkoop te boeken. Dat laatste was een gat in de kas: er stond 'pin' in de dagstaat terwijl er misschien niets was afgeschreven.
- Met een controlescherm dat de vier uitkomsten uit elkaar houdt: betaald (met het nummer voor de klant), geweigerd, afgebroken, en onbekend. Die laatste staat er het uitgebreidst, want dat is de enige waarbij je moet kiezen in plaats van lezen — en twee keer laten pinnen is duurder dan even kijken.
- Betaald maar niet vastgelegd is nu ook een eigen melding: het geld is dan weg en de bon niet gemaakt, en dat hoort niemand te missen.
1.2
build 247
2 september 2026
- Aan de balie gaat er alleen een bon naar de keuken, en alleen voor wat op 'keuken' staat: een biertje schenk je zelf en de chips geef je meteen mee, daar hoeft niemand op te wachten en dus ook geen nummer bij.
- En die bon ontstaat pas ná het afrekenen — er wordt betaald, en dan gaat het naar de keuken. Aan een tafel blijft het omgekeerd: daar bestelt de gast eerst en rekent hij later af.
1.2
build 246
2 september 2026
- Het tabblad Balie is een afrekenscherm geworden: tikken en met één knop afrekenen. Pin is één tik, Contant is één tik voor het exacte bedrag, of je tikt een biljet en ziet het wisselgeld. Geen venster ertussen — bij vijftien man in de rij is dat precies één handeling te veel.
- Rechts eronder staat wie er wacht en wat er klaar is, en dat verspringt zichzelf elke vijf tellen: de keuken vinkt af op zijn eigen scherm, jij ziet groen en roept het nummer.
1.2
build 245
2 september 2026
- Een tabblad Balie: wie staat er op zijn bestelling te wachten en wat is er klaar. De keuken zag zijn eigen werk al, maar aan de balie wist je niet welk nummer je kon roepen — en dan staat iemand te wachten terwijl zijn tosti onder de lamp koud wordt.
- Klaar staat bovenaan met een groene rand: dat is wat je nu kunt meegeven. Klaar betekent dat de keuken én de bar hebben afgevinkt, dus een tosti met een biertje is niet klaar als alleen de bar heeft geknikt. Met Meegegeven haal je hem van het scherm.
- Het tabblad staat er alleen als er in je zaak werkelijk iets te maken valt. Een fietsenwinkel heeft geen frituur en ziet het niet.
1.2
build 244
2 september 2026
- Het keuken- en barscherm was alleen te openen in de horecastand. Een sportkantine heeft geen tafels en staat dus op winkel — en kon het scherm daardoor niet openen terwijl hij wel een frituur heeft. Nu staat het er in beide standen, met uitleg die bij je zaak past.
1.2
build 243
2 september 2026
- Na een balieverkoop met keukenwerk staat het nummer groot in beeld: dat is het enige dat je nu aan de klant hoeft te zeggen. Tik erop en het is weg, of na vijf tellen.
1.2
build 242
2 september 2026
- Balieverkoop met een keuken erachter, voor een sportkantine: bestel je aan de balie iets dat gemaakt moet worden, dan krijgt de klant een nummer en komt de bon op het keuken- of barscherm — naast de tafelrondes, op tijd gesorteerd.
- Het nummer loopt per dag opnieuw en staat groot op het scherm: dat is waar de klant op wacht en waar je hem mee roept. Afgevinkt blijft de bon vijf minuten gedempt staan, zodat wie te snel tikt hem kan terugzetten.
- Er komt ook een keukenbon uit de printer als je die hebt, met het nummer erop in plaats van een tafelnaam.
1.2
build 241
2 september 2026
- Je openingstijden staan nu in de planning: een lichte band achter de diensten, zodat je ziet wat je moet dekken en niet alleen wat je hebt ingepland. Ze komen uit de kassa bij het reserveren, ook als die module uit staat.
- En boven elke dag staat waar je open bent zonder dat er iemand staat — 'gat 19:00–21:30'. Een tekort van minder dan een kwartier laten we lopen: een dienst die om 17:00 begint terwijl de deur om 16:55 opengaat is geen gat maar een afronding.
1.2
build 240
2 september 2026
- De planning is een eigen tabblad geworden: een tijdbalk van achttien uur was onder de personeelslijst een postzegel.
- Elke medewerker heeft nu een eigen kleur in de planning. Iedereen krijgt er meteen een uit zijn eigen kenmerk — dezelfde persoon altijd dezelfde kleur, zonder iets in te stellen — en je kunt hem per medewerker wijzigen als er twee te veel op elkaar lijken.
- En de balk loopt nu altijd van zeven uur 's ochtends tot één uur 's nachts, en verder open als er diensten buiten dat venster staan. Daarvoor paste hij zich aan de diensten aan, en dan kon je in een week met alleen avonddiensten geen ochtend plannen: je kunt niet plannen in uren die je niet ziet.
1.2
build 239
2 september 2026
- De kassa kijkt nu ook of er een nieuwe versie klaarstaat zodra je terugkomt in een tabblad dat al openstond. Daarvoor gebeurde dat alleen bij het openen en elk kwartier, en dan keek je soms naar oude knoppen.
1.2
build 238
2 september 2026
- In de tijdbalk kun je nu overal in een dag tikken, en van 12 tot 15 een streep trekken — die tijden staan dan al ingevuld. Op een kwartier nauwkeurig, en het werkt met een muis en met een vinger.
- En een maandweergave: een kalender waarin een dag zonder iemand amber staat, zodat je in één blik ziet waar de gaten zitten. Bovenaan hoeveel dagen dat zijn en hoeveel uur er in totaal staat. Tik op een dag om naar die week te springen.
1.2
build 237
2 september 2026
- Beschikbaarheid is nu ook in te vullen: in het rooster met de knop 'Wie kan niet', en in de app geeft een medewerker het met één tik zelf door voor de dagen die nog komen.
1.2
build 236
2 september 2026
- Uren exporteren: bij Personeel → Uren haal je een bestand op met per medewerker gepland naast geklokt en het verschil, of met elke dienst apart om een verschil na te kijken. Voor de loonadministratie.
- Beschikbaarheid: een medewerker geeft door wanneer hij niet kan, en bij het plannen staat dat boven de dag. Plan je er toch tegen in, dan zegt de kassa het — maar hij houdt je niet tegen: soms is er niemand anders.
1.2
build 235
2 september 2026
- Voor de app: een deur waarmee een medewerker zijn eigen week kan ophalen. Tot nu toe mocht alleen de eigenaar bij het rooster, en dan kan de bediening niet zien wanneer ze werkt.
1.2
build 234
2 september 2026
- Het rooster heeft nu een echte planningsweergave: de zeven dagen naast elkaar, de uren van boven naar beneden, en elke dienst als blok op zijn eigen tijd. Zo zie je aan de vorm of er om acht uur genoeg mensen staan.
- Mensen die tegelijk werken staan naast elkaar in plaats van over elkaar, een dienst tot 02:00 loopt door onder de streep van 24:00, en het venster past zich aan je week aan — een ontbijtzaak begint bovenaan bij zeven uur en een kroeg eindigt bij twee.
- Tik op een leeg uur om iemand vanaf dat uur in te plannen. Met een knop om te wisselen naar het raster met de totalen; die keuze wordt onthouden.
1.2
build 233
2 september 2026
- Het tekenen van het rooster staat los van het klikwerk, zodat de tabel te toetsen is zonder in te loggen.
1.2
build 232
2 september 2026
- Rooster: op het tabblad Personeel plan je per week wie wanneer werkt, met de zeven dagen naast elkaar. Rechts staat gepland naast geklokt, en een verschil van meer dan een uur wordt gemerkt.
- Met een knop om de week ervoor over te nemen — in de meeste zaken lijkt volgende week op deze week, en dat met de hand overtikken doet niemand.
1.2
build 231
2 september 2026
- Prijskaartjes: knop bij Artikelen, per artikel of per groep, met een keuze uit drie etiketmaten en de mogelijkheid om op een half vel verder te gaan.
- In de artikelentabel stond de kop 'Waar' niet boven zijn kolom, waardoor alles vanaf de prijs één kolom opschoof.
1.2
build 230
2 september 2026
- De knop Bijwerken bij een winkel liep vast op logos/.htaccess: de bron stuurde dat bestand met opzet mee, en de winkel weigerde alles in die map. Beide kanten gebruiken nu dezelfde regel, dus ze kunnen het niet meer oneens zijn.
1.2
build 229
2 september 2026
- Prijskaartjes voor het schap: een vel A4 met naam, prijs inclusief btw en een streepjescode, in drie etiketmaten.
1.2
build 228
1 september 2026
- De proefmail werkte niet: de aanroep gaf een e-mailadres waar de instellingen hoorden. En de foutafhandeling eromheen kon niets vangen, dus een mislukte proefmail zou 'verstuurd' hebben gemeld. Beide gerepareerd; er komt nu de echte reden te staan als het niet lukt.
1.2
build 227
1 september 2026
- SMTP toevoegen gaf een fout uit de database en werd niet opgeslagen. De naam waaronder de mailinstelling wordt bewaard was één teken te lang voor de kolom — daarom bleef de centrale mail al die tijd leeg. Opgelost.
- Dezelfde fout zat ook in de Lightspeed-koppeling, op twee plekken: het aanmelden kon niet worden afgemaakt. En bij Mollie stond een betalingsnummer op het randje. Alle vier nagelopen en gerepareerd.
- En de kassa zegt nu zelf welke id te lang is, in plaats van een foutcode uit de database waar niets aan te zien is.
1.2
build 226
1 september 2026
- De uitleg over het kastje staat nu als opgemaakte pagina op kassanext.nl/controller.html in plaats van als ruw tekstbestand. De knop Uitleg lezen bij Instellingen → Bonnenprinters gaat daarheen.
- Op de bon stonden de btw-bedragen vier posities links van hun eigen kop: het uitvullen rekende in bytes, en een euroteken is in UTF-8 drie bytes. Nu lijnt het uit.
1.2
build 225
1 september 2026
- Bij Instellingen → Bonnenprinters staat nu dat een laserprinter of inkjet hier niet werkt: de kassa stuurt ESC/POS, en een gewone printer maakt daar een pagina met rare tekens van. Met wat je dan wel doet.
1.2
build 224
1 september 2026
- Werk je een kastje bij naar de versie die zijn naam meldt, dan bleef de oude regel eronder staan alsof er een tweede kastje stilstond. Die regel zegt nu zelf wat hij is en dat hij weg mag.
1.2
build 223
1 september 2026
- In de lijst met kastjes staat nu het adres op je eigen netwerk en het adres waarmee het kastje op internet komt.
- Een kastje kan een eigen naam krijgen — 'Kassa bij de deur' leest sneller dan een computernaam. De computernaam blijft eronder staan, want die heb je nodig als je ernaartoe loopt.
1.2
build 222
1 september 2026
- Windows-installatie: het instellingenbestand werd met een onzichtbaar teken vooraan geschreven (een BOM), waardoor de controller het niet kon lezen en met een foutmelding omviel. Opgelost aan beide kanten — een bestaand bestand met dat teken wordt nu ook gewoon gelezen.
- En het installatiescript zei 'Klaar' zonder naar de uitkomst van de zelftest te kijken. Nu zegt hij 'NIET KLAAR' met wat er aan de hand is, en stopt met een foutcode.
1.2
build 221
1 september 2026
- De datum bij 'laatst gemeld' staat nu in dezelfde orde als de rest van het scherm.
1.2
build 220
1 september 2026
- Een kastje met een lange computernaam gaf een fout in plaats van een regel in de lijst.
1.2
build 219
1 september 2026
- Bij Instellingen → Bonnenprinters staat nu een lijst van je Next Controllers: welke er zijn, op welk systeem, welke versie, en of ze zich melden. Een kastje dat er niet meer staat kun je uit de lijst halen.
1.2
build 218
1 september 2026
- Windows-installatie aangescherpt: als beheerder komt hij in ProgramData en draait hij als de computer aangaat, er wordt elke vijf minuten gekeken of hij nog leeft, en hij weigert een te oude Python in plaats van er stil op om te vallen.
1.2
build 217
1 september 2026
- Het kastje heet nu Next Controller. In de kassa staat bij Instellingen → Bonnenprinters de opdracht om hem neer te zetten, met je adres en sleutel er al in.
- Installatie voor Windows: dubbelklikken of één regel in PowerShell. Hij vraagt zelf waar je pinautomaat en printer staan, kijkt of ze antwoorden, en zet zichzelf op automatisch starten bij het opstarten van de computer.
- De installatie loopt nu alles na als hij klaar is, en de controller heeft een zelftest die zegt wat er niet reageert in plaats van stil niets te doen.
1.2
build 216
1 september 2026
- Het kastje in je zaak zet je nu neer met één opdracht. Bij Instellingen → Bonnenprinters staat die opdracht kant-en-klaar met je adres en sleutel er al in — een sleutel van veertig tekens overtikken is precies waar het misgaat, en dan doet het kastje stil niets.
- Het installatiescript kijkt eerst of het kan: staat Python er, is de kassa te bereiken, kent de kassa de sleutel, en antwoordt er iets op het adres van de terminal. Pas daarna zet het iets neer. Daarna draait de brug mee met het opstarten en komt hij terug als hij omvalt.
- In het scherm staat of de brug zich meldt, met het tijdstip erbij. Meldt hij zich niet, dan blijven bonnen en pinbetalingen staan tot hij terug is — er gaat niets verloren.
1.2
build 215
1 september 2026
- Pinnen via de brug ging nooit aan: er werd een API-sleutel geëist die de brug niet heeft — die meldt zich met zijn eigen brugsleutel.
1.2
build 214
1 september 2026
- Pinnen kan nu ook via de brug in je zaak — hetzelfde kastje dat de bonnen print. Wij zetten de opdracht klaar, het kastje haalt hem op en praat met de terminal. Eén richting, van binnen naar buiten: geen poort open, geen vast IP-adres, geen gepriegel in de router van een klant.
- Afbreken gaat bij de brug niet meteen op "afgebroken": het kastje moet het nog aan de terminal vertellen, en pas als het afmeldt weten we of dat is gelukt. Meteen afgebroken zeggen terwijl er iemand met zijn pasje staat, is precies hoe er dubbel wordt betaald.
- In het scherm staat of de brug zich meldt. Meldt hij zich een minuut niet, dan weet je dat vóórdat er iemand met een pasje staat te wachten.
1.2
build 213
1 september 2026
- De pinautomaat. Bij pinnen gaat het bedrag naar de terminal en wacht de kassa; er komt pas een bon als de betaaldienst bevestigt dat er is betaald. Een bon met "pin" erop terwijl er niets is afgeschreven kan dus niet meer.
- Het geval waar het altijd op stukloopt heeft een eigen antwoord: antwoordt de terminal niet, dan zegt de kassa niet "mislukt" maar "onbekend of er is betaald" — met de opdracht op het apparaat te kijken voordat je het opnieuw probeert. Anders wordt er twee keer afgeschreven.
- Er is een stand "doen alsof", waarmee je de hele kassaflow kunt proberen zonder apparaat: de centen van het bedrag bepalen de uitkomst, inclusief een terminal die blijft hangen.
1.2
build 212
1 september 2026
- Marge in de statistieken. Er staat nu een tegel met je marge in euro's en procenten, de marge per groep, en een lijst met waar je werkelijk geld aan verdient. Er staat altijd bij over hoeveel omzet het gaat: een marge over de helft van je omzet is niet een marge over alles.
- Rechten per medewerker in plaats van alleen eigenaar of medewerker. Zeven dingen los aan te zetten: korting geven, een rekening laten vervallen, terugnemen, de kas tellen, artikelen wijzigen, de cijfers zien, en bonnen opnieuw afdrukken. Het menu volgt de rechten, dus er staat geen knop die niet werkt.
- Wie de kas mag tellen kan bij de dagstaat, ook zonder de cijfers te mogen zien — daar staat immers wat er in de la hoort te zitten.
1.2
build 211
1 september 2026
- Mollie staat nu bij de integraties, waar hij hoort: het is een account bij een derde partij, net als je boekhouding. Bij Webshop → Betalen zet je alleen nog aan wat je klant te zien krijgt. Wie de sleutel al op de oude plek had ingevuld, hoeft niets te doen — die wordt nog gelezen.
- "Koppelingen" heet vanaf nu "Integraties", in de kassa en op de website. De adressen van de bestaande koppelingen blijven zoals ze zijn: daar is bij Exact en unTill al voor aangemeld, en een adres veranderen betekent opnieuw aanmelden.
1.2
build 210
1 september 2026
- De uitgave meldde soms een storing die er niet was: de controle keek een fractie te vroeg. Hij probeert het nu vijf keer.
1.2
build 209
1 september 2026
- De bonpagina viel om op een opslagfunctie die in de reserveringsmodule stond, en die laadt hij niet. Die staat nu waar hij hoort, bij de opslag.
1.2
build 208
1 september 2026
- De app draagt het beeldmerk: in de balk bovenin, op het aanmeldscherm en als app-icoon. Dezelfde meetkunde als op de website en in de kassa — letterlijk dezelfde getallen, want een merk dat op vier plekken los wordt getekend lijkt na een half jaar op vier merken.
- In de app staat nu de volledige naam van de zaak en het buildnummer onder je eigen naam. Handig als je belt: dan weet je in één blik waar iemand naar kijkt.
1.2
build 207
1 september 2026
- De klantenkaart: punten sparen bij een verkoop op naam. Er wordt gespaard over de omzet exclusief btw, want anders bepaalt het btw-tarief hoe snel iemand spaart. Inwisselen levert een cadeaubon op — die is aan toonder en bij het afrekenen een betaalwijze, geen korting.
- De bon zonder papier: bij elke bon staat nu een QR die de klant scant. Dan heeft hij zijn bon op zijn telefoon, zonder dat je om een e-mailadres hoeft te vragen. Het nummer in de link is zestien tekens, dus raden gaat niet.
- Cadeaubonnen verkopen en opzoeken staat bij Klanten. Bij een verlopen bon kun je zelf beslissen hem alsnog aan te nemen — een klant die met zijn papiertje voor je staat wil een antwoord, niet "ongeldig".
1.2
build 206
1 september 2026
- Cadeaubonnen. Verkopen gaat met nul procent btw — je verkoopt een tegoed en geen goed — en de btw volgt bij het besteden. Daarom is een bon een betaalwijze en geen korting: een korting verlaagt je omzet en je btw, een betaalwijze niet. De code bevat geen nullen of enen, want die worden verkeerd overgetikt.
- Vooruit betalen in de webshop via Mollie, met iDEAL en de rest. De sleutel staat per winkel: het geld komt op jouw rekening. Een bestelling die op betaling wacht houdt de voorraad een half uur vast en komt daarna terug in de winkel — met nog één keer navragen bij Mollie, want een gemiste terugmelding mag geen bestelling kosten.
- Wat Mollie ons terugbelt geloven we niet: er komt alleen een betalingsnummer in en we halen de stand zelf op. Anders kan iedereen die dat adres kent een bestelling op betaald zetten.
1.2
build 205
1 september 2026
- De kas tellen, bij de dagstaat. Je telt per coupure — zoals je de la ook werkelijk uitruimt — en het verschil rekent mee terwijl je tikt, dus je ziet vóór het opslaan of je nog eens moet natellen. Bij meer dan vijf euro verschil moet er een reden bij; bij vijftig cent niet, want dan verzin je er een.
- Contante uitgaven uit de la kun je vastleggen (de glazenwasser, een doos handschoenen), en het beginbedrag van de lade stel je in bij Instellingen. Zonder dat klopt de kas elke dag precies dat bedrag niet.
- Onder de opmaak staat het patroon van de laatste dertig keer: wat het bij elkaar is, het gemiddelde, en hoe vaak het meer dan een euro afweek. Eén avond zegt niets; het patroon wel.
1.2
build 204
1 september 2026
- Inkoop: een nieuw tabblad waar voorraad er weer bij komt. Scan een doos leeg en boek hem in één keer in — tot dat moment verandert er niets aan je voorraad, dus een vergissing haal je er gewoon weer af. Elke regel komt met het pakbonnummer in het voorraadboek, zodat een getal een half jaar later nog te verklaren is.
- Een bestellijst die zichzelf vult uit wat er bijna op is, per leverancier, met een voorstel: de grens plus wat er de afgelopen twee weken van verkocht is. Van die lijst maak je met één knop een levering, of je mailt hem naar je leverancier. Wij bestellen niets voor je.
- Bij een artikel kun je nu een inkoopprijs en een leverancier zetten, en je ziet meteen je marge in euro's en procenten.
- Nieuwe omgevingen uitrollen kan alleen nog vanaf de ontwikkelsite. Vanuit een klantomgeving werkte het half — de bestanden kwamen dan van die klant terwijl de nieuwe kassa zijn uitgaven daarna elders ophaalt.
1.2
build 203
1 september 2026
- Rol je een nieuwe zaak uit, dan gaat de code er onveranderd op zoals hij op de ontwikkelsite staat — inclusief het versienummer. De uitrol stempelde index.html nóg een keer met een andere lengte, waardoor een nieuwe omgeving net iets anders kreeg dan de rest.
- Na het uitrollen wordt nagekeken of er werkelijk draait wat er is neergezet, en dat komt in de stappenlijst te staan. In de omgevingenlijst staat vanaf nu de versie die de kassa zelf meldt, niet de versie die wij dachten neer te zetten.
- De .htaccess van logos/ en data/ ging niet mee naar een klantomgeving: de uitsluiting gold voor de hele map. Dat waren de grendels die voorkomen dat er iets wordt uitgevoerd wat daar is neergezet. Wat een klant zelf in die mappen zet, blijft nog steeds met rust.
1.2
build 202
1 september 2026
- Bij een artikel kun je nu per stuk kiezen of het online mag, met een eigen webshopprijs, een omschrijving en een foto. Foto's worden teruggeschaald naar 800 pixels; de plaatsgegevens uit een telefoonfoto gaan eraf.
- Het webshopscherm is uitgebreid: indeling en volgorde, ophalen en bezorgen met kosten en gratis vanaf een bedrag, tijdvakken per dag met een voorbereidingstijd, een minimumbedrag, voorwaarden om aan te vinken, en je eigen woorden in beide mails.
- Stuurt iemand de link van je winkel door via WhatsApp, dan staat er nu je eigen naam, tekst en logo onder in plaats van niets.
- De ochtendmail: elke ochtend gisteren in één bericht — omzet, hoe er is betaald, reserveringen, openstaande webshopbestellingen en wat er bijna op is. Aan te zetten bij Instellingen. Was de zaak dicht, dan komt er geen mail.
- In Instellingen stonden je adres, btw-nummer, KvK en IBAN leeg tot je één keer had opgeslagen. Die worden nu opgehaald, zoals het altijd had moeten zijn.
1.2
build 201
1 september 2026
1.2
build 200
1 september 2026
- De mailserver instellen kon niet als je nergens "in een winkel" zat, terwijl het juist één instelling voor alle winkels is. De centrale instellingen staan nu vóór de winkelgrens in de code, dus als Cloudsys-beheerder kom je er gewoon bij: Winkels → E-mail (SMTP).
- Artikelen hebben webshopvelden gekregen: wel of niet online, een eigen webshopprijs, een omschrijving en een foto. Een uitdrukkelijke keuze per artikel gaat boven de groepskeuze.
- Ophalen én bezorgen, met bezorgkosten en gratis vanaf een bedrag. De klant kiest bij het bestellen een dag en tijdvak, met een voorbereidingstijd die de winkel zelf instelt — zodat er geen bestelling binnenkomt voor over tien minuten.
1.2
build 199
1 september 2026
- Klantomgevingen werk je nu bij vanuit het beheer: een knop per omgeving, en "Alles bijwerken" voor wie achterloopt. De omgeving haalt de uitgave zelf op met de sleutel die er al is, dus er hoeft nergens een FTP-wachtwoord bewaard te worden.
- Per omgeving ook "Opnieuw neerzetten" voor een omgeving die al bij is, en "Nakijken" om de stand te verversen.
1.2
build 198
1 september 2026
- Een browser die een oud script uit zijn eigen kast haalde, liet je een oude kassa zien zonder dat er iets kapot leek — je miste alleen nieuwe schermen. De pagina draagt nu zelf het versienummer, en het script kijkt bij het openen of het daarbij hoort. Zo niet, dan vervangt hij zichzelf; lukt dat niet, dan staat er een balk met wat je moet doen.
1.2
build 197
1 september 2026
- Een kassa die al openstaat merkt nu zelf dat er een nieuwere versie klaarstaat, met een balk bovenaan en één knop om te verversen. Dat je een nieuw scherm miste zonder te weten waarom, was een gebrek: het antwoord was altijd "je pagina draait nog de oude code".
1.2
build 196
1 september 2026
- Het tabblad Webshop stond alleen bij een winkel, waardoor je hem in een horecazaak nergens aan kon zetten. Nu staat hij er altijd — ook een restaurant verkoopt wijn, bonbons of een cadeaubon.
1.2
build 195
31 augustus 2026
- In de winkelpagina stond de groepsnaam onder een artikel in een knopkader, doordat één opmaakregel voor twee dingen gold. En de knoppen staan nu onderaan elke kaart, zodat ze in een rij op één lijn eindigen.
1.2
build 194
31 augustus 2026
- De webshop, als module die je aan- en uitzet. Klanten bestellen op <jouwwinkel>.kassanext.nl/shop en halen het op; betalen doen ze aan de toonbank. Eén voorraad: wat online wordt besteld gaat er meteen af, dus je verkoopt de laatste nooit twee keer. Een bestelling die is opgehaald wordt een gewone verkoop, dus omzet, btw en de boekhouding lopen zoals altijd.
- Bij de bestellingen zie je wat er nieuw is en wat er te lang blijft liggen. Zet je er een op klaar, dan krijgt de klant bericht dat hij kan komen. Afzeggen zet de voorraad terug, met een regel in het voorraadboek.
1.2
build 193
31 augustus 2026
- Dit logboek wordt bij elke uitgave zelf bijgeschreven. Dat ging twee uitgaven lang mis: het meldde dat het gelukt was terwijl er niets gebeurde. Nu wordt er nagekeken dat de regel er werkelijk staat, en anders zegt het dat.
1.2
build 192
31 augustus 2026
- Bij een reservering staat nu wat er aan die tafel is afgerekend, en wat dat per persoon was.
- In het wachtlijstvenster zie je aan wie een tafel is aangeboden en tot hoe laat, en wie eerder een aanbod heeft laten lopen.
1.2
build 191
31 augustus 2026
- Wat er aan een tafel wordt afgerekend komt nu bij de reservering en bij het gastprofiel te staan. Zo zie je wat een bezoek opbracht, wat een gast gemiddeld besteedt en welke boekingsbron de beste gasten brengt. Ook bij een tafel die in delen betaalt.
- De wachtlijst vult zichzelf: zegt iemand af, dan gaat er meteen een bericht naar wie het beste past, met een link die een kwartier geldt. Reageert hij niet, dan is de volgende aan de beurt. Eén tegelijk, zodat er nooit twee gasten dezelfde tafel claimen.
- De pagina waar een gast zijn reservering wijzigt of afzegt werkte alleen voor zaken die nog op de losse omgeving stonden. Voor iedereen die op de module zit kwam de link uit de bevestigingsmail op een pagina die de reservering niet kon vinden.
1.2
build 190
31 augustus 2026
- Een overzicht boven de reserveringen: hoeveel gasten er komen, hoe ze over de avond verdeeld zijn, en van elke tafel of hij bezet is, verwacht wordt of vrij is. Met twee mensen zonder reservering in de deur kijk je op één plek.
- De drukste halve uren en het halve uur waar je nu in zit vallen apart op.
1.2
build 189
31 augustus 2026
- Alle post gaat nu uit als
jouwzaak@kassanext.nl. Een bon die je naar een klant mailde ging eerder uit onder een ander adres, waardoor twee mails van dezelfde zaak van twee bedrijven leken te komen.
- Je hoeft zelf geen mailserver meer in te vullen: dat staat centraal geregeld en geldt ook voor omgevingen die later worden opgeleverd. Een antwoord van een gast komt op je eigen e-mailadres binnen.
1.2
build 188
31 augustus 2026
- Bij het opleveren van een nieuwe omgeving blijven er geen proefbestandjes meer achter op de site.
1.2
build 187
31 augustus 2026
- Linksonder in het menu staat welke versie je draait. Handig als je belt: je kunt het voorlezen.
- Een omgeving die nog van voor de nummering is, wordt niet langer gemeld als "186 builds achter" — dat was een verzonnen getal.
1.2
build 186
31 augustus 2026
- Nieuw beeldmerk: drie balken die naar voren hellen, in paars en koraal.
- De kassa heeft eindelijk een eigen icoon voor het tabblad en voor het beginscherm van je telefoon of tablet. Dat ontbrak, dus zette je hem op je beginscherm met een grijs vlak.
- De boekingspagina's voor gasten en de boekingsknop op je eigen website stonden nog in de oude kleur. Nu overal hetzelfde.
1.2
build 185
31 augustus 2026
- De app en de kassa draaien onder hetzelfde versienummer. Twee tellers naast elkaar betekende dat je aan de telefoon "1.3" zei terwijl je kassa 1.2 draaide.
1.2
build 184
31 augustus 2026
- Het versienummer staat leesbaar in het scherm, en bij een omgeving die achterloopt staat erbij hoeveel builds dat zijn.
1.2
build 183
31 augustus 2026
- Versies heten nu "1.2 build 183" in plaats van een reeks tekens. Aan een kenmerk als
e3581c9d5b kon je niet zien of je vooruit of achteruit ging, en niemand kan het voorlezen.
- Bijwerken gaat via één weg, die eerst nakijkt of alles wat de kassa nodig heeft ook werkelijk meegaat. Drie storingen in één week kwamen door een bestand dat bij het uitleveren was vergeten.