Skip to content

Repository files navigation

FlexDeel — ritten-administratie

Scripts voor de rittenadministratie van Mobiliteits-Coöperatie FlexDeel U.A.: ruwe ritdata → prijsberekening → tabbladen per rijder → PDF's, per incasso-ronde.

⚠️ Privacy: deze repo bevat alleen code, geen data. Ruwe ritten, ODS/PDF- overzichten, incasso-XML en ledenbestanden staan bewust niet in de repo (zie .gitignore). Het factuurscript is er wél, maar de groeperings-/klantcode-mapping met ledengegevens zit in grouping_config.json — dat bestand staat in .gitignore; gebruik grouping_config.example.json als sjabloon.

Scripts

Script Doel
ritten_analyse_ods.py Classificeert ritten (Service/Regulier), berekent prijzen per etmaal, rondt af per incasso-ronde (incl. maand-/ronde-overschrijdend gebruik via look-back) en schrijft een ODS.
maak_tabbladen.py Maakt per rijder een tabblad in het ODS (reguliere + service ritten, totalen).
maak_pdfs.py Exporteert elk tabblad naar een PDF per rijder.
maand_overzicht.py Maandoverzicht/rapportage.
update_users_startdate.py Onderhoud van gebruikers-startdata.
facturen_eboekhouden.py Genereert facturen per rijder in e-Boekhouden.nl en een SEPA-incassobestand. Vereist EBOEKHOUDEN_TOKEN (env) en grouping_config.json (uit grouping_config.example.json).
ritten_analyse_ods.325 Ontwikkelversie met dezelfde logica maar de toekomstige tarieven (€0,35 / €3,25 / €32,50).

Prijsmodel (huidig)

  • €0,29 per km · €2,95 per uur · max €29,50 per etmaal (kalender-dag).
  • Service ritten (flexdeel@pm.me, 0 km, of < 6 min) kosten €0.
  • Incasso-rondes: ronde 1 = 1–15, ronde 2 = 16–einde maand.
  • Maand-/ronde-overschrijdend: een rit wordt afgerekend t/m het einde van de ronde; het restant valt in de volgende ronde (km volledig in de start-ronde). Zie WORKFLOW_HANDLEIDING.md.

Operationele benodigdheden (naast de code)

Om dit end-to-end te draaien heb je meer nodig dan de scripts alleen:

  1. Ritdata-bron — een export (.xlsx) uit de rittenregistratie van The Mobility Factory (TMF), met o.a. effectiveStartTime, effectiveEndTime, traveledDistance, personEmail, isCancelled.
  2. Boekhouding — een e-Boekhouden.nl-account met API-toegang; het token als EBOEKHOUDEN_TOKEN (environment-variabele). Klant-/relatiecodes koppelen leden aan de facturatie.
  3. SEPA-incasso — een incassocontract met je bank en een eigen incassant-ID (Creditor Identifier), plus een geldige machtiging (mandaat) per lid. Het proces levert een SEPA-incassobestand (pain.008 XML) op dat je bij de bank aanlevert.
  4. Ledenadministratie — relaties/gebruikers met e-mail en startdatum, voor koppeling en facturatie.
  5. Technisch — Python 3 + pandas/odfpy en LibreOffice (zie Vereisten).

Gebruik

python3 ritten_analyse_ods.py 2026-06-02.xlsx 2026-06-02.ods
python3 maak_tabbladen.py 2026-06-02.ods
python3 maak_pdfs.py 2026-06-02.ods

Zie WORKFLOW_HANDLEIDING.md voor de volledige workflow, mappenstructuur en troubleshooting.

Vereisten

  • Python 3 met pandas en odfpy (pip install pandas odfpy)
  • LibreOffice (voor maak_tabbladen.py / maak_pdfs.py, via UNO)
  • facturen_eboekhouden.py vereist een EBOEKHOUDEN_TOKEN environment-variabele én een grouping_config.json (kopieer van grouping_config.example.json).

Licentie

MIT — vrij te gebruiken, aan te passen en te verspreiden. Zie LICENSE.

About

Ritten-administratie scripts voor Mobiliteits-Cooperatie FlexDeel (per-ronde afrekening, maand-overschrijdend gebruik)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages