VerlofUren RegistratieSysteem VURS


| Top | Algemeen | Installatie | Meer info | Onder |

Algemeen

Dit systeem is gemaakt om op een simpele manier via het web dmv. een webbrowser verlofuren, en nu ook ziekteverzuim, te kunnen bijhouden. Elke user heeft zijn eigen username/password combinatie waarmee hij of zij zijn vrije (verlof)uren kan bijhouden. Ieder kan zijn eigen password wijzigen. Voor dit systeem wordt in een centrale database een aantal gegevens ingevoerd van elke gebruiker, waarmee dit systeem aan de slag kan. Van elke user wordt een elektronische verlofurenkaart aangemaakt die vervolgens (uitsluitend) door de betreffende gebruiker kan worden ingezien, en waaraan hij/zij zijn/haar verlofopames kan bijhouden. Users kunnen elkaars verlofopnames niet zien. Bovendien stuurt dit systeem aan een of meer in te stellen mailaccount(s) een mailbericht met daarin de opgenomen verlofuren. Dat zal over het algemeen een secretaresse/secretariaat zijn. Daarnaast kan, indien gewenst, per gebruiker de werkbaas een mailbericht ontvangen. Deze optie kan ook worden uitgezet. De client zelf krijgt direct via zijn of haar webbrowser een bevestiging van zijn of haar uren-opname, plus een bevestiging via email.

Ook kan bijzonder verlof worden ingevoerd, met de reden van dat verlof. Bij elke keer dat een overzicht van opgenomen uren wordt opgevraagd wordt standaard een berekening gegeven van genoten uren, uren tegoed etc. Van het oorspronkelijke 'budget' aan adv- en verlofuren wordt berekend wat de consequentie is van zowel ouderschapsverlof en/of een regeling in het kader van de 'CAO a la Carte' (arbeidsvoorwaarden op maat).

De belangrijkste reden om dit te ontwikkelen was het elk jaar terugkerende 'gestoei' met de dagen en uren. Het is vaak een heel karwei om eea. boven water en kloppend te krijgen.

Hoe werkt het ?
Alles binnen het gele kader vindt plaats op de webserver. Een gebruiker van VURS (client) gaat via zijn of haar webbrowser naar de locatie waar een webformulier dat VURS gebruikt staat (1). De applicatie (cgi) op de server decodeert deze aanvraag, gaat met deze informatie (2) naar personeelsbestand P, zoekt daarin of de client bekend is, zo ja, dan worden de gegevens van deze client daaruit opgehaald (3), en kan vervolgens van de verlofbestanden V het juiste bestand van de betreffende gebruiker selecteren en de verlofgegevens ophalen, cq. uren toevoegen, waarna het resultaat van dit alles wordt teruggestuurd naar de gebruiker (5) in de vorm van een melding of overzicht.





Hoe ziet VURS eruit ?
Hierboven een overzicht van opgenomen uren (voor gebruikers).


Deel van totaaloverzicht groep personen (alleen voor administrator).
Via dit scherm kunnen de gebruiker accounts worden beheerd.



| Top | Algemeen | Installatie | Meer info | Onder |

Installatie/setup

Het volgende is nodig om het verlofuren registratiesysteem te kunnen gebruiken.
  • Een webserver
  • Perl applicatie op die webserver (Perl is gratis)
  • De library cgi-lib.pl (is ook gratis)
  • En uiteraard de VURS software
Dit alles vindt op de (web)server plaats. Aan de client-kant hoeft geen enkele aanpassing of installatie van wat dan ook uitgevoerd te worden. De client moet alleen een webbrowser hebben. VURS bestaaat uit een drietal applicaties (cgi's) geschreven in Perl. Perl is een platform-onafhankelijke computertaal. Van Perl zijn voor alle gangbare computersystemen versies te verkrijgen. Perl is gratis.

Er zijn dus een drietal cgi's ontwikkeld. Een om de verlofuren te kunnen vastleggen (register), een om een overzicht op te vragen (list) en de editor. In VURS zit tevens opgenomen welke dagen in het jaar verplicht vrije dagen en extra vrije dagen zijn. Tijdens de eerste keer dat een user vrije uren opneemt wordt zijn of haar userfile aangemaakt en worden de uren waarop op deze dagen wordt gewerkt meteen afgeboekt met het aantal uren dat er door de betreffende user wordt gewerkt op de betreffende dag. Wordt er op een verplicht vrije dag niet gewerkt (0 uren), dan vindt er ook geen afboeking plaats. In elk van de cgi's moet een pad worden opgegeven naar de directory waar de benodigde files zich bevinden. Als er email verstuurd moet worden moet uiteraard het adres van de mailserver worden ingetikt. Meer hoeft er in principe niet te worden aangepast. Het gaat mn. om de paden naar de plek op de webserver waar eea. staat.

MacOS X, zowel de client als server versie, is standaard uitgerust met Perl.

Perl voor Windows kan bv. vanaf ftp://ftp.activestate.com/ActivePerl/ gedownload worden, maar Perl is op meerdere plekken op het web te vinden. Dat is alles wat je nodig hebt. Een hele aardige url voor Perl onder Windows (de 'taal' blijft uiteraard dezelfde) is http://www.netcat.co.uk/rob/perl/win32perltut.html.

Verder kun je vanaf http://cgi-lib.berkeley.edu/ cgi-lib.pl, dat is een Perl library die het werken met cgi's (gratis) vergemakkelijkt, downloaden. Bewaar deze library cgi-lib.pl in de 'lib' directory van Perl. Er staan op die site twee versies, versie 2.18 is OK.

Zie voor een stap-voor-stap installatie op een Windows webserver bv. http://www.dslwebserver.com/main/fr_index.html?/main/sbs-perl.html.

Wil je, om wat voor reden ook, niet dat Perl op de webserver geinstalleerd wordt, en draait die server op het Windows platform, dan is er de mogelijkheid om van een Perl script een executable te maken. Zie daarvoor http://www.indigostar.com/perl2exe.htm.

Verder, en daar begint eigenlijk alles mee, heb je nog een database nodig waarin voor het verlofsysteem relevante informatie staat, per gebruiker. Hieronder een overzicht van de opbouw van die (centrale) database. Maak die in bv. Excel, (hier een voorbeeldfile), tik alles in, waarbij het veld 'nr' een uniek heel nummer moet bevatten. Elke user van dit systeem heeft zijn eigen unieke nummer. In de tabel hieronder staat een opsomming van alle benodigde velden. Laat grote hiaten tussen deze opeenvolgende nummers, zo wordt voorkomen dat er bij mutaties van personen een nummer toch meer dan een keer gebruikt wordt. Als username gebruik ik het formaat: 'voorletter.achternaam'. Laat geen enkel numeriek veld leeg, maar zet er dan een 0 in. Alles (muv. oudsv_fte) is gebaseerd op hele getallen, dus zet geen spaties, komma's etc. in de cellen. Gebruik een punt als decimaal scheidingsteken, en niet een komma. Is alles ingevoerd, bewaar deze gegevens dan als een tab-delimited file. Bewaar deze file bv. als 'personeelsinfo_xyz_2006.txt' (personeelsinfo afdeling xyz voor 2006). Per jaar wordt een dergelijk bestand gemaakt. Mutaties, bv. personen die gedurende het lopende jaar komen werken, worden hieraan toegevoegd en/of ingevoerd.

Veld Nr Betekenis
name 1 Username (inlognaam)
pass 2 Password (inlog wachtwoord)
voornm 3 Voornaam (verschijnt op overzicht)
achternm 4 Achternaam (verschijnt op overzicht)
nr 5 uniek heel getal (let op hiaten)
sapnr 6 SAP nummer
coa 7 CAO code
1=UM
overige codes worden nog toegevoegd
gebjr 8 Geboortejaar (4 cijferig)
sdag 9 Startdag, dag van aanvang contract
smnd 10 Startmaand, maand van aanvang contract
edag 11 Einddag, dag van beeindiging contract
emnd 12 Eindmaand, maand van beeindiging contract
adv 13 Adv variant
codering:
  • 10 : vrij opneembaar
  • 20 : inroosteren
  • 21 : inroosteren: 4x9 uur
  • 30 : spaarvariant, aantal hele uren per jaar sparen of opnemen (invullen bij advsparen, negatieve waarde = sparen, positief = opnemen)
  • 34 : spaarvariant, aantal hele uren per jaar sparen (invullen bij advsparen) + uitbetalen 7/19 dagen
  • 35 : spaarvariant, aantal hele uren per jaar opnemen (invullen bij advsparen) + uitbetalen 7/19 dagen
  • 40 : uitbetalen: 7/19 adv dagen
advuren 14 0 : aantal uren wordt berekend
-1 : aantal uren wordt gelijk aan 0
anders (niet nul, positieve waarde) : aantal (hele) uren adv in voor lopend jaar, ongecorrigeerd voor ouderschapsverlof en/of CAO a la Carte
advsparen 15 Aantal (hele) UREN sparen per jaar (voor bv. sabatical leave). Zie adv
verlofrest 16 Restant verlofuren (hele uren) voorgaand jaar (maximaal 120 uur mag 'meegenomen' worden)
verlofuren 17 0 : aantal uren wordt berekend
-1 : aantal uren wordt gelijk aan 0
anders (niet nul, positieve waarde) : aantal (hele) uren verlof voor lopend jaar, ongecorrigeerd voor ouderschapsverlof en/of CAO a la Carte
oudsv_mnd 18 Aantal (hele) maanden ouderschapsverlof tijdens lopend kalenderjaar
oudsv_fte 19 Fte tijdens duur ouderschapsverlof gedurende lopend kalenderjaar, (formaat: bv. 0.6 of 0.65)
cao_alc 20 CAO a la Carte: aantal (hele) uren gebruikt als middel of doel
Negatieve waarde : verlofuren verkocht, ingezet als 'middel'
Positieve waarde : verlofuren gekocht, als 'doel'
opm 21 Opmerkingen (standaardtekst: 'Geen')
maa_ev 22 Uren werkzaam op maandag in even weken
din_ev 23 Uren werkzaam op dinsdag in even weken
woe_ev 24 Uren werkzaam op woensdag in even weken
don_ev 25 Uren werkzaam op donderdag in even weken
vri_ev 26 Uren werkzaam op vrijdag in even weken
maa_onev 27 Uren werkzaam op maandag in oneven weken
din_onev 28 Uren werkzaam op dinsdag in oneven weken
woe_onev 29 Uren werkzaam op woensdag in oneven weken
don_onev 30 Uren werkzaam op donderdag in oneven weken
vri_onev 31 Uren werkzaam op vrijdag in oneven weken
uurperweek 32 Totaal aantal uren werkzaam per week (gemiddeld)


Per 01-jan-2005 bestaat het begrip adv niet meer. Er is een wat andere systematiek. Het basis aantal uren per werkweek wordt 38 uur (fulltime).
Het aantal reguliere verlofuren per jaar wordt verhoogd, en daarnaast komen, afhankelijk van of men iets meer of iets minder dan 38 uur werkt, compensatie uren. Voor parttimers eea. naar rato.

In dit veld moet het werkelijk aantal uren dat (gemiddeld) per week wordt gewerkt ingevuld worden (bv. 40). Bij gebruik van een decimaal (en dat heb je al gauw bij een basis van 38 uur per week), bijvoorbeeld 15.2 bij 0.4 fte, gebruik ook hier een punt als decimaal scheidingsteken.
flexwerk 33 Keuze wb. flexibel werken in COA NU 2004
2 uur per week meer werken, comform aanstelling of 2 uur minder per week werken bij basis van 38 uur per week.
Mogelijke waarden: (resp.) 2, 0, -2
fte 34 Fte
1.0 bij fulltime werken. Gebruik een punt als decimaal scheidingsteken
email 35 E-mailadres user
baas_a 36 E-mailadres werkbaas(groep)
bij tekst 'geen' (case-sensitive !) wordt geen mailbericht naar werkbaas gestuurd
END 37 De tekst 'END' markeert einde van het record
Hier nogmaals de voorbeeld personeels info file


De velden die betrekking hebben op ADV kunnen per 01-01-2005 worden voorzien van de waarde '0' (nul).

Laat op de eerste rij van de spreadsheet de namen van de velden, zoals ze hierboven staan, staan, en zet op de 2e rij de naam van de administrator met zijn of haar wachtwoord. Deze volgorde is verplicht. De administrator is de user die toegang heeft tot alle 'verlofkaarten' ofwel userfiles. Logt deze administrator in met de naam van een user en zijn administrator wachtwoord, dan krijgt deze het normale overzicht van de betreffende (ene) user te zien. Logt de administrator in met zijn eigen naam en eigen wachtwoord dan wordt een complete rapportage in tabelvorm zichtbaar van alle in de centrale database zittende users, met van elk de belangrijkste parameters en de 'stand' wat betreft het aantal uren en verlof.

Is deze file gemaakt, dan resteert om op de webserver een directory te maken waarin (per jaar) alle 'verlofkaarten' komen te staan. Geef die directory bv. de naam 'verlof_2005', een volgend jaar krijgt dan de naam 'verlof_2006' etc. Zo blijft alles netjes georganiseerd per jaar, wat ook de bedoeling is, zo gaat het met de papieren verlofkaarten uiteindelijk ook. Plaats de hierboven aangemaakte tab-delimited ('personeelsinfo_xyz_2005.txt') tekstfile vervolgens in de juiste directory.

Wat verder nodig is, zijn een tweetal webpagina's. Ook die komen in genoemde directory te staan. Deze pagina's kunnen natuurlijk aangepast worden wat betreft de lay-out. Alleen de namen van de velden die hierin zitten mogen natuurlijk niet gewijzigd worden omdat de betreffende cgi hiermee correct moet kunnen communiceren. De huidige datum wordt automatisch in de popup menu's van deze webpagina's gezet via een simpel JavaScript. Hier zijn voorbeelden van de webformulieren:

In deze pagina's moet uiteraard het pad naar de applicatie die het betreffende formulier gaat afhandelen (de 'action') staan. Dus in de form-tag van beide webformulieren moet bij form action="../cgi/vak2005l.cgi" het pad aangepast.

Worden er uren opgenomen op een verplichte vrije dag, dan wordt dat via een reply aan de client netjes gemeld en bovendien wordt zichtbaar wat er op de betreffende dag 'aan de hand is'. Vrij nemen op een zaterdag en/of een zondag is niet mogelijk want VURS gaat ervan uit dat op die dagen er standaard niet wordt gewerkt. De extra vrije en verplicht vrije dagen worden aan het begin van het lopend jaar opgenomen in een apart bestand. Hier het (2006) bestand. Ook dit is een tab-delimited (text) file. Het formaat is: 'jaar \t maand \t dag \t omschrijving \t END'. 'Jaar' is 4-cijferig, 'maand' en 'dag' beide 2-cijferig, waarbij '\t' staat voor een tab.

Als alle namen van files (de centrale database en de vrije dagen file) en paden in de cgi's en in de html pagina's kloppen, en de juiste verwijzing naar de te gebruiken mailserver en accounts daarop, dan is VURS nu klaar voor gebruik.

Vanaf versie 2.0 wordt het aantal beschikbare uren adv en verlof berekend. Daarvoor werden deze waarden eerst vooraf uitgerekend en vervolgens ingevoerd in de centrale database. De velden 'advuren' en 'verlofuren' krijgen daarom nu normaliter de waarde '0'. Alleen wanneer in uitzonderlijke gevallen het aantal uren afwijkt van de standaard berekening wordt in deze velden een waarde anders dan 0 opgegeven. Is dus de waarde '0' in deze velden dan wordt het aantal uren berekend. Is in die velden de waarde 'niet 0' dan neemt de betreffende cgi de ingevoerde waarde over.

Versie 3.0 en hoger bevat de mogelijkheid van 'multiple records'. Hiermee neemt de flexibiliteit van vurs flink toe. Gebruikers kunnen meer dan 1 record in het personeelsbestand innemen. Stel iemand werkt van 1 januari tot eind februari 24 uur (3x8 uur, op dinsdag, woensdag en vrijdag), dan vanaf 1 maart tot eind juli 32 uur (4x8 uur, maandag komt erbij), en vervolgens vanaf 1 augustus tot eind van het jaar weer 24 uur (2x8 uur en 2x4 uur, op maandag 8, woensdag 4, donderdag 4 en vrijdag weer 8 uur). Met deze optie is dat geen enkel probleem meer. Deze persoon krijgt 3 records in het personeelsbestand, waarbij voor elk van de 3 afzonderlijke delen van dit contract de informatie kan worden ingevoerd. Deze records moeten in een voorkomend geval aansluitend en chronologisch onder elkaar voorkomen in dat bestand. Veld 1 t/m 8 (inlognaam t/m geboortejaar) en emailadres dienen identiek te zijn. En in het overzicht van de betreffende persoon verschijnt bij meerdere records netjes een opsomming van de afzonderlijke delen waaruit het contract is opgebouwd. Eenmalige gegevens (zoals bv. het restant verlofuren van het voorgaande jaar), moeten 1x, in het laatste record van de betreffende gebruiker, worden ingevoerd.

Versie 2005 1.0. Ingaande de CAO NU 2004 is VURS geheel vernieuwd. In deze CAO is het begrip ADV verdwenen, en vervangen door een systeem van 'flexibel werken'. Men heeft daarin de mogelijkheid om per week 2 uur meer of minder te werken, hetgeen op jaarbasis resulteerd in resp. meer of minder beschikbare vrije uren. De mogelijkheid van 'multipele records uit voorgaande versies blijft bestaan. Verder heb ik aan deze 2005 versie toegevoegd de optie dat men niet steeds bij elke keer dat VURS gebruikt wordt opnieuw (handmatig) moet inloggen. Dmv. cookies wordt na een eerste inlog (per kalenderjaar) een cookie weggeschreven, die bij volgende raadplegingen de inlog verzorgen. Zowel VURS als de beide webformulieren zijn daarvoor aangepast.

Versie 2005 1.5. Migratie naar MacOS X. Eindelijk. Deze versie is compleet 'MacOS X / Perl based'. Alle mailverkeer wordt door deze versie afgehandeld. Geen externe mailserver meer nodig waarop allerlei accounts moeten worden bijgehouden. Alleen een smtp mailadres opgeven is voldoende.

Versie 2005 1.6. Toegevoegd is een web based editor. De administrator kan alle informatie via een webbrowser inzien en aanpassen/toevoegen/verwijderen.

Versie 2005 1.7. Uitbreiding met registratie ziekteverzuim. Op groepsniveau kan aangegeven worden of men wel of geen ziekteverzuim registratie wil.

Versie VURS 2.0. Dynamische afhandeling van verplicht vrije dagen, extra vrije dagen, feestdagen. Nu hoeven bij wijziging van een contract in het verlofbestand van de gebruiker deze dag(en) niet meer handmatig te worden aangepast.





Voor meer informatie over VURS neem contact op met:

Nico Rozendaal
Universiteit Maastricht
Vakgroep Psychiatrie & Neuropsychologie


| Top | Algemeen | Installatie | Meer info | Onder |




VersieL/RDatumMutatie
v 1.02003nov-2000
v 1.12003dec-2000toevoeging even en oneven weken
v 1.22003dec-2000uitbreiding mail naar werkbaas
v 1.32003dec-2001uitbreiding cao a la carte
v 1.42003jan-2002uitbreiding ouderschapsverlof
v 1.52003jan-2002uitbreiding aantal adv spaarvarianten (sparen vs. opnemen / uitbetalen)
v 2.02003jan-2003adv en verlofuren worden berekend, tevens uitbreiding met extra vergrijzingsuren, contractduur en administrator rapportage
v 2.12003feb-2003uitbreiding met mogelijkheid opvragen van maandoverzicht
v 2.22003mrt-2003aanpassing maandoverzicht (pager)
v 2.32003mrt-2003aanpassing fileformat met voor- en achternaam als label
v 3.02003apr-2003'multiple records' mogelijk per user; diverse aanpassingen (automatisch wijzigen padnaam aan lopend jaar)
v 3.12003apr-2003diverse aanpassingen (oa. automatisch wijzigen padnaam aan lopend jaar)
v 3.22003jun-2003uitgebreide checks op incorrecte opname van uren
v 3.32003jun-2003mogelijkheid om verlofuren of adv in persoons-db op 0 uren te stellen toegevoegd
v 3.42003rjan-2004tekst mailsubject aangepast
v 3.42003ljan-2004aanpassing formaat getallen in totaaloverzicht
v 3.52003lmrt-2004aanpassing tekst uur totalen
v 3.52003rmrt-2004aanpassing tekst layout tabel via css
v 3.62003lmrt-2004aanpassing tekst layout tabellen via css
v 3.62003rapr-2004mailtobaas kan nu ook worden uitgezet met tekst 'geen' in persoons-db
v 3.72003lapr-2004totaal uren tegoed toegevoegd aan overzicht
v 1.02005ldec-2004aanpassing nieuwe CAO NU 2004 (ADV vervalt)
v 1.02005rdec-2004aanpassing nieuwe CAO NU 2004 (ADV vervalt)
v 1.12005l+rjan-2005aanpassing links in reply form (per groep)
v 1.22005ljan-2005compensatie-uren niet meer als aparte categorie maar bij verlof gevoegd (misverstand)
v 1.22005rjan-2005automatische reparatie (indien nodig) van verlofbestand van dag en maand notatie ('leading zero' probleem)
v 1.32005l+rfeb-2005bugs: verplicht verlof wordt in reeks vrij opnieuw afgeboekt, en verlofuren niet automatisch berekenen werkt niet, beide verholpen
v 1.42005l+rnov-2005paginering, via form, van maandoverzichten; verplicht vrije dagen nu bij iedereen, ongeacht contractduur omdat berekening tegoeden nu uitsluitend over contractperiode wordt uitgevoerd; in overzicht aantal uren per werkdag toegevoegd
v 1.4.12005ldec-2005opmerkingen werden dubbel weergegeven
v 1.4.22005ljan-2006begin en einddag kunnen elke waarde hebben
v 1.4.32005ljan-2006andere indeling voor- en achternaam bij totaal-overzicht
v 1.52005l+rjun-2006Migratie naar MacOS X
v 1.62005efeb-2007 Web based editor voor zowel personeelsgegevens als verlofgegevens
v 1.6 2005l+r+e feb-2007 Aanpassingen tbv. integratie web based editor
v 1.7 2005l+r+e aug-2007 Uitbreiding met registratie ziekteverzuim (optioneel voor groepen)
v 2.0 VURS
l+r+e
okt-2007 Dynamische afhandeling van verplicht vrije dagen/extra vrije dagen etc.




sep-2008