v1.23: Nebenkostenabrechnung als PDF aus Kosten- und Zaehlermodul
This commit is contained in:
@@ -14,6 +14,7 @@ const multer = require('multer')
|
||||
const { pool, init, sessionsAufraeumen } = require('./db')
|
||||
const { seed, seedeZaehler, seedeHaeuser, seedeKosten } = require('./seed')
|
||||
const mail = require('./mail')
|
||||
const { erzeugeAbrechnung } = require('./abrechnung')
|
||||
|
||||
const PORT = Number(process.env.PORT || 3000)
|
||||
const SESSION_DAUER_MS = 8 * 60 * 60 * 1000
|
||||
@@ -1364,6 +1365,24 @@ app.post('/api/ki-antwort', async (req, res, next) => {
|
||||
} catch (e) { next(e) }
|
||||
})
|
||||
|
||||
// ── Nebenkostenabrechnung als PDF (v1.23) ─────────────────────
|
||||
app.post('/api/abrechnungen', auth, adminOnly, async (req, res, next) => {
|
||||
try {
|
||||
const unitId = String((req.body || {}).unitId || '')
|
||||
const jahr = Number((req.body || {}).jahr)
|
||||
if (!unitId || !Number.isInteger(jahr) || jahr < 2000 || jahr > 2100)
|
||||
return res.status(400).json({ fehler: 'Wohnung und gültiges Jahr erforderlich.' })
|
||||
const { dokument, daten } = await erzeugeAbrechnung(pool, unitId, jahr)
|
||||
console.log(`[abrechnung] ${dokument.title} erzeugt (${dokument.size})`)
|
||||
res.json({ dokument: mapDocument(dokument), zusammenfassung: {
|
||||
summe: daten.summe, vorauszahlung: daten.vorauszahlung, differenz: daten.differenz,
|
||||
} })
|
||||
} catch (e) {
|
||||
if (e.status) return res.status(e.status).json({ fehler: e.message })
|
||||
next(e)
|
||||
}
|
||||
})
|
||||
|
||||
// ── Fehlerbehandlung ─────────────────────────────────────────
|
||||
app.use((err, _req, res, _next) => {
|
||||
console.error('[api]', err)
|
||||
|
||||
Reference in New Issue
Block a user