diff --git a/apps/pos_device/migrations/0012_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0012_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..0c4157a --- /dev/null +++ b/apps/pos_device/migrations/0012_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-07-30 07:47 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0011_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 7, 30, 11, 17, 6, 383610)), + ), + ] diff --git a/apps/product/migrations/0058_historicalquotadistribution_parent_distribution_and_more.py b/apps/product/migrations/0058_historicalquotadistribution_parent_distribution_and_more.py new file mode 100644 index 0000000..e7d9f13 --- /dev/null +++ b/apps/product/migrations/0058_historicalquotadistribution_parent_distribution_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 5.0 on 2025-07-30 07:47 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('product', '0057_historicalquotadistribution_distributed_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='historicalquotadistribution', + name='parent_distribution', + field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='product.quotadistribution'), + ), + migrations.AddField( + model_name='quotadistribution', + name='parent_distribution', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='parent', to='product.quotadistribution'), + ), + ] diff --git a/apps/product/models.py b/apps/product/models.py index 1b83596..bfac3bb 100644 --- a/apps/product/models.py +++ b/apps/product/models.py @@ -530,6 +530,12 @@ class QuotaLiveStockAgeLimitation(BaseModel): class QuotaDistribution(BaseModel): + parent_distribution = models.ForeignKey( + 'self', + on_delete=models.CASCADE, + related_name='parent', + null=True + ) assigner_organization = models.ForeignKey( Organization, on_delete=models.CASCADE, diff --git a/apps/product/signals.py b/apps/product/signals.py index a74e28c..10ae922 100644 --- a/apps/product/signals.py +++ b/apps/product/signals.py @@ -32,13 +32,14 @@ def remaining_distribution_weight(instance: QuotaDistribution): """ calculate remaining & distributed weight from distribution """ organization = get_organization_by_user(get_current_user()) + print(get_current_user()) total_assigned_distribution = QuotaDistribution.objects.filter( Q(assigned_organization=organization) ).aggregate( total=Sum('weight') )['total'] or 0 - + print(organization.name) print(total_assigned_distribution) total_assigner_distribution = QuotaDistribution.objects.filter( @@ -48,6 +49,7 @@ def remaining_distribution_weight(instance: QuotaDistribution): )['total'] or 0 print(total_assigner_distribution) + print(organization.name) print(total_assigned_distribution - total_assigner_distribution)