diff --git a/frontend/src/routes/api-sveltekit/invoices/[id]/edit-data/+server.ts b/frontend/src/routes/api-sveltekit/invoices/[id]/edit-data/+server.ts deleted file mode 100644 index feb116b4..00000000 --- a/frontend/src/routes/api-sveltekit/invoices/[id]/edit-data/+server.ts +++ /dev/null @@ -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'); - } -}; diff --git a/frontend/src/routes/api-sveltekit/invoices/reference-data/+server.ts b/frontend/src/routes/api-sveltekit/invoices/reference-data/+server.ts deleted file mode 100644 index 85ad19e1..00000000 --- a/frontend/src/routes/api-sveltekit/invoices/reference-data/+server.ts +++ /dev/null @@ -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 }); - } -}; diff --git a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.ts b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.ts deleted file mode 100644 index 4058c7ad..00000000 --- a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.ts +++ /dev/null @@ -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'); - } -}; -