fix - set exception in org_quota_stat signal

This commit is contained in:
2025-11-18 09:37:42 +03:30
parent 4e5319b625
commit 1a9c01cdcd

View File

@@ -4,6 +4,7 @@ from django.db import models
from django.db.models import Sum, Q
from django.db.models.signals import post_save, post_delete, post_init
from django.dispatch import receiver
from rest_framework import status
from apps.product.validators.quota_stats_validator import QuotaStatsValidator
from apps.warehouse.models import (
@@ -11,6 +12,7 @@ from apps.warehouse.models import (
InventoryEntry
)
from common.helpers import get_organization_by_user
from .exceptions import QuotaException
from .models import (
QuotaDistribution,
Quota,
@@ -326,6 +328,11 @@ def organization_quota_stats(sender, instance: Quota, created: bool, **kwargs):
total=Sum('weight')
)['total'] or 0
org_quota_stat.remaining_amount = org_quota_stat.total_amount - org_quota_stat.total_distributed
if org_quota_stat.remaining_amount < 0:
raise QuotaException(
"وزن سهمیه نباید از مقدار توزیع شده کمتر باشد", # noqa
status.HTTP_403_FORBIDDEN
)
org_quota_stat.save(update_fields=['total_amount', 'total_distributed', 'sold_amount', 'remaining_amount'])
# delete quota