from django.db import models class InboundBill(models.Model): BOUND_TYPE = ( (1, '订单'), (2, '其他'), ) STATUS_CHOICES = ( (0, '草稿'), (1, '已审批'), (2, '已入库'), (3, '已取消'), ) billId = models.BigIntegerField(primary_key=True,verbose_name='原始单据ID') number = models.CharField(max_length=50, unique=True, verbose_name='单据编号') type = models.IntegerField(choices=BOUND_TYPE, verbose_name='绑定类型') date = models.CharField(max_length=10, verbose_name='入库时间') department = models.CharField(max_length=100, verbose_name='部门', null=True) warehouse = models.CharField(max_length=100, verbose_name='仓库', default='W01') creater = models.CharField(max_length=50, verbose_name='创建人', null=True) note = models.TextField(blank=True, verbose_name='备注说明', null=True) totalCount = models.IntegerField(verbose_name='总条目数') create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') bound_status = models.IntegerField(default=0, verbose_name='状态') is_delete = models.BooleanField(default=False, verbose_name='是否删除') erp_audit_id = models.CharField(max_length=1000,null=True, verbose_name='ERP审核ID') erp_save_id = models.CharField(max_length=1000,null=True, verbose_name='ERP保存ID') class Meta: verbose_name = '生产入库单' verbose_name_plural = verbose_name ordering = [ 'bound_status','-create_time','-update_time'] class OutboundBill(models.Model): BOUND_TYPE = ( (1, '订单'), (2, '其他'), ) STATUS_CHOICES = ( (0, '草稿'), (1, '已审批'), (2, '已入库'), (3, '已取消'), ) billId = models.BigIntegerField(primary_key=True,verbose_name='原始单据ID') number = models.CharField(max_length=50, unique=True, verbose_name='单据编号') type = models.IntegerField(choices=BOUND_TYPE, verbose_name='绑定类型') date = models.CharField(max_length=10, verbose_name='出库时间') department = models.CharField(max_length=10, verbose_name='部门', null=True,blank=True) warehouse = models.CharField(max_length=10, verbose_name='仓库', default='W01') creater = models.CharField(max_length=50, verbose_name='创建人', null=True,blank=True) note = models.TextField(blank=True, verbose_name='备注说明', null=True) totalCount = models.IntegerField(verbose_name='总条目数') create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') bound_status = models.IntegerField(default=0, verbose_name='状态') is_delete = models.BooleanField(default=False, verbose_name='是否删除') erp_audit_id = models.CharField(max_length=1000,null=True, verbose_name='ERP审核ID') erp_save_id = models.CharField(max_length=1000,null=True, verbose_name='ERP保存ID') class Meta: verbose_name = '出库单' verbose_name_plural = verbose_name ordering = [ 'bound_status','-create_time','-update_time'] class MaterialDetail(models.Model): """物料明细模型""" bound_billId = models.ForeignKey( InboundBill, on_delete=models.CASCADE, related_name='bill_id', verbose_name='所属入库单' ) STATUS_CHOICES = ( (0, '未质检'), (1, '已质检'), ) entryIds = models.BigIntegerField(verbose_name='分录ID') production_batch = models.CharField(max_length=50, verbose_name='生产批次') goods_code = models.CharField(max_length=20, verbose_name='商品编码') goods_name = models.CharField(max_length=100, verbose_name='商品名称') goods_std = models.CharField(max_length=50, verbose_name='商品规格') goods_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='单件重量', default=1) plan_qty = models.IntegerField(verbose_name='计划数量') goods_total_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='总重量', null=True) goods_unit = models.CharField(max_length=20, verbose_name='计量单位') note = models.TextField(blank=True, verbose_name='备注') status = models.IntegerField(choices=STATUS_CHOICES, verbose_name='质检状态', default=0) create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') is_delete = models.BooleanField(default=False, verbose_name='是否删除') class Meta: verbose_name = '物料明细' verbose_name_plural = verbose_name unique_together = [('bound_billId', 'entryIds')] ordering = ['-update_time', '-create_time'] class OutMaterialDetail(models.Model): """物料明细模型""" bound_billId = models.ForeignKey( OutboundBill, on_delete=models.CASCADE, related_name='bill_id', verbose_name='所属出库单' ) Material_entryIds = models.ForeignKey( MaterialDetail, on_delete=models.CASCADE, related_name='entry_Ids', verbose_name='所属入库单详细', null=True, blank=True ) entryIds = models.BigIntegerField(verbose_name='分录ID') production_batch = models.CharField(max_length=50, verbose_name='生产批次') goods_code = models.CharField(max_length=20, verbose_name='商品编码') goods_name = models.CharField(max_length=100, verbose_name='商品名称') goods_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='单件重量', default=1) goods_out_qty = models.IntegerField(verbose_name='计划数量') goods_total_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='总重量', null=True) goods_unit = models.CharField(max_length=20, verbose_name='计量单位') note = models.TextField(blank=True, verbose_name='备注') create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') is_delete = models.BooleanField(default=False, verbose_name='是否删除') class Meta: verbose_name = '出库物料明细' verbose_name_plural = verbose_name ordering = ['-update_time', '-create_time']