Teckids-Wiki

Personenkonten

Fehlende Personenkonten erstellen

n = Person.objects.filter(extended_data__external_accounting_number__isnull=False).order_by("extended_data__external_accounting_number").last().extended_data["external_accounting_number"] + 1

for inv in Invoice.objects.all():
    if getattr(inv, "person"):
        p = inv.person
        if not getattr(p, "extended_data"):
            if not "external_accounting_number" in p.extended_data:
                p.extended_data["external_accounting_number"] = n
                p.save()
                n = n + 1
                print(f"{p.first_name} {p.last_name} ({p.extended_data['external_accounting_number']})")

Erstellte Personenkonten im Leidwesen anlegen

Unter https://leidwesen.teckids.org/correspondents Correspondent anlegen:

screenshot_20250731_171056.png

Personenkonten in gnucash erstellen

import piecash
from piecash import create_book, Account

book = piecash.open_book(uri_conn="postgresql://BENUTZER:PASSWORT@db-vip.teckids.org/gnucash", readonly=False, open_if_lock=True, do_backup=False)
EUR = book.commodities.get(mnemonic="EUR")
parent_acc = book.accounts(name="8  10000-69999 Debitoren")

# RANGE ANPASSEN!
# letzte Zahl = letze Nummer + 1
for i in range(21266, 21284):
    try:
        Account(name=f"Teilnehmer Konto Nr. {i}", parent=parent_acc, commodity=EUR, type="ASSET")
    except ValueError:
        continue

book.save()