feat: enhance Pedimentos schema and service to include additional fields for packages, transport carriers, guides, contributions, seals, and containers

This commit is contained in:
Galindo97
2026-01-05 08:44:02 -06:00
parent 97a318fdba
commit 545ff8d278
3 changed files with 13 additions and 3 deletions

View File

@@ -100,6 +100,12 @@ class PedimentosCreate(PedimentosBase):
pedimento_config_surcharges: Optional[PedimentoConfigSurchargesCreate] = None
pedimento_config_update_rectification: Optional[PedimentoConfigUpdateRectificationCreate] = None
pedimento_config_updates: Optional[PedimentoConfigUpdatesCreate] = None
pedimento_packages: Optional[PedimentoPackagesCreate] = None
pedimento_transport_carriers: Optional[list[PedimentoTransportCarrierCreate]] = None
pedimento_guides: Optional[list[PedimentoGuideCreate]] = None
pedimento_contributions: Optional[list[PedimentoContributionCreate]] = None
pedimento_seals: Optional[list[PedimentoSealCreate]] = None
pedimento_containers: Optional[list[PedimentoContainerCreate]] = None
class PedimentosUpdate(BaseModel):
"""Schema for updating a Pedimento"""

View File

@@ -7,6 +7,7 @@ from sqlalchemy import (
ForeignKeyConstraint,
Integer,
PrimaryKeyConstraint,
String,
UniqueConstraint,
)
from sqlalchemy.orm import Mapped, mapped_column, relationship
@@ -39,7 +40,7 @@ class PedimentoConfigAdditional(Base, TenantScopedMixin, TimestampMixin):
add_po_identifier: Mapped[bool] = mapped_column(Boolean, default=False)
do_not_exempt_norms_complement_x: Mapped[bool] = mapped_column(Boolean, default=False)
manual_pedimento_year: Mapped[int] = mapped_column(Integer, nullable=True)
manual_pedimento_year: Mapped[str] = mapped_column(String(2), nullable=False, default='')
enable_import_invoice_recipient: Mapped[bool] = mapped_column(Boolean, default=False)
send_502_validation_file_for_consolidated: Mapped[bool] = mapped_column(Boolean, default=False)
add_remove_norms: Mapped[bool] = mapped_column(Boolean, default=False)

View File

@@ -234,7 +234,8 @@ class PedimentosService:
'pedimento_config_additional', 'pedimento_config_calculations',
'pedimento_config_parameters', 'pedimento_config_surcharges',
'pedimento_config_update_rectification', 'pedimento_config_updates',
'pedimento_packages', 'pedimento_transport_carriers', 'pedimento_guides', 'pedimento_seals', 'pedimento_containers'
'pedimento_packages', 'pedimento_transport_carriers', 'pedimento_guides',
'pedimento_contributions', 'pedimento_seals', 'pedimento_containers'
})
pedimento = Pedimentos(**pedimento_dict)
@@ -401,9 +402,11 @@ class PedimentosService:
if existing:
# Actualizar existente (excluir pedimento_id, tenant_id, company_id)
# Solo actualizar valores no-None para evitar sobrescribir con None
for field, value in data.items():
if hasattr(existing, field) and field not in ('pedimento_id', 'tenant_id', 'company_id'):
setattr(existing, field, value)
if value is not None:
setattr(existing, field, value)
else:
# Crear nuevo
obj = model_class(**data)