feat: complete group of deals
This commit is contained in:
@@ -9,6 +9,7 @@ from weasyprint import HTML, CSS
|
||||
from constants import DEAL_STATUS_STR, ENV, APP_PATH
|
||||
from generators.deal_pdf_generator.deal_data import DealTechSpecProductData, DealTechSpecData
|
||||
from models import Deal, DealProduct, DealService as DealServiceModel, Product, DealGroup
|
||||
from services.deal_group import DealGroupService
|
||||
from utils.images_fetcher import fetch_images
|
||||
|
||||
|
||||
@@ -90,23 +91,6 @@ class DealTechSpecPdfGenerator:
|
||||
)
|
||||
return deal
|
||||
|
||||
async def _get_deals_by_group_id(self, group_id: int) -> List[Deal]:
|
||||
group: DealGroup | None = await self._session.scalar(
|
||||
select(DealGroup)
|
||||
.where(DealGroup.id == group_id)
|
||||
.options(
|
||||
selectinload(DealGroup.deals).selectinload(Deal.products).selectinload(DealProduct.services),
|
||||
selectinload(DealGroup.deals).selectinload(Deal.products)
|
||||
.selectinload(DealProduct.product).selectinload(Product.barcodes),
|
||||
selectinload(DealGroup.deals).selectinload(Deal.services).selectinload(DealServiceModel.service),
|
||||
selectinload(DealGroup.deals).selectinload(Deal.status_history),
|
||||
selectinload(DealGroup.deals).selectinload(Deal.group).selectinload(DealGroup.deals),
|
||||
selectinload(DealGroup.deals).joinedload(Deal.client),
|
||||
selectinload(DealGroup.deals).joinedload(Deal.shipping_warehouse),
|
||||
)
|
||||
)
|
||||
return group.deals if group else []
|
||||
|
||||
def _set_deals_ids_header(self):
|
||||
self.deal_doc["deal_ids_header"] = f"ID: {self.deal.id}"
|
||||
if self.deal.group:
|
||||
@@ -121,7 +105,7 @@ class DealTechSpecPdfGenerator:
|
||||
self._set_deals_ids_header()
|
||||
|
||||
if deal.group:
|
||||
deals = await self._get_deals_by_group_id(deal.group.id)
|
||||
deals = await DealGroupService(self._session).get_deals_by_group_id(deal.group.id)
|
||||
for d in deals:
|
||||
self.deal_doc["deals"].append(d)
|
||||
grouped_products = await self._group_deal_products_by_products(d.products)
|
||||
|
||||
Reference in New Issue
Block a user