iproduct增加need_to_order筛选;pm增加near_done筛选
This commit is contained in:
parent
850c18ba5f
commit
c6080849d7
|
@ -23,9 +23,11 @@ class MbFilterSet(filters.FilterSet):
|
|||
class IProductFilterSet(DynamicFieldsFilterMixin, filters.FilterSet):
|
||||
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
|
||||
to_order = filters.NumberFilter(field_name="wproduct__to_order")
|
||||
need_to_order = filters.BooleanFilter()
|
||||
update_time_start = filters.DateFilter(field_name="update_time", lookup_expr='gte')
|
||||
update_time_end = filters.DateFilter(field_name="update_time", lookup_expr='lte')
|
||||
class Meta:
|
||||
model = IProduct
|
||||
fields = ['material', 'warehouse', 'batch', 'order', 'material__type',
|
||||
'is_saled', 'update_time_start', 'update_time_end', 'to_order']
|
||||
'is_saled', 'update_time_start', 'update_time_end',
|
||||
'to_order', 'need_to_order']
|
||||
|
|
|
@ -2,8 +2,9 @@ from django_filters import rest_framework as filters
|
|||
from apps.mtm.models import Material, Step
|
||||
from apps.pm.models import ProductionPlan, SubProductionProgress
|
||||
from apps.wpm.models import Operation, WProduct
|
||||
|
||||
from datetime import *
|
||||
from apps.wpm.services import WpmServies
|
||||
from django.db.models import F
|
||||
|
||||
class PlanFilterSet(filters.FilterSet):
|
||||
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
|
||||
|
@ -15,10 +16,19 @@ class PlanFilterSet(filters.FilterSet):
|
|||
fields = ['product', 'order', 'create_time_start', 'create_time_end']
|
||||
|
||||
def filter_tag(self, queryset, name, value):
|
||||
now = datetime.now()
|
||||
day7_after = now + timedelta(days=7)
|
||||
if value == 'planed':
|
||||
queryset = queryset.filter(is_planed=True)
|
||||
elif value == 'working':
|
||||
queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE])
|
||||
queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE,
|
||||
ProductionPlan.PLAN_MTEST_DONE])
|
||||
elif value == 'near_done':
|
||||
queryset = queryset.filter(count_ok__lt=F('count'),
|
||||
end_date__lte = datetime.date(day7_after))
|
||||
elif value == 'out_done':
|
||||
queryset = queryset.filter(count_ok__lt=F('count'),
|
||||
end_date__gt = datetime.date(now))
|
||||
return queryset
|
||||
|
||||
def filter_material(self, queryset, name, value):
|
||||
|
|
|
@ -23,8 +23,9 @@ class OrderFilterSet(filters.FilterSet):
|
|||
plan_order__subplan_plan__progress_subplan__material__id=value).distinct()
|
||||
|
||||
def filter_tag(self, queryset, name, value):
|
||||
now = datetime.now()
|
||||
day7_after = now + timedelta(days=7)
|
||||
if value == 'near_delivery':
|
||||
day7_after = datetime.now() + timedelta(days=7)
|
||||
queryset = queryset.filter(delivered_count__lt=F('count'),
|
||||
delivery_date__lte = datetime.date(day7_after))
|
||||
elif value == 'out_delivery':
|
||||
|
|
Loading…
Reference in New Issue