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 && (