| 
                
               | 
              
                
               | 
              
                @@ -9,7 +9,7 @@ from itertools import chain, groupby 
               | 
            
            
            
              | 
                9
               | 
              
                9
               | 
              
                  
               | 
            
            
            
              | 
                10
               | 
              
                10
               | 
              
                 from django.conf import settings 
               | 
            
            
            
              | 
                11
               | 
              
                11
               | 
              
                 from django.db import transaction 
               | 
            
            
            
              | 
                12
               | 
              
                
               | 
              
                -from django.db.models import Count, Sum 
               | 
            
            
            
              | 
                
               | 
              
                12
               | 
              
                +from django.db.models import Count, Sum, Q 
               | 
            
            
            
              | 
                13
               | 
              
                13
               | 
              
                 from django_logit import logit 
               | 
            
            
            
              | 
                14
               | 
              
                14
               | 
              
                 from django_response import response 
               | 
            
            
            
              | 
                15
               | 
              
                15
               | 
              
                 from paginator import pagination 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -41,10 +41,10 @@ def querysn(request): 
               | 
            
            
            
              | 
                41
               | 
              
                41
               | 
              
                     if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists(): 
               | 
            
            
            
              | 
                42
               | 
              
                42
               | 
              
                         return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND) 
               | 
            
            
            
              | 
                43
               | 
              
                43
               | 
              
                  
               | 
            
            
            
              | 
                44
               | 
              
                
               | 
              
                -    log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn, submit_during_activity=True).order_by('has_used', '-pk').first()
               | 
            
            
            
              | 
                
               | 
              
                44
               | 
              
                +    log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn, submit_during_activity=True, status=True).order_by('has_used', '-pk').first()
               | 
            
            
            
              | 
                45
               | 
              
                45
               | 
              
                  
               | 
            
            
            
              | 
                46
               | 
              
                46
               | 
              
                     if not log: 
               | 
            
            
            
              | 
                47
               | 
              
                
               | 
              
                -        log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn).order_by('-submit_during_activity', 'dupload').first()
               | 
            
            
            
              | 
                
               | 
              
                47
               | 
              
                +        log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn, status=True).order_by('-submit_during_activity', 'dupload').first()
               | 
            
            
            
              | 
                48
               | 
              
                48
               | 
              
                  
               | 
            
            
            
              | 
                49
               | 
              
                49
               | 
              
                     if not log: 
               | 
            
            
            
              | 
                50
               | 
              
                50
               | 
              
                         return response(ProductMachineStatusCode.SN_NOT_FOUND) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -63,7 +63,7 @@ def queryusedsn(request): 
               | 
            
            
            
              | 
                63
               | 
              
                63
               | 
              
                     if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists(): 
               | 
            
            
            
              | 
                64
               | 
              
                64
               | 
              
                         return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND) 
               | 
            
            
            
              | 
                65
               | 
              
                65
               | 
              
                  
               | 
            
            
            
              | 
                66
               | 
              
                
               | 
              
                -    logs = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, admin_id=admin_id, has_used=True).order_by('-used_at')
               | 
            
            
            
              | 
                
               | 
              
                66
               | 
              
                +    logs = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, admin_id=admin_id, has_used=True, status=True).order_by('-used_at')
               | 
            
            
            
              | 
                67
               | 
              
                67
               | 
              
                     logs = [log.data for log in logs] 
               | 
            
            
            
              | 
                68
               | 
              
                68
               | 
              
                  
               | 
            
            
            
              | 
                69
               | 
              
                69
               | 
              
                     return response(200, 'Query Used SN Success', u'查询核销序列号成功', data={
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -95,7 +95,8 @@ def usecoupon(request): 
               | 
            
            
            
              | 
                95
               | 
              
                95
               | 
              
                         model_id=model_id, 
               | 
            
            
            
              | 
                96
               | 
              
                96
               | 
              
                         serialNo=sn, 
               | 
            
            
            
              | 
                97
               | 
              
                97
               | 
              
                         submit_during_activity=True, 
               | 
            
            
            
              | 
                98
               | 
              
                
               | 
              
                -        has_used=False 
               | 
            
            
            
              | 
                
               | 
              
                98
               | 
              
                +        has_used=False,  
               | 
            
            
            
              | 
                
               | 
              
                99
               | 
              
                +        status=True 
               | 
            
            
            
              | 
                99
               | 
              
                100
               | 
              
                     ).first() 
               | 
            
            
            
              | 
                100
               | 
              
                101
               | 
              
                     if not log: 
               | 
            
            
            
              | 
                101
               | 
              
                102
               | 
              
                         return response(ProductMachineStatusCode.SN_NOT_FOUND) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -559,11 +560,13 @@ def statistic_consumer(request): 
               | 
            
            
            
              | 
                559
               | 
              
                560
               | 
              
                  
               | 
            
            
            
              | 
                560
               | 
              
                561
               | 
              
                 def record_consumer(request): 
               | 
            
            
            
              | 
                561
               | 
              
                562
               | 
              
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
            
            
              | 
                
               | 
              
                563
               | 
              
                +    page = request.POST.get('page', 1)
               | 
            
            
            
              | 
                
               | 
              
                564
               | 
              
                +    num = request.POST.get('num', 20)
               | 
            
            
            
              | 
                562
               | 
              
                565
               | 
              
                     admin_id = request.POST.get('admin_id', '')
               | 
            
            
            
              | 
                563
               | 
              
                566
               | 
              
                     start_time = request.POST.get('start_time', '')
               | 
            
            
            
              | 
                564
               | 
              
                567
               | 
              
                     end_time = request.POST.get('end_time', '')
               | 
            
            
            
              | 
                565
               | 
              
                
               | 
              
                -    model_name = request.POST.get('model_name', '')
               | 
            
            
            
              | 
                566
               | 
              
                
               | 
              
                -    phone = request.POST.get('phone', '')
               | 
            
            
            
              | 
                
               | 
              
                568
               | 
              
                +    query = request.POST.get('query', '')
               | 
            
            
            
              | 
                
               | 
              
                569
               | 
              
                +    dupload = request.POST.get('dupload', 0)
               | 
            
            
            
              | 
                567
               | 
              
                570
               | 
              
                  
               | 
            
            
            
              | 
                568
               | 
              
                571
               | 
              
                     if brand_id != settings.KODO_DEFAULT_BRAND_ID: 
               | 
            
            
            
              | 
                569
               | 
              
                572
               | 
              
                         return response(ProductBrandStatusCode.BRAND_NOT_MATCH) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -573,22 +576,26 @@ def record_consumer(request): 
               | 
            
            
            
              | 
                573
               | 
              
                576
               | 
              
                     except AdministratorInfo.DoesNotExist: 
               | 
            
            
            
              | 
                574
               | 
              
                577
               | 
              
                         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) 
               | 
            
            
            
              | 
                575
               | 
              
                578
               | 
              
                      
               | 
            
            
            
              | 
                576
               | 
              
                
               | 
              
                -    logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, model_uni_name__contains=model_name, phone__contains=phone) 
               | 
            
            
            
              | 
                
               | 
              
                579
               | 
              
                +    logs = ConsumeInfoSubmitLogInfo.objects.filter(Q(status=True) & Q(ymd__gte=start_time) & Q(ymd__lte=end_time) & Q(test_user=False) & Q(model_name__contains=query) | (Q(phone__contains=query))).order_by('-created_at')
               | 
            
            
            
              | 
                577
               | 
              
                580
               | 
              
                  
               | 
            
            
            
              | 
                
               | 
              
                581
               | 
              
                +    count = logs.count() 
               | 
            
            
            
              | 
                
               | 
              
                582
               | 
              
                +    logs, left = pagination(logs, page, num) 
               | 
            
            
            
              | 
                578
               | 
              
                583
               | 
              
                     logs = [log.admindata for log in logs] 
               | 
            
            
            
              | 
                579
               | 
              
                584
               | 
              
                  
               | 
            
            
            
              | 
                580
               | 
              
                585
               | 
              
                     return response(200, 'Get Consumer Record Success', u'获取消费者销售记录成功', data={
               | 
            
            
            
              | 
                581
               | 
              
                
               | 
              
                -        'logs': logs 
               | 
            
            
            
              | 
                
               | 
              
                586
               | 
              
                +        'logs': logs, 
               | 
            
            
            
              | 
                
               | 
              
                587
               | 
              
                +        'count': count, 
               | 
            
            
            
              | 
                
               | 
              
                588
               | 
              
                +        'left': left 
               | 
            
            
            
              | 
                582
               | 
              
                589
               | 
              
                     }) 
               | 
            
            
            
              | 
                583
               | 
              
                590
               | 
              
                  
               | 
            
            
            
              | 
                584
               | 
              
                591
               | 
              
                 def record_sale(request): 
               | 
            
            
            
              | 
                585
               | 
              
                592
               | 
              
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
            
            
              | 
                586
               | 
              
                593
               | 
              
                     admin_id = request.POST.get('admin_id', '')
               | 
            
            
            
              | 
                
               | 
              
                594
               | 
              
                +    page = request.POST.get('page', 1)
               | 
            
            
            
              | 
                
               | 
              
                595
               | 
              
                +    num = request.POST.get('num', 20)
               | 
            
            
            
              | 
                587
               | 
              
                596
               | 
              
                     start_time = request.POST.get('start_time', '')
               | 
            
            
            
              | 
                588
               | 
              
                597
               | 
              
                     end_time = request.POST.get('end_time', '')
               | 
            
            
            
              | 
                589
               | 
              
                
               | 
              
                -    model_name = request.POST.get('model_name', '')
               | 
            
            
            
              | 
                590
               | 
              
                
               | 
              
                -    clerk_name = request.POST.get('clerk_name', '')
               | 
            
            
            
              | 
                591
               | 
              
                
               | 
              
                -    distributor_name = request.POST.get('distributor_name', '')
               | 
            
            
            
              | 
                
               | 
              
                598
               | 
              
                +    query = request.POST.get('query', '')
               | 
            
            
            
              | 
                592
               | 
              
                599
               | 
              
                  
               | 
            
            
            
              | 
                593
               | 
              
                600
               | 
              
                     if brand_id != settings.KODO_DEFAULT_BRAND_ID: 
               | 
            
            
            
              | 
                594
               | 
              
                601
               | 
              
                         return response(ProductBrandStatusCode.BRAND_NOT_MATCH) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -598,10 +605,14 @@ def record_sale(request): 
               | 
            
            
            
              | 
                598
               | 
              
                605
               | 
              
                     except AdministratorInfo.DoesNotExist: 
               | 
            
            
            
              | 
                599
               | 
              
                606
               | 
              
                         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) 
               | 
            
            
            
              | 
                600
               | 
              
                607
               | 
              
                      
               | 
            
            
            
              | 
                601
               | 
              
                
               | 
              
                -    logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, test_sn=False, model_uni_name__contains=model_name, clerk_name__contains=clerk_name, distributor_name__contains=distributor_name) 
               | 
            
            
            
              | 
                
               | 
              
                608
               | 
              
                +    logs = SaleclerkSubmitLogInfo.objects.filter(Q(status=True) & Q(ymd__gte=start_time) & Q(ymd__lte=end_time) & Q(test_user=False) & Q(test_sn=False) & (Q(model_name__contains=query) | Q(clerk_name__contains=query) | Q(distributor_name__contains=query))).order_by('-created_at')
               | 
            
            
            
              | 
                602
               | 
              
                609
               | 
              
                  
               | 
            
            
            
              | 
                
               | 
              
                610
               | 
              
                +    count = logs.count() 
               | 
            
            
            
              | 
                
               | 
              
                611
               | 
              
                +    logs, left = pagination(logs, page, num) 
               | 
            
            
            
              | 
                603
               | 
              
                612
               | 
              
                     logs = [log.admindata for log in logs] 
               | 
            
            
            
              | 
                604
               | 
              
                613
               | 
              
                  
               | 
            
            
            
              | 
                605
               | 
              
                614
               | 
              
                     return response(200, 'Get Sale Record Success', u'获取销售员销售记录成功', data={
               | 
            
            
            
              | 
                606
               | 
              
                
               | 
              
                -        'logs': logs 
               | 
            
            
            
              | 
                
               | 
              
                615
               | 
              
                +        'logs': logs, 
               | 
            
            
            
              | 
                
               | 
              
                616
               | 
              
                +        'count': count, 
               | 
            
            
            
              | 
                
               | 
              
                617
               | 
              
                +        'left': left 
               | 
            
            
            
              | 
                607
               | 
              
                618
               | 
              
                     }) 
               |