models.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from django.db import models
  2. class InboundBill(models.Model):
  3. BOUND_TYPE = (
  4. (1, '订单'),
  5. (2, '其他'),
  6. )
  7. STATUS_CHOICES = (
  8. (0, '草稿'),
  9. (1, '已审批'),
  10. (2, '已入库'),
  11. (3, '已取消'),
  12. )
  13. billId = models.IntegerField(primary_key=True,verbose_name='原始单据ID')
  14. number = models.CharField(max_length=50, unique=True, verbose_name='单据编号')
  15. type = models.IntegerField(choices=BOUND_TYPE, verbose_name='绑定类型')
  16. date = models.CharField(max_length=10, verbose_name='入库时间')
  17. department = models.CharField(max_length=10, verbose_name='部门', null=True)
  18. warehouse = models.CharField(max_length=10, verbose_name='仓库', default='W01') # 修正 defaults 为 default
  19. creater = models.CharField(max_length=50, verbose_name='创建人', null=True)
  20. note = models.TextField(blank=True, verbose_name='备注说明', null=True)
  21. totalCount = models.IntegerField(verbose_name='总条目数')
  22. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  23. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  24. bound_status = models.IntegerField(default=0, verbose_name='状态')
  25. is_delete = models.BooleanField(default=False, verbose_name='是否删除')
  26. class Meta:
  27. verbose_name = '生产入库单'
  28. verbose_name_plural = verbose_name
  29. ordering = [ 'bound_status','-create_time','-update_time']
  30. class MaterialDetail(models.Model):
  31. """物料明细模型"""
  32. bound_billId = models.ForeignKey(
  33. InboundBill,
  34. on_delete=models.CASCADE,
  35. related_name='bill_id',
  36. verbose_name='所属入库单'
  37. )
  38. entryIds = models.IntegerField(verbose_name='分录ID')
  39. production_batch = models.CharField(max_length=50, verbose_name='生产批次')
  40. goods_code = models.CharField(max_length=20, verbose_name='商品编码')
  41. goods_name = models.CharField(max_length=100, verbose_name='商品名称')
  42. goods_std = models.CharField(max_length=50, verbose_name='商品规格')
  43. goods_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='单件重量', default=1)
  44. plan_qty = models.IntegerField(verbose_name='计划数量')
  45. goods_total_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='总重量', null=True)
  46. goods_unit = models.CharField(max_length=20, verbose_name='计量单位')
  47. note = models.TextField(blank=True, verbose_name='备注')
  48. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  49. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  50. is_delete = models.BooleanField(default=False, verbose_name='是否删除')
  51. class Meta:
  52. verbose_name = '物料明细'
  53. verbose_name_plural = verbose_name
  54. unique_together = [('bound_billId', 'entryIds')]
  55. ordering = ['-update_time', '-create_time']