quota, distribution, inventory entry, quota sale transaction, product informations, signals ,....

This commit is contained in:
2025-07-02 15:42:51 +03:30
parent 2f23c5104d
commit 279afba977
45 changed files with 1408 additions and 88 deletions

View File

@@ -0,0 +1,29 @@
# Generated by Django 5.0 on 2025-06-28 10:53
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('product', '0028_quota_remaining_weight'),
]
operations = [
migrations.RemoveField(
model_name='quota',
name='assigned_organizations',
),
migrations.RemoveField(
model_name='quota',
name='registerer_organization',
),
migrations.RemoveField(
model_name='quotadistribution',
name='assigned_organization',
),
migrations.RemoveField(
model_name='quotadistribution',
name='assigner_organization',
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 5.0 on 2025-06-28 11:02
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('product', '0029_remove_quota_assigned_organizations_and_more'),
]
operations = [
migrations.RemoveField(
model_name='broker',
name='organization_relations',
),
]

View File

@@ -0,0 +1,40 @@
# Generated by Django 5.0 on 2025-06-28 11:04
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0022_alter_user_mobile_alter_user_national_code'),
('product', '0030_remove_broker_organization_relations'),
]
operations = [
migrations.AddField(
model_name='broker',
name='organization',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='product_organization', to='authentication.organization'),
),
migrations.AddField(
model_name='quota',
name='assigned_organizations',
field=models.ManyToManyField(blank=True, related_name='assigned_quotas', to='authentication.organization'),
),
migrations.AddField(
model_name='quota',
name='registerer_organization',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='quotas', to='authentication.organization'),
),
migrations.AddField(
model_name='quotadistribution',
name='assigned_organization',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='distributions', to='authentication.organization'),
),
migrations.AddField(
model_name='quotadistribution',
name='assigner_organization',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='distributions_assigner', to='authentication.organization'),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.0 on 2025-06-29 11:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0031_broker_organization_quota_assigned_organizations_and_more'),
]
operations = [
migrations.AddField(
model_name='quota',
name='closed_at',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AddField(
model_name='quota',
name='is_closed',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,43 @@
# Generated by Django 5.0 on 2025-06-30 11:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0032_quota_closed_at_quota_is_closed'),
]
operations = [
migrations.AlterField(
model_name='quotalivestockagelimitation',
name='livestock_subtype',
field=models.CharField(choices=[('milking', 'شیری'), ('fattening', 'پرواری')], max_length=20, null=True),
),
migrations.AlterField(
model_name='quotalivestockagelimitation',
name='livestock_type',
field=models.CharField(choices=[('light', 'سبک'), ('heavy', 'سنگین')], max_length=20, null=True),
),
migrations.AlterField(
model_name='quotalivestockallocation',
name='livestock_group',
field=models.CharField(choices=[('rural', 'روستایی'), ('industrial', 'صنعتی'), ('nomadic', 'عشایری')], max_length=20, null=True),
),
migrations.AlterField(
model_name='quotalivestockallocation',
name='livestock_subtype',
field=models.CharField(choices=[('milking', 'شیری'), ('fattening', 'پرواری')], max_length=20, null=True),
),
migrations.AlterField(
model_name='quotalivestockallocation',
name='livestock_type',
field=models.CharField(choices=[('light', 'سبک'), ('heavy', 'سنگین')], max_length=20, null=True),
),
migrations.AlterField(
model_name='quotalivestockallocation',
name='quantity_kg',
field=models.DecimalField(decimal_places=2, max_digits=12, null=True),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 5.0 on 2025-06-30 11:49
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('product', '0033_alter_quotalivestockagelimitation_livestock_subtype_and_more'),
]
operations = [
migrations.AlterUniqueTogether(
name='quotalivestockallocation',
unique_together=set(),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 5.0 on 2025-07-01 05:18
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('product', '0034_alter_quotalivestockallocation_unique_together'),
]
operations = [
migrations.RemoveField(
model_name='quota',
name='quota_balance',
),
]

View File

@@ -0,0 +1,52 @@
# Generated by Django 5.0 on 2025-07-02 05:18
import django.db.models.deletion
import simple_history.models
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0023_alter_organization_company_code_and_more'),
('product', '0035_remove_quota_quota_balance'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='HistoricalQuotaDistribution',
fields=[
('id', models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
('create_date', models.DateTimeField(blank=True, editable=False)),
('modify_date', models.DateTimeField(blank=True, editable=False)),
('creator_info', models.CharField(max_length=100, null=True)),
('modifier_info', models.CharField(max_length=100, null=True)),
('trash', models.BooleanField(default=False)),
('description', models.TextField(max_length=1000, null=True)),
('distribution_id', models.CharField(max_length=20, null=True)),
('weight', models.PositiveBigIntegerField(default=0)),
('warehouse_entry', models.PositiveBigIntegerField(default=0)),
('warehouse_balance', models.PositiveBigIntegerField(default=0)),
('been_sold', models.PositiveBigIntegerField(default=0)),
('history_id', models.AutoField(primary_key=True, serialize=False)),
('history_date', models.DateTimeField(db_index=True)),
('history_change_reason', models.CharField(max_length=100, null=True)),
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
('assigned_organization', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='authentication.organization')),
('assigner_organization', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='authentication.organization')),
('created_by', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL)),
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL)),
('quota', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='product.quota')),
],
options={
'verbose_name': 'historical quota distribution',
'verbose_name_plural': 'historical quota distributions',
'ordering': ('-history_date', '-history_id'),
'get_latest_by': ('history_date', 'history_id'),
},
bases=(simple_history.models.HistoricalChanges, models.Model),
),
]