diff --git a/src/modules/finance/controllers/bank-reconciliation.controller.ts b/src/modules/finance/controllers/bank-reconciliation.controller.ts index 766a8a3..6d0ef75 100644 --- a/src/modules/finance/controllers/bank-reconciliation.controller.ts +++ b/src/modules/finance/controllers/bank-reconciliation.controller.ts @@ -319,7 +319,7 @@ export function createBankReconciliationController(dataSource: DataSource): Rout * GET /reconciliations/:id * Obtiene una conciliación por ID */ - router.get('/reconciliations/:id', async (req: Request, res: Response) => { + router.get('/reconciliations/:id', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -328,7 +328,8 @@ export function createBankReconciliationController(dataSource: DataSource): Rout const reconciliation = await service.findReconciliationById(ctx, req.params.id); if (!reconciliation) { - return res.status(404).json({ error: 'Conciliación no encontrada' }); + res.status(404).json({ error: 'Conciliación no encontrada' }); + return; } res.json(reconciliation); @@ -377,7 +378,7 @@ export function createBankReconciliationController(dataSource: DataSource): Rout * POST /reconciliations/:id/reconcile-movement * Concilia un movimiento */ - router.post('/reconciliations/:id/reconcile-movement', async (req: Request, res: Response) => { + router.post('/reconciliations/:id/reconcile-movement', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -386,7 +387,8 @@ export function createBankReconciliationController(dataSource: DataSource): Rout const { movementId } = req.body; if (!movementId) { - return res.status(400).json({ error: 'Se requiere ID del movimiento' }); + res.status(400).json({ error: 'Se requiere ID del movimiento' }); + return; } const reconciliation = await service.reconcileMovement(ctx, req.params.id, movementId); diff --git a/src/modules/finance/controllers/cash-flow.controller.ts b/src/modules/finance/controllers/cash-flow.controller.ts index 5b72ab0..8b02df4 100644 --- a/src/modules/finance/controllers/cash-flow.controller.ts +++ b/src/modules/finance/controllers/cash-flow.controller.ts @@ -67,7 +67,7 @@ export function createCashFlowController(dataSource: DataSource): Router { * GET /summary * Obtiene resumen de flujo de efectivo */ - router.get('/summary', async (req: Request, res: Response) => { + router.get('/summary', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -78,7 +78,8 @@ export function createCashFlowController(dataSource: DataSource): Router { const endDate = new Date(req.query.endDate as string); if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -121,7 +122,7 @@ export function createCashFlowController(dataSource: DataSource): Router { * GET /:id * Obtiene una proyección por ID */ - router.get('/:id', async (req: Request, res: Response) => { + router.get('/:id', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -130,7 +131,8 @@ export function createCashFlowController(dataSource: DataSource): Router { const projection = await service.findById(ctx, req.params.id); if (!projection) { - return res.status(404).json({ error: 'Proyección no encontrada' }); + res.status(404).json({ error: 'Proyección no encontrada' }); + return; } res.json(projection); @@ -217,7 +219,7 @@ export function createCashFlowController(dataSource: DataSource): Router { * POST /generate * Genera proyección automática para un periodo */ - router.post('/generate', async (req: Request, res: Response) => { + router.post('/generate', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -227,7 +229,8 @@ export function createCashFlowController(dataSource: DataSource): Router { const { periodStart, periodEnd, periodType, projectId, projectCode } = req.body; if (!periodStart || !periodEnd) { - return res.status(400).json({ error: 'Se requieren fechas de inicio y fin' }); + res.status(400).json({ error: 'Se requieren fechas de inicio y fin' }); + return; } const projection = await service.generateProjection( @@ -247,7 +250,7 @@ export function createCashFlowController(dataSource: DataSource): Router { * POST /generate-multiple * Genera múltiples proyecciones (ej: 4 semanas) */ - router.post('/generate-multiple', async (req: Request, res: Response) => { + router.post('/generate-multiple', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -257,7 +260,8 @@ export function createCashFlowController(dataSource: DataSource): Router { const { startDate, weeks, projectId, projectCode } = req.body; if (!startDate || !weeks) { - return res.status(400).json({ error: 'Se requiere fecha de inicio y número de semanas' }); + res.status(400).json({ error: 'Se requiere fecha de inicio y número de semanas' }); + return; } const projections = await service.generateMultiplePeriods( diff --git a/src/modules/finance/controllers/reports.controller.ts b/src/modules/finance/controllers/reports.controller.ts index 8208235..7fa9375 100644 --- a/src/modules/finance/controllers/reports.controller.ts +++ b/src/modules/finance/controllers/reports.controller.ts @@ -47,7 +47,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /income-statement * Genera estado de resultados */ - router.get('/income-statement', async (req: Request, res: Response) => { + router.get('/income-statement', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -58,7 +58,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -81,7 +82,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /cash-flow-statement * Genera estado de flujo de efectivo */ - router.get('/cash-flow-statement', async (req: Request, res: Response) => { + router.get('/cash-flow-statement', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -92,7 +93,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -115,7 +117,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /trial-balance * Genera balanza de comprobación */ - router.get('/trial-balance', async (req: Request, res: Response) => { + router.get('/trial-balance', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -126,7 +128,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -150,7 +153,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /account-statement/:accountId * Genera estado de cuenta */ - router.get('/account-statement/:accountId', async (req: Request, res: Response) => { + router.get('/account-statement/:accountId', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -161,7 +164,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const report = await reportsService.generateAccountStatement( @@ -200,7 +204,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /export/sap * Exporta pólizas para SAP */ - router.get('/export/sap', async (req: Request, res: Response) => { + router.get('/export/sap', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -211,7 +215,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -236,7 +241,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /export/contpaqi * Exporta pólizas para CONTPAQi */ - router.get('/export/contpaqi', async (req: Request, res: Response) => { + router.get('/export/contpaqi', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -247,7 +252,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -276,7 +282,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /export/cfdi-polizas * Exporta pólizas en formato CFDI */ - router.get('/export/cfdi-polizas', async (req: Request, res: Response) => { + router.get('/export/cfdi-polizas', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -287,7 +293,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const options = { @@ -344,7 +351,7 @@ export function createReportsController(dataSource: DataSource): Router { * GET /export/trial-balance * Exporta balanza de comprobación */ - router.get('/export/trial-balance', async (req: Request, res: Response) => { + router.get('/export/trial-balance', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -355,7 +362,8 @@ export function createReportsController(dataSource: DataSource): Router { const periodEnd = new Date(req.query.periodEnd as string); if (isNaN(periodStart.getTime()) || isNaN(periodEnd.getTime())) { - return res.status(400).json({ error: 'Fechas inválidas' }); + res.status(400).json({ error: 'Fechas inválidas' }); + return; } const format = (req.query.format as 'csv' | 'xml' | 'json') || 'csv'; @@ -387,7 +395,7 @@ export function createReportsController(dataSource: DataSource): Router { * POST /import/chart-of-accounts * Importa catálogo de cuentas */ - router.post('/import/chart-of-accounts', async (req: Request, res: Response) => { + router.post('/import/chart-of-accounts', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -396,7 +404,8 @@ export function createReportsController(dataSource: DataSource): Router { const { data, format } = req.body; if (!data || !format) { - return res.status(400).json({ error: 'Se requieren datos y formato' }); + res.status(400).json({ error: 'Se requieren datos y formato' }); + return; } const result = await integrationService.importChartOfAccounts(ctx, data, format);