Merge remote-tracking branch 'origin/24-nov' into development
This commit is contained in:
@@ -17,7 +17,7 @@ class QClasses(Base, TenantScopedMixin, TimestampMixin):
|
||||
__tablename__ = "fa_classes" # QClases
|
||||
__table_args__ = (
|
||||
PrimaryKeyConstraint("id", name="qclases_pk"),
|
||||
ForeignKeyConstraint(["class_id"], ["classes.id"], name="fk_qclasses_classes"),
|
||||
ForeignKeyConstraint(["class_id"], ["a76.classes.id"], name="fk_qclasses_classes"),
|
||||
{"schema": "a24"},
|
||||
)
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ class Class(Base, TenantScopedMixin, TimestampMixin):
|
||||
UniqueConstraint(
|
||||
"tenant_id",
|
||||
"company_id",
|
||||
"client_id",
|
||||
"class_code",
|
||||
name="ufa_classes_client_id_class_code",
|
||||
),
|
||||
|
||||
@@ -102,6 +102,7 @@ class ClassService:
|
||||
existing = db.query(Class).filter(
|
||||
Class.tenant_id == tenant_id,
|
||||
Class.company_id == company_id,
|
||||
Class.client_id == data_dict["client_id"],
|
||||
Class.class_code == data_dict["class_code"]
|
||||
).first()
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class ExchangeRateBaseDTO(BaseModel):
|
||||
date: int = Field(..., description="Exchange rate date")
|
||||
date: datetime = Field(..., description="Exchange rate date")
|
||||
value: Optional[float] = Field(None, description="Exchange rate value")
|
||||
local_currency: Optional[str] = Field(None, max_length=7, description="Local currency code")
|
||||
foreign_currency: Optional[str] = Field(None, max_length=7, description="Foreign currency code")
|
||||
@@ -17,7 +18,7 @@ class ExchangeRateCreateDTO(ExchangeRateBaseDTO):
|
||||
|
||||
class ExchangeRateUpdateDTO(ExchangeRateBaseDTO):
|
||||
"""Schema for updating an exchange rate"""
|
||||
date: Optional[int] = Field(None, description="Exchange rate date")
|
||||
date: Optional[datetime] = Field(None, description="Exchange rate date")
|
||||
|
||||
|
||||
class ExchangeRateResponseDTO(ExchangeRateBaseDTO):
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
from typing import Optional
|
||||
|
||||
@@ -28,7 +29,7 @@ class ExchangeRate(Base, TenantScopedMixin, TimestampMixin):
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
|
||||
date: Mapped[int] = mapped_column(DateTime)
|
||||
date: Mapped[datetime] = mapped_column(DateTime)
|
||||
value: Mapped[Optional[Decimal]] = mapped_column(DECIMAL(13, 6))
|
||||
local_currency: Mapped[Optional[str]] = mapped_column(String(7))
|
||||
foreign_currency: Mapped[Optional[str]] = mapped_column(String(7))
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
DTOs for Packages (GBultos).
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
@@ -33,8 +34,8 @@ class PackageResponseDTO(PackageBaseDTO):
|
||||
id: int
|
||||
company_id: int
|
||||
tenant_id: int
|
||||
created_at: Optional[str] = None
|
||||
updated_at: Optional[str] = None
|
||||
created_at: Optional[datetime] = None
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
@@ -13,11 +13,11 @@ router = TenantCRUDRoutes(
|
||||
create_schema=PackageCreateDTO,
|
||||
update_schema=PackageUpdateDTO,
|
||||
response_schema=PackageResponseDTO,
|
||||
prefix="/package",
|
||||
tags=[],
|
||||
prefix="/packages",
|
||||
tags=["a76 / packages"],
|
||||
resource_name="Package",
|
||||
id_name="id", # Using numeric ID
|
||||
enable_list=True, # Enable GET /package with pagination
|
||||
id_name="package_id",
|
||||
enable_list=True, # Enable GET /packages with pagination
|
||||
enable_filters=True, # Enable filtering by key and description_es
|
||||
default_page_size=50,
|
||||
max_page_size=100,
|
||||
|
||||
@@ -75,8 +75,8 @@ class SealService:
|
||||
db: Session,
|
||||
seal_id: int,
|
||||
tenant_id: int,
|
||||
company_id: int,
|
||||
seal_data: dto.SealUpdateDTO,
|
||||
company_id: int,
|
||||
) -> Optional[models.Seal]:
|
||||
"""Update a seal"""
|
||||
seal = SealService.get_by_id(db, seal_id, tenant_id, company_id)
|
||||
|
||||
@@ -46,7 +46,7 @@ router.include_router(parts_router, prefix="/a76", tags=["a76 / parts"])
|
||||
router.include_router(
|
||||
permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"]
|
||||
)
|
||||
router.include_router(package_router, prefix="/a76", tags=["a76 / package"])
|
||||
router.include_router(package_router, prefix="/a76")
|
||||
router.include_router(seal_router, prefix="/a76", tags=["a76 / seal"])
|
||||
router.include_router(
|
||||
fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"]
|
||||
|
||||
Reference in New Issue
Block a user