diff --git a/backend/api/v1/modules/a76/pedmientos/dtos/pedimentos.py b/backend/api/v1/modules/a76/pedmientos/dtos/pedimentos.py index b52c34eb..00acb60d 100644 --- a/backend/api/v1/modules/a76/pedmientos/dtos/pedimentos.py +++ b/backend/api/v1/modules/a76/pedmientos/dtos/pedimentos.py @@ -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""" diff --git a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py index d3469979..182880cd 100644 --- a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py +++ b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py @@ -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) diff --git a/backend/api/v1/modules/a76/pedmientos/services/pedimentos.py b/backend/api/v1/modules/a76/pedmientos/services/pedimentos.py index e5d69ef4..31a1f658 100644 --- a/backend/api/v1/modules/a76/pedmientos/services/pedimentos.py +++ b/backend/api/v1/modules/a76/pedmientos/services/pedimentos.py @@ -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)