add field of activity organization - handle quota weight

This commit is contained in:
2025-06-16 09:26:55 +03:30
parent 05b46a82b1
commit 2164c4415b
3 changed files with 9 additions and 12 deletions

View File

@@ -2,7 +2,7 @@ from rest_framework import serializers
from apps.product import models as product_models
from apps.product.web.api.v1.product_serializers import QuotaSerializer
from django.db import models
from rest_framework.exceptions import APIException
from apps.product.exceptions import QuotaWeightException
from rest_framework import status
@@ -20,22 +20,18 @@ class QuotaDistributionSerializer(serializers.ModelSerializer):
""" to validate if distribution weight
more than quota weight raise exception """
quota = data['quota']
quota = product_models.Quota.objects.get(id=data['quota'])
amount = data['weight']
instance_id = self.instance.id if self.instance else None
total = product_models.QuotaDistribution.objects.filter(
quota_id=quota
quota=quota
).exclude(id=instance_id).aggregate(
total=models.Sum('weight')
)['total'] or 0
print(total)
if total + amount > self.instance.weight:
raise APIException(
"مقدار وارد شده باعث می‌شود مجموع سهمیه‌ها از مقدار کل سهمیه بیشتر شود.", # noqa
status.HTTP_400_BAD_REQUEST,
)
raise QuotaWeightException()
return data