const { Pool } = require('pg'); const pool = new Pool({ host: process.env.DB_HOST || 'localhost', port: process.env.DB_PORT || 5432, database: process.env.DB_NAME || 'buchhaltung', user: process.env.DB_USER || 'postgres', password: process.env.DB_PASSWORD || 'postgres', }); const nebenkostenData = [ { jahr: 2020, wohnung: 'Zingelstr. 14', mieter: 'Johanna Krohn / Tobias Welling', versicherung: 16.73, sonstiges: 3.56 + 6.67, // Grundsteuer + Niederschlagwasser muell: 7.23, heizkosten: null, wasser: null, nebenkosten: 34.19 }, { jahr: 2021, wohnung: 'Zingelstr. 14', mieter: 'Johanna Krohn / Tobias Welling', versicherung: 203.70, sonstiges: 41.89 + 78.59, // Grundsteuer + Niederschlagwasser heizkosten: 75.29, muell: 130.63, wasser: null, nebenkosten: 530.10 }, { jahr: 2023, wohnung: 'Zingelstr. 14', mieter: 'Yvonne Brandt', versicherung: 129.58, sonstiges: 40.17 + 75.36, // Grundsteuer + Niederschlagwasser heizkosten: 102.53, muell: 153.85, wasser: null, nebenkosten: 501.48 }, { jahr: 2024, wohnung: 'Zingelstr. 14', mieter: 'Yvonne Brandt', versicherung: 115.41, sonstiges: 59.84 + 112.27, // Grundsteuer + Niederschlagwasser heizkosten: 175.76, muell: 212.28, wasser: null, nebenkosten: 675.56 } ]; async function importNebenkosten() { const client = await pool.connect(); try { console.log('=== NEBENKOSTEN IMPORT ZINGELSTR. 14 ===\n'); // Prüfe vorhandene Einträge const checkResult = await client.query('SELECT COUNT(*) FROM nebenkosten WHERE wohnung = $1', ['Zingelstr. 14']); const existingCount = parseInt(checkResult.rows[0].count); console.log(`Vorhandene Einträge für Zingelstr. 14: ${existingCount}`); if (existingCount > 0) { console.log('\nLösche vorhandene Einträge...'); await client.query('DELETE FROM nebenkosten WHERE wohnung = $1', ['Zingelstr. 14']); console.log('✓ Alte Einträge gelöscht'); } console.log('\n=== IMPORT STARTET ===\n'); const insertedRecords = []; for (const data of nebenkostenData) { const query = ` INSERT INTO nebenkosten (jahr, wohnung, mieter, nebenkosten, heizkosten, wasser, muell, versicherung, sonstiges) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING * `; const values = [ data.jahr, data.wohnung, data.mieter, data.nebenkosten, data.heizkosten, data.wasser, data.muell, data.versicherung, data.sonstiges ]; const result = await client.query(query, values); insertedRecords.push(result.rows[0]); console.log(`✓ ${data.jahr}: ${data.mieter} - ${data.nebenkosten.toFixed(2)} €`); } console.log('\n=== IMPORT ABGESCHLOSSEN ==='); console.log(`\n${insertedRecords.length} Datensätze importiert:`); for (const record of insertedRecords) { console.log(`\n Jahr: ${record.jahr}`); console.log(` Mieter: ${record.mieter}`); console.log(` Wohnung: ${record.wohnung}`); console.log(` Gesamtkosten: ${record.nebenkosten} €`); console.log(` - Versicherung: ${record.versicherung} €`); console.log(` - Heizkosten: ${record.heizkosten || '-'} €`); console.log(` - Wasser: ${record.wasser || '-'} €`); console.log(` - Müll: ${record.muell} €`); console.log(` - Sonstiges: ${record.sonstiges} €`); } // Verifiziere Import const verifyResult = await client.query('SELECT * FROM nebenkosten WHERE wohnung = $1 ORDER BY jahr', ['Zingelstr. 14']); console.log(`\n=== VERIFIZIERUNG ===`); console.log(`In Datenbank gefunden: ${verifyResult.rows.length} Einträge`); for (const row of verifyResult.rows) { console.log(` - ${row.jahr}: ${row.mieter} (${row.nebenkosten} €)`); } } catch (error) { console.error('❌ Fehler beim Import:', error.message); throw error; } finally { client.release(); await pool.end(); } } // Führe Import aus importNebenkosten().catch(err => { console.error('Import fehlgeschlagen:', err); process.exit(1); });