Add gen-deelnemers.py
This commit is contained in:
parent
d48a4dfd87
commit
6d00df1225
1 changed files with 53 additions and 0 deletions
53
scripts/gen-deelnemers.py
Executable file
53
scripts/gen-deelnemers.py
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
from datetime import date, datetime
|
||||
from typing import Optional
|
||||
|
||||
from deelnemers import deelnemers
|
||||
|
||||
|
||||
def main(*, after: Optional[date]):
|
||||
participants = deelnemers()
|
||||
|
||||
for p in participants:
|
||||
if not p.is_actief():
|
||||
continue
|
||||
|
||||
if after and p.datum_ingeschreven.date() < after:
|
||||
continue
|
||||
|
||||
acc = f"Activa:Debiteuren:Deelnemers:{p.nickname.title().replace('_', '')}"
|
||||
openat = p.datum_ingeschreven.date()
|
||||
# Contributie start op de 1e van de volgende maand na inschrijving.
|
||||
contrib_start = date(
|
||||
openat.year + (openat.month + 1) // 12,
|
||||
openat.month % 12 + 1,
|
||||
1,
|
||||
)
|
||||
# Dit is wanneer we begonnen met Beancount.
|
||||
if contrib_start < date(2025, 1, 1):
|
||||
contrib_start = date(2025, 1, 1)
|
||||
|
||||
print(f"""
|
||||
{openat} open {acc} EUR
|
||||
{contrib_start} * "Contributie"
|
||||
recur: "1000 Months /Monthly"
|
||||
Inkomsten:Contributie -{p.maandbedrag:.2f} EUR
|
||||
{acc}""")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="bean-deelnemers",
|
||||
description="Maakt debiteuren van Bitlair deelnemers uit de administratie",
|
||||
)
|
||||
parser.register("type", "date", lambda s: datetime.strptime(s, "%Y-%m-%d").date())
|
||||
parser.add_argument(
|
||||
"--after",
|
||||
help="Deelnemers ingeschreven vanaf deze datum",
|
||||
type="date",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
main(**vars(args))
|
Loading…
Add table
Add a link
Reference in a new issue