Merge branch 'feature/table-invoice' into feature/API-COBE

This commit is contained in:
2026-04-13 13:51:01 -06:00
131 changed files with 6443 additions and 4454 deletions

View File

@@ -3,9 +3,10 @@ Service layer for Pedimentos CRUD operations
"""
import logging
import re
from typing import Any, Dict, List, Optional
from sqlalchemy import desc
from sqlalchemy import desc, func
from sqlalchemy.orm import Session, joinedload
from sqlalchemy.orm import selectinload
from sqlalchemy.exc import IntegrityError
@@ -95,10 +96,21 @@ class PedimentosService:
if filters.get("status"):
query = query.filter(Pedimentos.status == filters["status"])
if filters.get("client_id"):
query = query.filter(
Pedimentos.client_id == filters["client_id"])
query = query.filter(Pedimentos.client_id == filters["client_id"])
if filters.get("year"):
query = query.filter(Pedimentos.year == filters["year"])
if filters.get("pedimento"):
raw_value = str(filters["pedimento"])
# Normalizar: dejar solo dígitos (ignorar guiones, espacios, etc.)
normalized = re.sub(r"\D", "", raw_value)
if normalized:
ped_key_expr = func.concat(
func.coalesce(Pedimentos.year, ""),
func.coalesce(func.substr(Pedimentos.customs_office, 1, 2), ""),
func.coalesce(Pedimentos.license, ""),
func.coalesce(Pedimentos.pedimento_number, ""),
)
query = query.filter(ped_key_expr.ilike(f"%{normalized}%"))
total = query.count()