From 5775585a980278dde67b0c23a9812f46052669ac Mon Sep 17 00:00:00 2001 From: Adrian Flores Cortes Date: Sun, 25 Jan 2026 14:16:43 -0600 Subject: [PATCH] fix: Update AP and AR controllers Co-Authored-By: Claude Opus 4.5 --- .../finance/controllers/ap.controller.ts | 10 ++++--- .../finance/controllers/ar.controller.ts | 30 +++++++++++-------- .../bank-reconciliation.controller.ts | 10 ++++--- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/modules/finance/controllers/ap.controller.ts b/src/modules/finance/controllers/ap.controller.ts index 9919dff..4959a68 100644 --- a/src/modules/finance/controllers/ap.controller.ts +++ b/src/modules/finance/controllers/ap.controller.ts @@ -182,7 +182,7 @@ export function createAPController(dataSource: DataSource): Router { * POST /:id/cancel * Cancela una cuenta por pagar */ - router.post('/:id/cancel', async (req: Request, res: Response) => { + router.post('/:id/cancel', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -191,7 +191,8 @@ export function createAPController(dataSource: DataSource): Router { const { reason } = req.body; if (!reason) { - return res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + return; } const ap = await service.cancel(ctx, req.params.id, reason); @@ -243,7 +244,7 @@ export function createAPController(dataSource: DataSource): Router { * POST /payments/:id/cancel * Cancela un pago */ - router.post('/payments/:id/cancel', async (req: Request, res: Response) => { + router.post('/payments/:id/cancel', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -252,7 +253,8 @@ export function createAPController(dataSource: DataSource): Router { const { reason } = req.body; if (!reason) { - return res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + return; } const payment = await service.cancelPayment(ctx, req.params.id, reason); diff --git a/src/modules/finance/controllers/ar.controller.ts b/src/modules/finance/controllers/ar.controller.ts index 3679800..b6e3fed 100644 --- a/src/modules/finance/controllers/ar.controller.ts +++ b/src/modules/finance/controllers/ar.controller.ts @@ -92,7 +92,7 @@ export function createARController(dataSource: DataSource): Router { * GET /collection-forecast * Obtiene pronóstico de cobranza */ - router.get('/collection-forecast', async (req: Request, res: Response) => { + router.get('/collection-forecast', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -103,7 +103,8 @@ export function createARController(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 = { @@ -122,7 +123,7 @@ export function createARController(dataSource: DataSource): Router { * GET /:id * Obtiene una cuenta por cobrar 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, @@ -131,7 +132,8 @@ export function createARController(dataSource: DataSource): Router { const ar = await service.findById(ctx, req.params.id); if (!ar) { - return res.status(404).json({ error: 'Cuenta por cobrar no encontrada' }); + res.status(404).json({ error: 'Cuenta por cobrar no encontrada' }); + return; } res.json(ar); @@ -180,7 +182,7 @@ export function createARController(dataSource: DataSource): Router { * POST /:id/cancel * Cancela una cuenta por cobrar */ - router.post('/:id/cancel', async (req: Request, res: Response) => { + router.post('/:id/cancel', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -189,7 +191,8 @@ export function createARController(dataSource: DataSource): Router { const { reason } = req.body; if (!reason) { - return res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + return; } const ar = await service.cancel(ctx, req.params.id, reason); @@ -203,7 +206,7 @@ export function createARController(dataSource: DataSource): Router { * POST /:id/write-off * Castiga una cuenta por cobrar */ - router.post('/:id/write-off', async (req: Request, res: Response) => { + router.post('/:id/write-off', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -212,7 +215,8 @@ export function createARController(dataSource: DataSource): Router { const { reason } = req.body; if (!reason) { - return res.status(400).json({ error: 'Se requiere motivo de castigo' }); + res.status(400).json({ error: 'Se requiere motivo de castigo' }); + return; } const ar = await service.writeOff(ctx, req.params.id, reason); @@ -226,7 +230,7 @@ export function createARController(dataSource: DataSource): Router { * POST /:id/collection-attempt * Registra intento de cobranza */ - router.post('/:id/collection-attempt', async (req: Request, res: Response) => { + router.post('/:id/collection-attempt', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -235,7 +239,8 @@ export function createARController(dataSource: DataSource): Router { const { notes } = req.body; if (!notes) { - return res.status(400).json({ error: 'Se requieren notas de la gestión' }); + res.status(400).json({ error: 'Se requieren notas de la gestión' }); + return; } const ar = await service.recordCollectionAttempt(ctx, req.params.id, notes); @@ -287,7 +292,7 @@ export function createARController(dataSource: DataSource): Router { * POST /collections/:id/cancel * Cancela un cobro */ - router.post('/collections/:id/cancel', async (req: Request, res: Response) => { + router.post('/collections/:id/cancel', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -296,7 +301,8 @@ export function createARController(dataSource: DataSource): Router { const { reason } = req.body; if (!reason) { - return res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + res.status(400).json({ error: 'Se requiere motivo de cancelación' }); + return; } const collection = await service.cancelCollection(ctx, req.params.id, reason); diff --git a/src/modules/finance/controllers/bank-reconciliation.controller.ts b/src/modules/finance/controllers/bank-reconciliation.controller.ts index ec4ad75..766a8a3 100644 --- a/src/modules/finance/controllers/bank-reconciliation.controller.ts +++ b/src/modules/finance/controllers/bank-reconciliation.controller.ts @@ -65,7 +65,7 @@ export function createBankReconciliationController(dataSource: DataSource): Rout * GET /accounts/:id * Obtiene una cuenta bancaria por ID */ - router.get('/accounts/:id', async (req: Request, res: Response) => { + router.get('/accounts/:id', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -74,7 +74,8 @@ export function createBankReconciliationController(dataSource: DataSource): Rout const account = await service.findAccountById(ctx, req.params.id); if (!account) { - return res.status(404).json({ error: 'Cuenta bancaria no encontrada' }); + res.status(404).json({ error: 'Cuenta bancaria no encontrada' }); + return; } res.json(account); @@ -178,7 +179,7 @@ export function createBankReconciliationController(dataSource: DataSource): Rout * GET /movements/:id * Obtiene un movimiento por ID */ - router.get('/movements/:id', async (req: Request, res: Response) => { + router.get('/movements/:id', async (req: Request, res: Response): Promise => { try { const ctx = { tenantId: req.headers['x-tenant-id'] as string, @@ -187,7 +188,8 @@ export function createBankReconciliationController(dataSource: DataSource): Rout const movement = await service.findMovementById(ctx, req.params.id); if (!movement) { - return res.status(404).json({ error: 'Movimiento no encontrado' }); + res.status(404).json({ error: 'Movimiento no encontrado' }); + return; } res.json(movement);