Leidwesen
Eingangsrechnungen
- PDF im Leidwesen hochladen oder per Mail an rg-eingang-buha@teckids.org schicken
- Daten prüfen/korrigieren:
- Datum
- Document Type (Eingangsrechnung)
- Tags ("neu" entfernen, wenn alle anderen Daten korrekt sind)
Ausgangsrechnungen
import datetime
import time
from typing import Union
from aleksis.core.celery import app
from aleksis.core.util.email import send_email
from aleksis.core.util.pdf import generate_pdf_from_template
from aleksis.apps.tezor.models.invoice import Invoice
tokens = []
# DATUM ANPASSEN!
for inv in Invoice.objects.filter(created__date__gt=datetime.date(2025, 7, 14)):
tokens.append(inv.token)
while len(tokens) > 0:
for token in tokens:
context = {}
invoice = Invoice.objects.get(token=token)
context["invoice"] = invoice
print(f"Generiere PDF von {invoice.number}")
invoice_pdf, result = generate_pdf_from_template(invoice.group.template_name, context)
done = False
while not done:
try:
result.wait(timeout=600, disable_sync_subtasks=False)
done = True
except:
time.sleep(10)
invoice_pdf, result = generate_pdf_from_template(invoice.group.template_name, context)
invoice_pdf.refresh_from_db()
print(f"Sende E-Mail für {invoice.number}")
send_email(
template_name="invoice",
from_email=invoice.group.client.email,
recipient_list=['rg-eingang-buha@teckids.org'],
context=context,
attachments=[(f"{invoice.number}.pdf", invoice_pdf.file.read(), "application/pdf")],
)
tokens.remove(token)
Vollständigkeit prüfen
- Liste aller Ausgangsrechnungen in eine Datei
invs schreiben:for i in Invoice.objects.all():
print(i.number)
- Bash-Skript um vollständigkeit zu prüfen:
#!/bin/bash
for i in $(cat invs);
do curl -s -H "Authorization: Token API-KEY" https://leidwesen.teckids.org/api/documents/\?query\=$i | jq | grep title | grep \"$i\";
if [ $? -eq 1 ]; then
echo $i >> missing
fi
done
- Datei
missing überprüfen und fehlende Rechnungen nachgenerieren