store transfer and panel anbar

This commit is contained in:
javad committed 2026-07-03 16:52:04 +03:30
1 parent bd775d6249
commit c5e9b1d18a
13 files changed
+2968 -190

No files matched your search

@@ -0,0 +1,17 @@
# Generated by Django 3.2.25 on 2026-07-03 10:14
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('admin_panel', '0047_alter_productinstore_movement_type'),
]
operations = [
migrations.AlterModelOptions(
name='productinstore',
options={'permissions': [('ViewProductInStore', 'ViewProductInStore'), ('EditProductInStore', 'EditProductInStore')]},
),
]
@@ -0,0 +1,17 @@
# Generated by Django 3.2.25 on 2026-07-03 10:38
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('admin_panel', '0048_alter_productinstore_options'),
]
operations = [
migrations.AlterModelOptions(
name='productinstore',
options={'permissions': [('ViewProductInStore', 'ViewProductInStore'), ('EditProductInStore', 'EditProductInStore'), ('OnlyAnbar', 'OnlyAnbar')]},
),
]
@@ -0,0 +1,41 @@
# Generated by Django 3.2.25 on 2026-07-03 12:24
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('admin_panel', '0049_alter_productinstore_options'),
]
operations = [
migrations.CreateModel(
name='StoreTransferRequest',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('quantity', models.PositiveIntegerField(verbose_name='تعداد انتقال')),
('status', models.CharField(choices=[('PENDING', 'در انتظار تایید انبار مقصد'), ('APPROVED', 'تایید شده و منتقل شده'), ('REJECTED', 'رد شده توسط انبار مقصد'), ('CANCELED', 'انصراف توسط مبدا')], db_index=True, default='PENDING', max_length=15, verbose_name='وضعیت')),
('desc', models.CharField(blank=True, max_length=500, null=True, verbose_name='توضیحات درخواست')),
('rejection_reason', models.CharField(blank=True, max_length=500, null=True, verbose_name='دلیل رد درخواست')),
('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='زمان ثبت درخواست')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='زمان آخرین به\u200cروزرسانی')),
('action_date', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='زمان تعیین تکلیف')),
('approver', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='processed_transfers', to=settings.AUTH_USER_MODEL, verbose_name='کاربر تعیین\u200cتکلیف\u200cکننده')),
('in_transaction', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transfer_in_ref', to='admin_panel.productinstore', verbose_name='سند ورود انبار مقصد')),
('out_transaction', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transfer_out_ref', to='admin_panel.productinstore', verbose_name='سند خروج انبار مبدا')),
('product', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='admin_panel.product', verbose_name='کالا')),
('requester', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='requested_transfers', to=settings.AUTH_USER_MODEL, verbose_name='کاربر درخواست\u200cدهنده')),
('source_store', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='outgoing_transfers', to='admin_panel.storeroom', verbose_name='انبار مبدا')),
('target_store', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='incoming_transfers', to='admin_panel.storeroom', verbose_name='انبار مقصد')),
],
options={
'verbose_name': 'درخواست انتقال بین انبار',
'verbose_name_plural': 'درخواست\u200cهای انتقال بین انبار',
'ordering': ['-created_at'],
},
),
]