Skip to content

Facturen

Rol: lid (eigen facturen bekijken), eigenaar (alle facturen beheren, aanmaken en status bijwerken)

De Facturen-tab geeft leden inzicht in hun openstaande en betaalde facturen. De eigenaar heeft een volledig overzicht van alle lidmaatschapsfacturen en kan nieuwe facturen aanmaken, betalingen registreren en facturen als achterstallig markeren.

Statusovergangen

eigenaar maakt factuur aan eigenaar markeert als betaald eigenaar markeert handmatig als achterstallig betaling alsnog ontvangen open paid overdue

Statusbadges

StatusKleurBetekenis
openAmber / goud (#c9a84c)Factuur openstaand, wacht op betaling
paidGroen (#2e8b76)Betaling ontvangen, paidAt ingesteld
overdueRoodBetaaltermijn overschreden

Factuurtypen

TypeGebruik
trainingFactuur voor losse trainingen of trainingsabonnement
membershipMaandelijkse of jaarlijkse contributie
shopAankoop uit de clubwinkel
tripClubuitje of toernooireis
otherOverige kosten

Toegangsregels

De listRule voor facturen is:

@request.auth.id = user.id || @request.auth.role = 'eigenaar'

Een lid ziet uitsluitend eigen facturen. De eigenaar ziet alle facturen van alle leden. Dit wordt afgedwongen aan de PocketBase-kant — de app stuurt geen extra filter mee voor de lidrol.

Eigenaar-workflow

  1. Eigenaar maakt een factuur aan met status: open, een factuurnummer (bv. INV-2025-042), bedrag, type en uiterste betaaldatum.
  2. Bij ontvangst van betaling markeert de eigenaar de factuur als paid. PocketBase (of de app-logica) stelt paidAt in op de huidige datum.
  3. Wanneer een betaaltermijn overschreden is en er nog geen betaling is ontvangen, markeert de eigenaar de factuur handmatig als overdue.

Datamodel

Facturen gekoppeld aan een lid. Enkel aangemaakt en beheerd door de eigenaar.

Veld Type Verplicht Beschrijving Beperkingen
user relation Lid waaraan de factuur toebehoort → users
number text Mensleesbaar factuurnummer (bv. INV-2025-042)
name text Omschrijving van de factuur (bv. Maandelijkse contributie)
description text Uitgebreide toelichting
amount number Factuurbedrag in euro min 0
status select Betalingsstatus open | paid | overdue
type select Factuurtype voor categorisering training | membership | shop | trip | other
dueDate date Uiterste betaaldatum
paidAt date Datum waarop betaling is ontvangen (ingevuld bij overgang naar paid)
Toegangsregels
RegelExpressie
list @request.auth.id = user.id || @request.auth.role = 'eigenaar'
view @request.auth.id = user.id || @request.auth.role = 'eigenaar'
create @request.auth.role = 'eigenaar'
update @request.auth.role = 'eigenaar'
delete @request.auth.role = 'eigenaar'

Ontwerpkeuzes

Handmatige overdue-markering (geen cron) Er is bewust gekozen om overdue niet automatisch in te stellen op basis van dueDate. Een cron-job of server-side hook zou facturen stil kunnen omzetten, met het risico van ongewenste e-mails of mismatches als de datum verkeerd is ingevuld. De eigenaar heeft directe controle en kan context meewegen (bv. een betalingsregeling).

Mensleesbaar factuurnummer Het number-veld (bv. INV-2025-042) staat los van de interne PocketBase record-ID. Dit maakt facturen herkenbaar in e-mailcorrespondentie en maakt het eenvoudig een doorlopende nummering bij te houden.

paidAt gestempeld bij statuswijziging Wanneer de eigenaar de status naar paid zet, legt de app de huidige datum vast in paidAt. Dit biedt een auditspoor van betalingsdatums en is nuttig voor de boekhouding.