91 lines
2.8 KiB
Python
91 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Verifiziert die importierten Kredite vollständig.
|
|
"""
|
|
|
|
import json
|
|
import urllib.request
|
|
import urllib.error
|
|
|
|
API_BASE = "http://localhost:3001/api"
|
|
|
|
def api_call(endpoint, method='GET', data=None):
|
|
url = f"{API_BASE}{endpoint}"
|
|
headers = {'Content-Type': 'application/json'}
|
|
|
|
req = urllib.request.Request(
|
|
url,
|
|
data=json.dumps(data).encode() if data else None,
|
|
headers=headers,
|
|
method=method
|
|
)
|
|
|
|
try:
|
|
with urllib.request.urlopen(req, timeout=30) as response:
|
|
return json.loads(response.read().decode())
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
return None
|
|
|
|
print("="*70)
|
|
print("VERIFIKATION: ALLE KREDITE")
|
|
print("="*70)
|
|
|
|
# Alle Kredite holen
|
|
all_kredite = api_call('/kredite')
|
|
|
|
if not all_kredite:
|
|
print("Fehler beim Abrufen der Kredite!")
|
|
exit(1)
|
|
|
|
print(f"\nGefundene Kredite: {len(all_kredite)}")
|
|
print("-"*70)
|
|
|
|
for k in all_kredite:
|
|
kredit_id = k.get('id')
|
|
name = k.get('name')
|
|
restschuld = float(k.get('restschuld', 0))
|
|
monatsrate = float(k.get('monatsrate', 0))
|
|
zinssatz = float(k.get('zinssatz', 0))
|
|
start_datum = k.get('start_datum')
|
|
ursprung = float(k.get('ursprungsschuld', 0))
|
|
|
|
print(f"\n{name}")
|
|
print(f" ID: {kredit_id}")
|
|
print(f" Restschuld: {restschuld:,>12.2f} EUR")
|
|
print(f" Ursprung: {ursprung:,>12.2f} EUR")
|
|
print(f" Monatsrate: {monatsrate:,>12.2f} EUR")
|
|
print(f" Zinssatz: {zinssatz:,>12.2f}%")
|
|
print(f" Start: {start_datum}")
|
|
|
|
# Buchungen prüfen
|
|
buchungen = api_call(f'/kredite/{kredit_id}/buchungen')
|
|
if buchungen:
|
|
print(f" Buchungen: {len(buchungen)}")
|
|
if len(buchungen) > 0:
|
|
# Erste und letzte Buchung zeigen
|
|
first = buchungen[-1] # Letzte in Liste = erste chronologisch (DESC order)
|
|
last = buchungen[0] # Erste in Liste = letzte chronologisch
|
|
print(f" Erste: {first.get('datum')} - Rest: {float(first.get('restschuld_nach', 0)):,.2f} EUR")
|
|
print(f" Letzte: {last.get('datum')} - Rest: {float(last.get('restschuld_nach', 0)):,.2f} EUR")
|
|
else:
|
|
print(f" Buchungen: KEINE!")
|
|
|
|
# Zusammenfassung
|
|
print("\n" + "="*70)
|
|
print("ZUSAMMENFASSUNG ALLER KREDITE")
|
|
print("="*70)
|
|
|
|
total_restschuld = sum(float(k.get('restschuld', 0)) for k in all_kredite)
|
|
total_rate = sum(float(k.get('monatsrate', 0)) for k in all_kredite)
|
|
total_ursprung = sum(float(k.get('ursprungsschuld', 0)) for k in all_kredite)
|
|
|
|
print(f"\nGesamt-Ursprungsschuld: {total_ursprung:,>15.2f} EUR")
|
|
print(f"Gesamt-Restschuld: {total_restschuld:,>15.2f} EUR")
|
|
print(f"Gesamt-Monatsrate: {total_rate:,>15.2f} EUR")
|
|
print(f"Anzahl Kredite: {len(all_kredite):,>15}")
|
|
|
|
print("\n" + "="*70)
|
|
print("[OK] ALLE KREDITE ERFOLGREICH IMPORTIERT!")
|
|
print("="*70)
|