Files
buchhaltung/execute_import.py
2026-04-26 07:51:39 +02:00

89 lines
2.7 KiB
Python

import psycopg2
# Verbindung zur Datenbank
conn = psycopg2.connect(
host='localhost',
port=5432,
database='buchhaltung',
user='postgres',
password='postgres'
)
cur = conn.cursor()
print('=== NEBENKOSTEN IMPORT ===\n')
# Prüfe vorhandene Einträge
cur.execute("SELECT COUNT(*) FROM nebenkosten WHERE jahr BETWEEN 2020 AND 2024")
count = cur.fetchone()[0]
print(f'Vorhandene Einträge 2020-2024: {count}')
if count > 0:
print('Lösche vorhandene Einträge...')
cur.execute("DELETE FROM nebenkosten WHERE jahr BETWEEN 2020 AND 2024")
conn.commit()
print('Gelöscht.\n')
# Alle Abrechnungen
abrechnungen = [
(2020, 'Zingelstr. 14', 'Kevin Körger', 28.34, 16.73, None, 2.86, 7.23, 1.52),
(2020, 'Zingelstr. 14', 'Johanna Krohn / Tobias Welling', 34.19, 16.73, None, 6.67, 7.23, 3.56),
(2021, 'Zingelstr. 14', 'Kevin Körger', 471.91, 214.35, 75.29, 33.68, 130.64, 17.95),
(2021, 'Zingelstr. 14', 'Johanna Krohn / Tobias Welling', 530.10, 203.70, 75.29, 78.59, 130.64, 41.89),
(2022, 'Ahornweg 6', 'Kevin Körger', 487.72, 230.00, 52.73, 33.68, 153.36, 17.95),
(2022, 'Ahornweg 6', 'Johanna Krohn / Tobias Welling', 556.56, 230.00, 52.73, 78.59, 153.36, 41.89),
(2023, 'Ahornweg 6', 'Kevin Körger', 148.20, 63.47, 17.34, 11.07, 50.42, 5.90),
(2023, 'Ahornweg 6', 'Johanna Krohn / Tobias Welling', 170.83, 63.47, 17.34, 25.84, 50.42, 13.77),
(2023, 'Zingelstr. 14', 'Yvonne Brandt', 501.48, 129.58, 102.53, 75.36, 153.85, 40.17),
(2024, 'Zingelstr. 14', 'Yvonne Brandt', 675.56, 115.41, 175.76, 112.27, 212.28, 59.84),
]
query = """
INSERT INTO nebenkosten
(jahr, wohnung, mieter, nebenkosten, versicherung, heizkosten, wasser, muell, sonstiges)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
"""
imported = 0
for data in abrechnungen:
try:
cur.execute(query, data)
imported += 1
print(f'OK {data[2]} {data[0]}: {data[3]} EUR')
except Exception as e:
print(f'FEHLER bei {data[2]} {data[0]}: {e}')
conn.commit()
print(f'\n=== VERIFIZIERUNG ===')
print(f'Importiert: {imported} von {len(abrechnungen)}')
# Zeige alle Einträge
cur.execute("""
SELECT jahr, mieter, wohnung, nebenkosten
FROM nebenkosten
WHERE jahr BETWEEN 2020 AND 2024
ORDER BY jahr, mieter
""")
print('\nAlle Einträge:')
for row in cur.fetchall():
print(f' {row[0]}: {row[1]} ({row[2]}) - {row[3]}')
# Summen pro Jahr
cur.execute("""
SELECT jahr, COUNT(*), SUM(nebenkosten)
FROM nebenkosten
WHERE jahr BETWEEN 2020 AND 2024
GROUP BY jahr
ORDER BY jahr
""")
print('\nSummen pro Jahr:')
for row in cur.fetchall():
print(f' {row[0]}: {row[1]} Abrechnungen, {row[2]:.2f}')
cur.close()
conn.close()
print('\n✅ IMPORT ABGESCHLOSSEN')