diff --git a/services/deal.py b/services/deal.py index 0c6f519..e176122 100644 --- a/services/deal.py +++ b/services/deal.py @@ -1057,10 +1057,13 @@ class DealService(BaseService): return DealCompleteResponse(ok=False, message="Сделка не найдена") if deal.group: - await DealGroupService(self.session).complete_group(deal.group.id) + deals = await DealGroupService(self.session).complete_group(deal.group.id) + for completed_deal in deals: + await self.change_status(completed_deal, DealStatus.COMPLETED, user) else: deal.is_completed = True - await self.session.commit() + await self.change_status(deal, DealStatus.COMPLETED, user) + await self.session.commit() return DealCompleteResponse(ok=True, message="Сделка успешно завершена") except Exception as e: diff --git a/services/deal_group.py b/services/deal_group.py index cb3d943..a8591e2 100644 --- a/services/deal_group.py +++ b/services/deal_group.py @@ -25,11 +25,11 @@ class DealGroupService(BaseService): ) return group.deals if group else [] - async def complete_group(self, group_id: int) -> None: + async def complete_group(self, group_id: int) -> list[Deal]: deals = await self.get_deals_by_group_id(group_id) for deal in deals: deal.is_completed = True - await self.session.commit() + return deals async def delete_group(self, group_id: int) -> None: deals = await self.get_deals_by_group_id(group_id)