# Generated by Django 5.1.4 on 2025-01-03 10:56

import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('human_resource', '0001_initial'),
        ('system_administration', '0001_initial'),
        ('warehouse_management', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='PurchaseOrder',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('purchase_order_number', models.CharField(default='', max_length=50, unique=True)),
                ('purchase_value_overall', models.CharField(default='0.00', max_length=15)),
                ('purchase_order_landed_costs_overall', models.CharField(default='0.00', max_length=15)),
                ('purchase_order_approved', models.BooleanField(default=False)),
                ('recycle_bin', models.BooleanField(default=False)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(default=django.utils.timezone.now)),
                ('company_profile', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='company_purchase_orders', to='system_administration.companyprofile')),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='purchase_order_created_by', to='human_resource.staffprofile')),
                ('last_updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='purchase_order_last_updated_by', to='human_resource.staffprofile')),
                ('purchase_order_approved_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='purchase_order_approved_by', to='human_resource.staffprofile')),
            ],
            options={
                'verbose_name': 'Purchase Order',
                'verbose_name_plural': 'Purchase Orders',
            },
        ),
        migrations.CreateModel(
            name='StockOrder',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('stock_order_number', models.CharField(default='', max_length=50, unique=True)),
                ('stock_order_approved', models.BooleanField(default=False)),
                ('recycle_bin', models.BooleanField(default=False)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('company_branch', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='branch_stock_orders', to='system_administration.companybranch')),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_created_by', to='human_resource.staffprofile')),
                ('last_updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_last_updated_by', to='human_resource.staffprofile')),
                ('stock_order_approved_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_approved_by', to='human_resource.staffprofile')),
            ],
            options={
                'verbose_name': 'Stock Order',
                'verbose_name_plural': 'Stock Orders',
            },
        ),
        migrations.CreateModel(
            name='StockOrderInstance',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('stock_order_item_delivered', models.BooleanField(default=False)),
                ('quantity_ordered', models.CharField(default='0', max_length=15)),
                ('quantity_delivered', models.CharField(default='0', max_length=15)),
                ('recycle_bin', models.BooleanField(default=False)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_instance_created_by', to='human_resource.staffprofile')),
                ('last_updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_instance_last_updated_by', to='human_resource.staffprofile')),
                ('stock_order', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_order_product_instances', to='procurement.purchaseorder')),
                ('stock_requisition_instance', models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stock_requisition_product_instances', to='warehouse_management.stockrequisitioninstance')),
            ],
            options={
                'verbose_name': 'Stock Order Instance',
                'verbose_name_plural': 'Stock Order Instances',
            },
        ),
        migrations.CreateModel(
            name='Supplier',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('supplier_name', models.CharField(default='', max_length=100)),
                ('supplier_phone', models.CharField(max_length=15)),
                ('supplier_email', models.EmailField(default='', max_length=50)),
                ('supplier_address', models.CharField(default='', max_length=100)),
                ('supplier_description', models.CharField(blank=True, default='', max_length=500)),
                ('recycle_bin', models.BooleanField(default=False)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('company_profile', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='company_suppliers', to='system_administration.companyprofile')),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='supplier_created_by', to='human_resource.staffprofile')),
                ('last_updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='supplier_last_updated_by', to='human_resource.staffprofile')),
                ('supplied_products', models.ManyToManyField(blank=True, related_name='supplier_products', to='warehouse_management.product')),
                ('user', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_supplier_profile', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='ProductPurchaseInstance',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('purchase_value_per_unit', models.CharField(default='0.00', max_length=15)),
                ('cost_currency', models.CharField(choices=[('usd', 'USD'), ('gbp', 'GBP'), ('eur', 'EUR'), ('kes', 'KES'), ('not_selected', 'Not Selected')], default='kes', max_length=30)),
                ('exchange_rate', models.CharField(blank=True, default='1.00', max_length=12)),
                ('purchase_value_overall', models.CharField(default='0.00', max_length=15)),
                ('purchase_amount_paid_to_supplier', models.CharField(default='0.00', max_length=15)),
                ('supplier_payment_settled', models.BooleanField(default=False)),
                ('product_purchase_delivered', models.BooleanField(default=False)),
                ('quantity_purchased', models.CharField(default='0', max_length=15)),
                ('quantity_delivered', models.CharField(default='0', max_length=15)),
                ('recycle_bin', models.BooleanField(default=False)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='product_purchase_instance_created_by', to='human_resource.staffprofile')),
                ('last_updated_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='product_purchase_instance_last_updated_by', to='human_resource.staffprofile')),
                ('purchase_product', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='purchase_product_instances', to='warehouse_management.product')),
                ('purchase_order', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='purchase_order_product_instances', to='procurement.purchaseorder')),
                ('supplier', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='supplier_product_purchase_instances', to='procurement.supplier')),
            ],
            options={
                'verbose_name': 'Product Purchase Instance',
                'verbose_name_plural': 'Product Purchase Instances',
            },
        ),
        migrations.CreateModel(
            name='SupplierPaymentDetails',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('banking_institution_name', models.CharField(blank=True, default='', max_length=100)),
                ('bank_account_name', models.CharField(blank=True, default='', max_length=100)),
                ('bank_account_number', models.CharField(blank=True, default='', max_length=100)),
                ('bank_branch_name', models.CharField(blank=True, default='', max_length=100)),
                ('bank_branch_code', models.CharField(blank=True, default='', max_length=100)),
                ('bank_swift_code', models.CharField(blank=True, default='', max_length=100)),
                ('created_on', models.DateTimeField(auto_now_add=True)),
                ('last_updated_on', models.DateTimeField(auto_now=True)),
                ('supplier', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='supplier_payment_details', to='procurement.supplier')),
            ],
        ),
    ]
