97 lines
3.2 KiB
Python
97 lines
3.2 KiB
Python
#!/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)
|