filter.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from django_filters import FilterSet
  2. from .models import flowModel,bigScreenModel
  3. from bound.models import BoundBatchModel
  4. from django_filters import rest_framework as filters
  5. from container.models import MaterialChangeHistory,batchLogModel,ContainerDetailLogModel
  6. class bigScreenFilter(FilterSet):
  7. class Meta:
  8. model = bigScreenModel
  9. fields = {
  10. 'day_in': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  11. 'day_out': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  12. 'day': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  13. }
  14. class batchfilter(FilterSet):
  15. class Meta:
  16. model = BoundBatchModel
  17. fields = {
  18. "bound_number" : ['exact', 'icontains'],
  19. "sourced_number" : ['exact', 'icontains'],
  20. "bound_month" : ['exact', 'icontains'],
  21. "bound_batch_order" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  22. "warehouse_code" : ['exact', 'icontains'],
  23. "warehouse_name" : ['exact', 'icontains'],
  24. "goods_code" : ['exact', 'icontains'],
  25. "goods_desc" : ['exact', 'icontains'],
  26. "goods_std" : ['exact', 'icontains'],
  27. "goods_unit" : ['exact', 'icontains'],
  28. "goods_qty" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  29. "goods_package" : ['exact', 'icontains'],
  30. "goods_in_qty" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  31. "goods_in_location_qty" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  32. "goods_out_qty" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  33. "goods_reserve_qty" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  34. "status" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  35. "container_number" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  36. "goods_weight" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  37. "goods_total_weight" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  38. "note" : ['exact', 'icontains'],
  39. "creater" : ['exact', 'icontains'],
  40. "openid" : ['exact', 'icontains'],
  41. "is_delete" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  42. "create_time" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  43. "update_time" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  44. "relate_material" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in'],
  45. "check_status" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  46. "check_user" : ['exact', 'icontains'],
  47. "check_time" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  48. }
  49. class FlowFilter(FilterSet):
  50. class Meta:
  51. model = flowModel
  52. fields = {
  53. 'document_date': ['exact', 'range'],
  54. 'document_number': ['exact', 'icontains'],
  55. 'document_type': ['exact', 'icontains'],
  56. 'business_type': ['exact', 'icontains'],
  57. 'iout_type': ['exact', 'icontains'],
  58. 'department': ['exact', 'icontains'],
  59. 'warehouse_code': ['exact', 'icontains'],
  60. 'warehouse_name': ['exact', 'icontains'],
  61. 'goods_code': ['exact', 'icontains'],
  62. 'goods_desc': ['exact', 'icontains'],
  63. 'goods_std': ['exact', 'icontains'],
  64. 'goods_batch': ['exact', 'icontains'],
  65. 'in_batch': ['exact', 'icontains'],
  66. 'out_batch': ['exact', 'icontains'],
  67. 'goods_in': ['exact', 'gt', 'lt', 'gte', 'lte'],
  68. 'goods_out': ['exact', 'gt', 'lt', 'gte', 'lte'],
  69. 'goods_notes': ['exact', 'icontains'],
  70. 'creator': ['exact', 'icontains']
  71. }
  72. class MaterialChangeHistoryFilter(FilterSet):
  73. batchLogModel_batch_code = filters.CharFilter(field_name='batch_log__bound_number', lookup_expr='icontains')
  74. class Meta:
  75. model = MaterialChangeHistory
  76. fields = {
  77. 'batch_log': ['exact'],
  78. 'goods_code': ['exact', 'icontains'],
  79. 'goods_desc': ['exact', 'icontains'],
  80. 'goods_std': ['exact', 'icontains'],
  81. 'goods_unit': ['exact', 'icontains'],
  82. 'change_time': ['exact', 'range'],
  83. 'in_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  84. 'out_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  85. 'change_type': ['exact', 'icontains'],
  86. 'opening_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  87. 'closing_quantity': ['exact', 'gt', 'lt', 'gte', 'lte']
  88. }
  89. class batchLogFilter(FilterSet):
  90. batch_code__icontains = filters.CharFilter(field_name='batch__bound_number', lookup_expr='icontains')
  91. bound_code__icontains = filters.CharFilter(field_name='bound__bound_code', lookup_expr='icontains')
  92. class Meta:
  93. model = batchLogModel
  94. fields = {
  95. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  96. "bound": ['exact'],
  97. "batch": ['exact'],
  98. "log_type": ['exact', 'icontains'],
  99. "goods_code": ['exact', 'icontains'],
  100. "goods_desc": ['exact', 'icontains'],
  101. "goods_in_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  102. "goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  103. "detail_logs": ['exact'],
  104. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  105. }
  106. class ContainerDetailLogFilter(FilterSet):
  107. goods_code = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='exact')
  108. goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains')
  109. container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact')
  110. batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
  111. batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains')
  112. class Meta:
  113. model = ContainerDetailLogModel
  114. fields = {
  115. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  116. "container_detail": ['exact'],
  117. "log_type": ['exact', 'icontains'],
  118. "old_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  119. "old_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  120. "old_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  121. "new_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  122. "new_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  123. "new_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  124. "creater": ['exact', 'icontains'],
  125. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  126. }