filter.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. from django_filters import FilterSet
  2. from .models import flowModel,bigScreenModel
  3. from django_filters import rest_framework as filters
  4. from container.models import MaterialChangeHistory,batchLogModel,ContainerDetailLogModel
  5. class bigScreenFilter(FilterSet):
  6. class Meta:
  7. model = bigScreenModel
  8. fields = {
  9. 'day_in': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  10. 'day_out': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  11. 'day': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  12. }
  13. class FlowFilter(FilterSet):
  14. class Meta:
  15. model = flowModel
  16. fields = {
  17. 'document_date': ['exact', 'range'],
  18. 'document_number': ['exact', 'icontains'],
  19. 'document_type': ['exact', 'icontains'],
  20. 'business_type': ['exact', 'icontains'],
  21. 'iout_type': ['exact', 'icontains'],
  22. 'department': ['exact', 'icontains'],
  23. 'warehouse_code': ['exact', 'icontains'],
  24. 'warehouse_name': ['exact', 'icontains'],
  25. 'goods_code': ['exact', 'icontains'],
  26. 'goods_desc': ['exact', 'icontains'],
  27. 'goods_std': ['exact', 'icontains'],
  28. 'goods_batch': ['exact', 'icontains'],
  29. 'in_batch': ['exact', 'icontains'],
  30. 'out_batch': ['exact', 'icontains'],
  31. 'goods_in': ['exact', 'gt', 'lt', 'gte', 'lte'],
  32. 'goods_out': ['exact', 'gt', 'lt', 'gte', 'lte'],
  33. 'goods_notes': ['exact', 'icontains'],
  34. 'creator': ['exact', 'icontains']
  35. }
  36. class MaterialChangeHistoryFilter(FilterSet):
  37. batchLogModel_batch_code = filters.CharFilter(field_name='batch_log__bound_number', lookup_expr='icontains')
  38. class Meta:
  39. model = MaterialChangeHistory
  40. fields = {
  41. 'batch_log': ['exact'],
  42. 'goods_code': ['exact', 'icontains'],
  43. 'goods_desc': ['exact', 'icontains'],
  44. 'goods_std': ['exact', 'icontains'],
  45. 'goods_unit': ['exact', 'icontains'],
  46. 'change_time': ['exact', 'range'],
  47. 'in_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  48. 'out_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  49. 'change_type': ['exact', 'icontains'],
  50. 'opening_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'],
  51. 'closing_quantity': ['exact', 'gt', 'lt', 'gte', 'lte']
  52. }
  53. class batchLogFilter(FilterSet):
  54. batch_code__icontains = filters.CharFilter(field_name='batch__bound_number', lookup_expr='icontains')
  55. bound_code__icontains = filters.CharFilter(field_name='bound__bound_code', lookup_expr='icontains')
  56. class Meta:
  57. model = batchLogModel
  58. fields = {
  59. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  60. "bound": ['exact'],
  61. "batch": ['exact'],
  62. "log_type": ['exact', 'icontains'],
  63. "goods_code": ['exact', 'icontains'],
  64. "goods_desc": ['exact', 'icontains'],
  65. "goods_in_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  66. "goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  67. "detail_logs": ['exact'],
  68. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  69. }
  70. class ContainerDetailLogFilter(FilterSet):
  71. goods_code = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='exact')
  72. goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains')
  73. container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact')
  74. batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
  75. batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains')
  76. class Meta:
  77. model = ContainerDetailLogModel
  78. fields = {
  79. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  80. "container_detail": ['exact'],
  81. "log_type": ['exact', 'icontains'],
  82. "old_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  83. "old_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  84. "old_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  85. "new_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  86. "new_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  87. "new_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  88. "creater": ['exact', 'icontains'],
  89. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  90. }