import type { Request, Response, NextFunction } from 'express'; import * as reportesService from '../services/reportes.service.js'; export async function getEstadoResultados(req: Request, res: Response, next: NextFunction) { try { const { fechaInicio, fechaFin } = req.query; const now = new Date(); const inicio = (fechaInicio as string) || `${now.getFullYear()}-01-01`; const fin = (fechaFin as string) || now.toISOString().split('T')[0]; const data = await reportesService.getEstadoResultados(req.tenantPool!, inicio, fin); res.json(data); } catch (error) { console.error('[reportes] Error en getEstadoResultados:', error); next(error); } } export async function getFlujoEfectivo(req: Request, res: Response, next: NextFunction) { try { const { fechaInicio, fechaFin } = req.query; const now = new Date(); const inicio = (fechaInicio as string) || `${now.getFullYear()}-01-01`; const fin = (fechaFin as string) || now.toISOString().split('T')[0]; const data = await reportesService.getFlujoEfectivo(req.tenantPool!, inicio, fin); res.json(data); } catch (error) { next(error); } } export async function getComparativo(req: Request, res: Response, next: NextFunction) { try { const año = parseInt(req.query.año as string) || new Date().getFullYear(); const data = await reportesService.getComparativo(req.tenantPool!, año); res.json(data); } catch (error) { next(error); } } export async function getConcentradoRfc(req: Request, res: Response, next: NextFunction) { try { const { fechaInicio, fechaFin, tipo } = req.query; const now = new Date(); const inicio = (fechaInicio as string) || `${now.getFullYear()}-01-01`; const fin = (fechaFin as string) || now.toISOString().split('T')[0]; const tipoRfc = (tipo as 'cliente' | 'proveedor') || 'cliente'; const data = await reportesService.getConcentradoRfc(req.tenantPool!, inicio, fin, tipoRfc); res.json(data); } catch (error) { next(error); } }