| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # @description:
- # @author: licanglong
- # @date: 2025/12/22 20:16
- from sqlalchemy import select
- from sqlalchemy.orm import Session
- from app.models.dto import InvoicePurchaseDetailDTO, InvoicePurchaseDetailList
- from app.models.entity import InvoicePurchaseDetail
- class InvoiceRepository:
- def __init__(self, session: Session):
- self.session = session
- def list_by_taxid(self, tax_id: str) -> InvoicePurchaseDetailList:
- stmt = select(InvoicePurchaseDetail).where(InvoicePurchaseDetail.tax_id == tax_id).limit(10)
- stmt_result = self.session.scalars(stmt).all()
- return InvoicePurchaseDetailList(
- invoice_purchase_details=[
- InvoicePurchaseDetailDTO.model_validate(record)
- for record in stmt_result
- ]
- )
- def list_by_params(self, tax_id: str = None, hwmc: str = None) -> InvoicePurchaseDetailList:
- conditions = []
- if tax_id:
- conditions.append(InvoicePurchaseDetail.tax_id == tax_id)
- if hwmc:
- conditions.append(InvoicePurchaseDetail.hwmc.like(f"%{hwmc}%"))
- stmt = select(InvoicePurchaseDetail)
- if conditions:
- stmt = stmt.where(*conditions)
- stmt = stmt.limit(10)
- stmt_result = self.session.scalars(stmt).all()
- return InvoicePurchaseDetailList(
- invoice_purchase_details=[
- InvoicePurchaseDetailDTO.model_validate(record)
- for record in stmt_result
- ]
- )
|