filters.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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(field_name='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. class PurchaseOrderDetailFilter(django_filters.FilterSet):
  43. supplier_name = django_filters.CharFilter(name='main__supplier__name', lookup_expr='icontains')
  44. order_no = django_filters.CharFilter(name='main__no', lookup_expr='icontains')
  45. class Meta:
  46. model = PurchaseOrderDetail
  47. fields = ('order_no', 'supplier_name', 'check_status',)
  48. def __init__(self, data=None, *args, **kwargs):
  49. data = clean_datetime_range(data, 'create_time')
  50. super(PurchaseOrderDetailFilter, self).__init__(data, *args, **kwargs)
  51. class GodownEntryFilter(django_filters.FilterSet):
  52. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  53. supplier_text = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  54. purchase_order_no = django_filters.CharFilter(name='purchase_order__no', lookup_expr='icontains')
  55. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  56. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  57. check_time = django_filters.DateTimeFromToRangeFilter(field_name='check_time')
  58. class Meta:
  59. model = GodownEntry
  60. fields = "__all__"
  61. def __init__(self, data=None, *args, **kwargs):
  62. data = clean_datetime_range(data, 'create_time', 'source')
  63. data = clean_datetime_range(data, 'check_time')
  64. super(GodownEntryFilter, self).__init__(data, *args, **kwargs)
  65. class GodownEntryReturnFilter(django_filters.FilterSet):
  66. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  67. supplier_text = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  68. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  69. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  70. check_time = django_filters.DateTimeFromToRangeFilter(field_name='check_time')
  71. class Meta:
  72. model = GodownEntryReturn
  73. fields = "__all__"
  74. def __init__(self, data=None, *args, **kwargs):
  75. data = clean_datetime_range(data, 'create_time', 'source')
  76. data = clean_datetime_range(data, 'check_time')
  77. super(GodownEntryReturnFilter, self).__init__(data, *args, **kwargs)
  78. class GodownEntryReturnDetailFilter(django_filters.FilterSet):
  79. main_no = django_filters.CharFilter(name='main__no', lookup_expr='icontains')
  80. godownentry_no = django_filters.CharFilter(name='godownentry_detail__main__no', lookup_expr='icontains')
  81. main_supplier = django_filters.CharFilter(name='main__supplier__name', lookup_expr='icontains')
  82. main_create_user = django_filters.CharFilter(name='main__create_user__name', lookup_expr='icontains')
  83. main_check_user = django_filters.CharFilter(name='main__check_user__name', lookup_expr='icontains')
  84. main_create_time = django_filters.DateTimeFromToRangeFilter(field_name='main__create_time')
  85. main_check_time = django_filters.DateTimeFromToRangeFilter(field_name='main__check_time')
  86. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  87. class Meta:
  88. model = GodownEntryReturnDetail
  89. fields = "__all__"
  90. def __init__(self, data=None, *args, **kwargs):
  91. data = clean_datetime_range(data, 'main__create_time')
  92. data = clean_datetime_range(data, 'main__check_time')
  93. super(GodownEntryReturnDetailFilter, self).__init__(data, *args, **kwargs)
  94. class PurchasePaymentFilter(django_filters.FilterSet):
  95. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  96. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  97. order_no = django_filters.CharFilter(name='order__no', lookup_expr='icontains')
  98. supplier_name = django_filters.CharFilter(name='order__supplier__name', lookup_expr='icontains')
  99. notes = django_filters.CharFilter(name='notes', lookup_expr='icontains')
  100. class Meta:
  101. model = PurchasePayment
  102. fields = (
  103. 'create_time', 'no', 'supplier_name', 'status', 'order_no', 'notes', )
  104. def __init__(self, data=None, *args, **kwargs):
  105. data = clean_datetime_range(data, 'create_time','source')
  106. super(PurchasePaymentFilter, self).__init__(data, *args, **kwargs)
  107. class PurchasePriceExportFilter(django_filters.FilterSet):
  108. supplier_name = django_filters.CharFilter(name='supplier__name', lookup_expr='icontains')
  109. class Meta:
  110. model = PurchasePrice
  111. fields = "__all__"