#!/usr/bin/env python3 """ Vollständige Verifikation des Niki-Kredits """ import openpyxl # Lade alle Daten aus Excel wb = openpyxl.load_workbook("Schulden Niki.xlsx", data_only=True) ws = wb['Tabelle1'] print("=" * 80) print("KOMPLETTE ANALYSE: Schulden Niki.xlsx") print("=" * 80) # Header ist in Zeile 6 # Spalten: C=Datum, D=Restschuld, E=Zinsen, F=Abgezahlt, G=Neue Kosten, H=Für was entries = [] for row in ws.iter_rows(min_row=7, max_row=ws.max_row, values_only=True): if row[2]: # Datum vorhanden datum = row[2] restschuld = row[3] zinsen = row[4] abgezahlt = row[5] neue_kosten = row[6] beschreibung = row[7] entries.append({ 'datum': datum, 'restschuld': restschuld, 'zinsen': zinsen, 'abgezahlt': abgezahlt, 'neue_kosten': neue_kosten, 'beschreibung': beschreibung }) print(f"\nGefundene Einträge: {len(entries)}") # Analysiere Zahlungen zahlungen = [] auslagen = [] for e in entries: if e['abgezahlt']: zahlungen.append({'datum': e['datum'], 'betrag': e['abgezahlt'], 'notiz': e['beschreibung'] or 'Zahlung'}) if e['neue_kosten']: auslagen.append({'datum': e['datum'], 'betrag': abs(e['neue_kosten']), 'notiz': e['beschreibung'] or 'Auslage'}) print(f"\n## ZAHLUNGEN (Abgezahlt): {len(zahlungen)} Einträge") for z in zahlungen: print(f" {z['datum'].strftime('%Y-%m-%d')}: +{z['betrag']:.2f} EUR - {z['notiz']}") print(f"\n## AUSLAGEN (Neue Kosten): {len(auslagen)} Einträge") for a in auslagen: print(f" {a['datum'].strftime('%Y-%m-%d')}: +{a['betrag']:.2f} EUR - {a['notiz']}") total_zahlungen = sum(z['betrag'] for z in zahlungen) total_auslagen = sum(a['betrag'] for a in auslagen) print(f"\n## SUMMEN:") print(f" Gesamte Zahlungen: {total_zahlungen:.2f} EUR") print(f" Gesamte Auslagen: {total_auslagen:.2f} EUR") print(f" Netto Zahlungen: {total_zahlungen - total_auslagen:.2f} EUR") # Letzter Eintrag letzter = entries[-1] print(f"\n## LETZTER STAND (Excel):") print(f" Datum: {letzter['datum'].strftime('%Y-%m-%d')}") print(f" Restschuld: {letzter['restschuld']:.2f} EUR") print(f" (negativ = Niki schuldet noch)") # Berechne theoretische Restschuld ohne Zinsen start_schuld = 7000 rest_ohne_zinsen = start_schuld - (total_zahlungen - total_auslagen) print(f"\n## VERGLEICH MIT DB:") print(f" Startschuld: {start_schuld:.2f} EUR") print(f" Excel Rest (mit Zinsen): {abs(letzter['restschuld']):.2f} EUR") print(f" Theoretisch ohne Zinsen: {rest_ohne_zinsen:.2f} EUR") print(f" DB Restschuld: 4105.00 EUR") print(f"\n Differenz Excel-DB: {abs(letzter['restschuld']) - 4105:.2f} EUR") print(f" (= aufgelaufene Zinsen laut Excel)") # Monate zwischen Start und Jetzt from datetime import datetime now = datetime.now() start = datetime(2023, 7, 1) monate = (now.year - start.year) * 12 + (now.month - start.month) print(f"\n## ZEITRAUM:") print(f" Start: {start.strftime('%Y-%m-%d')}") print(f" Heute: {now.strftime('%Y-%m-%d')}") print(f" Monate: {monate} Monate seit Start") wb.close() print("\n" + "=" * 80) print("ERGEBNIS: Alle Zahlungen sind bereits korrekt in der DB!") print("=" * 80)