from decimal import Decimal from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ("container", "0038_wcstasklogmodel_floor_wcstasklogmodel_is_completed_and_more"), ] operations = [ migrations.CreateModel( name="CountReason", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("code", models.CharField(max_length=32, unique=True, verbose_name="原因编码")), ("description", models.CharField(max_length=255, verbose_name="原因说明")), ("is_active", models.BooleanField(default=True, verbose_name="是否启用")), ("sort", models.IntegerField(default=0, verbose_name="排序")), ("note", models.CharField(blank=True, max_length=255, verbose_name="备注")), ("create_time", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), ("update_time", models.DateTimeField(auto_now=True, verbose_name="更新时间")), ], options={ "verbose_name": "盘点差异原因", "verbose_name_plural": "盘点差异原因", "db_table": "cycle_count_reason", "ordering": ["sort", "code"], }, ), migrations.CreateModel( name="CountTask", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("doc_no", models.CharField(blank=True, help_text="自动生成,也可手工录入", max_length=40, unique=True, verbose_name="任务单号")), ("warehouse_code", models.CharField(max_length=64, verbose_name="仓库编码")), ("warehouse_name", models.CharField(blank=True, max_length=128, verbose_name="仓库名称")), ("task_type", models.CharField(choices=[("full", "全盘"), ("sample", "抽盘"), ("adhoc", "临盘")], default="full", max_length=16, verbose_name="任务类型")), ("status", models.CharField(choices=[("draft", "草稿"), ("released", "已下发"), ("in_progress", "进行中"), ("wait_recount", "待复盘"), ("completed", "已完成"), ("closed", "已关闭")], default="draft", max_length=20, verbose_name="状态")), ("source_batch", models.CharField(blank=True, max_length=64, verbose_name="来源批次")), ("remark", models.CharField(blank=True, max_length=255, verbose_name="备注")), ("scheduled_at", models.DateTimeField(blank=True, null=True, verbose_name="计划盘点时间")), ("created_by", models.CharField(blank=True, max_length=64, verbose_name="创建人")), ("total_details", models.IntegerField(default=0, verbose_name="明细数量")), ("counted_details", models.IntegerField(default=0, verbose_name="已盘数量")), ("variance_details", models.IntegerField(default=0, verbose_name="差异数量")), ("create_time", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), ("update_time", models.DateTimeField(auto_now=True, verbose_name="更新时间")), ], options={ "verbose_name": "盘点任务", "verbose_name_plural": "盘点任务", "db_table": "cycle_count_task", "ordering": ["-id"], }, ), migrations.CreateModel( name="CountTaskDetail", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("container_code", models.CharField(blank=True, max_length=64, verbose_name="托盘编码")), ("location_code", models.CharField(blank=True, max_length=64, verbose_name="库位")), ("goods_code", models.CharField(blank=True, max_length=64, verbose_name="物料编码")), ("goods_desc", models.CharField(blank=True, max_length=255, verbose_name="物料名称")), ("goods_std", models.CharField(blank=True, max_length=255, verbose_name="规格型号")), ("goods_unit", models.CharField(blank=True, max_length=32, verbose_name="单位")), ("batch_number", models.CharField(blank=True, max_length=64, verbose_name="管理批次")), ("book_qty", models.DecimalField(decimal_places=3, default=Decimal("0"), max_digits=14, verbose_name="账面数量")), ("initial_count_qty", models.DecimalField(blank=True, decimal_places=3, max_digits=14, null=True, verbose_name="初盘数量")), ("recount_qty", models.DecimalField(blank=True, decimal_places=3, max_digits=14, null=True, verbose_name="复盘数量")), ("final_qty", models.DecimalField(decimal_places=3, default=Decimal("0"), max_digits=14, verbose_name="最终数量")), ("variance_qty", models.DecimalField(decimal_places=3, default=Decimal("0"), max_digits=14, verbose_name="盘差数量")), ("counter_name", models.CharField(blank=True, max_length=64, verbose_name="初盘人")), ("recount_counter", models.CharField(blank=True, max_length=64, verbose_name="复盘人")), ("note", models.CharField(blank=True, max_length=255, verbose_name="备注")), ("status", models.CharField(choices=[("pending", "待盘点"), ("counted", "已初盘"), ("variance", "待复盘"), ("completed", "已完成")], default="pending", max_length=20, verbose_name="状态")), ("create_time", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), ("update_time", models.DateTimeField(auto_now=True, verbose_name="更新时间")), ("container", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="count_details", to="container.containerlistmodel", verbose_name="托盘")), ("reason", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="details", to="cyclecount.countreason", verbose_name="差异原因")), ("task", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="details", to="cyclecount.counttask", verbose_name="任务")), ], options={ "verbose_name": "盘点任务明细", "verbose_name_plural": "盘点任务明细", "db_table": "cycle_count_task_detail", "ordering": ["id"], }, ), ]