U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Meting van de arbeidstijd

0000003479     -      29-10-2026

De hieronder beschreven functionaliteiten vereisen de optie "Prestaties" in de voucher (PREST).

Vanaf 1 januari 2027 zouden Belgische werkgevers verplicht moeten zijn een systeem ter beschikking te stellen waarmee de arbeidstijd van hun medewerkers op een objectieve, betrouwbare en toegankelijke manier geregistreerd kan worden. Deze nieuwe verplichting, die voortvloeit uit de Europese regelgeving, wil de naleving van de arbeidsduur en de rustperiodes waarborgen. De werkgevers blijven vrij om de tool te kiezen die het best bij hun organisatie past.

💡 Hierboven wordt de voorwaardelijke wijs gebruikt, omdat deze verplichting op dit moment (oktober 2026) in België nog niet officieel in de wet is omgezet.

De juridische grondslag is een arrest van het Hof van Justitie van de Europese Unie (HvJ-EU) van 14 mei 2019. Het Hof heeft vastgesteld dat de lidstaten de werkgevers moeten verplichten tot een systeem waarmee de dagelijkse arbeidsduur van elke werknemer op een objectieve, betrouwbare en toegankelijke manier gemeten wordt. Uit een aandachtige lezing van de teksten hierover blijkt dat de verplichting uiteindelijk lijkt op een systeem van omkering van de bewijslast, wat de meting van overschrijdingen van de in het contract van de werknemer voorziene arbeidstijd betreft. Voorheen was het voor een werknemer moeilijk om te bewijzen dat hij te veel werkte. Nu zal hij de tool kunnen gebruiken die de werkgever ter beschikking moet stellen, en zal het aan de werkgever zijn om met andere middelen te bewijzen dat de tijdsregistraties niet conform de werkelijkheid zijn. Er wordt ook opgemerkt dat de regelgeving op geen enkel moment aangeeft dat de metingen van deze tool aan de loonverwerking gekoppeld zouden moeten worden.

Gebruik in Mercator Desktop

⚠️ De gebruiker die over deze functionaliteit wil beschikken, moet vooraf aan een prestatieverlener gekoppeld worden via zijn profiel in het gebruikersbeheer.

Om toegang tot de functionaliteit te geven, is het eenvoudigst om het lint aan te passen en de opdracht "Arbeidstijd" te kiezen. Ze is beschikbaar voor het lint "commercieel beheer" en  het lint "boekhouding". 

De categorieën kunnen gewijzigd worden via het menu "Tools / Setup / Categorieën Arbeidstijd". De categorie "Normale uren" wordt altijd automatisch door Mercator toegevoegd bij de aanmaak van de tabel WORK_TIME.

Bovenaan dit scherm kiest de gebruiker de categorie van de uren die hij gaat presteren. Vervolgens gebruikt hij de enige knop bovenaan om het werk te starten of te stoppen. 

        

Via het tabblad "Mijn werktijden" kan de gebruiker zijn historiek raadplegen:

WorkTime4_nl   WorkTime5_nl

Door te dubbelklikken op een lijn kan de gebruiker ze wijzigen. Hij zal een verantwoording moeten invoeren.

      WorkTime6_nl

Gebruik in MercatorPenguin

Zie deze pagina.

Gebruik in MercatorPelican

Zie deze pagina.

💡 Deze drie gebruiksmodi zijn tegelijkertijd compatibel. Een arbeidstijd kan bijvoorbeeld beginnen op de prikklok van MercatorPelican, onderbroken worden in MercatorDesktop en gewijzigd worden via MercatorPelican. De drie oplossingen richten zich tot dezelfde gegevenstabel (zie hieronder).

 

Organisatie van de gegevens

Om het opstellen van elke reporting te vergemakkelijken, worden de gegevens van de arbeidstijdmeting in één enkele tabel opgeslagen: WORK_TIME. Deze tabel wordt automatisch door Mercator aangemaakt.

  • ID: unieke identificatiecode van de prestatie.
  • MOMENT_1: begin van de prestatie.
  • MOMENT_2: einde van de prestatie. null als deze prestatie bezig is.
  • ID_YPREST: identificatiecode van de prestatieverlener.
  • ID_CAT: identificatiecode van de prestatiecategorie. In relatie met de tabel CAT_WORK_TIME.
  • NOTE: aaneenschakeling van de verantwoordingen van de door de gebruiker aangebrachte wijzigingen, samen met de waarden "voor" en "na". 

Voorbeeld van een waarde voor NOTE:

*****   04/09/2026 16:13   ***** 
Tot 04/09/2026 16:11 -> 04/09/2026 16:22
Ik heb vastgesteld dat ik me opnieuw had vergist

*****   14/09/2026 09:04   *****
Tot 04/09/2026 16:22 -> 04/09/2026 22:22
Ik heb me vergist 

 

Controle van de door de gebruiker uitgevoerde wijzigingen

Dit onderdeel van de functionaliteit biedt alle nodige flexibiliteit om zich aan te passen aan de wensen en eisen van elk bedrijf. Er is dus geen enkele controle vast en definitief in het programma gecodeerd. Om deze controle in te stellen, moet een customizer WorkTime aangemaakt worden. Het bijzondere ervan is dat dezelfde code uitgevoerd wordt door Mercator Desktop en door MercatorPenguin. Hij werkt niet met het inschrijven op events (die men dan zou moeten uitschrijven), maar op basis van de overerving van de klasse MercatorCommonCustomizers.WorkTimeCustomizer, waarmee de methode OnUpdate overschreven kan worden.

De ingebouwde controles kunnen zijn:

  • blokkerend: DialogTypeEnum.Stop
  • eenvoudige waarschuwingen: DialogTypeEnum.AnswerYesNo
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;

// <CompileWithRoslyn />

namespace WorkTime
{
    public class Customizer : MercatorCommonCustomizers.WorkTimeCustomizer
    {
        public override OnUpdateRet OnUpdate(OnUpdateParam p)
        {
            // 1. Verbied het verplaatsen van een registratie naar een andere dag
            if (IsDayChanged(p.Moment1Current, p.Moment1NewValue) || IsDayChanged(p.Moment2Current, p.Moment2NewValue))
            {
                return new OnUpdateRet
                {
                    DialogType = DialogTypeEnum.Stop,
                    Message = "Een registratie kan niet naar een andere dag verplaatst worden.",
                };
            }

            // 2. Vraag bevestiging als een uur met meer dan 2 uur gewijzigd wordt
            if (IsChangedByMoreThan(p.Moment1Current, p.Moment1NewValue, TimeSpan.FromHours(2)) ||
                IsChangedByMoreThan(p.Moment2Current, p.Moment2NewValue, TimeSpan.FromHours(2)))
            {
                return new OnUpdateRet
                {
                    DialogType = DialogTypeEnum.AnswerYesNo,
                    Message = "Minstens één registratie-uur werd met meer dan 2 uur gewijzigd. Wilt u deze wijziging bevestigen?",
                };
            }

            return new OnUpdateRet
            {
                DialogType = DialogTypeEnum._none,
            };
        }

        private static bool IsDayChanged(DateTime? current, DateTime? newValue)
        {
            return current.HasValue && newValue.HasValue && current.Value.Date != newValue.Value.Date;
        }

        private static bool IsChangedByMoreThan(DateTime? current, DateTime? newValue, TimeSpan tolerance)
        {
            return current.HasValue && newValue.HasValue && Math.Abs((newValue.Value - current.Value).TotalMinutes) > tolerance.TotalMinutes;
        }
    }
}

 

Reporting

Zoals hierboven aangegeven, is de reporting eenvoudig op te zetten, aangezien ze slechts drie tabellen betreft:

  • WORK_TIME: de registraties van arbeidstijd
  • YPREST: de tabel van de prestatieverleners
  • CAT_WORK_TIME: de categorieën van arbeidsuren

💡 Het is niet verboden om categorieën van arbeidstijd te verwijderen die niet meer gebruikt worden. Gebruik bijgevolg een left join naar de tabel CAT_WORK_TIME.

⚠️ De kolommen MOMENT_1 en MOMENT_2 bevatten ook uren. Om de gegevens tot en met dag D te verkrijgen, is een test "kleiner dan D + 1" nodig.

Wij stellen hier een rapport voor waarmee een extractie van de arbeidstijden gemaakt kan worden op basis van een datumbereik.

Voorbeeld van het verkregen resultaat: 3479Y Temps de travail.pdf

Om dit document te installeren:

  • Pak het bijgevoegde ZIP-bestand uit in de hoofdmap van Mercator. 
  • Herstart Mercator om de nieuwe lijst te installeren (snelle installatie)


Te laden : 0000003479.zip (20 Kb - 28-10-2026)


Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)