Se ajusto la tabla de quantity y de packeges, y se creo la relacion

This commit is contained in:
2026-01-27 11:34:10 -06:00
parent 50504be30b
commit c97b9e3daf
8 changed files with 42 additions and 5 deletions

View File

@@ -19,7 +19,7 @@ class Package(Base, TenantScopedMixin, TimestampMixin):
__table_args__ = (
PrimaryKeyConstraint("id", name="packages_pkey"),
UniqueConstraint("tenant_id", "company_id", "key", name="packages_key_ukey"),
{"schema": "a76"},
{"schema": "a76", "extend_existing": True},
)
id: Mapped[int] = mapped_column(Integer, primary_key=True)

View File

@@ -4,6 +4,8 @@ from sqlalchemy import String, Integer, Numeric, SmallInteger, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from core.database import Base
from api.v1.modules.a76.general_catalogs.packages.models import Package
if TYPE_CHECKING:
from ..line_items.models import LineItem
@@ -38,13 +40,14 @@ class LineQuantity(Base):
net_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8)) # PESONETO
gross_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8)) # PESOBRUTO
# Packaging
package_key: Mapped[Optional[str]] = mapped_column(String(5)) # CLAVEBULTOS
package_id: Mapped[Optional[int]] = mapped_column(ForeignKey("a76.packages.id"))
package_quantity: Mapped[Optional[int]] = mapped_column(Integer) # CANTBULTOS
package_description: Mapped[Optional[str]] = mapped_column(String(40)) # DESCBULTOS
container_quantity: Mapped[Optional[int]] = mapped_column(SmallInteger) # CANTBULCONT
container_description: Mapped[Optional[str]] = mapped_column(String(40)) # DESCCONTENEDOR
box_count: Mapped[Optional[str]] = mapped_column(String(30)) # NOCAJAS
# Relationship (one-to-one)
line: Mapped["LineItem"] = relationship(back_populates="quantity")
line: Mapped["LineItem"] = relationship(back_populates="quantity")
package_info: Mapped[Optional["Package"]] = relationship(Package)

View File

@@ -313,7 +313,7 @@ class PackingListService:
cantidad_importacion=qty.quantity if qty else 0,
unidad_medida=uom_comercial, # Commercial UOM (PCS, EA)
cantidad_bultos=int(qty.package_quantity) if qty and qty.package_quantity else 0,
clave_bultos=(qty.package_key or "") if qty else "",
clave_bultos=(qty.package_info.key if qty and qty.package_info else "") if qty else "",
peso_neto=self.formatear_numero(peso_neto_kg),
peso_bruto=self.formatear_numero(peso_bruto_kg),
peso_neto_lbs=self.formatear_numero(peso_neto_lb),