72 lines
3.1 KiB
JavaScript
72 lines
3.1 KiB
JavaScript
import { fetchWithAuth } from '../fetchWithAuth';
|
|
import { extractApiError } from './apiError';
|
|
|
|
const API_BASE_URL = import.meta.env.VITE_EFC_API_URL;
|
|
|
|
export const fetchPedimentoEdocuments = async (pedimentoId, page = 1, pageSize = 10, filters = {}) => {
|
|
const params = new URLSearchParams({
|
|
pedimento: pedimentoId,
|
|
page: page.toString(),
|
|
page_size: pageSize.toString(),
|
|
});
|
|
|
|
if (filters.numero_edocument) params.append('numero_edocument__icontains', filters.numero_edocument);
|
|
if (filters.clave) params.append('clave__icontains', filters.clave);
|
|
if (filters.descripcion) params.append('descripcion__icontains', filters.descripcion);
|
|
// Estado de 3 valores (pendiente | descargado | error) — T2026-05-027
|
|
if (filters.edocument_estado) params.append('edocument_estado', filters.edocument_estado);
|
|
if (filters.acuse_estado) params.append('acuse_estado', filters.acuse_estado);
|
|
// Filtros booleanos legados (compatibilidad)
|
|
if (filters.edocument_descargado !== undefined && filters.edocument_descargado !== '') params.append('edocument_descargado', filters.edocument_descargado);
|
|
if (filters.acuse_descargado !== undefined && filters.acuse_descargado !== '') params.append('acuse_descargado', filters.acuse_descargado);
|
|
if (filters.date_from || filters.created_at__gte) params.append('created_at__gte', filters.date_from || filters.created_at__gte);
|
|
if (filters.date_to || filters.created_at__lte) params.append('created_at__lte', filters.date_to || filters.created_at__lte);
|
|
|
|
const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/?${params}`);
|
|
if (!response.ok) throw new Error(await extractApiError(response));
|
|
|
|
const data = await response.json();
|
|
return { results: data.results, count: data.count, next: data.next, previous: data.previous };
|
|
};
|
|
|
|
export const downloadEdocument = async (edocId) => {
|
|
const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/${edocId}/download/`);
|
|
if (!response.ok) throw new Error(await extractApiError(response));
|
|
|
|
const blob = await response.blob();
|
|
const url = window.URL.createObjectURL(blob);
|
|
const a = document.createElement('a');
|
|
a.style.display = 'none';
|
|
a.href = url;
|
|
a.download = `EDOC_${edocId}.pdf`;
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
window.URL.revokeObjectURL(url);
|
|
document.body.removeChild(a);
|
|
};
|
|
|
|
export const downloadAcuseEdocument = async (edocId) => {
|
|
const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/${edocId}/download-acuse/`);
|
|
if (!response.ok) throw new Error(await extractApiError(response));
|
|
|
|
const blob = await response.blob();
|
|
const url = window.URL.createObjectURL(blob);
|
|
const a = document.createElement('a');
|
|
a.style.display = 'none';
|
|
a.href = url;
|
|
a.download = `ACUSE_EDOC_${edocId}.pdf`;
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
window.URL.revokeObjectURL(url);
|
|
document.body.removeChild(a);
|
|
};
|
|
|
|
export const resetAcuseEdocument = async (edocId) => {
|
|
const response = await fetchWithAuth(
|
|
`${API_BASE_URL}/customs/edocuments/${edocId}/reset-acuse/`,
|
|
{ method: 'POST' }
|
|
);
|
|
if (!response.ok) throw new Error(await extractApiError(response));
|
|
return response.json();
|
|
};
|