diff --git a/src/pages/Auditor.jsx b/src/pages/Auditor.jsx
index 62d55d8..2599046 100644
--- a/src/pages/Auditor.jsx
+++ b/src/pages/Auditor.jsx
@@ -509,11 +509,19 @@ const handleAuditarEDocumentPedimento = async (pedimentoId) => {
let endpoint = `${API_URL}/customs/auditor/peticion-respuesta/pedimento-vu/`;
const response = await postWithAuth(endpoint, {
- pedimento_id: pedimento.id
+ pedimento_id: pedimento.id,
+ vista: vista_auditar
});
if (!response.ok) {
- showMessage(`Error al obtener datos para vista ${vista_auditar}`, 'error');
+ // Obtener el JSON de error que devuelve Django
+ const errorData = await response.json();
+ const errorMessage = errorData.error ||
+ `Error ${response.status}: ${response.statusText}`;
+
+ showMessage(`No se encontró datos para auditoría: ${getVistaNombre(vista_auditar)}. Detalle: ${errorMessage}`, 'warning');
+
+ // showMessage(`Error al obtener datos para vista ${vista_auditar}`, 'error');
setDetalleModalXml(null);
return;
}
@@ -625,7 +633,14 @@ const handleAuditarEDocumentPedimento = async (pedimentoId) => {
}
};
- const handleSwitchPeticion = (vista_auditar, pedimentoId) => {
+ const handleSwitchPeticion = (vista_auditar, pedimentoId, doc = null) => {
+
+ // Si se pasa un documento específico, úsalo
+ if (doc) {
+ previewDocument(doc);
+ return;
+ }
+
switch (vista_auditar) {
case 'pc':
handlePreviewPeticionPedimentoVU(pedimentoId);
@@ -655,7 +670,13 @@ const handleAuditarEDocumentPedimento = async (pedimentoId) => {
}
};
- const handleSwitchRespuesta= (vista_auditar, pedimentoId) => {
+ const handleSwitchRespuesta= (vista_auditar, pedimentoId, doc = null) => {
+
+ if (doc) {
+ previewDocument(doc);
+ return;
+ }
+
switch (vista_auditar) {
case 'pc':
handlePreviewRespuestaPedimentoVU(pedimentoId);
@@ -1879,63 +1900,229 @@ function formatXml(xml) {
{/* Modal de Vista Previa XML */}
{showXmlModal && xmlData && (
-
-
{getVistaNombre(xmlData.vista)} - {xmlData.pedimento_app}
+
+
+ {getVistaNombre(xmlData.vista)} - {xmlData.pedimento_app}
+
-
-
+
+
Contribuyente: {xmlData.contribuyente || 'N/A'}
Organización: {xmlData.organizacion || 'N/A'}
Creado: {new Date(xmlData.creado).toLocaleString('es-MX') || 'N/A'}
- {/* Enlace para Archivo de Petición */}
-
-
-
-
Archivo de Petición
-
XML enviado a VU
+ {/* Si hay múltiples documentos - nueva funcionalidad para manejar listado */}
+ {(xmlData.documentos_peticiones || xmlData.documentos_respuestas) ? (
+ <>
+ {/* Mostrar documentos de peticiones si existen */}
+ {xmlData.documentos_peticiones && xmlData.documentos_peticiones.length > 0 && (
+
+
+
+
+
+
Peticiones ({xmlData.total_documentos_peticiones || 0})
+
+
+
+
Click para expandir/colapsar
+
+
+
+ {xmlData.documentos_peticiones.map((doc, index) => (
+
+
+
+
+ {doc.archivo_original || `Documento ${index + 1}`}
+
+
+ {doc.tipo && (
+
+ {doc.tipo}
+
+ )}
+ {doc.size && (
+
+ {formatFileSize(doc.size)}
+
+ )}
+ {doc.extension && (
+
+ {doc.extension.toUpperCase()}
+
+ )}
+
+
+
+
+
+
+
+
+ {/* Información adicional del documento */}
+
+
+ {doc.creado_en && (
+
+ Creado: {new Date(doc.creado_en).toLocaleString('es-MX')}
+
+ )}
+ {doc.actualizado_en && (
+
+ Actualizado: {new Date(doc.actualizado_en).toLocaleString('es-MX')}
+
+ )}
+
+
+
+ ))}
+
+
+
+ )}
+
+ {/* Mostrar documentos de respuestas si existen */}
+ {xmlData.documentos_respuestas && xmlData.documentos_respuestas.length > 0 && (
+
+
+
+
+
+
Respuestas ({xmlData.total_documentos_respuestas || 0})
+
+
+
+
Click para expandir/colapsar
+
+
+
+ {xmlData.documentos_respuestas.map((doc, index) => (
+
+
+
+
+ {doc.archivo_original || `Documento ${index + 1}`}
+
+
+ {doc.tipo && (
+
+ {doc.tipo}
+
+ )}
+ {doc.size && (
+
+ {formatFileSize(doc.size)}
+
+ )}
+ {doc.extension && (
+
+ {doc.extension.toUpperCase()}
+
+ )}
+
+
+
+
+
+
+
+
+ {/* Información adicional del documento */}
+
+
+ {doc.creado_en && (
+
+ Creado: {new Date(doc.creado_en).toLocaleString('es-MX')}
+
+ )}
+ {doc.actualizado_en && (
+
+ Actualizado: {new Date(doc.actualizado_en).toLocaleString('es-MX')}
+
+ )}
+
+
+
+ ))}
+
+
+
+ )}
+ >
+ ) : (
+ /* Para compatibilidad hacia atrás - caso de un solo documento */
+ <>
+ {/* Enlace para Archivo de Petición */}
+
+
+
+
Archivo de Petición
+
XML enviado a VU
+
+
+
-
-
-
-
- {/* Enlace para Archivo de Respuesta */}
-
-
-
-
Archivo de Respuesta
-
XML recibido de VU
+
+ {/* Enlace para Archivo de Respuesta */}
+
+
+
+
Archivo de Respuesta
+
XML recibido de VU
+
+
+
-
-
-
+ >
+ )}
{/* Botón para ver datos crudos (opcional) */}
-
+ {/*
Ver datos completos
{JSON.stringify(xmlData, null, 2)}
-
+ */}
@@ -1943,6 +2130,7 @@ function formatXml(xml) {
)}
+
{/* Modal de vista previa mejorado */}
{previewOpen && (