Initial commit - Stand 26.04.2026
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* Restschuld für Niki korrigieren
|
||||
*/
|
||||
|
||||
const http = require('http');
|
||||
|
||||
function apiCall(method, endpoint, data = null) {
|
||||
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);
|
||||
if (data) req.write(JSON.stringify(data));
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log('Korrigiere Restschuld für Niki...\n');
|
||||
|
||||
// Alle Kredite holen
|
||||
const kredite = await apiCall('GET', '/kredite');
|
||||
const nikiKredit = kredite.find(k => k.name?.toLowerCase().includes('niki'));
|
||||
|
||||
if (!nikiKredit) {
|
||||
console.log('Kredit nicht gefunden');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Gefunden: ${nikiKredit.name} (${nikiKredit.id})`);
|
||||
console.log(`Aktuelle Restschuld: ${nikiKredit.restschuld} €`);
|
||||
console.log(`Ursprungsschuld: ${nikiKredit.ursprungsschuld} €`);
|
||||
|
||||
// Zahlungen holen
|
||||
const zahlungen = await apiCall('GET', `/kredite/${nikiKredit.id}/zahlungen`);
|
||||
|
||||
const sumZahlungen = zahlungen
|
||||
.filter(z => z.typ === 'zahlung')
|
||||
.reduce((sum, z) => sum + parseFloat(z.betrag), 0);
|
||||
const sumAuslagen = zahlungen
|
||||
.filter(z => z.typ === 'auslage')
|
||||
.reduce((sum, z) => sum + parseFloat(z.betrag), 0);
|
||||
|
||||
console.log(`\nSumme Zahlungen: ${sumZahlungen} €`);
|
||||
console.log(`Summe Auslagen: ${sumAuslagen} €`);
|
||||
|
||||
// Korrekte Restschuld berechnen
|
||||
const korrekteRestschuld = 7000 - sumZahlungen + Math.abs(sumAuslagen);
|
||||
console.log(`\nBerechnete Restschuld: ${korrekteRestschuld} €`);
|
||||
|
||||
// Patch via PUT
|
||||
const updateResult = await apiCall('PUT', `/kredite/${nikiKredit.id}`, {
|
||||
...nikiKredit,
|
||||
restschuld: korrekteRestschuld
|
||||
});
|
||||
|
||||
console.log(`\n✅ Restschuld korrigiert: ${updateResult.restschuld} €`);
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
Reference in New Issue
Block a user