models.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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_in_location_qty = models.BigIntegerField(default=0, verbose_name="库位上入库数量")
  46. goods_out_qty = models.BigIntegerField(default=0, verbose_name="出库数量")
  47. goods_out_location_qty = models.BigIntegerField(default=0, verbose_name="库位上出库数量")
  48. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  49. container_number = models.IntegerField( default=0, verbose_name="托盘数目")
  50. goods_weight = models.FloatField(default=0, verbose_name="商品单重")
  51. goods_total_weight = models.FloatField(default=0, verbose_name="商品总重")
  52. note = models.CharField(default='', max_length=255, verbose_name="备注")
  53. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  54. openid = models.CharField(max_length=255, verbose_name="Openid")
  55. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  56. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  57. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  58. class Meta:
  59. db_table = 'boundbatch'
  60. verbose_name = 'Bound Batch'
  61. verbose_name_plural = "Bound Batch"
  62. ordering = ['-id']
  63. class OutBatchModel(models.Model):
  64. CONTAINER_STATUS = (
  65. (0, '申请'),
  66. (1, '在途'),
  67. (2, '已出库')
  68. )
  69. OUT_TYPE = (
  70. (0, '发货出库'),
  71. (4, '其他出库'),
  72. )
  73. out_number = models.CharField(max_length=255, verbose_name="出库批次号",blank=False, null=False)
  74. batch_number = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="批次号", related_name='out_batch')
  75. out_date = models.DateTimeField(verbose_name="出库日期")
  76. out_type = models.IntegerField(choices=OUT_TYPE, default=4, verbose_name="出库类型")
  77. out_note = models.CharField(default='', max_length=255, verbose_name="出库备注")
  78. warehouse_code = models.CharField(max_length=255, verbose_name="仓库编码")
  79. warehouse_name = models.CharField(max_length=255, verbose_name="仓库名称")
  80. goods_code = models.CharField(max_length=255, verbose_name="商品编码")
  81. goods_desc = models.CharField(max_length=255, verbose_name="商品描述")
  82. goods_std = models.CharField(default='待填写', max_length=255, verbose_name="商品标准")
  83. goods_unit = models.CharField(default='待填写', max_length=255, verbose_name="商品单位")
  84. goods_qty = models.BigIntegerField(default=0, verbose_name="商品数量")
  85. goods_out_qty = models.BigIntegerField(default=0, verbose_name="出库数量")
  86. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  87. container_number = models.IntegerField( default=0, verbose_name="托盘数目")
  88. goods_weight = models.FloatField(default=0, verbose_name="商品单重")
  89. goods_total_weight = models.FloatField(default=0, verbose_name="商品总重")
  90. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  91. openid = models.CharField(max_length=255, verbose_name="Openid")
  92. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  93. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  94. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  95. class Meta:
  96. db_table = 'outbatch'
  97. verbose_name = 'Out Batch'
  98. verbose_name_plural = "Out Batch"
  99. ordering = ['-id']
  100. # 利用创建好的批次来与申请单相对应
  101. class OutBoundDetailModel(models.Model):
  102. CONTAINER_STATUS = (
  103. (0, '出库申请'),
  104. (1, '出库中'),
  105. (2, '已出库'),
  106. (3, '入库中'),
  107. (4, '已入库')
  108. )
  109. bound_list = models.ForeignKey(BoundListModel, on_delete=models.CASCADE, verbose_name="Bound List", related_name='out_bound_detail')
  110. bound_batch = models.ForeignKey(OutBatchModel, on_delete=models.PROTECT, verbose_name="Bound Batch", related_name='out_bound_batch_detail')
  111. bound_batch_number = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="Bound Batch Number", related_name='out_bound_batch_number_detail')
  112. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  113. detail_code = models.CharField(max_length=255, verbose_name="明细编号",unique=True)
  114. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  115. openid = models.CharField(max_length=255, verbose_name="Openid")
  116. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  117. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  118. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  119. class Meta:
  120. db_table = 'Outbounddetail'
  121. verbose_name = 'OutBound Detail'
  122. verbose_name_plural = "OutBound Detail"
  123. ordering = ['-id']
  124. class BatchLogModel(models.Model):
  125. BATCH_LOG_TYPE = (
  126. (0, '入库'),
  127. (1, '出库'),
  128. (2, '移库'),
  129. (9, '其他'),
  130. )
  131. batch_id =models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name="批次ID", related_name='batch_log')
  132. log_type = models.IntegerField(choices=BATCH_LOG_TYPE, default=9, verbose_name="日志类型")
  133. log_date = models.DateTimeField(verbose_name="日志日期")
  134. goods_code = models.CharField(max_length=255, verbose_name="商品编码")
  135. goods_desc = models.CharField(max_length=255, verbose_name="商品描述")
  136. goods_qty = models.BigIntegerField(default=0, verbose_name="商品数量")
  137. log_content = models.CharField(max_length=255, verbose_name="日志内容")
  138. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  139. openid = models.CharField(max_length=255, verbose_name="Openid")
  140. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  141. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  142. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  143. class Meta:
  144. db_table = 'batchlog'
  145. verbose_name = 'Batch Log'
  146. verbose_name_plural = "Batch Log"
  147. # 利用创建好的批次来与申请单相对应
  148. class BoundDetailModel(models.Model):
  149. CONTAINER_STATUS = (
  150. (0, '入库申请'),
  151. (1, '入库中'),
  152. (2, '在库'),
  153. (3, '出库中'),
  154. (4, '已出库')
  155. )
  156. bound_list = models.ForeignKey(BoundListModel, on_delete=models.CASCADE, verbose_name="Bound List", related_name='bound_detail')
  157. bound_batch = models.ForeignKey(BoundBatchModel, on_delete=models.PROTECT, verbose_name="Bound Batch", related_name='bound_batch_detail')
  158. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='批次状态')
  159. detail_code = models.CharField(max_length=255, verbose_name="明细编号",unique=True)
  160. creater = models.CharField(default='uesr', max_length=255, verbose_name="Who Created")
  161. openid = models.CharField(max_length=255, verbose_name="Openid")
  162. is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
  163. create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
  164. update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
  165. class Meta:
  166. db_table = 'bounddetail'
  167. verbose_name = 'Bound Detail'
  168. verbose_name_plural = "Bound Detail"
  169. ordering = ['-id']