diff --git a/backend/main.py b/backend/main.py
index b609d156..ae673fbf 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -17,12 +17,10 @@ from core.middleware import (
)
from fastapi import FastAPI, Request, status, HTTPException
from fastapi.middleware.cors import CORSMiddleware
-from fastapi.middleware.trustedhost import TrustedHostMiddleware
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
from pathlib import Path
-from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
# Importar modelos para registrar con SQLAlchemy
from api.v1.modules.a76.items.models import Item
@@ -97,11 +95,6 @@ async def on_startup():
run_migrations()
logger.info("Base de datos inicializada correctamente.")
-
-# Configurar middleware para headers de proxy (HTTPS en producción)
-# Esto asegura que los redirects 307 usen https:// en producción
-app.add_middleware(ProxyHeadersMiddleware, trusted_hosts="*")
-
# Configurar CORS
app.add_middleware(
CORSMiddleware,
diff --git a/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte
index 930275f5..30f7a7c0 100644
--- a/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte
+++ b/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte
@@ -122,7 +122,7 @@
id="broker_key"
bind:value={formData.broker_key}
placeholder="Ej: 01001"
- maxlength="5"
+ maxlength={5}
disabled={isEdit}
/>
@@ -133,7 +133,7 @@
id="concept"
bind:value={formData.concept}
placeholder="Ej: 001"
- maxlength="15"
+ maxlength={15}
disabled={isEdit}
/>
diff --git a/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte
index 6e57fd57..73dd547f 100644
--- a/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte
+++ b/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte
@@ -5,6 +5,11 @@
import { Label } from '$lib/components/ui/label';
import { companyStore } from '$lib/stores/company.svelte';
import { obtenerAtajosFormularioIdentificadores } from '$lib/config/shortcuts/dashboard/general_catalogs/identifiers/edit';
+ import {
+ createIdentifier,
+ updateIdentifier,
+ type Identifier
+ } from '$lib/api/dashboard/a76/general_catalogs/identifiers';
let {
open = $bindable(false),
diff --git a/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte b/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte
index 4c448e3d..3d5b2a66 100644
--- a/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte
+++ b/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte
@@ -1,123 +1,106 @@
-
-
-
-
- {#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
-
- {#each headerGroup.headers as header (header.id)}
-
- {#if !header.isPlaceholder}
-
- {/if}
-
- {/each}
-
- {/each}
-
-
- {#each table.getRowModel().rows as row (row.id)}
-
- {#each row.getVisibleCells() as cell (cell.id)}
-
+
+
+
+ {#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
+
+ {#each headerGroup.headers as header (header.id)}
+
+ {#if !header.isPlaceholder}
-
- {/each}
-
- {:else}
-
-
- No hay resultados.
+ {/if}
+
+ {/each}
+
+ {/each}
+
+
+ {#each table.getRowModel().rows as row (row.id)}
+
+ {#each row.getVisibleCells() as cell (cell.id)}
+
+
-
- {/each}
-
-
- {#if hasMore}
-
-
-
- {#if loading}
-
- {:else}
-
- Desplázate para cargar más
-
- {/if}
-
-
-
- {/if}
-
-
+ {/each}
+
+ {:else}
+
+
+ No hay resultados.
+
+
+ {/each}
+
+
+
+
+
+
+ Total: {totalItems} registros
+
+
+
+
diff --git a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts
index d5aa261b..f6619ae7 100644
--- a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts
@@ -39,7 +39,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
page_size: pageSize.toString(),
...filters
});
- const response = await authenticatedFetch(`v1/a76/classification-concepts?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
+ const response = await authenticatedFetch(`v1/a76/classification-concepts/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
if (!response.ok) {
return { error: 'Failed to load', classifications: { items: [], total: 0, page, page_size: pageSize, pages: 0 } };
diff --git a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte
index d914cb4b..ce51bb9b 100644
--- a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte
+++ b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte
@@ -89,7 +89,6 @@
/>
diff --git a/frontend/src/routes/dashboard/general_catalogs/concepts/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/concepts/+page.server.ts
index ad8d40cc..2ff02a9e 100644
--- a/frontend/src/routes/dashboard/general_catalogs/concepts/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/concepts/+page.server.ts
@@ -59,7 +59,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
});
const response = await authenticatedFetch(
- `v1/a76/concepts?${queryParams.toString()}`,
+ `v1/a76/concepts/?${queryParams.toString()}`,
{ method: 'GET' },
cookies,
fetch
diff --git a/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.server.ts
index 56f48a8d..e9bb5588 100644
--- a/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.server.ts
@@ -2,20 +2,25 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
- return { error: 'No authenticated', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 }, activeCompanyId: null };
+ return { error: 'No authenticated', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
}
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
- return { error: 'No company selected', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 }, activeCompanyId: null };
+ return { error: 'No company selected', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
}
const filters: Record
= {};
@@ -28,22 +33,22 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
- const response = await authenticatedFetch(`v1/a76/customs-broker-concepts?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
+ const response = await authenticatedFetch(`v1/a76/customs-broker-concepts/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
if (!response.ok) {
- return { error: 'Failed to load', concepts: { items: [], total: 0, page, page_size: pageSize, pages: 0 }, activeCompanyId: companyId };
+ return { error: 'Failed to load', concepts: { items: [], total: 0, page, page_size: pageSize, pages: 0 } };
}
const data = await response.json();
// Calculate pages if not provided by API
const pages = data.pages || Math.ceil(data.total / pageSize);
- return { concepts: { ...data, pages }, activeCompanyId: parseInt(companyId) };
+ return { concepts: { ...data, pages } };
} catch (error) {
console.error('Error loading customs broker concepts:', error);
- return { error: 'Error loading', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 }, activeCompanyId: null };
+ return { error: 'Error loading', concepts: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
}
};
diff --git a/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.svelte
index 4070f937..0f19a0c1 100644
--- a/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.svelte
+++ b/frontend/src/routes/dashboard/general_catalogs/customs_broker_concepts/+page.svelte
@@ -10,8 +10,11 @@
import { browser } from '$app/environment';
import { useShortcuts } from '$lib/hooks/use-shortcuts';
import { obtenerAtajosListaConceptosAA } from '$lib/config/shortcuts/dashboard/general_catalogs/customs_broker_concepts/list';
+ import { companyStore } from '$lib/stores/company.svelte';
let { data } = $props();
+
+ const activeCompanyId = $derived(companyStore.activeCompany?.id);
let dialogOpen = $state(false);
// Atajos
@@ -92,9 +95,11 @@
/>
-
+ {#if activeCompanyId}
+
+ {/if}
diff --git a/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts
index 6b220633..e3c9a28f 100644
--- a/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', dodas: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -26,7 +31,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
const response = await authenticatedFetch(`v1/a76/doda?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
diff --git a/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts
index 5c862256..c801c44a 100644
--- a/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', notices: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
const response = await authenticatedFetch(`v1/a76/electronic-notices?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
diff --git a/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts
index efae176a..b1b1a5c7 100644
--- a/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', equivalencies: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
diff --git a/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts
index 06db1266..38a1865f 100644
--- a/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', identifiers: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -28,11 +33,11 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
- const response = await authenticatedFetch(`v1/a76/identifiers?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
+ const response = await authenticatedFetch(`v1/a76/identifiers/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
if (!response.ok) {
return { error: 'Failed to load', identifiers: { items: [], total: 0, page, page_size: pageSize, pages: 0 } };
diff --git a/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts
index f85f60f6..97c8b44a 100644
--- a/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', inpc: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
diff --git a/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts
index 5ca0c933..1d3f1082 100644
--- a/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts
@@ -59,7 +59,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
});
const response = await authenticatedFetch(
- `v1/a76/packages?${queryParams.toString()}`,
+ `v1/a76/packages/?${queryParams.toString()}`,
{ method: 'GET' },
cookies,
fetch
diff --git a/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts
index 3f8e57dd..917a60db 100644
--- a/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts
@@ -2,7 +2,8 @@ import { getServerApiUrl, getAuthTokens } from '$lib/server/api';
import type { PageServerLoad } from './$types';
import { redirect } from '@sveltejs/kit';
-export const load: PageServerLoad = async ({ cookies, fetch, url }) => {
+export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
throw redirect(302, '/login');
@@ -10,7 +11,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url }) => {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('page_size')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return {
@@ -27,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url }) => {
const query = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId
+ company_id: companyId.toString()
});
const endpoint = `${apiUrl}v1/a76/ports?${query.toString()}`;
diff --git a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts
index 7e18fd83..0f2da684 100644
--- a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', prevalidators: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const queryParams = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
- company_id: companyId,
+ company_id: companyId.toString(),
...filters
});
const response = await authenticatedFetch(`v1/a76/prevalidators?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
diff --git a/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts
index 3a18dde6..35e6c600 100644
--- a/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
try {
const page = Number(url.searchParams.get('page')) || 1;
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
- const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id');
+
+ // Obtener company_id de la cookie o usar el primero disponible
+ const cookieCompanyId = cookies.get('active_company_id');
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return { error: 'No company selected', signatures: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } };
@@ -23,7 +28,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
if (code) filters.code = code;
- const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), company_id: companyId, ...filters });
+ const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), company_id: companyId.toString(), ...filters });
const response = await authenticatedFetch(`v1/a76/signatures?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch);
if (!response.ok) {
diff --git a/frontend/src/routes/dashboard/general_catalogs/unit_conversions/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/unit_conversions/+page.server.ts
index 30053552..92468805 100644
--- a/frontend/src/routes/dashboard/general_catalogs/unit_conversions/+page.server.ts
+++ b/frontend/src/routes/dashboard/general_catalogs/unit_conversions/+page.server.ts
@@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types';
import { getAuthTokens, authenticatedFetch } from '$lib/server/api';
export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
- await parent();
+ const parentData = await parent();
const { accessToken } = getAuthTokens(cookies);
if (!accessToken) {
@@ -17,9 +17,11 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
const pageSize = Number(url.searchParams.get('pageSize')) || 50;
const filters: Record = {};
- // Obtener company_id
+ // Obtener company_id de la cookie o usar el primero disponible
const cookieCompanyId = cookies.get('active_company_id');
- const companyId = cookieCompanyId ? parseInt(cookieCompanyId) : undefined;
+ const companyId = cookieCompanyId
+ ? parseInt(cookieCompanyId)
+ : parentData.companies?.[0]?.id;
if (!companyId) {
return {
diff --git a/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte b/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte
index d9192f2e..41c8a056 100644
--- a/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte
+++ b/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte
@@ -496,7 +496,7 @@
onclick={() => handleDeleteItem(i)}
class="h-8 w-8 text-zinc-500 hover:text-destructive"
>
-
+
diff --git a/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts b/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts
index bb15f72e..776fe196 100644
--- a/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts
+++ b/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts
@@ -24,7 +24,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
// Usar authenticatedFetch para manejar automáticamente el refresh de tokens
const response = await authenticatedFetch(
- `v1/public/reference_data/incoterms?page=${page}&page_size=${pageSize}`,
+ `v1/public/reference_data/incoterms/?page=${page}&page_size=${pageSize}`,
{},
cookies,
fetch
diff --git a/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte b/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte
index a1bd8c0a..9a1b417c 100644
--- a/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte
+++ b/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte
@@ -2,7 +2,7 @@
import { page } from '$app/stores';
import { goto } from '$app/navigation';
import { browser } from '$app/environment';
- import { createColumns } from '$lib/components/dashboard/reference_data/incoterms/columns.js';
+ import { createColumns } from '$lib/components/dashboard/reference_data/incoterms/columns';
import DataTable from '$lib/components/dashboard/reference_data/incoterms/data-table.svelte';
import CreateEditDialog from '$lib/components/dashboard/reference_data/incoterms/create-edit-dialog.svelte';
import { Button } from '$lib/components/ui/button';
@@ -59,11 +59,7 @@
Catálogo de Incoterms
-
-
+