filters.py 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #coding=utf-8
  2. import django_filters
  3. from django.conf import settings
  4. from django.db.models import Q
  5. from models import PurchasePlan, PurchaseOrder, PurchaseUser, GodownEntry, PurchasePayment, PurchaseOrderDetail, \
  6. GodownEntryReturn, GodownEntryReturnDetail, PurchasePrice
  7. from apps.base import clean_datetime_range
  8. class PurchasePlanFilter(django_filters.FilterSet):
  9. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  10. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  11. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  12. class Meta:
  13. model = PurchasePlan
  14. fields = ('no', 'name', 'status', 'notes')
  15. # def filter_status(self, queryset, *args):
  16. # if args[1]:
  17. # value = int(args[1])
  18. # if value != 3:
  19. # queryset = queryset.filter(status=value)
  20. # else:
  21. # queryset = queryset.filter(~Q(status=settings.PASS))
  22. # return queryset
  23. class PurchasePriceFilter(django_filters.FilterSet):
  24. name = django_filters.CharFilter(name='purchase_detail__product__name', lookup_expr='icontains')
  25. model = django_filters.CharFilter(name='purchase_detail__product__model', lookup_expr='icontains')
  26. class Meta:
  27. model = PurchaseUser
  28. fields = "__all__"
  29. class PurchaseOrderFilter(django_filters.FilterSet):
  30. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  31. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  32. supplier_name = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  33. status = django_filters.CharFilter(method='filter_status')
  34. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  35. class Meta:
  36. model = PurchaseOrder
  37. fields = (
  38. 'create_time', 'no', 'supplier_name', 'status', 'arrval', 'notes', )
  39. def __init__(self, data=None, *args, **kwargs):
  40. data = clean_datetime_range(data, 'create_time','source')
  41. super(PurchaseOrderFilter, self).__init__(data, *args, **kwargs)
  42. def filter_status(self, queryset, *args):
  43. if args[1]:
  44. value = int(args[1])
  45. if value != 3:
  46. queryset = queryset.filter(status=value)
  47. else:
  48. queryset = queryset.filter(~Q(status=PurchaseOrder.TAKE_EFFECT))
  49. return queryset
  50. class PurchaseOrderDetailFilter(django_filters.FilterSet):
  51. supplier_name = django_filters.CharFilter(name='main__supplier__name', lookup_expr='icontains')
  52. order_no = django_filters.CharFilter(name='main__no', lookup_expr='icontains')
  53. class Meta:
  54. model = PurchaseOrderDetail
  55. fields = ('order_no', 'supplier_name', 'check_status',)
  56. def __init__(self, data=None, *args, **kwargs):
  57. data = clean_datetime_range(data, 'create_time')
  58. super(PurchaseOrderDetailFilter, self).__init__(data, *args, **kwargs)
  59. class GodownEntryFilter(django_filters.FilterSet):
  60. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  61. supplier_text = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  62. purchase_order_no = django_filters.CharFilter(name='purchase_order__no', lookup_expr='icontains')
  63. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  64. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  65. check_time = django_filters.DateTimeFromToRangeFilter(field_name='check_time')
  66. class Meta:
  67. model = GodownEntry
  68. fields = "__all__"
  69. def __init__(self, data=None, *args, **kwargs):
  70. data = clean_datetime_range(data, 'create_time', 'source')
  71. data = clean_datetime_range(data, 'check_time')
  72. super(GodownEntryFilter, self).__init__(data, *args, **kwargs)
  73. class GodownEntryReturnFilter(django_filters.FilterSet):
  74. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  75. supplier_text = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  76. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  77. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  78. check_time = django_filters.DateTimeFromToRangeFilter(field_name='check_time')
  79. class Meta:
  80. model = GodownEntryReturn
  81. fields = "__all__"
  82. def __init__(self, data=None, *args, **kwargs):
  83. data = clean_datetime_range(data, 'create_time', 'source')
  84. data = clean_datetime_range(data, 'check_time')
  85. super(GodownEntryReturnFilter, self).__init__(data, *args, **kwargs)
  86. class GodownEntryReturnDetailFilter(django_filters.FilterSet):
  87. main_no = django_filters.CharFilter(name='main__no', lookup_expr='icontains')
  88. godownentry_no = django_filters.CharFilter(name='godownentry_detail__main__no', lookup_expr='icontains')
  89. main_supplier = django_filters.CharFilter(name='main__supplier__name', lookup_expr='icontains')
  90. main_create_user = django_filters.CharFilter(name='main__create_user__name', lookup_expr='icontains')
  91. main_check_user = django_filters.CharFilter(name='main__check_user__name', lookup_expr='icontains')
  92. main_create_time = django_filters.DateTimeFromToRangeFilter(field_name='main__create_time')
  93. main_check_time = django_filters.DateTimeFromToRangeFilter(field_name='main__check_time')
  94. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  95. class Meta:
  96. model = GodownEntryReturnDetail
  97. fields = "__all__"
  98. def __init__(self, data=None, *args, **kwargs):
  99. data = clean_datetime_range(data, 'main__create_time')
  100. data = clean_datetime_range(data, 'main__check_time')
  101. super(GodownEntryReturnDetailFilter, self).__init__(data, *args, **kwargs)
  102. class PurchasePaymentFilter(django_filters.FilterSet):
  103. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  104. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  105. order_no = django_filters.CharFilter(name='order__no', lookup_expr='icontains')
  106. supplier_name = django_filters.CharFilter(name='order__supplier__name', lookup_expr='icontains')
  107. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  108. class Meta:
  109. model = PurchasePayment
  110. fields = (
  111. 'create_time', 'no', 'supplier_name', 'status', 'order_no', 'notes', )
  112. def __init__(self, data=None, *args, **kwargs):
  113. data = clean_datetime_range(data, 'create_time','source')
  114. super(PurchasePaymentFilter, self).__init__(data, *args, **kwargs)
  115. class PurchasePriceExportFilter(django_filters.FilterSet):
  116. supplier_name = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  117. class Meta:
  118. model = PurchasePrice
  119. fields = "__all__"