models.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. from django.db import models
  2. class BoundListModel(models.Model):
  3. bound_month = models.CharField(max_length=255, verbose_name="月份")
  4. bound_date = models.DateField(verbose_name="单据日期")
  5. bound_code = models.CharField(max_length=255, verbose_name="出入库编号",unique=True)
  6. bound_code_type = models.CharField(max_length=255, verbose_name="单据类型")
  7. bound_bs_type = models.CharField(max_length=255, verbose_name="业务类型")
  8. bound_type = models.CharField(max_length=255, verbose_name="出入库类型")
  9. bound_desc = models.CharField(default='', max_length=255, verbose_name="出入库描述")
  10. bound_department = models.CharField(max_length=255, verbose_name="部门")
  11. base_type = models.IntegerField(default=0, verbose_name="基准类型")
  12. bound_status = models.CharField(max_length=255, verbose_name="单据状态")
  13. note = models.CharField(default='', max_length=255, verbose_name="备注")
  14. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  15. openid = models.CharField(max_length=255, verbose_name="Openid")
  16. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  17. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  18. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  19. class Meta:
  20. db_table = 'boundlist'
  21. verbose_name = 'Bound List'
  22. verbose_name_plural = "Bound List"
  23. ordering = ['-id']
  24. class BoundBatchModel(models.Model):
  25. CONTAINER_STATUS = (
  26. (0, '入库申请'),
  27. (1, '入库中'),
  28. (2, '部分入库'),
  29. (3, '在库'),
  30. (4, '出库中'),
  31. (5, '部分出库'),
  32. (6, '已出库'),
  33. )
  34. bound_number = models.CharField(max_length=255, verbose_name="入库批次号",blank=False, null=False, unique=True)
  35. bound_month = models.CharField(max_length=255, verbose_name="月份")
  36. bound_batch_order = models.IntegerField(default=0, verbose_name="批次顺序")
  37. warehouse_code = models.CharField(max_length=255, verbose_name="仓库编码")
  38. warehouse_name = models.CharField(max_length=255, verbose_name="仓库名称")
  39. goods_code = models.CharField(max_length=255, verbose_name="商品编码")
  40. goods_desc = models.CharField(max_length=255, verbose_name="商品描述")
  41. goods_std = models.CharField(default='待填写', max_length=255, verbose_name="商品标准")
  42. goods_unit = models.CharField(default='待填写', max_length=255, verbose_name="商品单位")
  43. goods_qty = models.BigIntegerField(default=0, verbose_name="商品数量")
  44. goods_in_qty = models.BigIntegerField(default=0, verbose_name="入库数量")
  45. goods_out_qty = models.BigIntegerField(default=0, verbose_name="出库数量")
  46. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  47. container_number = models.IntegerField( default=0, verbose_name="托盘数目")
  48. goods_weight = models.FloatField(default=0, verbose_name="商品单重")
  49. goods_total_weight = models.FloatField(default=0, verbose_name="商品总重")
  50. note = models.CharField(default='', max_length=255, verbose_name="备注")
  51. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  52. openid = models.CharField(max_length=255, verbose_name="Openid")
  53. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  54. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  55. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  56. class Meta:
  57. db_table = 'boundbatch'
  58. verbose_name = 'Bound Batch'
  59. verbose_name_plural = "Bound Batch"
  60. ordering = ['-id']
  61. class OutBatchModel(models.Model):
  62. CONTAINER_STATUS = (
  63. (0, '申请'),
  64. (1, '在途'),
  65. (2, '已出库')
  66. )
  67. OUT_TYPE = (
  68. (0, '发货出库'),
  69. (4, '其他出库'),
  70. )
  71. out_number = models.CharField(max_length=255, verbose_name="出库批次号",blank=False, null=False)
  72. batch_number = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="批次号", related_name='out_batch')
  73. out_date = models.DateTimeField(verbose_name="出库日期")
  74. out_type = models.IntegerField(choices=OUT_TYPE, default=4, verbose_name="出库类型")
  75. out_note = models.CharField(default='', max_length=255, verbose_name="出库备注")
  76. warehouse_code = models.CharField(max_length=255, verbose_name="仓库编码")
  77. warehouse_name = models.CharField(max_length=255, verbose_name="仓库名称")
  78. goods_code = models.CharField(max_length=255, verbose_name="商品编码")
  79. goods_desc = models.CharField(max_length=255, verbose_name="商品描述")
  80. goods_std = models.CharField(default='待填写', max_length=255, verbose_name="商品标准")
  81. goods_unit = models.CharField(default='待填写', max_length=255, verbose_name="商品单位")
  82. goods_qty = models.BigIntegerField(default=0, verbose_name="商品数量")
  83. goods_out_qty = models.BigIntegerField(default=0, verbose_name="出库数量")
  84. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  85. container_number = models.IntegerField( default=0, verbose_name="托盘数目")
  86. goods_weight = models.FloatField(default=0, verbose_name="商品单重")
  87. goods_total_weight = models.FloatField(default=0, verbose_name="商品总重")
  88. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  89. openid = models.CharField(max_length=255, verbose_name="Openid")
  90. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  91. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  92. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  93. class Meta:
  94. db_table = 'outbatch'
  95. verbose_name = 'Out Batch'
  96. verbose_name_plural = "Out Batch"
  97. ordering = ['-id']
  98. # 利用创建好的批次来与申请单相对应
  99. class OutBoundDetailModel(models.Model):
  100. CONTAINER_STATUS = (
  101. (0, '出库申请'),
  102. (1, '出库中'),
  103. (2, '已出库'),
  104. (3, '入库中'),
  105. (4, '已入库')
  106. )
  107. bound_list = models.ForeignKey(BoundListModel, on_delete=models.CASCADE, verbose_name="Bound List", related_name='out_bound_detail')
  108. bound_batch = models.ForeignKey(OutBatchModel, on_delete=models.PROTECT, verbose_name="Bound Batch", related_name='out_bound_batch_detail')
  109. bound_batch_number = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="Bound Batch Number", related_name='out_bound_batch_number_detail')
  110. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  111. detail_code = models.CharField(max_length=255, verbose_name="明细编号",unique=True)
  112. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  113. openid = models.CharField(max_length=255, verbose_name="Openid")
  114. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  115. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  116. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  117. class Meta:
  118. db_table = 'Outbounddetail'
  119. verbose_name = 'OutBound Detail'
  120. verbose_name_plural = "OutBound Detail"
  121. ordering = ['-id']
  122. class BatchLogModel(models.Model):
  123. BATCH_LOG_TYPE = (
  124. (0, '入库'),
  125. (1, '出库'),
  126. (2, '移库'),
  127. (9, '其他'),
  128. )
  129. batch_id =models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="批次ID", related_name='batch_log')
  130. log_type = models.IntegerField(choices=BATCH_LOG_TYPE, default=9, verbose_name="日志类型")
  131. log_date = models.DateTimeField(verbose_name="日志日期")
  132. goods_code = models.CharField(max_length=255, verbose_name="商品编码")
  133. goods_desc = models.CharField(max_length=255, verbose_name="商品描述")
  134. goods_qty = models.BigIntegerField(default=0, verbose_name="商品数量")
  135. log_content = models.CharField(max_length=255, verbose_name="日志内容")
  136. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  137. openid = models.CharField(max_length=255, verbose_name="Openid")
  138. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  139. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  140. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  141. class Meta:
  142. db_table = 'batchlog'
  143. verbose_name = 'Batch Log'
  144. verbose_name_plural = "Batch Log"
  145. # 利用创建好的批次来与申请单相对应
  146. class BoundDetailModel(models.Model):
  147. CONTAINER_STATUS = (
  148. (0, '入库申请'),
  149. (1, '入库中'),
  150. (2, '在库'),
  151. (3, '出库中'),
  152. (4, '已出库')
  153. )
  154. bound_list = models.ForeignKey(BoundListModel, on_delete=models.CASCADE, verbose_name="Bound List", related_name='bound_detail')
  155. bound_batch = models.ForeignKey(BoundBatchModel, on_delete=models.PROTECT, verbose_name="Bound Batch", related_name='bound_batch_detail')
  156. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  157. detail_code = models.CharField(max_length=255, verbose_name="明细编号",unique=True)
  158. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  159. openid = models.CharField(max_length=255, verbose_name="Openid")
  160. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  161. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  162. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  163. class Meta:
  164. db_table = 'bounddetail'
  165. verbose_name = 'Bound Detail'
  166. verbose_name_plural = "Bound Detail"
  167. ordering = ['-id']