From 7866e40b1e91f7174b3fbc90ea9767623cfb3415 Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Mon, 16 Jun 2025 12:05:32 +0330 Subject: [PATCH] add remaining weight to quota --- ...19_page_is_active_permissions_is_active.py | 23 +++++++++++++++++++ .../migrations/0028_quota_remaining_weight.py | 18 +++++++++++++++ apps/product/models.py | 2 +- apps/product/signals.py | 8 +++---- 4 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 apps/authorization/migrations/0019_page_is_active_permissions_is_active.py create mode 100644 apps/product/migrations/0028_quota_remaining_weight.py diff --git a/apps/authorization/migrations/0019_page_is_active_permissions_is_active.py b/apps/authorization/migrations/0019_page_is_active_permissions_is_active.py new file mode 100644 index 0000000..866e5be --- /dev/null +++ b/apps/authorization/migrations/0019_page_is_active_permissions_is_active.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0 on 2025-06-16 07:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('authorization', '0018_alter_userrelations_organization'), + ] + + operations = [ + migrations.AddField( + model_name='page', + name='is_active', + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name='permissions', + name='is_active', + field=models.BooleanField(default=True), + ), + ] diff --git a/apps/product/migrations/0028_quota_remaining_weight.py b/apps/product/migrations/0028_quota_remaining_weight.py new file mode 100644 index 0000000..94d1632 --- /dev/null +++ b/apps/product/migrations/0028_quota_remaining_weight.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0 on 2025-06-16 07:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('product', '0027_alter_quotadistribution_assigner_organization'), + ] + + operations = [ + migrations.AddField( + model_name='quota', + name='remaining_weight', + field=models.PositiveBigIntegerField(default=0), + ), + ] diff --git a/apps/product/models.py b/apps/product/models.py index 10ccf38..6049b36 100644 --- a/apps/product/models.py +++ b/apps/product/models.py @@ -246,7 +246,7 @@ class Quota(BaseModel): quota_id = models.PositiveBigIntegerField(null=True, blank=True) quota_code = models.CharField(max_length=15, null=True) quota_weight = models.PositiveIntegerField(default=0) - remaining_quota_weight = models.PositiveBigIntegerField(default=0) + remaining_weight = models.PositiveBigIntegerField(default=0) quota_distributed = models.PositiveIntegerField(default=0) quota_balance = models.PositiveIntegerField(default=0) product = models.ForeignKey( diff --git a/apps/product/signals.py b/apps/product/signals.py index 89150aa..4422567 100644 --- a/apps/product/signals.py +++ b/apps/product/signals.py @@ -5,12 +5,12 @@ from .models import QuotaDistribution, Quota def recalculate_remaining_amount(quota): - total_distributed = quota.distributions.aggregate( - total=Sum('amount_kg') + total_distributed = quota.distributions_assigned.aggregate( + total=Sum('weight') )['total'] or 0 - quota.remaining_amount_kg = quota.total_amount_kg - total_distributed - quota.save(update_fields=["remaining_amount_kg"]) + quota.remaining_weight = quota.quota_weight - total_distributed + quota.save(update_fields=["remaining_weight"]) @receiver(post_save, sender=QuotaDistribution)