Initial commit - Stand 26.04.2026
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
/**
|
||||
* Finale Verifikation des Niki Imports
|
||||
*/
|
||||
|
||||
const http = require('http');
|
||||
|
||||
function apiCall(method, endpoint) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
port: 3001,
|
||||
path: `/api${endpoint}`,
|
||||
method: method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
};
|
||||
|
||||
const req = http.request(options, (res) => {
|
||||
let responseData = '';
|
||||
res.on('data', (chunk) => responseData += chunk);
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const parsed = JSON.parse(responseData);
|
||||
resolve(parsed);
|
||||
} catch (e) {
|
||||
resolve(responseData);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', reject);
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log('='.repeat(60));
|
||||
console.log('FINALE VERIFIKATION: Niki Kredit');
|
||||
console.log('='.repeat(60));
|
||||
|
||||
const kredite = await apiCall('GET', '/kredite');
|
||||
const nikiKredit = kredite.find(k => k.name?.toLowerCase().includes('niki'));
|
||||
|
||||
if (!nikiKredit) {
|
||||
console.log('❌ Kredit nicht gefunden!');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log('\n📊 Kredit Details:');
|
||||
console.log(` ID: ${nikiKredit.id}`);
|
||||
console.log(` Name: ${nikiKredit.name}`);
|
||||
console.log(` Person: ${nikiKredit.person}`);
|
||||
console.log(` Richtung: ${nikiKredit.richtung || 'nicht gesetzt'}`);
|
||||
console.log(` Ursprungsschuld: ${parseFloat(nikiKredit.ursprungsschuld).toFixed(2)} €`);
|
||||
console.log(` Restschuld: ${parseFloat(nikiKredit.restschuld).toFixed(2)} €`);
|
||||
console.log(` Zinssatz: ${nikiKredit.zinssatz}%`);
|
||||
console.log(` Start: ${nikiKredit.start_datum}`);
|
||||
|
||||
const zahlungen = await apiCall('GET', `/kredite/${nikiKredit.id}/zahlungen`);
|
||||
|
||||
console.log(`\n💳 Zahlungen (${zahlungen.length} Stück):`);
|
||||
|
||||
let sumZahlungen = 0;
|
||||
let sumAuslagen = 0;
|
||||
|
||||
// Sortiere nach Datum
|
||||
const sorted = zahlungen.sort((a, b) => new Date(a.datum) - new Date(b.datum));
|
||||
|
||||
for (const z of sorted) {
|
||||
const betrag = parseFloat(z.betrag);
|
||||
const typ = z.typ || 'zahlung';
|
||||
const datum = z.datum?.split('T')[0];
|
||||
const sign = betrag >= 0 ? '+' : '';
|
||||
|
||||
console.log(` ${datum} | ${typ.padEnd(10)} | ${sign}${betrag.toFixed(2).padStart(8)} € | ${z.notizen || ''}`);
|
||||
|
||||
if (typ === 'zahlung') sumZahlungen += betrag;
|
||||
if (typ === 'auslage') sumAuslagen += betrag;
|
||||
}
|
||||
|
||||
console.log('\n📈 Summen:');
|
||||
console.log(` Zahlungen: ${sumZahlungen.toFixed(2)} €`);
|
||||
console.log(` Auslagen: ${sumAuslagen.toFixed(2)} €`);
|
||||
console.log(` Netto: ${(sumZahlungen + sumAuslagen).toFixed(2)} €`);
|
||||
|
||||
// Erwartete Werte
|
||||
const expectedZahlungen = 3400;
|
||||
const expectedAuslagen = -505;
|
||||
const expectedRestschuld = 4105;
|
||||
|
||||
console.log('\n✅ Erwartete Werte:');
|
||||
console.log(` Zahlungen: ${expectedZahlungen.toFixed(2)} €`);
|
||||
console.log(` Auslagen: ${expectedAuslagen.toFixed(2)} €`);
|
||||
console.log(` Restschuld: ${expectedRestschuld.toFixed(2)} €`);
|
||||
|
||||
console.log('\n' + '='.repeat(60));
|
||||
console.log('ERGEBNIS');
|
||||
console.log('='.repeat(60));
|
||||
|
||||
const zahlungOk = Math.abs(sumZahlungen - expectedZahlungen) < 0.01;
|
||||
const auslageOk = Math.abs(sumAuslagen - expectedAuslagen) < 0.01;
|
||||
const restschuldOk = Math.abs(parseFloat(nikiKredit.restschuld) - expectedRestschuld) < 0.01;
|
||||
|
||||
if (zahlungOk && auslageOk && restschuldOk) {
|
||||
console.log('✅ ALLE PRÜFUNGEN BESTANDEN!');
|
||||
console.log('');
|
||||
console.log('✅ Kredit "Niki Schulden" korrekt angelegt');
|
||||
console.log('✅ Alle 9 Zahlungen importiert');
|
||||
console.log('✅ Alle 4 Auslagen importiert');
|
||||
console.log('✅ Restschuld korrekt: 4105.00 €');
|
||||
console.log('✅ Verlauf ist vollständig');
|
||||
console.log('');
|
||||
console.log('🎉 Import kann als Template für Kerstin verwendet werden!');
|
||||
} else {
|
||||
console.log('❌ FEHLER gefunden:');
|
||||
if (!zahlungOk) console.log(` - Zahlungen: ${sumZahlungen} vs ${expectedZahlungen}`);
|
||||
if (!auslageOk) console.log(` - Auslagen: ${sumAuslagen} vs ${expectedAuslagen}`);
|
||||
if (!restschuldOk) console.log(` - Restschuld: ${nikiKredit.restschuld} vs ${expectedRestschuld}`);
|
||||
}
|
||||
|
||||
console.log('='.repeat(60));
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
Reference in New Issue
Block a user