datastage

This commit is contained in:
2025-08-23 00:00:30 -06:00
parent 8bc1e88aad
commit 0d3d20832f

View File

@@ -39,7 +39,7 @@ function RegistrosCargadosModal({ open, onClose, registros }) {
</tr>
</thead>
<tbody>
{Object.entries(registros).map(([registro, cantidad]) => (
{(registros && typeof registros === 'object' ? Object.entries(registros) : []).map(([registro, cantidad]) => (
<tr key={registro}>
<td className="px-2 py-1 border">{registro}</td>
<td className="px-2 py-1 border text-right">{cantidad}</td>
@@ -77,7 +77,12 @@ async function procesarDatastage(item, setDatastages, setSuccess, setError, setR
if (res.status === 200) {
// PATCH para marcar como procesado en backend
await patchProcesadoTrue(item);
setDatastages(prev => prev.map(d => d.id === item.id ? { ...d, procesado: true } : d));
setDatastages(prev => ({
...prev,
results: Array.isArray(prev.results)
? prev.results.map(d => d.id === item.id ? { ...d, procesado: true } : d)
: []
}));
// Mostrar el mensaje con task_id y detail si existen
if (data && data.task_id && data.detail) {
setSuccess(`Procesamiento iniciado.\nTask ID: ${data.task_id}\n${data.detail}`);
@@ -481,7 +486,7 @@ export default function Datastage() {
{datastages.results.length === 0 ? (
<div className="text-center text-gray-400 py-8">No hay datastages disponibles</div>
) : (
datastages.results.map(item => (
(Array.isArray(datastages.results) ? datastages.results : []).map(item => (
<div key={item.id} className="bg-white rounded-xl shadow border border-gray-200 p-4 flex flex-col gap-2">
<div className="flex items-center justify-between mb-2">
<span className="font-bold text-blue-800">#{item.id}</span>