Uren
Opmerking toevoegen
Je kunt opmerkingen plaatsen via Opmerking toevoegen aan de rechterkant van de pagina.
Overzicht
Zodra een contract getekend is en de opdracht loopt, ontstaan gewerkte uren die periodiek moeten worden geregistreerd, goedgekeurd en omgezet in een factuur richting opdrachtgever. Bij DPP komen die uren langs twee intake-routes binnen, met een per-broker cadance die verschilt van weekelijks tot maandelijks. Onder de motorkap leggen we uren vast op dagniveau zodat weken die een maandgrens kruisen correct kunnen worden gefactureerd.
Deze pagina beschrijft hoe uren binnenkomen, hoe ze worden goedgekeurd, en waarom de dagniveau-keuze noodzakelijk is voor zowel facturatie als uitbetaling.
Positie in de keten
flowchart LR
Z[Gunning] --> A[Dossier opbouw]
subgraph BH[Beheer]
direction LR
B[Contracten] --> U[Uren]
U --> F[Facturatie]
F --> P[Uitbetalingen]
P -.->|periodiek| U
end
A --> BH
BH --> G[Offboarding]
classDef ph fill:none,stroke:#94a3b8,stroke-dasharray:5 5,color:#475569
classDef act stroke:#059669,stroke-width:3px
class BH ph
class U actMVP-scope (besluit 2026-05-27) — 90% wordt geautomatiseerd, 10% (uitzonderingen) houden we voorlopig handmatig. Eerste flow die we bouwen is de semi-self-billing route van Flextender; dagniveau-uren landen direct in Supabase, niet in een Google Sheet met permissies. Per-broker uitbreidingen volgen daarna.
Procesflow
Generiek verloop van een urencyclus, onafhankelijk van broker of contractvorm. Twee intake-routes convergeren op één controle- en goedkeuringspad; afgekeurde periodes gaan terug naar de bron.
flowchart TD
S([Periodewissel of opdrachtcyclus tikt])
S --> R{Welke intake-route?}
R -->|Eigen / ZZP| EP[Kandidatenportaal dagniveau-invoer]
R -->|Broker| BP[Inhuurdesk-mail of broker-portaal]
EP --> C[Backoffice controleert tegen contract en bron]
BP --> C
C --> D{Binnen contractuele bandbreedte en zonder afwijking?}
D -->|Nee| T[Terug naar kandidaat of broker met reden]
T --> S
D -->|Ja| G[Goedkeuring]
G --> SB[(Dagniveau-records vastgelegd in Supabase)]
SB --> F([Doorzet naar Facturatie])
classDef startNode fill:#ecfeff,stroke:#0891b2,color:#0e7490
classDef finishNode fill:#ecfdf5,stroke:#059669,color:#065f46
classDef decisionNode fill:#fefce8,stroke:#ca8a04,color:#854d0e
class S startNode
class F finishNode
class R,D decisionNodeTwee intake-routes
Bij DPP komen uren niet uit één bron. Welke route geldt, hangt af van het type opdracht en de bemiddelaar.
Bij eigen facturatie en bij ZZP-opdrachten zonder broker registreert de kandidaat zelf in het kandidatenportaal van DPP. Dit is de bron die onder DPPs eigen controle valt en die we het eerst willen koppelen aan Supabase op dagniveau.
- Kandidaat opent de urenmodule en selecteert de periode (maand of vier weken, afhankelijk van het contract).
- Per dag worden gewerkte uren ingevuld; bij detachering eventueel ook kilometer- of OV-vergoeding, parkeerkosten en thuiswerkdagen.
- Totaal wordt gecontroleerd tegen het contractuele aantal uren per week (zie hieronder bij Goedkeuring).
Broker-ritmes
De cadance per broker bepaalt wanneer uren binnenkomen en wanneer facturatie + uitbetaling triggert. Onze interne kalender moet hier mee om kunnen.
Cadance per broker (DPP-praktijk)
Wanneer welke broker uitbetaalt
- FlextenderSemi-selfNaima (Eghal) - WelcombinatieMVP-startpunt: semi-self-billing met factuurnr terug naar portalW4WM
- HeadFirstSelf-billingMonica SimonisSelf-billing PDF per 4-wkn, dagniveau gegroepeerd per maandW4WM
- bliqSelf-billingKees NieuwenhuizenBeide ritmes komen voor; full self-billingW4WM
- MagnitSelf-billingHanteert in de praktijk alle drie de ritmesW4WM
- YachtKickbackKickback: kandidaat op payroll broker, DPP krijgt fee (bv. EUR 12,50/uur bij ZCP-aanbrengingen)W4WM
Dagniveau, niet weekniveau
Een week kan over een maandgrens vallen. Wie alleen weeknummers vasthoudt, kan niet correct factureren wanneer een opdrachtgever per maand betaalt of wanneer een broker (zoals HeadFirst) zijn PDF per maand-blok groepeert. Daarom registreren we uren op dagniveau in Supabase.
Casus Monica Simonis - HeadFirst 4-wekenperiode
Week 17 ligt in april, week 18 in mei. Self-billing-PDF (factuur 2567722505) groepeert per maand.
2567722505, tarief €110/u). De exacte dagverdeling hierboven is een plausibele invulling - de werkelijke registratie volgt uit het kandidatenportaal of de broker-PDF. Wat telt is dat we dagen opslaan, niet alleen weeknummers.Waarom dit voor jou belangrijk is — Zonder dagniveau ontstaat het voorschiet-risico: DPP betaalt de kandidaat op een maandritme uit, maar krijgt voor diezelfde periode pas geld binnen via een 4-wekenfactuur of andersom. Dagniveau maakt het mogelijk om per kalendermaand exact te bepalen welk deel naar welke factuur of loonstrook hoort, en hoeveel werkkapitaal er tijdelijk wordt voorgeschoten.
Goedkeuring door backoffice
Inkomst signaleren
Controleren op contract
Controleren tegen broker-bron
Goedkeuren of afwijzen
Vastleggen op dagniveau in Supabase
Bij detachering: meer dan alleen uren — Goedkeuring omvat naast gewerkte uren ook eventuele kilometer- of OV-vergoeding, parkeerkosten en thuiswerkdagen als die contractueel zijn afgesproken. Deze regels lopen mee in dezelfde urenstaat zodat ze in één keer kunnen worden meegefactureerd.
Statusflow
| Status | Betekenis |
|---|---|
| Concept | Kandidaat is bezig met invullen (eigen route) of broker-mail binnen maar nog niet ingelezen |
| Ingediend | Compleet, wachtend op backoffice-goedkeuring |
| Goedgekeurd | Doorgezet naar Facturatie; dagniveau-regels staan vast in Supabase |
| Afgekeurd | Terug naar kandidaat of broker met reden |
| Naverwerkt | Achteraf bijgesteld na correctie of nagezonden uren (vermijden waar mogelijk) |
Vastgelegde besluiten
| Besluit | Datum | Toelichting |
|---|---|---|
| Registratie op dagniveau in Supabase | 2026-05-27 | Voorwaarde voor correct factureren bij split-weeks |
| Geen Google Sheet als bron-of-truth | 2026-05-27 | Permissies en concurrent-edits zijn te broos voor een betrouwbare pijplijn |
| MVP start met semi-self-billing Flextender | 2026-05-27 | Simpelste flow met directe terugkoppeling van factuurnummer |
| App-password Inhuurdesk geactiveerd voor IMAP | 2026-05-27 | Bram akkoord; credential in Infisical |
| Backoffice keurt uren goed | 2026-01 | Admin kan goedkeuring overrulen |
Technisch
Implementatiedetails voor het ontwikkelteam. Functioneel-gebruikers van de Beheer-cyclus hoeven hier niet doorheen; de inhoud hierboven beschrijft het proces volledig.
De inkomende stroom van broker-mails (self-billing-PDFs, semi-self-billing-notificaties, accordering-vragen) loopt naar één centrale mailbox die we via IMAP automatiseren.
| Item | Waarde |
|---|---|
| Mailbox | inhuurdesk@depubliekepartner.nl |
| Platform | Google Workspace |
| Protocol | IMAP over TLS (imap.gmail.com:993) |
| Toegang voor automatisering | App-password (2FA-bypass per service) |
| Opslag van credential | Infisical /platforms/google/app-passwords/INHUURDESK |
| Status | App-password uitgegeven; parser nog in ontwikkeling |
Credential-beheer
.env-files committen. Rotatie alleen na expliciete go van de eigenaar van de mailbox (Bram).