related quotas

This commit is contained in:
2025-08-03 11:52:29 +03:30
parent 275b84467e
commit 6ccbadbbdc
4 changed files with 65 additions and 28 deletions

View File

@@ -84,25 +84,35 @@ def update_product_stats(instance: Product, distribution: QuotaDistribution = No
)
# number of quotas
quotas_count = instance.quotas.filter(is_closed=False, registerer_organization=organization) # noqa
total_quotas_weight = quotas_count.aggregate( # noqa
quota = Quota.objects.filter(
Q(
distributions_assigned__in=QuotaDistribution.objects.filter(
Q(assigned_organization=organization) |
Q(assigner_organization=organization)
)
) |
Q(registerer_organization=organization),
product=instance
).distinct()
quotas_count = quota.count() # noqa
total_quotas_weight = quota.aggregate( # noqa
total=models.Sum('quota_weight')
)['total'] or 0
quotas_count = quotas_count.count()
# total weight of product that assigned in quota
active_quotas_weight = instance.quotas.filter(is_closed=False, registerer_organization=organization).aggregate(
active_quotas_weight = quota.filter(is_closed=False).aggregate(
total=models.Sum('quota_weight')
)['total'] or 0
closed_quotas_weight = instance.quotas.filter(is_closed=True, registerer_organization=organization).aggregate( # noqa
closed_quotas_weight = quota.filter(is_closed=True).aggregate( # noqa
total=models.Sum('quota_weight')
)['total'] or 0
# total remaining weight of product quotas
total_remaining_quotas_weight = instance.quotas.filter(is_closed=False).aggregate( # noqa
total_remaining_quotas_weight = quota.filter(is_closed=False).aggregate( # noqa
total=models.Sum('remaining_weight')
)['total'] or 0