Urenregistratie
React-workflows, server-side superusertoegang en transactionele urenmutaties.
Urenregistratie is een React/TypeScript-app met Vercel API-handlers en een eigen Postgres-schema. De huidige data-API's zijn server-side beperkt tot de geconfigureerde Tekniq-superuser.
Datastroom
De browser leest klanten, activiteiten en uren via aparte routes. Een urenregel bevat datum, klant, activiteit/omschrijving, uren, tarief en optionele WBSO-classificatie. De server valideert mutaties en schrijft auditinformatie bij wijzigen of verwijderen.
Activiteitssuggesties zijn deterministisch: beheerbare trefwoordregels leveren een voorstel dat de gebruiker kan overschrijven. De plakimport parseert tab-, puntkomma- of kommagescheiden regels, valideert alle velden en controleert fingerprints voordat een batch transactioneel wordt toegevoegd.
Rapporten en WBSO-overzichten zijn afgeleide reads. Ze wijzigen geen bronregels. Het interne Supportcontract kan privé-ticketuren lezen of toevoegen zonder Support toegang tot de volledige urendatabase te geven.
Begin in de broncode bij
- UI:
src/App.tsx,WbsoOverview.tsxen de domeinmodules ondersrc/domain. - Uren:
api/entries.ts. - Klanten en activiteiten:
api/customers.tsenapi/activities.ts. - Import:
api/imports.tsensrc/domain/import.ts. - Rapporten/WBSO:
api/reports.ts,api/wbso.tsenapi/_lib/customer-reports.ts. - Autorisatie:
api/_lib/auth.tseninternal-auth.ts.