diff --git a/backend/api/v1/modules/a76/general_catalogs/prevalidators/routes.py b/backend/api/v1/modules/a76/general_catalogs/prevalidators/routes.py index 539a2d6e..605fdb09 100644 --- a/backend/api/v1/modules/a76/general_catalogs/prevalidators/routes.py +++ b/backend/api/v1/modules/a76/general_catalogs/prevalidators/routes.py @@ -29,6 +29,7 @@ prevalidator_crud = TenantCRUDRoutes( tags=["Prevalidators"], resource_name="Prevalidator", enable_list=True, + enable_filters=True, list_permissions=["cat_prevalidators.view"], get_permissions=["cat_prevalidators.view"], create_permissions=["cat_prevalidators.create"], diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/prevalidators.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/prevalidators.ts index 7233839f..70bb0a4c 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/prevalidators.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/prevalidators.ts @@ -37,17 +37,17 @@ export async function getPrevalidators( filters: Record = {}, companyId?: number ): Promise> { - const params = new URLSearchParams({ + const paramObj: Record = { page: page.toString(), - page_size: pageSize.toString(), - ...filters + page_size: pageSize.toString() + }; + if (companyId) paramObj.company_id = companyId.toString(); + Object.entries(filters).forEach(([k, v]) => { + if (v !== undefined && v !== null && v !== '') paramObj[k] = String(v); }); - if (companyId) { - params.append('company_id', companyId.toString()); - } + const params = new URLSearchParams(paramObj); - const response = await api.get(`/v1/a76/prevalidators/?${params.toString()}`); - return response.data; + return api.get(`/v1/a76/prevalidators/?${params.toString()}`); } export async function getPrevalidator(id: number, companyId?: number): Promise { diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/signatures.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/signatures.ts index 890dbed7..fe654100 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/signatures.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/signatures.ts @@ -3,12 +3,12 @@ import type { ApiResponse } from '$lib/api'; export interface Signature { id: number; - - code: string; - signature: string | null; - photo_path: string | null; - - + + code: string; + signature: string | null; + photo_path: string | null; + + tenant_id: number; company_id: number; created_at: string; @@ -19,10 +19,10 @@ export interface SignatureCreate { code: string; signature?: string | null; photo_path?: string | null; - + } -export interface SignatureUpdate extends Partial {} +export interface SignatureUpdate extends Partial { } export interface SignatureListResponse { items: Signature[]; @@ -49,7 +49,6 @@ export async function getSignatures( }); const params = new URLSearchParams(paramObj); - return api.get(`/v1/a76/signatures/?${params.toString()}`); } @@ -62,7 +61,7 @@ export async function getSignature(id: number, companyId: number): Promise { const response = await api.post(`/v1/a76/signatures/?company_id=${companyId}`, data); @@ -71,8 +70,8 @@ export async function createSignature( } export async function updateSignature( - id: number, - data: SignatureUpdate, + id: number, + data: SignatureUpdate, companyId: number ): Promise { const response = await api.put(`/v1/a76/signatures/${id}/?company_id=${companyId}`, data); diff --git a/frontend/src/lib/components/dashboard/general_catalogs/prevalidators/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/general_catalogs/prevalidators/create-edit-dialog.svelte index f1e217f6..490cfd5d 100644 --- a/frontend/src/lib/components/dashboard/general_catalogs/prevalidators/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/general_catalogs/prevalidators/create-edit-dialog.svelte @@ -89,7 +89,7 @@ - + e.preventDefault()}> {title} diff --git a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.svelte index 71951916..b6f80bd7 100644 --- a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.svelte @@ -7,7 +7,7 @@ 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 } from 'lucide-svelte'; + import { Pencil, Plus, Trash2, RefreshCw } from 'lucide-svelte'; import InfiniteDataTable from '$lib/components/dashboard/common/infinite-data-table.svelte'; import { createColumns } from '$lib/components/dashboard/general_catalogs/prevalidators/columns'; import CreateEditDialog from '$lib/components/dashboard/general_catalogs/prevalidators/create-edit-dialog.svelte'; @@ -226,7 +226,9 @@ size="sm" class="h-9" onclick={reloadData} + disabled={loading} > + Actualizar {#if canCreate} @@ -262,7 +264,17 @@
- + (selectedIds = ids)} + onRowClick={handleRowClick} + onRowDoubleClick={handleRowDoubleClick} + />