diff --git a/apps/product/exceptions.py b/apps/product/exceptions.py index 607e687..8ffef6c 100644 --- a/apps/product/exceptions.py +++ b/apps/product/exceptions.py @@ -1,5 +1,5 @@ -from rest_framework.exceptions import APIException from rest_framework import status +from rest_framework.exceptions import APIException class QuotaWeightException(APIException): @@ -18,6 +18,14 @@ class DistributionWeightException(APIException): default_code = 'error' +class DistributionDeletedException(APIException): + """ if distribution is deleted """ + + status_code = status.HTTP_400_BAD_REQUEST + default_detail = "امکان حذف این توزیع وجود ندارد. ورود به انبار یا توزیعی برای آن ثبت شده است" # noqa + default_code = 'error' + + class QuotaClosedException(APIException): """ if quota is closed, operations can not be done """ diff --git a/apps/product/web/api/v1/viewsets/quota_distribution_api.py b/apps/product/web/api/v1/viewsets/quota_distribution_api.py index 7f2ed27..1b594a5 100644 --- a/apps/product/web/api/v1/viewsets/quota_distribution_api.py +++ b/apps/product/web/api/v1/viewsets/quota_distribution_api.py @@ -9,6 +9,7 @@ from rest_framework.response import Response from apps.core.mixins.search_mixin import DynamicSearchMixin from apps.core.mixins.soft_delete_mixin import SoftDeleteMixin from apps.core.pagination import CustomPageNumberPagination +from apps.product import exceptions from apps.product import models as product_models from apps.product.web.api.v1.serializers import quota_distribution_serializers as distribution_serializers from common.helpers import get_organization_by_user @@ -159,10 +160,7 @@ class QuotaDistributionViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSe if quota_distribution.inventory_entry.exists() or self.queryset.filter( parent_distribution=quota_distribution.id ): - raise APIException( - "امکان حذف این توزیع وجود ندارد. ورود به انبار یا توزیعی برای آن ثبت شده است", # noqa - status.HTTP_400_BAD_REQUEST - ) + raise exceptions.DistributionDeletedException() try: trash(self.queryset, pk) return Response(status=status.HTTP_200_OK)