fix: Update AP and AR controllers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Adrian Flores Cortes 2026-01-25 14:16:43 -06:00
parent 494a5f2306
commit 5775585a98
3 changed files with 30 additions and 20 deletions

View File

@ -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<void> => {
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<void> => {
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);

View File

@ -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<void> => {
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<void> => {
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<void> => {
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<void> => {
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<void> => {
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<void> => {
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);

View File

@ -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<void> => {
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<void> => {
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);