feat: disabling accounting for deals and groups

This commit is contained in:
2025-01-03 20:46:48 +04:00
parent 3234eb7bea
commit e65ca07acc
5 changed files with 19 additions and 4 deletions

View File

@@ -352,7 +352,14 @@ class DealService(BaseService):
async def update_general_info(self, request: DealUpdateGeneralInfoRequest) -> DealUpdateGeneralInfoResponse:
try:
deal: Deal = await self.session.scalar(select(Deal).where(Deal.id == request.deal_id))
deal: Deal = await self.session.scalar(
select(Deal)
.options(
selectinload(Deal.group)
.selectinload(DealGroup.deals)
)
.where(Deal.id == request.deal_id)
)
if not deal:
raise HTTPException(status_code=404, detail="Сделка не найдена")
deal.name = request.data.name
@@ -362,6 +369,12 @@ class DealService(BaseService):
deal.delivery_date = request.data.delivery_date
deal.receiving_slot_date = request.data.receiving_slot_date
if deal.group:
for deal in deal.group.deals:
deal.is_accounted = request.data.is_accounted
else:
deal.is_accounted = request.data.is_accounted
# Updating shipping warehouse
shipping_warehouse_service = ShippingWarehouseService(self.session)
shipping_warehouse = await shipping_warehouse_service.get_by_name(request.data.shipping_warehouse)

View File

@@ -112,7 +112,7 @@ class ProfitStatisticsService(BaseService):
.join(DealService, Deal.id == DealService.deal_id)
.join(Service, DealService.service_id == Service.id)
.join(sub_filtered_status_history, Deal.id == sub_filtered_status_history.c.deal_id)
.where(Deal.is_deleted == False)
.where(and_(Deal.is_deleted == False, Deal.is_accounted == True))
.group_by(Deal.id, "date")
)
@@ -154,7 +154,7 @@ class ProfitStatisticsService(BaseService):
)
)
.join(Service, DealProductService.service_id == Service.id)
.where(Deal.is_deleted == False)
.where(and_(Deal.is_deleted == False, Deal.is_accounted == True))
.group_by(Deal.id)
)