Merge remote-tracking branch 'origin/master'

This commit is contained in:
2024-09-11 19:08:42 +04:00
5 changed files with 61 additions and 2 deletions

View File

@@ -207,7 +207,7 @@ class DealService(BaseService):
if not full:
q = q.where(
Deal.is_completed == False,
Deal.current_status != DealStatus.COMPLETED
# Deal.current_status != DealStatus.COMPLETED
)
else:
q = q.order_by(Deal.created_at.desc())
@@ -970,4 +970,20 @@ class DealService(BaseService):
return DealProductAddKitResponse(ok=True, message='Набор услуг успешно добавлен к товару')
except Exception as e:
return DealProductAddKitResponse(ok=False, message=str(e))
# endregion
async def complete(self, user: User, request: DealCompleteRequest) -> DealCompleteResponse:
try:
# check for admin
if not user.is_admin:
return DealCompleteResponse(ok=False, message='Завершить сделку может только администратор')
deal = await self._get_deal_by_id(request.deal_id)
if not deal:
return DealCompleteResponse(ok=False, message="Сделка не найдена")
deal.is_completed = True
await self.session.commit()
return DealCompleteResponse(ok=True, message="Сделка успешно завершена")
except Exception as e:
await self.session.rollback()
return DealCompleteResponse(ok=False, message=str(e))