Bij TRES hebben we een aantal whiteboards hangen. Als je met collega's wilt overleggen, omdat je ergens niet uitkomt, of omdat er afwijkende meningen zijn, dan is het vaak goed om zaken te schetsen, te overleggen om zo tot resultaat te komen. Nu hebben we (schijnbaar) weinig verschil van mening, want het whiteboard bij de service-afdeling is al een tijd niet meer gebruikt. De keer die ik mij nog wel kan herinneren had betrekking op een DNS issue. Een externe partij wees steeds naar "ons", "wij" moeten zaken aanpassen. Maar dat deel van de DNS lag helemaal niet bij ons, dat lag juist bij die partij. Wat ik ook zei... maar doordat de andere partij zo overtuigend was, begonnen collega's toch te twijfelen. Dus op het bord uitgetekend, toevallig kwam er ook nog een oud-collega langs die bevestigde dat onze conclusie de enige juiste was en uiteindelijk is het dus opgelost door die andere partij.
Nu ben ik bezig om de website van de buren te vernieuwen. Via die site worden onder andere aanhangwagens verhuurd. De flow is redelijk "rechtuit-rechtaan", je selecteert de aanhanger, voert ophaal- en terugbreng-datum in, voert je adresgegevens in en stuurt zo de reservering het systeem in. Hierna wordt er een bevestigingsmail naar je gestuurd, je moet daarin een link aanklikken en zo maak je jouw reservering definitief. Als je die laatste stap niet uitvoert, dan wordt de aanhanger na x tijd weer automatisch vrijgegeven, zodat iemand anders de aanhangwagen kan huren.
Omdat we nu toch bezig zijn het systeem te upgraden en de styling aan te passen, kwam ook de vraag of het mogelijk was om te laten zien wat de kosten voor het huren zijn. We hebben al een tabel in het scherm waar de prijzen voor de verschillende periodes in staan, maar dan moet iemand die nu wat wil huren zelf gaan berekenen wat het eindbedrag zou moeten zijn. Het is natuurlijk veel mooier dat je dit al op de website kunt zien. Mijn antwoord was "natuurlijk kan dit" en vol goede moed ben ik begonnen om dat in de nieuwe site te tonen. Een lap code, niet helemaal tevreden, dus de code nog eens opnieuw uitgewerkt. En toen eigenlijk nog steeds niet tevreden, omdat ik mij afvroeg of de berekening wel goed ging, of ik dingen over het hoofd zag.
Zondag 9 augustus 2026 was wederom een warme dag. Te warm om achter de computer te gaan zitten. Dus ik ben buiten in een tuinstoel gaan hangen, kladblok en pen meegenomen en heb zo in de schaduw een aantal voorbeeldcases uitgewerkt om zo te kijken (en te bepalen) wat de juiste manier is om het totaalbedrag uit te rekenen. Stel dat ik de aanhanger op een donderdag om 14.00 uur ophaal en de dinsdag erop om 8.15 uur weer terugbreng, wat moet ik dan betalen? Het klinkt redelijk simpel, maar ik zat toch met wat dingen te pielen. En zolang dat niet helemaal duidelijk is, blokkeert dat het netjes uitwerken van je code.
Ik had dit ook misschien aan vriend AI kunnen vragen en had die een heel mooi stuk code voor mij uitgewerkt wat vlekkeloos werkt. Maar zoals je tegen een houtbewerker zegt: "je kunt het ook machinaal laten maken!", zal hij zeggen: "ik vind het fijner om sommige zaken zelf te doen, daar tegen problemen aan te lopen, die op te lossen en dan uiteindelijk tevreden te kunnen zijn over het eindproduct wat -ik- helemaal zelf gemaakt heb". En ik verbrand er nu geen extra energie voor, alleen mijn eigen hersencellen die wat actiever worden ;)
Verandering is de enige constante.
Openingstijden
Omdat ik er nu mee aan de slag ging vielen mij bepaalde zaken op ( ik heb het in het verleden gebouwd ) en ook kreeg ik nog wat aanvullende informatie. Want je kunt een aanhangwagen op de website elke dag (behalve zondag) van 8.00 tot 17.00 uur ophalen. Dat was in het verleden ook zo, maar het bedrijf van de buren is verhuisd, niet meer in Wergea, maar in Grou. Omdat er nu gereisd moet worden zijn de openingstijden aangepast, maandag tot en met vrijdag van 9.00 tot 16.30 uur en zaterdag van 9.00 tot 12.00 uur. Het is wel handig dat we dit ook aanpassen in het verhuurformulier...
Dit moet configurabel worden, want mogelijk wordt er in de toekomst nog wat aangepast qua tijden, dan moet dat niet "ingebakken" in het formulier zitten.
Prijscategorieën
Een aanhangwagen heeft vaak een prijs per dagdeel, per dag en per week. Dus met die blokken kun je gaan rekenen.
Toen kwam de vraag of het ook mogelijk is om de steigers via de site te verhuren. Lijkt mij wel, want het is "ook" een product op de website. Maar ik zie hier wel dat dit type product ook nog vaak een "prijs per weekend" heeft. Dat betekent dat in mijn berekening rekening gehouden moet worden of er in een reservering ook een zaterdag en zondag zitten, zo ja, dan moeten voor die 2 dagen niet 2x de dagprijs maar 1x de weekendprijs berekend worden.
Hoewel de prijscategorie er nog niet is, denk ik dat ik ook nog een "prijs per uur" ga toevoegen. Je kunt nu namelijk ook bepaald gereedschap huren, maar niet via de site reserveren. Ik kan mij voorstellen dat je een x bedrag wilt rekenen per uur hiervoor, want een schuurmachine huur je mogelijk voor 3 uurtjes.
Waar was ik zoekende?
Ik had misschien eerst de vragen bij de buren kunnen stellen en op basis van de antwoorden kunnen inschatten hoe ik zaken zou gaan aanpakken. Ik heb ervoor gekozen om eerst met eigen aannames dat te doen. Dan kan ik namelijk de werking en berekening laten zien, dat kunnen we altijd nog bijschaven.
Volgorde van groepering
In mijn eerste opzetje ging ik door de dagen heen, om zo te bepalen of in de boeking een zaterdag en aanvullende zondag geboekt waren. Was er een weekendtarief, dan werden er 2 registraties op 0 dagen gezet en werd een "weekend-variabele" met 1 verhoogd. Dat was niet de juiste volgorde, want dan betaal je voor 1 weekend en 5 dagen. Die aanhangwagen had echter ook een tarief voor een week: dus 7 opeenvolgende dagen = 1 week. Dat is (natuurlijk) goedkoper dan die foutieve berekening.
Wat is een dagdeel?
Als je dag van 9.00 tot 16.30 uur loopt en je reserveert een aanhangwagen van 9.00 tot 13.00 uur, reken je dan een dagdeel of een dag? Het exacte midden van de dag ligt op 12.45 uur, dus rekentechnisch gezien zou je dan moeten betalen voor 1 dag. Maar als iemand anders om 13.00 de volgende reservering heeft, betaalt die ook voor een dagdeel. Maar een kwartiertje later en dan ineens het volle pond betalen, dat voelt toch niet helemaal oké. Wel op deze manier eerst in de code verwerkt, op de site wordt er ook een soort disclaimer bijgezet dat het een indicatie is voor de prijs, de buren kunnen in overleg altijd nog de prijs gaan aanpassen.
Marges mogelijk maken
Dat geldt ook voor het ophalen en terugbrengen. Als je de aanhangwagen op donderdagmiddag 16.00 uur ophaalt en vrijdagmorgen om 9.00 uur terugbrengt, dan is dat "een dagdeel". Als je 'm echter om 9.15 uur terugbrengt, dan zit je "binnen" het dagdeel/de dag en zou er dus een dagdeel bijkomen, wat omgezet wordt naar "1 dag".
Ik heb een stukje configuratie mogelijk gemaakt waarbij ingesteld kan worden dat het inderdaad op deze manier berekend moet worden of dat je zegt "tot een bepaalde tijd wordt er geen extra dagdeel bij gerekend", dus bijvoorbeeld tot 10.00 uur.
Rust in de tent
Op basis van mijn voorbeelden heb ik de code uitgewerkt, nu wel met structuur ;) Binnenkort wil ik los met een eigen project, ik denk dat ik hier ook eerst maar eens wat zaken voor op papier ga zetten en daarna pas aan de slag ga. Laat ik het credo van mijn website wat meer in praktijk brengen, "Earst leare, dan kinne, dan begjinne!".