feat: Remove unused invoice edit and reference data API routes
This commit is contained in:
@@ -1,104 +0,0 @@
|
||||
import type { RequestHandler } from './$types';
|
||||
import { json, error } from '@sveltejs/kit';
|
||||
import { getAuthTokens, getActiveCompanyId, authenticatedFetch } from '$lib/server/api';
|
||||
|
||||
export const GET: RequestHandler = async ({ params, cookies, fetch }) => {
|
||||
const { accessToken } = getAuthTokens(cookies);
|
||||
|
||||
if (!accessToken) {
|
||||
throw error(401, 'Not authenticated');
|
||||
}
|
||||
|
||||
const companyId = await getActiveCompanyId(cookies, fetch);
|
||||
|
||||
if (!companyId) {
|
||||
throw error(400, 'No company selected');
|
||||
}
|
||||
|
||||
const invoiceId = parseInt(params.id);
|
||||
if (isNaN(invoiceId)) {
|
||||
throw error(400, 'Invalid invoice ID');
|
||||
}
|
||||
|
||||
try {
|
||||
// Cargar la factura y datos de referencia en paralelo
|
||||
const [
|
||||
invoiceResponse,
|
||||
invoiceTypesResponse,
|
||||
customsBrokersResponse,
|
||||
clientsResponse,
|
||||
providersResponse,
|
||||
currencyTypesResponse,
|
||||
transportTypesResponse,
|
||||
transportersResponse,
|
||||
vehiclesResponse,
|
||||
driversResponse,
|
||||
trailersResponse,
|
||||
customsSectionsResponse,
|
||||
codePedimentoRegimensResponse,
|
||||
sealsResponse,
|
||||
incotermsResponse,
|
||||
pedimentosResponse
|
||||
] = await Promise.all([
|
||||
authenticatedFetch(`v1/a76/invoices/${invoiceId}?company_id=${companyId}`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/invoice-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/customs-brokers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=client&page=1&page_size=1000`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=provider&page=1&page_size=1000`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/currency-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/transport-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/transporters/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/vehicles/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/drivers/?company_id=${companyId}`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/trailers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/customs-sections/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/code-pedimento-regimens/?page=1&page_size=1000', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/seals/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/incoterms/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/pedimentos/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch)
|
||||
]);
|
||||
|
||||
if (!invoiceResponse.ok) {
|
||||
throw error(invoiceResponse.status, 'Error loading invoice');
|
||||
}
|
||||
|
||||
const invoice = await invoiceResponse.json();
|
||||
const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] };
|
||||
const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] };
|
||||
const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] };
|
||||
const providers = providersResponse.ok ? await providersResponse.json() : { items: [] };
|
||||
const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] };
|
||||
const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] };
|
||||
const transporters = transportersResponse.ok ? await transportersResponse.json() : { items: [] };
|
||||
const vehicles = vehiclesResponse.ok ? await vehiclesResponse.json() : { items: [] };
|
||||
const drivers = driversResponse.ok ? await driversResponse.json() : { items: [] };
|
||||
const trailers = trailersResponse.ok ? await trailersResponse.json() : { items: [] };
|
||||
const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] };
|
||||
const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] };
|
||||
const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] };
|
||||
const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] };
|
||||
const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] };
|
||||
|
||||
return json({
|
||||
invoice,
|
||||
invoiceTypes: invoiceTypes.items || [],
|
||||
customsBrokers: customsBrokers.items || [],
|
||||
clients: clients.items || [],
|
||||
providers: providers.items || [],
|
||||
currencyTypes: currencyTypes.items || [],
|
||||
transportTypes: transportTypes.items || [],
|
||||
transporters: transporters.items || [],
|
||||
vehicles: vehicles.items || [],
|
||||
drivers: drivers.items || [],
|
||||
trailers: trailers.items || [],
|
||||
customsSections: customsSections.items || [],
|
||||
codePedimentoRegimens: codePedimentoRegimens.items || [],
|
||||
seals: seals.items || [],
|
||||
incoterms: incoterms.items || [],
|
||||
pedimentos: pedimentos.items || []
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error loading invoice edit data:', err);
|
||||
throw error(500, 'Error loading invoice');
|
||||
}
|
||||
};
|
||||
@@ -1,89 +0,0 @@
|
||||
import type { RequestHandler } from './$types';
|
||||
import { json } from '@sveltejs/kit';
|
||||
import { getAuthTokens, getActiveCompanyId, authenticatedFetch } from '$lib/server/api';
|
||||
|
||||
export const GET: RequestHandler = async ({ cookies, fetch }) => {
|
||||
const { accessToken } = getAuthTokens(cookies);
|
||||
|
||||
if (!accessToken) {
|
||||
return json({ error: 'Not authenticated' }, { status: 401 });
|
||||
}
|
||||
|
||||
const companyId = await getActiveCompanyId(cookies, fetch);
|
||||
|
||||
if (!companyId) {
|
||||
return json({ error: 'No company selected' }, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
// Cargar todos los datos de referencia en paralelo
|
||||
const [
|
||||
invoiceTypesResponse,
|
||||
customsBrokersResponse,
|
||||
clientsResponse,
|
||||
providersResponse,
|
||||
currencyTypesResponse,
|
||||
transportTypesResponse, transportersResponse,
|
||||
vehiclesResponse,
|
||||
driversResponse,
|
||||
trailersResponse,
|
||||
customsSectionsResponse,
|
||||
codePedimentoRegimensResponse, sealsResponse,
|
||||
incotermsResponse,
|
||||
pedimentosResponse
|
||||
] = await Promise.all([
|
||||
authenticatedFetch('v1/public/refrence_data/invoice-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/customs-brokers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=client&page=1&page_size=1000`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=provider&page=1&page_size=1000`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/currency-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/transport-types/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/transporters/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/vehicles/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/drivers/?company_id=${companyId}`, {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/transportation/trailers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/customs-sections/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/code-pedimento-regimens/?page=1&page_size=1000', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/seals/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
||||
authenticatedFetch('v1/public/refrence_data/incoterms/?page=1&page_size=100', {}, cookies, fetch),
|
||||
authenticatedFetch(`v1/a76/pedimentos/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch)
|
||||
]);
|
||||
|
||||
const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] };
|
||||
const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] };
|
||||
const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] };
|
||||
const providers = providersResponse.ok ? await providersResponse.json() : { items: [] };
|
||||
const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] };
|
||||
const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] };
|
||||
const transporters = transportersResponse.ok ? await transportersResponse.json() : { items: [] };
|
||||
const vehicles = vehiclesResponse.ok ? await vehiclesResponse.json() : { items: [] };
|
||||
const drivers = driversResponse.ok ? await driversResponse.json() : { items: [] };
|
||||
const trailers = trailersResponse.ok ? await trailersResponse.json() : { items: [] };
|
||||
const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] };
|
||||
const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] };
|
||||
const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] };
|
||||
const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] };
|
||||
const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] };
|
||||
|
||||
return json({
|
||||
invoiceTypes: invoiceTypes.items || [],
|
||||
customsBrokers: customsBrokers.items || [],
|
||||
clients: clients.items || [],
|
||||
providers: providers.items || [],
|
||||
currencyTypes: currencyTypes.items || [],
|
||||
transportTypes: transportTypes.items || [],
|
||||
transporters: transporters.items || [],
|
||||
vehicles: vehicles.items || [],
|
||||
drivers: drivers.items || [],
|
||||
trailers: trailers.items || [],
|
||||
customsSections: customsSections.items || [],
|
||||
codePedimentoRegimens: codePedimentoRegimens.items || [],
|
||||
seals: seals.items || [],
|
||||
incoterms: incoterms.items || [],
|
||||
pedimentos: pedimentos.items || []
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error loading reference data:', err);
|
||||
return json({ error: 'Error loading reference data' }, { status: 500 });
|
||||
}
|
||||
};
|
||||
@@ -1,150 +0,0 @@
|
||||
import type { PageLoad } from './$types';
|
||||
import { error } from '@sveltejs/kit';
|
||||
|
||||
// Deshabilitar SSR para esta página debido al layout de dashboard que usa stores del cliente
|
||||
export const ssr = false;
|
||||
|
||||
export const load: PageLoad = async ({ params, url, parent }) => {
|
||||
// Obtener datos del layout padre
|
||||
const parentData = await parent();
|
||||
|
||||
const operationTypeParam = url.searchParams.get('operation_type');
|
||||
const invoiceTypeParam = url.searchParams.get('invoice_type');
|
||||
|
||||
let parsedOperationType: number | null = null;
|
||||
if (operationTypeParam) {
|
||||
const parsed = parseInt(operationTypeParam, 10);
|
||||
if (!isNaN(parsed)) {
|
||||
parsedOperationType = parsed;
|
||||
}
|
||||
}
|
||||
|
||||
// Si el ID es "new", cargar datos de referencia
|
||||
if (params.id === 'new') {
|
||||
try {
|
||||
// Llamar a la ruta de servidor que ya existe
|
||||
const response = await fetch(`/api-sveltekit/invoices/reference-data`);
|
||||
|
||||
if (!response.ok) {
|
||||
console.error('Error loading reference data:', response.status);
|
||||
// Retornar estructura vacía en caso de error
|
||||
return {
|
||||
invoice: null,
|
||||
invoiceId: null,
|
||||
isCreate: true,
|
||||
invoiceTypes: [],
|
||||
customsBrokers: [],
|
||||
clients: [],
|
||||
providers: [],
|
||||
currencyTypes: [],
|
||||
transportTypes: [],
|
||||
seals: [],
|
||||
incoterms: [],
|
||||
pedimentos: [],
|
||||
filters: {
|
||||
operation_type: parsedOperationType,
|
||||
invoice_type: invoiceTypeParam || null
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
return {
|
||||
invoice: null,
|
||||
invoiceId: null,
|
||||
isCreate: true,
|
||||
invoiceTypes: data.invoiceTypes || [],
|
||||
customsBrokers: data.customsBrokers || [],
|
||||
clients: data.clients || [],
|
||||
providers: data.providers || [],
|
||||
currencyTypes: data.currencyTypes || [],
|
||||
transportTypes: data.transportTypes || [],
|
||||
transporters: data.transporters || [],
|
||||
vehicles: data.vehicles || [],
|
||||
drivers: data.drivers || [],
|
||||
trailers: data.trailers || [],
|
||||
customsSections: data.customsSections || [],
|
||||
codePedimentoRegimens: data.codePedimentoRegimens || [],
|
||||
seals: data.seals || [],
|
||||
incoterms: data.incoterms || [],
|
||||
pedimentos: data.pedimentos || [],
|
||||
filters: {
|
||||
operation_type: parsedOperationType,
|
||||
invoice_type: invoiceTypeParam || null
|
||||
}
|
||||
};
|
||||
} catch (err) {
|
||||
console.error('Error loading data for new invoice:', err);
|
||||
return {
|
||||
invoice: null,
|
||||
invoiceId: null,
|
||||
isCreate: true,
|
||||
invoiceTypes: [],
|
||||
customsBrokers: [],
|
||||
clients: [],
|
||||
providers: [],
|
||||
currencyTypes: [],
|
||||
transportTypes: [],
|
||||
transporters: [],
|
||||
vehicles: [],
|
||||
drivers: [],
|
||||
trailers: [],
|
||||
customsSections: [],
|
||||
codePedimentoRegimens: [],
|
||||
seals: [],
|
||||
incoterms: [],
|
||||
pedimentos: [],
|
||||
filters: {
|
||||
operation_type: parsedOperationType,
|
||||
invoice_type: invoiceTypeParam || null
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Si es un ID numérico, cargar la factura
|
||||
const invoiceId = parseInt(params.id);
|
||||
if (isNaN(invoiceId)) {
|
||||
throw error(400, 'ID de factura inválido');
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api-sveltekit/invoices/${invoiceId}/edit-data`);
|
||||
|
||||
if (!response.ok) {
|
||||
throw error(response.status, 'Error al cargar la factura');
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
return {
|
||||
invoice: data.invoice,
|
||||
invoiceId,
|
||||
isCreate: false,
|
||||
invoiceTypes: data.invoiceTypes || [],
|
||||
customsBrokers: data.customsBrokers || [],
|
||||
clients: data.clients || [],
|
||||
providers: data.providers || [],
|
||||
currencyTypes: data.currencyTypes || [],
|
||||
transportTypes: data.transportTypes || [],
|
||||
transporters: data.transporters || [],
|
||||
vehicles: data.vehicles || [],
|
||||
drivers: data.drivers || [],
|
||||
trailers: data.trailers || [],
|
||||
customsSections: data.customsSections || [],
|
||||
codePedimentoRegimens: data.codePedimentoRegimens || [],
|
||||
seals: data.seals || [],
|
||||
incoterms: data.incoterms || [],
|
||||
pedimentos: data.pedimentos || [],
|
||||
filters: {
|
||||
operation_type: parsedOperationType,
|
||||
invoice_type: invoiceTypeParam || null
|
||||
}
|
||||
};
|
||||
} catch (err) {
|
||||
console.error('Error loading invoice:', err);
|
||||
throw error(500, 'Error al cargar la factura');
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user