feat: enhance Pedimentos schema and service to include additional fields for packages, transport carriers, guides, contributions, seals, and containers
This commit is contained in:
@@ -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"""
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user