add remaining weight to quota

This commit is contained in:
2025-06-16 12:05:32 +03:30
parent 0bad353e9e
commit 7866e40b1e
4 changed files with 46 additions and 5 deletions

View File

@@ -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),
),
]

View File

@@ -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),
),
]

View File

@@ -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(

View File

@@ -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)