Merge pull request 'Modificaciones a pedimento Detail' (#3) from PedimentoDetail into main
Reviewed-on: #3
This commit is contained in:
@@ -1524,6 +1524,65 @@ export default function PedimentoDetail() {
|
||||
};
|
||||
|
||||
// Funciones para procesar peticiones
|
||||
// Descargar todos los AcuseCoves
|
||||
// Ejecutar la acción de procesar AcuseCove para todos los COVEs visibles
|
||||
// Ejecutar la acción de procesar AcuseCove solo para los que no están descargados
|
||||
const handleDownloadAllAcuseCoves = async () => {
|
||||
if (!coves || coves.length === 0) {
|
||||
showMessage('No hay AcuseCoves por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = coves.filter(cove => !cove.acuse_cove_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay AcuseCoves pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const cove of pendientes) {
|
||||
try {
|
||||
await handleAcuseCoveProcess(cove);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) {
|
||||
showMessage(`${successCount} AcuseCove(s) procesados exitosamente`, 'success');
|
||||
}
|
||||
if (errorCount > 0) {
|
||||
showMessage(`${errorCount} AcuseCove(s) no se pudieron procesar`, 'error');
|
||||
}
|
||||
};
|
||||
|
||||
// Ejecutar la acción de procesar COVE solo para los que no están descargados
|
||||
const handleDownloadAllCoves = async () => {
|
||||
if (!coves || coves.length === 0) {
|
||||
showMessage('No hay COVEs por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = coves.filter(cove => !cove.cove_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay COVEs pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const cove of pendientes) {
|
||||
try {
|
||||
await handleCoveProcess(cove);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) {
|
||||
showMessage(`${successCount} COVE(s) procesados exitosamente`, 'success');
|
||||
}
|
||||
if (errorCount > 0) {
|
||||
showMessage(`${errorCount} COVE(s) no se pudieron procesar`, 'error');
|
||||
}
|
||||
};
|
||||
const handleCoveRequest = async (cove) => {
|
||||
console.log('Request cove:', cove);
|
||||
showMessage(`Procesando petición para COVE #${cove.numero_cove}...`, 'info');
|
||||
@@ -2762,7 +2821,37 @@ export default function PedimentoDetail() {
|
||||
</div>
|
||||
) : (
|
||||
<div className="space-y-4">
|
||||
{/* Tabla de partidas */}
|
||||
{/* Botón Descargar partidas y tabla de partidas */}
|
||||
<div className="flex justify-end mb-2">
|
||||
<button
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors"
|
||||
onClick={async () => {
|
||||
if (!partidas || partidas.length === 0) {
|
||||
showMessage('No hay partidas para procesar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = partidas.filter(p => !p.descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay partidas pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const partida of pendientes) {
|
||||
try {
|
||||
await handlePartidaRequest(partida);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) showMessage(`${successCount} partida(s) procesadas exitosamente`, 'success');
|
||||
if (errorCount > 0) showMessage(`${errorCount} partida(s) no se pudieron procesar`, 'error');
|
||||
}}
|
||||
>
|
||||
Descargar partidas
|
||||
</button>
|
||||
</div>
|
||||
<div className="overflow-hidden shadow ring-1 ring-black ring-opacity-5 rounded-lg">
|
||||
<div className="overflow-x-auto">
|
||||
<table className="min-w-full divide-y divide-gray-300">
|
||||
@@ -2957,6 +3046,24 @@ export default function PedimentoDetail() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Botones para descargar todos los AcuseCoves y COVEs */}
|
||||
{coves.length > 0 && (
|
||||
<div className="mb-2 flex flex-col sm:flex-row gap-2 justify-end">
|
||||
<button
|
||||
onClick={handleDownloadAllAcuseCoves}
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500"
|
||||
>
|
||||
Descargar todos los AcuseCoves
|
||||
</button>
|
||||
<button
|
||||
onClick={handleDownloadAllCoves}
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
|
||||
>
|
||||
Descargar todos los COVEs
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Filtros */}
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4 p-3 sm:p-4 bg-gray-50 rounded-lg border">
|
||||
<div>
|
||||
@@ -3230,6 +3337,64 @@ export default function PedimentoDetail() {
|
||||
<div className="p-6">
|
||||
{/* Header de la sección */}
|
||||
<div className="mb-6 space-y-4">
|
||||
<div className="flex flex-col gap-2 mb-2 sm:flex-row sm:justify-end">
|
||||
<button
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors"
|
||||
onClick={async () => {
|
||||
if (!edocs || edocs.length === 0) {
|
||||
showMessage('No hay EDocs para procesar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = edocs.filter(e => !e.edocument_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay EDocs pendientes por procesar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const edoc of pendientes) {
|
||||
try {
|
||||
await handleEdocProcess(edoc);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) showMessage(`${successCount} EDoc(s) procesados exitosamente`, 'success');
|
||||
if (errorCount > 0) showMessage(`${errorCount} EDoc(s) no se pudieron procesar`, 'error');
|
||||
}}
|
||||
>
|
||||
Descargar todos los EDocs
|
||||
</button>
|
||||
<button
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 transition-colors"
|
||||
onClick={async () => {
|
||||
if (!edocs || edocs.length === 0) {
|
||||
showMessage('No hay acuses de EDocs para descargar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = edocs.filter(e => !e.acuse_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay acuses de EDocs pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const edoc of pendientes) {
|
||||
try {
|
||||
await handleAcuseEdocDownload(edoc);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) showMessage(`${successCount} acuse(s) de EDoc descargados exitosamente`, 'success');
|
||||
if (errorCount > 0) showMessage(`${errorCount} acuse(s) de EDoc no se pudieron descargar`, 'error');
|
||||
}}
|
||||
>
|
||||
Descargar Todos los acuses
|
||||
</button>
|
||||
</div>
|
||||
<div className="flex flex-wrap items-center justify-between gap-4">
|
||||
<div className="flex items-center space-x-4">
|
||||
<h3 className="text-lg font-semibold text-gray-900">
|
||||
@@ -3686,6 +3851,64 @@ export default function PedimentoDetail() {
|
||||
) : (
|
||||
<div className="space-y-4">
|
||||
{/* Tabla de Procesos */}
|
||||
<div className="flex flex-col gap-2 mb-2 sm:flex-row sm:justify-end">
|
||||
<button
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors"
|
||||
onClick={async () => {
|
||||
if (!edocs || edocs.length === 0) {
|
||||
showMessage('No hay EDocs para procesar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = edocs.filter(e => !e.edocument_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay EDocs pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const edoc of pendientes) {
|
||||
try {
|
||||
await handleEdocProcess(edoc);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) showMessage(`${successCount} EDoc(s) procesados exitosamente`, 'success');
|
||||
if (errorCount > 0) showMessage(`${errorCount} EDoc(s) no se pudieron procesar`, 'error');
|
||||
}}
|
||||
>
|
||||
Descargar todos los EDocs
|
||||
</button>
|
||||
<button
|
||||
className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 transition-colors"
|
||||
onClick={async () => {
|
||||
if (!edocs || edocs.length === 0) {
|
||||
showMessage('No hay Acuses de EDocs para procesar', 'info');
|
||||
return;
|
||||
}
|
||||
const pendientes = edocs.filter(e => !e.acuse_descargado);
|
||||
if (pendientes.length === 0) {
|
||||
showMessage('No hay Acuses de EDocs pendientes por descargar', 'info');
|
||||
return;
|
||||
}
|
||||
let successCount = 0;
|
||||
let errorCount = 0;
|
||||
for (const edoc of pendientes) {
|
||||
try {
|
||||
await handleAcuseEdocProcess(edoc);
|
||||
successCount++;
|
||||
} catch (error) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
if (successCount > 0) showMessage(`${successCount} Acuse(s) de EDoc procesados exitosamente`, 'success');
|
||||
if (errorCount > 0) showMessage(`${errorCount} Acuse(s) de EDoc no se pudieron procesar`, 'error');
|
||||
}}
|
||||
>
|
||||
Descargar todos los Acuses de EDocs
|
||||
</button>
|
||||
</div>
|
||||
<div className="overflow-hidden shadow ring-1 ring-black ring-opacity-5 rounded-lg">
|
||||
<div className="overflow-x-auto">
|
||||
<table className="min-w-full divide-y divide-gray-300">
|
||||
|
||||
Reference in New Issue
Block a user