fix/T2025-09-056 corregir reportes de datastage para cargar en un solo documento

This commit is contained in:
Dulce
2026-05-18 11:41:10 -06:00
parent 078297cd61
commit 75885dc3a9

View File

@@ -198,6 +198,7 @@ export default function Reports() {
const [organizaciones, setOrganizaciones] = useState([]);
const [importadores, setImportadores] = useState([]);
const [rfcOptions, setRfcOptions] = useState([]);
useEffect(() => {
const fetchOrganizaciones = async () => {
@@ -241,6 +242,27 @@ export default function Reports() {
pedimento: ''
});
// Cargar RFCs cuando cambia la organización seleccionada en filtros globales
useEffect(() => {
const fetchRfcs = async () => {
if (!globalFilters.organizacion) {
setRfcOptions([]);
return;
}
try {
const url = `${import.meta.env.VITE_EFC_API_URL}/reports/exportmodel/datastage/?organizacion=${globalFilters.organizacion}`;
const res = await fetchWithAuth(url);
if (!res.ok) throw new Error('Error al obtener RFCs');
const data = await res.json();
setRfcOptions(data.rfcs || []);
} catch (err) {
console.error('Error fetching RFCs:', err);
setRfcOptions([]);
}
};
fetchRfcs();
}, [globalFilters.organizacion]);
const renderGlobalFilters = () => (
<div className="mb-6">
<div className="bg-white rounded-xl shadow-lg overflow-hidden border border-blue-100">
@@ -269,16 +291,17 @@ export default function Reports() {
value={globalFilters.organizacion || ''}
onChange={(e) => setGlobalFilters(prev => ({
...prev,
organizacion: e.target.value
organizacion: e.target.value,
rfc: ''
}))}
className="block w-full rounded-lg border-gray-300 pl-3 pr-10 py-2.5 text-gray-900 placeholder-gray-500
className="block w-full rounded-lg border-gray-300 pl-3 pr-10 py-2.5 text-gray-900 placeholder-gray-500
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 sm:text-sm
transition-all duration-200 bg-white appearance-none"
>
<option value="">Todas las organizaciones</option>
<option value="" disabled>Selecciona una organización</option>
{organizaciones.results && organizaciones.results.map(org => (
<option key={org.id} value={org.id}>
{org.nombre} {/* Usar el campo 'nombre' que sí existe */}
{org.nombre}
</option>
))}
</select>
@@ -318,13 +341,11 @@ export default function Reports() {
}))}
className="w-full px-3 py-2 border border-green-300 rounded-md shadow-sm focus:ring-2 focus:ring-green-500 focus:border-green-500 transition-all duration-200 bg-white text-slate-900 text-sm font-mono uppercase"
style={{ textTransform: 'uppercase' }}
disabled={!globalFilters.organizacion}
>
<option value="" >Selecciona un RFC</option>
{importadores.filter(imp => {
if (!globalFilters.organizacion) return true;
return imp.organizacion === globalFilters.organizacion;
}).map(imp => (
<option key={imp.rfc} value={imp.rfc}>{imp.rfc}</option>
<option value="">Todos los RFC</option>
{rfcOptions.map(rfc => (
<option key={rfc} value={rfc}>{rfc}</option>
))}
</select>
<div className="absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none">
@@ -807,7 +828,12 @@ export default function Reports() {
.map(([modelo]) => modelo);
if (modelosConCampos.length === 0) {
alert('Por favor selecciona al menos un campo en algún modelo');
showMessage('Por favor selecciona al menos un campo en algún modelo', 'error');
return;
}
if (!globalFilters.organizacion) {
showMessage('Debes seleccionar una organización antes de generar el reporte', 'error');
return;
}