models.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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.BigIntegerField(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=100, verbose_name='部门', null=True)
  18. warehouse = models.CharField(max_length=100, verbose_name='仓库', default='W01')
  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. erp_audit_id = models.CharField(max_length=1000,null=True, verbose_name='ERP审核ID')
  27. erp_save_id = models.CharField(max_length=1000,null=True, verbose_name='ERP保存ID')
  28. class Meta:
  29. verbose_name = '生产入库单'
  30. verbose_name_plural = verbose_name
  31. ordering = [ 'bound_status','-create_time','-update_time']
  32. class OutboundBill(models.Model):
  33. BOUND_TYPE = (
  34. (1, '订单'),
  35. (2, '其他'),
  36. )
  37. STATUS_CHOICES = (
  38. (0, '草稿'),
  39. (1, '已审批'),
  40. (2, '已入库'),
  41. (3, '已取消'),
  42. )
  43. billId = models.BigIntegerField(primary_key=True,verbose_name='原始单据ID')
  44. number = models.CharField(max_length=50, unique=True, verbose_name='单据编号')
  45. type = models.IntegerField(choices=BOUND_TYPE, verbose_name='绑定类型')
  46. date = models.CharField(max_length=10, verbose_name='出库时间')
  47. department = models.CharField(max_length=10, verbose_name='部门', null=True,blank=True)
  48. warehouse = models.CharField(max_length=10, verbose_name='仓库', default='W01')
  49. creater = models.CharField(max_length=50, verbose_name='创建人', null=True,blank=True)
  50. note = models.TextField(blank=True, verbose_name='备注说明', null=True)
  51. totalCount = models.IntegerField(verbose_name='总条目数')
  52. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  53. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  54. bound_status = models.IntegerField(default=0, verbose_name='状态')
  55. is_delete = models.BooleanField(default=False, verbose_name='是否删除')
  56. erp_audit_id = models.CharField(max_length=1000,null=True, verbose_name='ERP审核ID')
  57. erp_save_id = models.CharField(max_length=1000,null=True, verbose_name='ERP保存ID')
  58. class Meta:
  59. verbose_name = '出库单'
  60. verbose_name_plural = verbose_name
  61. ordering = [ 'bound_status','-create_time','-update_time']
  62. class MaterialDetail(models.Model):
  63. """物料明细模型"""
  64. bound_billId = models.ForeignKey(
  65. InboundBill,
  66. on_delete=models.CASCADE,
  67. related_name='bill_id',
  68. verbose_name='所属入库单'
  69. )
  70. STATUS_CHOICES = (
  71. (0, '未质检'),
  72. (1, '已质检'),
  73. )
  74. entryIds = models.BigIntegerField(verbose_name='分录ID')
  75. production_batch = models.CharField(max_length=50, verbose_name='生产批次')
  76. goods_code = models.CharField(max_length=20, verbose_name='商品编码')
  77. goods_name = models.CharField(max_length=100, verbose_name='商品名称')
  78. goods_std = models.CharField(max_length=50, verbose_name='商品规格')
  79. goods_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='单件重量', default=1)
  80. plan_qty = models.IntegerField(verbose_name='计划数量')
  81. goods_total_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='总重量', null=True)
  82. goods_unit = models.CharField(max_length=20, verbose_name='计量单位')
  83. note = models.TextField(blank=True, verbose_name='备注')
  84. status = models.IntegerField(choices=STATUS_CHOICES, verbose_name='质检状态', default=0)
  85. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  86. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  87. is_delete = models.BooleanField(default=False, verbose_name='是否删除')
  88. class Meta:
  89. verbose_name = '物料明细'
  90. verbose_name_plural = verbose_name
  91. unique_together = [('bound_billId', 'entryIds')]
  92. ordering = ['-update_time', '-create_time']
  93. class OutMaterialDetail(models.Model):
  94. """物料明细模型"""
  95. bound_billId = models.ForeignKey(
  96. OutboundBill,
  97. on_delete=models.CASCADE,
  98. related_name='bill_id',
  99. verbose_name='所属出库单'
  100. )
  101. Material_entryIds = models.ForeignKey(
  102. MaterialDetail,
  103. on_delete=models.CASCADE,
  104. related_name='entry_Ids',
  105. verbose_name='所属入库单详细',
  106. null=True,
  107. blank=True
  108. )
  109. entryIds = models.BigIntegerField(verbose_name='分录ID')
  110. production_batch = models.CharField(max_length=50, verbose_name='生产批次')
  111. goods_code = models.CharField(max_length=20, verbose_name='商品编码')
  112. goods_name = models.CharField(max_length=100, verbose_name='商品名称')
  113. goods_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='单件重量', default=1)
  114. goods_out_qty = models.IntegerField(verbose_name='计划数量')
  115. goods_total_weight = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='总重量', null=True)
  116. goods_unit = models.CharField(max_length=20, verbose_name='计量单位')
  117. note = models.TextField(blank=True, verbose_name='备注')
  118. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  119. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  120. is_delete = models.BooleanField(default=False, verbose_name='是否删除')
  121. class Meta:
  122. verbose_name = '出库物料明细'
  123. verbose_name_plural = verbose_name
  124. ordering = ['-update_time', '-create_time']