Alle functies

Verlof

Verlof zonder narekenen

Verloftypen naar jouw beleid, een werkrooster per medewerker en feestdagen die geen uren kosten. De aanvraagvorm laat live zien welk getal wordt opgeslagen, en waarom.

Naar jouw beleid, niet naar de wet in code

Verloftypen definieer je zelf: vakantie, ziek, onbetaald, bijzonder verlof, elk met eigen opbouw, carry-over en vervalregels. Niets van een land staat hardgecodeerd, dus je modelleert wettelijke en bovenwettelijke dagen precies zoals jouw cao ze kent. Ziekte is een eigen type en gaat nooit van het vakantiesaldo af. Per type leg je ook vast hoe het op de agenda hoort te staan: als hele dag of als blok van tot, want of een afwezigheid leest als 'vandaag weg' of als 'weg tussen 08:30 en 17:00' is een eigenschap van de soort verlof en niet van de losse aanvraag.

De server rekent, de browser niet

Elke aanvraag wordt door de API uitgerekend, dag voor dag; de browser toont alleen de uitkomst. De aanvraagvorm laat live zien welk getal wordt opgeslagen: 40 u ≈ 5 werkdagen, met de feestdag zichtbaar op 0 u in de opbouw. Bewerk je de aanvraag naar de kerstweek toe, dan wordt hij vanzelf goedkoper, want de uren worden bij elke wijziging opnieuw berekend.

  • Geen geroosterde werkdag: 0 u.
  • Actieve feestdag: 0 u.
  • Gewone dag: het geroosterde venster doorsneden met het aangevraagde, min elke pauze die erin valt.
  • Afronden gebeurt één keer, op de opgetelde minuten.

Roosters die aan het contract hangen

Een rooster is een week per medewerker: per weekdag een werkblok met een willekeurig aantal pauzevensters erin. Een pauze is een venster, geen duur; je trekt geen '30 minuten' van een dag af, je zegt wanneer de pauze valt. De uren per week rollen uit die week en worden nooit ingetypt. En omdat een roosterwijziging meestal een contractwijziging is, hoort de week bij het arbeidscontract: contracten zijn perioden met een begindatum, een einddatum of doorlopend, contracturen per week en een eigen werkweek. Een gewijzigd contract is een nieuwe regel en geen bewerking, dus verlof van vorig jaar blijft geprijsd tegen het rooster van toen, ook als een aanvraag over een contractgrens heen loopt. Je legt het per medewerker vast onder Instellingen → Team & gebruikers, in een wizard van drie stappen: Contract, Werkweek, Vrije tijd. Feestdagen komen uit een generator die ze uit Pasen afleidt, dus 2028 vraagt geen code; werk je Goede Vrijdag door, dan zet je die uit en een herimport brengt hem niet terug.

Eén saldo, opgebouwd uit potjes die echt vervallen

Wettelijk en bovenwettelijk vakantieverlof zijn twee potjes met een eigen opbouw en een eigen vervaltermijn, maar de medewerker ziet één getal: Vakantieverlof. Daaronder staat de uitsplitsing per potje, met opbouwjaar, restant en vervaldatum. Het verval is echt: opbouw uit een jaar lapst zoveel maanden na dat jaar als je bij het type instelt, en het opnemen gaat op vervaldatum, kortst houdbare potje eerst. Dat is in het voordeel van de medewerker, want er vervalt niets wat opgemaakt had kunnen worden. Vraagt iemand meer dan er staat, dan waarschuwt de vorm maar de aanvraag gaat door: voorschot is de beslissing van de manager, het saldo leest negatief en de goedkeurder ziet het tekort terug op de lijst. Overlappende aanvragen en spannen van nul uur blijven harde fouten. Jaarsaldi leidt het systeem zelf af uit het contract en berekent het opnieuw bij elke contractwijziging, terwijl een handmatige correctie daarbij nooit wordt overschreven en een afgesloten jaar niet opnieuw wordt geprijsd; een cron in december rolt de hele staf door.

Vrije tijd die zichzelf inplant

Werkt iemand minder dan de voltijdnorm van je organisatie, dan is dat verschil vrije tijd: veertig uur norm min een contract van zesendertig geeft vier uur per week, afgerond op halve dagen. Of dat ook zo moet werken, beslis je per contract en niet per organisatie, want beide afspraken komen naast elkaar voor in hetzelfde bureau. Daarna zet je die dagen op de agenda, in een van twee vormen, omdat er ook twee dingen bekend kunnen zijn: soms is de afspraak een ritme, soms alleen het aantal dagen. Ze worden als vooraf goedgekeurd verlof geplaatst, dus ze staan gewoon in de agenda en zijn stuk voor stuk te verplaatsen of te annuleren; een patroon verwijderen laat de geplaatste dagen staan, tenzij je vraagt om ze vanaf vandaag terug te nemen. En omdat een saldo van nul niets zegt zodra alle dagen geplaatst zijn (opgebouwd is dan gelijk aan opgenomen), staat op je verlofpagina de kaart Vrije tijd naast het saldo.

  • Per contract: afleiden uit de norm, 'vast in het rooster' voor wie de vrijdag al vrij heeft, of een afgesproken aantal uren dat geen formule dekt
  • 'x dagen per jaar': gespreid over het jaar op dezelfde weekdag, doorschuivend langs feestdagen en niet-werkdagen zodat het aantal klopt
  • Of een vast ritme: elke twee weken de vrijdag, of elke woensdagmiddag vanaf 15:00
  • De kaart Vrije tijd: dit jaar, opgenomen, nog in te plannen, en de eerstvolgende vrije dag
  • Plus de overhang: dagen die na een contractwijziging niet meer in het saldo passen, gemeld met een knop om ze terug te nemen, nooit stilletjes geannuleerd

Goedkeuren, en de rest van het platform

Zelf goedkeuren staat standaard uit: wie mag goedkeuren is op zijn eigen aanvragen een gewone aanvrager, en Instellingen → Verlof zet dat terug voor een vertrouwde goedkeurder (is er maar één goedkeurder, dan mag die altijd zichzelf regelen, want een bureau van één persoon moet niet vastlopen). Kan een rooster iets niet uitdrukken (vier uur op een dag waarop niemand gepland stond), dan legt een manager de uren handmatig vast, op zijn naam. Fiatteurs werken op het tabblad Team naast Mijn verlof: de goedkeuringswachtrij met het tekort erbij, de saldi en aanvragen per medewerker per jaar, de contracturen ernaast, en goedkeuren of afwijzen over een hele selectie. Daarna gaat goedgekeurd verlof vanzelf de rest van het platform in. Verlof is een uitbreidingsmodule: de kern van schakl. is open source (AGPL) en modules als deze draaien op een licentiesleutel die de beheerder invoert onder Instellingen → Licentie; verloopt die, dan wordt de module alleen-lezen en blijven saldi, roosters en aanvragen gewoon leesbaar.

  • Weekstaat: goedgekeurd verlof staat als eigen regel op de urenstaat en valt buiten de facturabele capaciteit, nooit een tweede keer geteld als urenregistratie
  • Agenda: een eigen feed naast de feestdagen, met kleur per verloftype of per collega, per persoon te tonen of te verbergen, en een dag die je naar een andere datum sleept wordt door de server herberekend en zo nodig opnieuw ter goedkeuring gezet
  • Verloftypen op 'per uur' worden als geplaatst uurblok in de dag- en weekweergave getekend in plaats van als hele-dagbalk
  • Google Calendar: goedgekeurd verlof spiegelt naar de eigen agenda van de medewerker, hele dag of getimed volgens dezelfde instelling
  • Mijn dag: je eigen saldo, de wachtrij 'goed te keuren' voor fiatteurs, en wie er vandaag niet is

Meer weten?

De documentatie beschrijft elke module tot in de details, van installatie tot rechten.

De demo komt eraan

De live demo is nog niet klaar. We werken er hard aan en kijken ernaar uit om hem hier te delen zodra hij af is.

Naar de documentatie

Meer functies