From f56b2ca78473f6e9722c8999293a3963c1b1ca68 Mon Sep 17 00:00:00 2001 From: hreyes Date: Tue, 2 Jun 2026 09:46:13 -0600 Subject: [PATCH] fix/modulo-bultos-filtros-y-detalles --- .../a76/general_catalogs/packages.ts | 9 ++++-- .../packages/create-edit-dialog.svelte | 5 ++- .../general_catalogs/packages/+page.svelte | 31 +++++++++---------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/packages.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/packages.ts index 2a1cc28b..1d915da9 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/packages.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/packages.ts @@ -48,10 +48,15 @@ export async function getPackages( const params = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId.toString(), - ...filters + company_id: companyId.toString() }); + // Omitir filtros vacíos: URLSearchParams convierte `undefined`/`null` en el + // string literal "undefined", lo que rompería el ilike del backend. + for (const [k, v] of Object.entries(filters)) { + if (v !== undefined && v !== null && v !== '') params.set(k, String(v)); + } + return await api.get(`/v1/a76/packages/?${params.toString()}`); } diff --git a/frontend/src/lib/components/dashboard/packages/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/packages/create-edit-dialog.svelte index 5c736680..4bb7e451 100644 --- a/frontend/src/lib/components/dashboard/packages/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/packages/create-edit-dialog.svelte @@ -135,7 +135,10 @@ - + e.preventDefault()} + > {title} diff --git a/frontend/src/routes/dashboard/general_catalogs/packages/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/packages/+page.svelte index 7bdf0c14..6e417591 100644 --- a/frontend/src/routes/dashboard/general_catalogs/packages/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/packages/+page.svelte @@ -11,7 +11,7 @@ import InfiniteDataTable from '$lib/components/dashboard/common/infinite-data-ta import * as Card from '$lib/components/ui/card'; import { Button } from '$lib/components/ui/button'; import { Input } from '$lib/components/ui/input'; -import { Pencil, Plus, Trash2, RefreshCw } from 'lucide-svelte'; +import { Pencil, Plus, Trash2 } from 'lucide-svelte'; import { useShortcuts } from '$lib/hooks/use-shortcuts'; import { obtenerAtajosListaBultos } from '$lib/config/shortcuts/dashboard/general_catalogs/packages/list'; import { packagesApi, type Package } from '$lib/api/dashboard/a76/general_catalogs/packages'; @@ -48,8 +48,8 @@ manejarActualizar: () => reloadData() ); // Filtros -let searchCode = $state($page.url.searchParams.get('code') || ''); -let searchDesc = $state($page.url.searchParams.get('description') || ''); +let searchCode = $state($page.url.searchParams.get('key') || ''); +let searchDesc = $state($page.url.searchParams.get('description_es') || ''); let timeout: ReturnType; let allItems = $state(data.packages?.items || data.packages || []); @@ -83,8 +83,8 @@ loading = true; error = null; try { const response = await packagesApi.list(companyStore.activeCompany.id, { -code: searchCode || undefined, -description: searchDesc || undefined, +key: searchCode || undefined, +description_es: searchDesc || undefined, page: '1', page_size: pageSize.toString() }); @@ -100,10 +100,10 @@ loading = false; } const url = new URL($page.url); -if (searchCode) url.searchParams.set('code', searchCode); -else url.searchParams.delete('code'); -if (searchDesc) url.searchParams.set('description', searchDesc); -else url.searchParams.delete('description'); +if (searchCode) url.searchParams.set('key', searchCode); +else url.searchParams.delete('key'); +if (searchDesc) url.searchParams.set('description_es', searchDesc); +else url.searchParams.delete('description_es'); history.replaceState(history.state, '', url); }, 500); } @@ -113,8 +113,8 @@ if (loading || !hasMore || !companyStore.activeCompany) return; loading = true; try { const response = await packagesApi.list(companyStore.activeCompany.id, { -code: searchCode || undefined, -description: searchDesc || undefined, +key: searchCode || undefined, +description_es: searchDesc || undefined, page: (currentPage + 1).toString(), page_size: pageSize.toString() }); @@ -134,8 +134,8 @@ loading = true; error = null; try { const response = await packagesApi.list(companyStore.activeCompany.id, { -code: searchCode || undefined, -description: searchDesc || undefined, +key: searchCode || undefined, +description_es: searchDesc || undefined, page: '1', page_size: pageSize.toString() }); @@ -166,9 +166,6 @@ const columns = $derived(createColumns(handleSuccess, { canEdit, canDelete }));

{m['common.sub_packages']()}

- {#if !isError && canCreate}