diff --git a/apps/web/app/(dashboard)/conciliacion/page.tsx b/apps/web/app/(dashboard)/conciliacion/page.tsx index 70377eb..cac4618 100644 --- a/apps/web/app/(dashboard)/conciliacion/page.tsx +++ b/apps/web/app/(dashboard)/conciliacion/page.tsx @@ -40,8 +40,8 @@ function FilterHeader({ }: { label: string; filterKey: string; - filters: { rfcEmisor: string; nombreEmisor: string; rfcReceptor: string; nombreReceptor: string }; - setFilters: React.Dispatch>; + filters: Record; + setFilters: any; openFilter: string | null; setOpenFilter: (v: string | null) => void; suggestions: string[]; @@ -145,7 +145,7 @@ export default function ConciliacionPage() { const [openFilterPendientes, setOpenFilterPendientes] = useState(null); // Filtros por columna — Conciliadas - const [filtersConciliadas, setFiltersConciliadas] = useState({ rfcEmisor: '', nombreEmisor: '', rfcReceptor: '', nombreReceptor: '' }); + const [filtersConciliadas, setFiltersConciliadas] = useState({ rfcEmisor: '', nombreEmisor: '', rfcReceptor: '', nombreReceptor: '', banco: '' }); const [openFilterConciliadas, setOpenFilterConciliadas] = useState(null); const { user } = useAuthStore(); @@ -174,6 +174,7 @@ export default function ConciliacionPage() { nombreEmisor: [...new Set(allCfdis.map((c: any) => c.nombreEmisor).filter(Boolean))].sort(), rfcReceptor: [...new Set(allCfdis.map((c: any) => c.rfcReceptor).filter(Boolean))].sort(), nombreReceptor: [...new Set(allCfdis.map((c: any) => c.nombreReceptor).filter(Boolean))].sort(), + banco: [...new Set(conciliadas.map((c: any) => c.conciliacion?.banco).filter(Boolean))].sort(), }; // Score cards — tipo P usa monto_pago_mxn, otros usan total_mxn @@ -188,7 +189,7 @@ export default function ConciliacionPage() { setSortConciliadas(null); setFiltersPendientes({ rfcEmisor: '', nombreEmisor: '', rfcReceptor: '', nombreReceptor: '' }); setOpenFilterPendientes(null); - setFiltersConciliadas({ rfcEmisor: '', nombreEmisor: '', rfcReceptor: '', nombreReceptor: '' }); + setFiltersConciliadas({ rfcEmisor: '', nombreEmisor: '', rfcReceptor: '', nombreReceptor: '', banco: '' }); setOpenFilterConciliadas(null); }, [activeTab, fechaInicio, fechaFin, regimenSeleccionado]); @@ -238,12 +239,13 @@ export default function ConciliacionPage() { } }; - function matchesColumnFilters(c: any, filters: { rfcEmisor: string; nombreEmisor: string; rfcReceptor: string; nombreReceptor: string }) { + function matchesColumnFilters(c: any, filters: Record) { const rfcEmisorMatch = !filters.rfcEmisor || (c.rfcEmisor || '').toLowerCase().includes(filters.rfcEmisor.toLowerCase()); const nombreEmisorMatch = !filters.nombreEmisor || (c.nombreEmisor || '').toLowerCase().includes(filters.nombreEmisor.toLowerCase()); const rfcReceptorMatch = !filters.rfcReceptor || (c.rfcReceptor || '').toLowerCase().includes(filters.rfcReceptor.toLowerCase()); const nombreReceptorMatch = !filters.nombreReceptor || (c.nombreReceptor || '').toLowerCase().includes(filters.nombreReceptor.toLowerCase()); - return rfcEmisorMatch && nombreEmisorMatch && rfcReceptorMatch && nombreReceptorMatch; + const bancoMatch = !filters.banco || ((c.conciliacion?.banco || '') + ' ****' + (c.conciliacion?.terminacionCuenta || '')).toLowerCase().includes(filters.banco.toLowerCase()); + return rfcEmisorMatch && nombreEmisorMatch && rfcReceptorMatch && nombreReceptorMatch && bancoMatch; } function sortCfdis(list: any[], sort: { field: 'fecha' | 'total'; dir: 'asc' | 'desc' } | null) { @@ -519,7 +521,7 @@ export default function ConciliacionPage() { Total MXN Fecha Pago - Banco +