From fdb19c7e47e584f3560f7c9c40ea778a062ecc38 Mon Sep 17 00:00:00 2001 From: Kevin Rosales Date: Sat, 16 Aug 2025 18:45:16 -0600 Subject: [PATCH] se modificaron filtros y campos de expedientes, se agrego paginacion se modificaron algunos campos de la tabla de pedimentoDetail. de igualforma se modificadron los filtros se modifico el filtrado de pedimento en Procesos.jsx y se modifico el filtrado --- src/pages/Expedientes.jsx | 20 ++-- src/pages/PedimentoDetail.jsx | 171 ++++++++++++++++++++++++++++++---- src/pages/Procesos.jsx | 4 +- 3 files changed, 164 insertions(+), 31 deletions(-) diff --git a/src/pages/Expedientes.jsx b/src/pages/Expedientes.jsx index 00eadf0..3305799 100644 --- a/src/pages/Expedientes.jsx +++ b/src/pages/Expedientes.jsx @@ -80,7 +80,7 @@ export default function Documents() { // Construir objeto de filtros const filters = { search: searchFilter || undefined, - pedimento_app: pedimentoFilter || undefined, + pedimento_app: pedimentoFilter || undefined, existe_expediente: expedienteFilter === 'all' ? undefined : expedienteFilter, contribuyente: contribuyenteFilter || undefined, curp_apoderado: curpApoderadoFilter || undefined, @@ -235,7 +235,7 @@ export default function Documents() { className="w-full border border-gray-300 rounded-xl px-3 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white shadow-sm transition-all duration-200 hover:shadow-md" /> - {/* Pedimento */} + {/* Pedimento_app */}
Fecha de pago Contribuyente CURP Apoderado - Importe total + Partidas Saldo disponible - Importe pedimento_app + Importe pedimento Expediente @@ -455,13 +455,13 @@ export default function Documents() { to={`/expedientes/pedimento/${ped.id}`} className="text-blue-600 hover:text-blue-800 font-semibold transition-colors duration-200 group-hover:underline" > - {ped.pedimento} + {ped.pedimento_app} {ped.fecha_pago} {ped.contribuyente} {ped.curp_apoderado} - ${ped.importe_total} + {ped.numero_partidas} ${ped.saldo_disponible} ${ped.importe_pedimento_app} @@ -540,7 +540,7 @@ export default function Documents() { to={`/expedientes/pedimento/${ped.id}`} className="text-lg font-semibold text-blue-600 hover:text-blue-800 transition-colors duration-200" > - {ped.pedimento} + {ped.pedimento_app}

{ped.fechapago}

@@ -569,15 +569,15 @@ export default function Documents() { )}
- Importe total: - ${ped.importe_total} + Partidas + ${ped.numero_partidas}
Saldo disponible: ${ped.saldo_disponible}
- Importe pedimento_app: + Importe pedimento: ${ped.importe_pedimento_app}
diff --git a/src/pages/PedimentoDetail.jsx b/src/pages/PedimentoDetail.jsx index 2bbad4f..5425a7d 100644 --- a/src/pages/PedimentoDetail.jsx +++ b/src/pages/PedimentoDetail.jsx @@ -326,6 +326,21 @@ const [docsPrev, setDocsPrev] = useState(null); setPreviewXmlHtml(''); }; + // Lógica para botones numerados de paginación + const totalPages = Math.max(1, Math.ceil(docsCount / pageSize)); + let pageNumbers = []; + if (totalPages <= 7) { + pageNumbers = Array.from({ length: totalPages }, (_, i) => i + 1); + } else { + if (page <= 4) { + pageNumbers = [1, 2, 3, 4, 5, '...', totalPages]; + } else if (page >= totalPages - 3) { + pageNumbers = [1, '...', totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages]; + } else { + pageNumbers = [1, '...', page - 1, page, page + 1, '...', totalPages]; + } + } + return (
@@ -481,7 +496,7 @@ const [docsPrev, setDocsPrev] = useState(null); Pedimento -
{pedimento.pedimento}
+
{pedimento.pedimento_app}
@@ -706,10 +721,10 @@ const [docsPrev, setDocsPrev] = useState(null); {/* Vista Desktop - Tabla */}
- - +
+ - - - - - - - - + {documents .filter(doc => { if (!documentTypeFilter) return true; @@ -798,8 +813,8 @@ const [docsPrev, setDocsPrev] = useState(null); return 0; }) .map((doc, index) => ( - - + - - - - - -
+ { + { setOrderBy('archivo'); setOrderDir(orderBy === 'archivo' && orderDir === 'asc' ? 'desc' : 'asc'); }}> Archivo {orderBy === 'archivo' && ({orderDir === 'asc' ? '▲' : '▼'})} { + { setOrderBy('document_type'); setOrderDir(orderBy === 'document_type' && orderDir === 'asc' ? 'desc' : 'asc'); }}> Tipo {orderBy === 'document_type' && ({orderDir === 'asc' ? '▲' : '▼'})} { + { setOrderBy('extension'); setOrderDir(orderBy === 'extension' && orderDir === 'asc' ? 'desc' : 'asc'); }}> Extensión {orderBy === 'extension' && ({orderDir === 'asc' ? '▲' : '▼'})} { + { setOrderBy('size'); setOrderDir(orderBy === 'size' && orderDir === 'asc' ? 'desc' : 'asc'); }}> Tamaño {orderBy === 'size' && ({orderDir === 'asc' ? '▲' : '▼'})} { + { setOrderBy('created_at'); setOrderDir(orderBy === 'created_at' && orderDir === 'asc' ? 'desc' : 'asc'); }}> Fecha {orderBy === 'created_at' && ({orderDir === 'asc' ? '▲' : '▼'})} + Acciones
+
+
{doc.archivo ? doc.archivo.split('/').pop() : 'Sin nombre'}
+ {getDocumentTypeName(doc.document_type)} + {doc.extension || 'N/A'} + {doc.size || 'N/A'} + {doc.created_at ? new Date(doc.created_at).toLocaleDateString('es-ES', { year: 'numeric', month: 'short', day: 'numeric' }) : 'N/A'} +
+ {/* Paginación Desktop */} +
+ {/* Izquierda: Selector de registros por página */} +
+ Registros por página + +
+ {/* Centro: Paginación numerada */} +
+ + + {pageNumbers.map((num, idx) => + num === '...' + ? + : + )} + + +
+ {/* Derecha: Rango de registros */} +
+ {docsCount > 0 + ? `Mostrando ${((page - 1) * pageSize) + 1} a ${Math.min(page * pageSize, docsCount)} de ${docsCount} registros` + : 'Mostrando 0 de 0 registros'} +
+
@@ -958,6 +1032,65 @@ const [docsPrev, setDocsPrev] = useState(null);
))} + {/* Controles de paginación móvil */} +
+ {/* Izquierda: Selector de registros por página */} +
+ Registros por página + +
+ {/* Centro: Paginación numerada */} +
+ + + {pageNumbers.map((num, idx) => + num === '...' + ? + : + )} + + +
+ {/* Derecha: Rango de registros */} +
+ {docsCount > 0 + ? `Mostrando ${((page - 1) * pageSize) + 1} a ${Math.min(page * pageSize, docsCount)} de ${docsCount} registros` + : 'Mostrando 0 de 0 registros'} +
+
)} diff --git a/src/pages/Procesos.jsx b/src/pages/Procesos.jsx index 7268130..3c52115 100644 --- a/src/pages/Procesos.jsx +++ b/src/pages/Procesos.jsx @@ -695,7 +695,7 @@ export default function Procesos() { try { // Construir filtros const filters = {}; - if (pedimentoPedimentoFilter) filters['pedimento__pedimento'] = pedimentoPedimentoFilter; + if (pedimentoPedimentoFilter) filters['pedimento__pedimento_app'] = pedimentoPedimentoFilter; if (estadoFilter) filters['estado'] = estadoFilter; if (servicioFilter) filters['servicio'] = servicioFilter; if (sortField) { @@ -1158,7 +1158,7 @@ export default function Procesos() { {typeof proc.pedimento === 'object' && proc.pedimento !== null - ? proc.pedimento.pedimento || JSON.stringify(proc.pedimento) + ? proc.pedimento.pedimento_app || proc.pedimento.pedimento || JSON.stringify(proc.pedimento) : proc.pedimento}