from django_filters import FilterSet from .models import flowModel from django_filters import rest_framework as filters from container.models import MaterialChangeHistory,batchLogModel,ContainerDetailLogModel class FlowFilter(FilterSet): class Meta: model = flowModel fields = { 'document_date': ['exact', 'range'], 'document_number': ['exact', 'icontains'], 'document_type': ['exact', 'icontains'], 'business_type': ['exact', 'icontains'], 'iout_type': ['exact', 'icontains'], 'department': ['exact', 'icontains'], 'warehouse_code': ['exact', 'icontains'], 'warehouse_name': ['exact', 'icontains'], 'goods_code': ['exact', 'icontains'], 'goods_desc': ['exact', 'icontains'], 'goods_std': ['exact', 'icontains'], 'goods_batch': ['exact', 'icontains'], 'in_batch': ['exact', 'icontains'], 'out_batch': ['exact', 'icontains'], 'goods_in': ['exact', 'gt', 'lt', 'gte', 'lte'], 'goods_out': ['exact', 'gt', 'lt', 'gte', 'lte'], 'goods_notes': ['exact', 'icontains'], 'creator': ['exact', 'icontains'] } class MaterialChangeHistoryFilter(FilterSet): batchLogModel_batch_code = filters.CharFilter(field_name='batch_log__bound_number', lookup_expr='icontains') class Meta: model = MaterialChangeHistory fields = { 'batch_log': ['exact'], 'goods_code': ['exact', 'icontains'], 'goods_desc': ['exact', 'icontains'], 'goods_std': ['exact', 'icontains'], 'goods_unit': ['exact', 'icontains'], 'change_time': ['exact', 'range'], 'in_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'], 'out_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'], 'change_type': ['exact', 'icontains'], 'opening_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'], 'closing_quantity': ['exact', 'gt', 'lt', 'gte', 'lte'] } class batchLogFilter(FilterSet): batch_code__icontains = filters.CharFilter(field_name='batch__bound_number', lookup_expr='icontains') bound_code__icontains = filters.CharFilter(field_name='bound__bound_code', lookup_expr='icontains') class Meta: model = batchLogModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "bound": ['exact'], "batch": ['exact'], "log_type": ['exact', 'icontains'], "goods_code": ['exact', 'icontains'], "goods_desc": ['exact', 'icontains'], "goods_in_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "detail_logs": ['exact'], "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'], } class ContainerDetailLogFilter(FilterSet): goods_code = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='exact') goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains') container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact') batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact') batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains') class Meta: model = ContainerDetailLogModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "container_detail": ['exact'], "log_type": ['exact', 'icontains'], "old_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "old_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "old_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "new_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "new_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "new_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "creater": ['exact', 'icontains'], "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'], }