feat(buchhaltung): budget types, erstattungen, recurring tab move, overview dividers, order completion guard
This commit is contained in:
@@ -486,6 +486,33 @@ class BuchhaltungController {
|
||||
}
|
||||
}
|
||||
|
||||
// ── Erstattungen ────────────────────────────────────────────────────────────
|
||||
|
||||
async createErstattung(req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const data = await buchhaltungService.createErstattung({
|
||||
...req.body,
|
||||
erstellt_von: req.user!.id,
|
||||
});
|
||||
res.status(201).json({ success: true, data });
|
||||
} catch (error) {
|
||||
logger.error('BuchhaltungController.createErstattung', { error });
|
||||
res.status(500).json({ success: false, message: 'Erstattung konnte nicht erstellt werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async getErstattungLinks(req: Request, res: Response): Promise<void> {
|
||||
const id = parseInt(param(req, 'id'), 10);
|
||||
if (isNaN(id)) { res.status(400).json({ success: false, message: 'Ungültige ID' }); return; }
|
||||
try {
|
||||
const data = await buchhaltungService.getErstattungLinks(id);
|
||||
res.json({ success: true, data });
|
||||
} catch (error) {
|
||||
logger.error('BuchhaltungController.getErstattungLinks', { error });
|
||||
res.status(500).json({ success: false, message: 'Erstattungsverknüpfungen konnten nicht geladen werden' });
|
||||
}
|
||||
}
|
||||
|
||||
// ── Freigaben ────────────────────────────────────────────────────────────────
|
||||
|
||||
async requestFreigabe(req: Request, res: Response): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user