fix/filtros-leyendas
This commit is contained in:
@@ -13,6 +13,7 @@ router = TenantCRUDRoutes(
|
||||
tags=["a76.general_catalogs.legends"],
|
||||
resource_name="Legend",
|
||||
enable_list=True,
|
||||
enable_filters=True,
|
||||
list_permissions=["cat_legends.view"],
|
||||
get_permissions=["cat_legends.view"],
|
||||
create_permissions=["cat_legends.create"],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from typing import List, Optional, Tuple, Dict, Any
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy import cast, String, select
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from fastapi import HTTPException
|
||||
import logging
|
||||
@@ -28,7 +28,11 @@ class LegendService:
|
||||
|
||||
if filters:
|
||||
if filters.get("code"):
|
||||
query = query.filter(Legend.code.ilike(f"%{filters['code']}%"))
|
||||
code_str = str(filters["code"]).strip()
|
||||
if code_str:
|
||||
query = query.filter(
|
||||
cast(Legend.code, String).ilike(f"%{code_str}%")
|
||||
)
|
||||
if filters.get("description"):
|
||||
query = query.filter(
|
||||
Legend.description.ilike(f"%{filters['description']}%")
|
||||
|
||||
@@ -32,11 +32,16 @@ export async function getLegends(
|
||||
companyId: number,
|
||||
filters: Record<string, any> = {}
|
||||
): Promise<ApiResponse<LegendListResponse>> {
|
||||
const cleanFilters = Object.fromEntries(
|
||||
Object.entries(filters).filter(
|
||||
([, v]) => v !== undefined && v !== null && v !== ''
|
||||
)
|
||||
);
|
||||
const params = new URLSearchParams({
|
||||
page: page.toString(),
|
||||
page_size: pageSize.toString(),
|
||||
company_id: companyId.toString(),
|
||||
...filters
|
||||
...cleanFilters
|
||||
});
|
||||
return await api.get(`/v1/a76/legends/?${params.toString()}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user