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