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:

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()