automatisch auf verrechnet setzen

This commit is contained in:
cay 2026-03-27 12:40:23 +00:00
parent fdcc4ca3a6
commit f2a6cfe0a4

View File

@ -217,11 +217,18 @@ router.get('/export/csv', requireAdmin, async (req, res) => {
`, [period]); `, [period]);
// Alle offenen Rechnungen dieser Periode als bezahlt markieren // Alle offenen Rechnungen dieser Periode als bezahlt markieren
// COLLATE explizit setzen wegen möglichem Collation-Konflikt // IDs zuerst laden um Collation-Probleme zu umgehen
await db.query( const [openInvoices] = await db.query(
"UPDATE invoices SET status='paid', paid_at=NOW() WHERE period=? COLLATE utf8mb4_unicode_ci AND status='open'", 'SELECT id FROM invoices WHERE CONVERT(period USING utf8mb4) = CONVERT(? USING utf8mb4) AND status = ?',
[period] [period, 'open']
); );
if (openInvoices.length > 0) {
const ids = openInvoices.map(r => r.id);
await db.query(
`UPDATE invoices SET status='paid', paid_at=NOW() WHERE id IN (${ids.join(',')})`,
[]
);
}
res.setHeader('Content-Type', 'text/csv; charset=utf-8'); res.setHeader('Content-Type', 'text/csv; charset=utf-8');
res.setHeader('Content-Disposition', `attachment; filename="SEPA_${period}.csv"`); res.setHeader('Content-Disposition', `attachment; filename="SEPA_${period}.csv"`);