sam order增加过期提醒

This commit is contained in:
caoqianming 2022-01-24 13:47:08 +08:00
parent 400173c0cf
commit aec8841ba6
2 changed files with 17 additions and 2 deletions

View File

@ -1,22 +1,36 @@
from django_filters import rest_framework as filters
from apps.sam.models import Order
from django.db.models import F
from datetime import datetime, timedelta
class OrderFilterSet(filters.FilterSet):
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
material = filters.NumberFilter(method='filter_material')
tag = filters.CharFilter(method='filter_tag')
class Meta:
model = Order
fields = ['product', 'contract', 'customer', 'create_time_start', 'create_time_end']
fields = ['product', 'contract', 'customer', 'create_time_start',
'create_time_end', 'tag']
def filter_material(self, queryset, name, value):
"""
按物料筛选
"""
return queryset.filter(plan_order__subplan_plan__progress_subplan__material__id=value).distinct()
return queryset.filter(
plan_order__subplan_plan__progress_subplan__material__id=value).distinct()
def filter_tag(self, queryset, name, value):
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':
queryset = queryset.filter(delivered_count__lt=F('count'),
delivery_date__gt = datetime.date(datetime.now()))
return queryset
class ContractFilterSet(filters.FilterSet):
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')

View File

@ -66,6 +66,7 @@ class Order(CommonAModel):
planed_count = models.PositiveIntegerField('已排数量', default=0)
delivered_count = models.PositiveIntegerField('已交货数量', default=0)
delivery_date = models.DateField('交货日期')
need_mtest = models.BooleanField('是否需要军检', default=False)
class Meta:
verbose_name = '订单信息'
verbose_name_plural = verbose_name