Exemplo n.º 1
0
 def patch(self, request, *args, **kwargs):
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         if models.NoteBook.objects.filter(openid=request.auth, id=data['id']).exists():
             if 'progress' in data:
                 progress_data = models.NoteBook.objects.get(id=data['id'])
                 progress_data.icon = 'check'
                 progress_data.icon_color = 'green'
                 progress_data.progress = 1
                 progress_data.save()
                 ret = FBMsg.ret()
                 ret['ip'] = ip
                 ret['data'] = data
                 return Response(ret)
             elif 'desc' in data:
                 progress_data = models.NoteBook.objects.get(id=data['id'])
                 progress_data.desc = data['desc']
                 progress_data.save()
                 ret = FBMsg.ret()
                 ret['ip'] = ip
                 ret['data'] = data
                 return Response(ret)
Exemplo n.º 2
0
def login(request, *args, **kwargs):
    post_data = json.loads(request.body.decode())
    data = {
        "name": post_data.get('name'),
        "password": post_data.get('password'),
    }
    ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
        'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
    if User.objects.filter(username=str(data['name'])).exists():
        user = auth.authenticate(username=str(data['name']), password=str(data['password']))
        if user is None:
            err_ret = FBMsg.err_ret()
            err_ret['data'] = data
            return JsonResponse(err_ret)
        else:
            auth.login(request, user)
            user_detail = Users.objects.filter(user_id=user.id).first()
            data = {
                "name": data['name'],
                'openid': user_detail.openid
            }
            ret = FBMsg.ret()
            ret['ip'] = ip
            ret['data'] = data
            return JsonResponse(ret)
    else:
        err_ret = FBMsg.err_ret()
        err_ret['ip'] = ip
        err_ret['data'] = data
        return JsonResponse(err_ret)
Exemplo n.º 3
0
 def patch(self, request, *args, **kwargs):
     if models.Users.objects.filter(openid=request.auth,
                                    appid=request.user.appid,
                                    developer=1,
                                    is_delete=0).exists():
         pass
     else:
         return Response(FBMsg.err_dev())
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         if models.Users.objects.filter(
                 transaction_code=data['transaction_code'],
                 developer=0,
                 is_delete=0).exists():
             patch_data = models.Users.objects.filter(
                 transaction_code=data['transaction_code'],
                 developer=0,
                 is_delete=0).first()
             patch_data.nickname = data['nickname']
             patch_data.save()
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = data
             return Response(ret)
         else:
             return Response(FBMsg.err_tc_empty())
Exemplo n.º 4
0
 def get(self, request, *args, **kwargs):
     ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
         'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
     os.system("python3 /data/pi/utils/tracking.py")
     ret = FBMsg.ret()
     ret['ip'] = ip
     return Response(ret)
Exemplo n.º 5
0
 def delete(self, request, *args, **kwargs):
     if models.Users.objects.filter(openid=request.auth,
                                    appid=request.user.appid,
                                    developer=1,
                                    is_delete=0).exists():
         pass
     else:
         return Response(FBMsg.err_dev())
     data = request.data
     ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
         'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
     for i in range(len(data)):
         if models.Users.objects.filter(
                 transaction_code=data[i]['transaction_code'],
                 developer=0,
                 is_delete=0).exists():
             pass
         else:
             return Response(FBMsg.err_tc_empty())
     for j in range(len(data)):
         delete_data = models.Users.objects.filter(
             transaction_code=data[j]['transaction_code'],
             developer=0,
             is_delete=0).first()
         delete_data.is_delete = 1
         delete_data.save()
     ret = FBMsg.ret()
     ret['ip'] = ip
     ret['data'] = data
     return Response(ret)
Exemplo n.º 6
0
 def get(self, request, *args, **kwargs):
     ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
         'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
     sort = request._request.GET.get('sort', '-create_time')
     list = models.Users.objects.filter(appid=request.user.appid,
                                        developer=0,
                                        is_delete=0).order_by(sort)
     if request._request.GET.get('name', ''):
         list = list.filter(name__icontains=request._request.GET.get(
             'name', '')).order_by(sort)
     if request._request.GET.get('nickname', ''):
         list = list.filter(nickname__icontains=request._request.GET.get(
             'nickname', '')).order_by(sort)
     if request._request.GET.get('start_date_create', ''):
         try:
             start_date = request._request.GET.get('start_date_create', '')
             if request._request.GET.get('end_date_create', ''):
                 date_end = request._request.GET.get('end_date_create', '')
                 delta = datetime.timedelta(days=1)
                 date = [int(x) for x in date_end.split('-')]
                 old = datetime.datetime(date[0], date[1], date[2])
                 end_date = (old + delta).strftime('%Y-%m-%d')
             else:
                 today = datetime.date.today()
                 delta = datetime.timedelta(days=1)
                 end_date = (today + delta).strftime('%Y-%m-%d')
             list = list.filter(
                 create_time__range=[start_date, end_date]).order_by(sort)
         except:
             pass
     if request._request.GET.get('start_date_update', ''):
         try:
             start_date = request._request.GET.get('start_date_update', '')
             if request._request.GET.get('end_date_update', ''):
                 date_end = request._request.GET.get('end_date_update', '')
                 delta = datetime.timedelta(days=1)
                 date = [int(x) for x in date_end.split('-')]
                 old = datetime.datetime(date[0], date[1], date[2])
                 end_date = (old + delta).strftime('%Y-%m-%d')
             else:
                 today = datetime.date.today()
                 delta = datetime.timedelta(days=1)
                 end_date = (today + delta).strftime('%Y-%m-%d')
             list = list.filter(
                 last_update_time__range=[start_date, end_date]).order_by(
                     sort)
         except:
             pass
     pg = page.MyPageNumberPagination()
     pg_list = pg.paginate_queryset(queryset=list,
                                    request=request,
                                    view=self)
     list_ser = serializers.UserListSerializers(pg_list, many=True)
     ret = FBMsg.ret()
     ret['ip'] = ip
     ret['data'] = list_ser.data
     return pg.get_paginated_response(ret)
Exemplo n.º 7
0
 def get(self, request, *args, **kwargs):
     start_date = request._request.GET.get('note_day', '')
     date_detail = start_date.split('/')
     search_day = datetime.datetime(int(date_detail[0]), int(date_detail[1]), int(date_detail[2]))
     search_day = search_day.strftime('%Y-%m-%d')
     list = models.NoteBook.objects.filter(openid=request.auth, note_day=search_day, progress=0, is_delete=0).count()
     ret = FBMsg.ret()
     ret['data'] = list
     return Response(ret)
Exemplo n.º 8
0
def login(request):
    if request.method == "POST":
        postdata = json.loads(request.body.decode().replace("'", "\""))
        data = {
            "name": postdata.get("name", ''),
            "password": postdata.get("password", '')
        }
        ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
            'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
        if Users.objects.filter(name=str(data['name']),
                                password=str(data['password']),
                                developer=1).exists():
            user = auth.authenticate(username=str(data['name']),
                                     password=str(data['password']))
            if user is None:
                err_ret = FBMsg.err_ret()
                err_ret['data'] = data
                return JsonResponse(err_ret)
            else:
                auth.login(request, user)
                user = Users.objects.get(name=str(data['name']), developer=1)
                today = datetime.date.today()
                note_date = today.strftime('%Y-%m-%d')
                today_note = NoteBook.objects.filter(
                    openid=user.openid, note_day__gte=note_date,
                    is_delete=0).order_by('note_day')[:30]
                today_note_ser = NoteBookSerializers(today_note, many=True)
                note_num = NoteBook.objects.filter(openid=user.openid,
                                                   note_day=note_date,
                                                   progress=0,
                                                   is_delete=0).count()
                delta = datetime.timedelta(days=90)
                start_date = (today - delta).strftime('%Y-%m-%d')
                end_date = (today + delta).strftime('%Y-%m-%d')
                events = NoteBook.objects.filter(openid=user.openid,
                                                 note_day__range=[
                                                     start_date, end_date
                                                 ]).order_by('-create_time')
                events_ser = NoteBookEventSerializers(events, many=True)
                ret = FBMsg.ret()
                data.pop('name')
                data.pop('password')
                ret['ip'] = ip
                ret['events'] = events_ser.data
                ret['today_note'] = today_note_ser.data
                ret['note_num'] = note_num
                data['openid'] = user.openid
                ret['data'] = data
                data.pop('password', '')
                ret['ip'] = ip
                ret['data'] = data
                return JsonResponse(ret)
        else:
            err_ret = FBMsg.err_ret()
            err_ret['ip'] = ip
            err_ret['data'] = data
            return JsonResponse(err_ret)
Exemplo n.º 9
0
 def post(self, request, *args, **kwargs):
     today = datetime.date.today()
     delta = datetime.timedelta(days=90)
     start_date = (today - delta).strftime('%Y-%m-%d')
     end_date = (today + delta).strftime('%Y-%m-%d')
     list = models.NoteBook.objects.filter(note_day__range=[start_date, end_date], is_delete=0).order_by('-create_time')
     list_ser = serializers.NoteBookEventSerializers(list, many=True)
     ret = FBMsg.ret()
     ret['data'] = list_ser.data
     return Response(ret)
Exemplo n.º 10
0
 def post(self, request, *args, **kwargs):
     postdata = request.data
     data = {
         "name": postdata.get('name', ''),
         "mobile": postdata.get('mobile', ''),
         "comments": postdata.get('comments', ''),
         "openid": postdata.get('openid', '')
     }
     script_obj = re.findall(r'script', str(data), re.IGNORECASE)
     select_obj = re.findall(r'select', str(data), re.IGNORECASE)
     if script_obj:
         return JsonResponse(FBMsg.err_bad())
     elif select_obj:
         return JsonResponse(FBMsg.err_bad())
     else:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         if 'name' not in data:
             err_contact_name = FBMsg.err_contact_name()
             return JsonResponse(err_contact_name)
         else:
             if data['name'] == '':
                 err_contact_name = FBMsg.err_contact_name()
                 return JsonResponse(err_contact_name)
             else:
                 if 'mobile' not in data:
                     err_contact_mobile = FBMsg.err_contact_mobile()
                     return JsonResponse(err_contact_mobile)
                 else:
                     if data['mobile'] == '':
                         err_contact_mobile = FBMsg.err_contact_mobile()
                         return JsonResponse(err_contact_mobile)
                     else:
                         if 'comments' not in data:
                             err_contact_comments = FBMsg.err_contact_comments(
                             )
                             return JsonResponse(err_contact_comments)
                         else:
                             if data['comments'] == '':
                                 err_contact_comments = FBMsg.err_contact_comments(
                                 )
                                 return JsonResponse(err_contact_comments)
                             else:
                                 Contact.objects.create(
                                     name=data['name'],
                                     mobile=data['mobile'],
                                     comments=data['comments'],
                                     openid=data['openid'],
                                     ip=ip)
                                 ret = FBMsg.ret()
                                 ret['ip'] = ip
                                 ret['data'] = data
                                 return JsonResponse(ret)
Exemplo n.º 11
0
 def post(self, request, *args, **kwargs):
     data = request.data
     ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
         'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
     if Users.objects.filter(openid=data['data'], is_delete=0).exists():
         ret = FBMsg.ret()
         ret['ip'] = ip
         ret['data'] = {
             "openid":
             Users.objects.filter(openid=data['data'],
                                  is_delete=0).first().openid
         }
         return JsonResponse(ret)
     else:
         err_ret = FBMsg.err_ret()
         return JsonResponse(err_ret)
Exemplo n.º 12
0
 def delete(self, request, *args, **kwargs):
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         if models.NoteBook.objects.filter(openid=request.auth, id=data['id']).exists():
             delete_data = models.NoteBook.objects.get(id=data['id'])
             delete_data.is_delete = 1
             delete_data.save()
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = delete_data.title
             return Response(ret)
Exemplo n.º 13
0
 def get(self, request, *args, **kwargs):
     sort = request._request.GET.get('sort', 'note_day')
     start_date = request._request.GET.get('note_day', '')
     date_detail = start_date.split('/')
     search_day = datetime.datetime(int(date_detail[0]), int(date_detail[1]), int(date_detail[2]))
     search_day = search_day.strftime('%Y-%m-%d')
     list = models.NoteBook.objects.filter(note_day__gte=search_day, openid=request.auth,
                                           is_delete=0).order_by(sort, '-create_time')
     if request._request.GET.get('id', ''):
         list = list.filter(pk=request._request.GET.get('id', '')).order_by(sort)
     pg = page.MyPageNumberPagination()
     pg_list = pg.paginate_queryset(queryset=list, request=request, view=self)
     list_ser = serializers.NoteBookSerializers(pg_list, many=True)
     ret = FBMsg.ret()
     ret['data'] = list_ser.data
     return pg.get_paginated_response(ret)
Exemplo n.º 14
0
 def post(self, request, *args, **kwargs):
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         note_day = data['note_day'].split('/')
         note_day = datetime.datetime(int(note_day[0]), int(note_day[1]), int(note_day[2]))
         note_day = note_day.strftime('%Y-%m-%d')
         models.NoteBook.objects.create(openid=request.auth, icon='close', icon_color='light-blue-10',
                                        title=data['title'], note_day=note_day, desc=data['desc'])
         ret = FBMsg.ret()
         ret['ip'] = ip
         ret['data'] = data
         return Response(ret)
Exemplo n.º 15
0
 def post(self, request, format=None):
     file_obj = request.data['file']
     vip_id = Users.objects.get(appid=request.user.appid,
                                developer=1,
                                is_delete=0).vip
     if vip_id == 0:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     elif vip_id == 4:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     if file_obj.name.endswith('.xlsx'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/shipping/' + request.auth + '.xlsx')
     elif file_obj.name.endswith('.xls'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/shipping/' + request.auth + '.xls')
     else:
         return Response(FBMsg.err_data())
     with open(filename, 'wb+') as f:
         for chunk in file_obj.chunks():
             f.write(chunk)
         f.close()
     df = pd.read_excel(filename)
     if ShippingModel.objects.filter(appid=request.user.appid).exists():
         shipping_data = ShippingModel.objects.filter(
             appid=request.user.appid)
         for i in range(len(shipping_data)):
             shipping_data[i].delete()
     for index, row in df.iterrows():
         date_detail = str(row['发货日期']).split(' ')
         date_detail = [int(x) for x in str(date_detail[0]).split('-')]
         shipping_day = datetime.datetime(int(date_detail[0]),
                                          int(date_detail[1]),
                                          int(date_detail[2]))
         shipping_time = shipping_day.strftime('%Y-%m-%d')
         ShippingModel.objects.create(appid=request.user.appid,
                                      goods_code=str(row['商品编号']),
                                      shipping_qty=int(row['发货数量']),
                                      shipping_time=shipping_time)
     os.remove(filename)
     return Response(FBMsg.ret())
Exemplo n.º 16
0
 def get(self, request, *args, **kwargs):
     ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
         'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
     sort = request._request.GET.get('sort', '-create_time')
     max_page = request._request.GET.get('max_page', 100)
     list = BaseInfoModel.objects.filter(
         appid=request.user.appid).order_by(sort)
     if request._request.GET.get('goods_code', ''):
         list = list.filter(goods_code__icontains=request._request.GET.get(
             'goods_code', '')).order_by(sort)
     pg = MyPageNumberPagination()
     pg_list = pg.paginate_queryset(queryset=list,
                                    request=request,
                                    view=self)
     list_ser = ListSerializers(pg_list, many=True)
     ret = FBMsg.ret()
     ret['ip'] = ip
     ret['data'] = list_ser.data
     ret['totlepage'] = math.ceil(list.count() / int(max_page))
     return pg.get_paginated_response(ret)
Exemplo n.º 17
0
 def post(self, request, format=None):
     file_obj = request.data['file']
     vip_id = Users.objects.get(appid=request.user.appid,
                                developer=1,
                                is_delete=0).vip
     if vip_id == 0:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     elif vip_id == 4:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     if file_obj.name.endswith('.xlsx'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/baseinfo/' + request.auth + '.xlsx')
     elif file_obj.name.endswith('.xls'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/baseinfo/' + request.auth + '.xls')
     else:
         return Response(FBMsg.err_data())
     with open(filename, 'wb+') as f:
         for chunk in file_obj.chunks():
             f.write(chunk)
         f.close()
     df = pd.read_excel(filename)
     if BaseInfoModel.objects.filter(appid=request.user.appid).exists():
         baseinfo_data = BaseInfoModel.objects.filter(
             appid=request.user.appid)
         for i in range(len(baseinfo_data)):
             baseinfo_data[i].delete()
     for index, row in df.iterrows():
         BaseInfoModel.objects.create(
             appid=request.user.appid,
             goods_code=str(row['商品编号']),
             sup_product_day=int(row['供应商生产周期(天)']),
             sup_intransit=int(row['供应商送货在途时间(天)']),
             loading_inspect=int(row['到货卸货和检验时间(天)']),
             total_leadtime=int(row['供应商生产周期(天)']) +
             int(row['供应商送货在途时间(天)']) + int(row['到货卸货和检验时间(天)']))
     os.remove(filename)
     return Response(FBMsg.ret())
Exemplo n.º 18
0
 def post(self, request, format=None):
     file_obj = request.data['file']
     vip_id = Users.objects.get(appid=request.user.appid,
                                developer=1,
                                is_delete=0).vip
     if vip_id == 0:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     elif vip_id == 4:
         if file_obj.size >= 102400:
             return Response(FBMsg.err_data())
     if file_obj.name.endswith('.xlsx'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/goods/' + request.auth + '.xlsx')
     elif file_obj.name.endswith('.xls'):
         filename = os.path.join(settings.BASE_DIR,
                                 'media/goods/' + request.auth + '.xls')
     else:
         return Response(FBMsg.err_data())
     with open(filename, 'wb+') as f:
         for chunk in file_obj.chunks():
             f.write(chunk)
         f.close()
     df = pd.read_excel(filename)
     if GoodsModel.objects.filter(appid=request.user.appid).exists():
         goods_data = GoodsModel.objects.filter(appid=request.user.appid)
         for i in range(len(goods_data)):
             goods_data[i].delete()
     for index, row in df.iterrows():
         if int(row['现有库存']) <= 0:
             on_hand_stock = 0
         else:
             on_hand_stock = int(row['现有库存'])
         GoodsModel.objects.create(appid=request.user.appid,
                                   goods_code=str(row['商品编号']),
                                   on_hand_stock=on_hand_stock)
     os.remove(filename)
     return Response(FBMsg.ret())
Exemplo n.º 19
0
def captcha(request):
    foo = ['a', 'b']
    data = {}
    mode = random.choice(foo)
    if mode == 'a':
        num1 = random.randint(10, 20)
        num2 = random.randint(0, 10)
        nummode = "-"
        data['result'] = num1 - num2
    elif mode == 'b':
        num1 = random.randint(0, 10)
        num2 = random.randint(0, 10)
        nummode = "+"
        data['result'] = num1 + num2
    data['num1'] = num1
    data['num2'] = num2
    data['nummode'] = nummode
    data['numrandom'] = random.randint(0, 20)
    while True:
        data['numrandom'] = random.randint(0, 20)
        if data['numrandom'] != data['result']:
            ret = FBMsg.ret()
            ret['data'] = data
            return JsonResponse(ret)
Exemplo n.º 20
0
 def post(self, request, format=None):
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         if ShippingModel.objects.filter(appid=request.user.appid).exists():
             if GoodsModel.objects.filter(appid=request.user.appid).exists():
                 if BaseInfoModel.objects.filter(appid=request.user.appid).exists():
                     if ShippingModel.objects.filter(goods_code=data, appid=request.user.appid).exists():
                         if GoodsModel.objects.filter(goods_code=data, appid=request.user.appid).exists():
                             if BaseInfoModel.objects.filter(goods_code=data, appid=request.user.appid).exists():
                                 on_hand_stock = GoodsModel.objects.filter(goods_code=data, appid=request.user.appid).first().on_hand_stock
                                 lead_time = BaseInfoModel.objects.filter(goods_code=data,
                                                                           appid=request.user.appid).first().total_leadtime
                                 today = datetime.date.today()
                                 delta = datetime.timedelta(days=89)
                                 demand_data = ShippingModel.objects.filter(goods_code=data, appid=request.user.appid,
                                 shipping_time__range=[(today - delta).strftime('%Y-%m-%d'), today])
                                 demand = []
                                 for i in range(len(demand_data)):
                                     demand.append({
                                         "goods_code": data,
                                         "forcast_day": demand_data[i].shipping_time,
                                         "forcast_shipping": demand_data[i].shipping_qty,
                                         "forcast_on_hand": 0,
                                         "plan_order_qty": 0,
                                         "oos": ''
                                     })
                                 for j in range(0, 90):
                                     delta = datetime.timedelta(days=j)
                                     a_date = (today - delta).strftime('%Y-%m-%d')
                                     date = [int(x) for x in a_date.split('-')]
                                     b_date = datetime.date(date[0], date[1], date[2])
                                     check_date = 0
                                     for k in demand:
                                         if (k['forcast_day'] - b_date).days == 0:
                                             check_date = 1
                                     if check_date == 0:
                                         demand.append({
                                             "goods_code": data,
                                             "forcast_day": b_date,
                                             "forcast_shipping": 0,
                                             "forcast_on_hand": 0,
                                             "plan_order_qty": 0,
                                             "oos": ''
                                         })
                                 for k in range(1, 91):
                                     delta = datetime.timedelta(days=k)
                                     plan_date = (today + delta).strftime('%Y-%m-%d')
                                     demand.append({
                                         "goods_code": data,
                                         "forcast_day": plan_date,
                                         "forcast_shipping": 0,
                                         "forcast_on_hand": 0,
                                         "plan_order_qty": 0,
                                         "oos": ''
                                     })
                                 ret = FBMsg.ret()
                                 ret["forcast_on_hand"] = on_hand_stock
                                 ret['lead_time'] = lead_time
                                 ret['data'] = demand
                                 return Response(ret)
                             else:
                                 return Response(FBMsg.err_goods_code())
                         else:
                             return Response(FBMsg.err_goods_code())
                     else:
                         return Response(FBMsg.err_goods_code())
                 else:
                     return Response(FBMsg.err_req_baseinfo_list())
             else:
                 return Response(FBMsg.err_req_stock_list())
         else:
             return Response(FBMsg.err_req_shipping_list())
Exemplo n.º 21
0
 def post(self, request, format=None):
     if ShippingModel.objects.filter(appid=request.user.appid).exists():
         if GoodsModel.objects.filter(appid=request.user.appid).exists():
             if BaseInfoModel.objects.filter(appid=request.user.appid).exists():
                 contacts = ShippingModel.objects.filter(appid=request.user.appid)
                 goods_code = contacts.values('goods_code').distinct()
                 data = []
                 for i in range(len(goods_code)):
                     if GoodsModel.objects.filter(appid=request.user.appid, goods_code=goods_code[i]['goods_code']).exists():
                         if BaseInfoModel.objects.filter(appid=request.user.appid, goods_code=goods_code[i]['goods_code']).exists():
                             on_hand_stock = GoodsModel.objects.filter(appid=request.user.appid,
                                                                       goods_code=goods_code[i][
                                                                           'goods_code']).first().on_hand_stock
                             total_leadtime = BaseInfoModel.objects.filter(appid=request.user.appid,
                                                                           goods_code=goods_code[i][
                                                                               'goods_code']).first().total_leadtime
                             if on_hand_stock == 0:
                                 today = datetime.date.today()
                                 delta1 = datetime.timedelta(days=29)
                                 delta2 = datetime.timedelta(days=59)
                                 delta3 = datetime.timedelta(days=89)
                                 end_date1 = (today - delta1).strftime('%Y-%m-%d')
                                 end_date2 = (today - delta2).strftime('%Y-%m-%d')
                                 end_date3 = (today - delta3).strftime('%Y-%m-%d')
                                 plan_date = today.strftime('%Y-%m-%d')
                                 shipping_data1 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date1, today]).aggregate(
                                     Sum('shipping_qty'))
                                 shipping_data2 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date2, today]).aggregate(
                                     Sum('shipping_qty'))
                                 shipping_data3 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date3, today]).aggregate(
                                     Sum('shipping_qty'))
                                 analyst = {
                                     "goods_code": goods_code[i]['goods_code'],
                                     "shipping_data1": shipping_data1['shipping_qty__sum'],
                                     "shipping_data2": shipping_data2['shipping_qty__sum'],
                                     "shipping_data3": shipping_data3['shipping_qty__sum'],
                                     "plan_date1": plan_date,
                                     "plan_date2": plan_date,
                                     "plan_date3": plan_date,
                                     "plan_date4": 0,
                                     "oos_lv": "已经断货"
                                 }
                                 data.append(analyst)
                             else:
                                 today = datetime.date.today()
                                 delta1 = datetime.timedelta(days=29)
                                 delta2 = datetime.timedelta(days=59)
                                 delta3 = datetime.timedelta(days=89)
                                 end_date1 = (today - delta1).strftime('%Y-%m-%d')
                                 end_date2 = (today - delta2).strftime('%Y-%m-%d')
                                 end_date3 = (today - delta3).strftime('%Y-%m-%d')
                                 shipping_data1 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date1, today]).aggregate(
                                     Sum('shipping_qty'))
                                 shipping_data2 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date2, today]).aggregate(
                                     Sum('shipping_qty'))
                                 shipping_data3 = contacts.filter(goods_code=goods_code[i]['goods_code'], shipping_time__range=[end_date3, today]).aggregate(
                                     Sum('shipping_qty'))
                                 avg_qty1 = shipping_data1['shipping_qty__sum'] / 30
                                 avg_qty2 = shipping_data2['shipping_qty__sum'] / 60
                                 avg_qty3 = shipping_data3['shipping_qty__sum'] / 90
                                 avg_qty4 = (avg_qty1 + avg_qty2 + avg_qty3) / 3
                                 stock_check1 = int(on_hand_stock / avg_qty1)
                                 stock_check2 = int(on_hand_stock / avg_qty2)
                                 stock_check3 = int(on_hand_stock / avg_qty3)
                                 stock_check4 = int(on_hand_stock / avg_qty4)
                                 plan_day1 = datetime.timedelta(days=stock_check1)
                                 plan_day2 = datetime.timedelta(days=stock_check2)
                                 plan_day3 = datetime.timedelta(days=stock_check3)
                                 plan_day4 = datetime.timedelta(days=stock_check4)
                                 plan_date1 = (today + plan_day1).strftime('%Y-%m-%d')
                                 plan_date2 = (today + plan_day2).strftime('%Y-%m-%d')
                                 plan_date3 = (today + plan_day3).strftime('%Y-%m-%d')
                                 oos_notice = plan_day4.days / total_leadtime
                                 if oos_notice >= 3:
                                     oos_lv = "库存过多"
                                 elif 3 > oos_notice >= 2:
                                     oos_lv = "库存充足"
                                 elif 2 > oos_notice >= 1:
                                     oos_notice = plan_day4.days / (total_leadtime + 7)
                                     if oos_notice > 1:
                                         oos_lv = "库存正常"
                                     elif oos_notice <= 1:
                                         oos_lv = "断货风险"
                                     else:
                                         oos_lv = "断货风险极大"
                                 else:
                                     oos_lv = "断货风险极大"
                                 analyst = {
                                     "goods_code": goods_code[i]['goods_code'],
                                     "shipping_data1": shipping_data1['shipping_qty__sum'],
                                     "shipping_data2": shipping_data2['shipping_qty__sum'],
                                     "shipping_data3": shipping_data3['shipping_qty__sum'],
                                     "plan_date1": plan_date1,
                                     "plan_date2": plan_date2,
                                     "plan_date3": plan_date3,
                                     "plan_date4": plan_day4.days,
                                     "oos_lv": oos_lv
                                 }
                                 data.append(analyst)
                                 # end_date = (today + delta).strftime('%Y-%m-%d')
                                 # date = [int(x) for x in date_end.split('-')]
                                 # old = datetime.datetime(date[0], date[1], date[2])
                                 # end_date = (old + delta).strftime('%Y-%m-%d')
                         else:
                             continue
                     else:
                         continue
                 ret = FBMsg.ret()
                 ret['data'] = data
                 return Response(ret)
             else:
                 return Response(FBMsg.err_req_baseinfo_list())
         else:
             return Response(FBMsg.err_req_stock_list())
     else:
         return Response(FBMsg.err_req_shipping_list())
Exemplo n.º 22
0
def register(request):
    postdata = json.loads(request.body.decode().replace("'", "\""))
    data = {
        "name": postdata.get("name", ''),
        "password1": postdata.get("password1", ''),
        "password2": postdata.get("password2", ''),
    }
    ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
        'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
    script_obj = re.findall(r'script', str(data), re.IGNORECASE)
    select_obj = re.findall(r'select', str(data), re.IGNORECASE)
    if script_obj:
        return JsonResponse(FBMsg.err_bad())
    elif select_obj:
        return JsonResponse(FBMsg.err_bad())
    else:
        if Users.objects.filter(name=str(data['name']),
                                developer=1,
                                is_delete=0).exists():
            err_user_same = FBMsg.err_user_same()
            err_user_same['ip'] = ip
            err_user_same['data'] = data['name']
            return JsonResponse(err_user_same)
        else:
            if Users.objects.filter(ip=ip).exists():
                if Users.objects.filter(ip=ip).count() > 2:
                    err_register_more = FBMsg.err_register_more()
                    err_register_more['ip'] = ip
                    err_register_more['data'] = data['name']
                    return JsonResponse(err_register_more)
                else:
                    if 'password1' not in data:
                        err_password1_empty = FBMsg.err_password1_empty()
                        err_password1_empty['ip'] = ip
                        err_password1_empty['data'] = data['name']
                        return JsonResponse(err_password1_empty)
                    else:
                        if str(data['password1']) == '':
                            err_password1_empty = FBMsg.err_password1_empty()
                            err_password1_empty['ip'] = ip
                            err_password1_empty['data'] = data['name']
                            return JsonResponse(err_password1_empty)
                        else:
                            if 'password2' not in data:
                                err_password2_empty = FBMsg.err_password2_empty(
                                )
                                err_password2_empty['ip'] = ip
                                err_password2_empty['data'] = data['name']
                                return JsonResponse(err_password2_empty)
                            else:
                                if str(data['password2']) == '':
                                    err_password2_empty = FBMsg.err_password2_empty(
                                    )
                                    err_password2_empty['ip'] = ip
                                    err_password2_empty['data'] = data['name']
                                    return JsonResponse(err_password2_empty)
                                else:
                                    if str(data['password1']) != str(
                                            data['password2']):
                                        err_password_not_same = FBMsg.err_password_not_same(
                                        )
                                        err_password_not_same['ip'] = ip
                                        err_password_not_same['data'] = data[
                                            'name']
                                        return JsonResponse(
                                            err_password_not_same)
                                    else:
                                        transaction_code = Md5.md5(
                                            data['name'])
                                        user = User.objects.create_user(
                                            username=str(data['name']),
                                            password=str(data['password1']))
                                        Users.objects.create(
                                            user_id=user.id,
                                            name=user.username,
                                            password=str(data['password1']),
                                            openid=transaction_code,
                                            appid=Md5.md5(data['name'] + '1'),
                                            transaction_code=Md5.md5(
                                                str(timezone.now())),
                                            developer=1,
                                            ip=ip)
                                        auth.login(request, user)
                                        ret = FBMsg.ret()
                                        data['openid'] = transaction_code
                                        ret['ip'] = ip
                                        data.pop('password1', '')
                                        data.pop('password2', '')
                                        ret['data'] = data
                                        return JsonResponse(ret)
            else:
                if 'password1' not in data:
                    err_password1_empty = FBMsg.err_password1_empty()
                    err_password1_empty['ip'] = ip
                    err_password1_empty['data'] = data['name']
                    return JsonResponse(err_password1_empty)
                else:
                    if str(data['password1']) == '':
                        err_password1_empty = FBMsg.err_password1_empty()
                        err_password1_empty['ip'] = ip
                        err_password1_empty['data'] = data['name']
                        return JsonResponse(err_password1_empty)
                    else:
                        if 'password2' not in data:
                            err_password2_empty = FBMsg.err_password2_empty()
                            err_password2_empty['ip'] = ip
                            err_password2_empty['data'] = data['name']
                            return JsonResponse(err_password2_empty)
                        else:
                            if str(data['password2']) == '':
                                err_password2_empty = FBMsg.err_password2_empty(
                                )
                                err_password2_empty['ip'] = ip
                                err_password2_empty['data'] = data['name']
                                return JsonResponse(err_password2_empty)
                            else:
                                if str(data['password1']) != str(
                                        data['password2']):
                                    err_password_not_same = FBMsg.err_password_not_same(
                                    )
                                    err_password_not_same['ip'] = ip
                                    err_password_not_same['data'] = data[
                                        'name']
                                    return JsonResponse(err_password_not_same)
                                else:
                                    transaction_code = Md5.md5(data['name'])
                                    user = User.objects.create_user(
                                        username=str(data['name']),
                                        password=str(data['password1']))
                                    Users.objects.create(
                                        user_id=user.id,
                                        name=user.username,
                                        password=str(data['password1']),
                                        openid=transaction_code,
                                        appid=Md5.md5(data['name'] + '1'),
                                        transaction_code=Md5.md5(
                                            str(timezone.now())),
                                        developer=1,
                                        ip=ip)
                                    auth.login(request, user)
                                    ret = FBMsg.ret()
                                    ret['ip'] = ip
                                    data['openid'] = transaction_code
                                    data.pop('password1', '')
                                    data.pop('password2', '')
                                    ret['data'] = data
                                    return JsonResponse(ret)
Exemplo n.º 23
0
def register(request, *args, **kwargs):
    post_data = json.loads(request.body.decode())
    data = {
        "name": post_data.get('name'),
        "password1": post_data.get('password1'),
        "password2": post_data.get('password2')
    }
    ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
        'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
    if Users.objects.filter(name=str(data['name']), developer=1,
                            is_delete=0).exists():
        err_user_same = FBMsg.err_user_same()
        err_user_same['ip'] = ip
        err_user_same['data'] = data['name']
        return JsonResponse(err_user_same)
    else:
        if data.get('password1') is None:
            err_password1_empty = FBMsg.err_password1_empty()
            err_password1_empty['ip'] = ip
            err_password1_empty['data'] = data['name']
            return JsonResponse(err_password1_empty)
        else:
            if str(data['password1']) == '':
                err_password1_empty = FBMsg.err_password1_empty()
                err_password1_empty['ip'] = ip
                err_password1_empty['data'] = data['name']
                return JsonResponse(err_password1_empty)
            else:
                if data.get('password2') is None:
                    err_password2_empty = FBMsg.err_password2_empty()
                    err_password2_empty['ip'] = ip
                    err_password2_empty['data'] = data['name']
                    return JsonResponse(err_password2_empty)
                else:
                    if str(data['password2']) == '':
                        err_password2_empty = FBMsg.err_password2_empty()
                        err_password2_empty['ip'] = ip
                        err_password2_empty['data'] = data['name']
                        return JsonResponse(err_password2_empty)
                    else:
                        if str(data['password1']) != str(data['password2']):
                            err_password_not_same = FBMsg.err_password_not_same(
                            )
                            err_password_not_same['ip'] = ip
                            err_password_not_same['data'] = data['name']
                            return JsonResponse(err_password_not_same)
                        else:
                            transaction_code = Md5.md5(data['name'])
                            user = User.objects.create_user(
                                username=str(data['name']),
                                password=str(data['password1']))
                            Users.objects.create(
                                user_id=user.id,
                                name=str(data['name']),
                                openid=transaction_code,
                                appid=Md5.md5(data['name'] + '1'),
                                t_code=Md5.md5(str(timezone.now())),
                                developer=1,
                                ip=ip)
                            auth.login(request, user)
                            staff.objects.create(staff_name=str(data['name']),
                                                 staff_type='Admin',
                                                 openid=transaction_code)
                            ret = FBMsg.ret()
                            ret['ip'] = ip
                            data['openid'] = transaction_code
                            data['name'] = str(data['name'])
                            data.pop('password1', '')
                            data.pop('password2', '')
                            ret['data'] = data
                            from company.models import ListModel as company
                            company.objects.create(
                                openid=transaction_code,
                                company_name='GreaterWMS',
                                company_city=str(random.choice(randomcity)),
                                company_address='People’s Square # 666 Room 1F',
                                company_contact=int(randomPhone()),
                                company_manager='Elvis.Shi',
                                creater='DemoData')
                            from warehouse.models import ListModel as warehouse
                            warehouse.objects.create(
                                openid=transaction_code,
                                warehouse_name='Center Warehouse',
                                warehouse_city=str(random.choice(randomcity)),
                                warehouse_address=
                                'People’s Square # 666 Room 2F',
                                warehouse_contact=int(randomPhone()),
                                warehouse_manager='Tim.Yao',
                                creater='DemoData')
                            from supplier.models import ListModel as supplier
                            supplier_data_list = []
                            for supplier_data in range(1, 42):
                                demo_data = supplier(
                                    openid=transaction_code,
                                    supplier_name='Supplier Name-' +
                                    str(supplier_data),
                                    supplier_city=str(
                                        random.choice(randomcity)),
                                    supplier_address='Address-' +
                                    str(supplier_data),
                                    supplier_contact=int(randomPhone()),
                                    supplier_manager=str(
                                        random.choice(randomname)),
                                    creater='DemoData')
                                supplier_data_list.append(demo_data)
                            supplier.objects.bulk_create(supplier_data_list,
                                                         batch_size=100)
                            from customer.models import ListModel as customer
                            customer_data_list = []
                            for customer_data in range(1, 42):
                                demo_data = customer(
                                    openid=transaction_code,
                                    customer_name='Customer Name-' +
                                    str(customer_data),
                                    customer_city=str(
                                        random.choice(randomcity)),
                                    customer_address='Address-' +
                                    str(customer_data),
                                    customer_contact=int(randomPhone()),
                                    customer_manager=str(
                                        random.choice(randomname)),
                                    creater='DemoData')
                                customer_data_list.append(demo_data)
                            customer.objects.bulk_create(customer_data_list,
                                                         batch_size=100)
                            staff_data_list = []
                            for staff_data in randomname:
                                demo_data = staff(openid=transaction_code,
                                                  staff_name=staff_data,
                                                  staff_type=str(
                                                      randomStaffType()))
                                staff_data_list.append(demo_data)
                            staff.objects.bulk_create(staff_data_list,
                                                      batch_size=100)
                            from driver.models import ListModel as driver
                            driver_data_list = []
                            for driver_data in range(1, 42):
                                demo_data = driver(
                                    openid=transaction_code,
                                    driver_name='Driver Name-' +
                                    str(driver_data),
                                    license_plate="".join(
                                        random.choice("0123456789")
                                        for i in range(8)),
                                    creater='DemoData')
                                driver_data_list.append(demo_data)
                            driver.objects.bulk_create(driver_data_list,
                                                       batch_size=100)
                            from capital.models import ListModel as capital
                            capital_data_list = []
                            for capital_data in range(1, 42):
                                demo_data = capital(
                                    openid=transaction_code,
                                    capital_name='Capital Name-' +
                                    str(capital_data),
                                    capital_qty=random.randint(1, 100),
                                    capital_cost=random.randint(100, 10000),
                                    creater='DemoData')
                                capital_data_list.append(demo_data)
                            capital.objects.bulk_create(capital_data_list,
                                                        batch_size=100)
                            from binsize.models import ListModel as binsize
                            binsize_data_list = [
                                binsize(openid=transaction_code,
                                        bin_size='Big',
                                        bin_size_w=1100,
                                        bin_size_d=1200,
                                        bin_size_h=1800,
                                        creater='DemoData'),
                                binsize(openid=transaction_code,
                                        bin_size='Floor',
                                        bin_size_w=10000,
                                        bin_size_d=10000,
                                        bin_size_h=10000,
                                        creater='DemoData'),
                                binsize(openid=transaction_code,
                                        bin_size='Small',
                                        bin_size_w=800,
                                        bin_size_d=1000,
                                        bin_size_h=1200,
                                        creater='DemoData'),
                                binsize(openid=transaction_code,
                                        bin_size='Tiny',
                                        bin_size_w=200,
                                        bin_size_d=250,
                                        bin_size_h=300,
                                        creater='DemoData')
                            ]
                            binsize.objects.bulk_create(binsize_data_list,
                                                        batch_size=100)
                            from binset.models import ListModel as binset
                            binset_data_list = [
                                binset(openid=transaction_code,
                                       bin_name='A010101',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Normal",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='A010102',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Normal",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='A010103',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Normal",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B010101',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Inspection",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B010102',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Inspection",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B010103',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Inspection",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B020101',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Holding",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B020102',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Holding",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B020103',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Holding",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B030101',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Damage",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B030102',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Damage",
                                       empty_label=True,
                                       creater='DemoData'),
                                binset(openid=transaction_code,
                                       bin_name='B030103',
                                       bin_size=str(
                                           random.choice(randombinsize)),
                                       bin_property="Damage",
                                       empty_label=True,
                                       creater='DemoData'),
                            ]
                            binset.objects.bulk_create(binset_data_list,
                                                       batch_size=100)
                            from goodsunit.models import ListModel as goodsunit
                            demo_data = []
                            for goods_unit in randomunit:
                                demo_data.append(
                                    goodsunit(openid=transaction_code,
                                              goods_unit=goods_unit,
                                              creater='DemoData'))
                            goodsunit.objects.bulk_create(demo_data,
                                                          batch_size=100)
                            from goodsclass.models import ListModel as goodsclass
                            demo_data = []
                            for goods_class in randomclass:
                                demo_data.append(
                                    goodsclass(openid=transaction_code,
                                               goods_class=goods_class,
                                               creater='DemoData'))
                            goodsclass.objects.bulk_create(demo_data,
                                                           batch_size=100)
                            from goodscolor.models import ListModel as goodscolor
                            demo_data = []
                            for goods_color in randomcolor:
                                demo_data.append(
                                    goodscolor(openid=transaction_code,
                                               goods_color=goods_color,
                                               creater='DemoData'))
                            goodscolor.objects.bulk_create(demo_data,
                                                           batch_size=100)
                            from goodsbrand.models import ListModel as goodsbrand
                            goodsbrand_data_list = []
                            for goodsbrand_data in range(1, 42):
                                demo_data = goodsbrand(
                                    openid=transaction_code,
                                    goods_brand='Brand Name-' +
                                    str(goodsbrand_data),
                                    creater='DemoData')
                                goodsbrand_data_list.append(demo_data)
                            goodsbrand.objects.bulk_create(
                                goodsbrand_data_list, batch_size=100)
                            from goodsshape.models import ListModel as goodsshape
                            demo_data = []
                            for goods_shape in randomshape:
                                demo_data.append(
                                    goodsshape(openid=transaction_code,
                                               goods_shape=goods_shape,
                                               creater='DemoData'))
                            goodsshape.objects.bulk_create(demo_data,
                                                           batch_size=100)
                            from goodsspecs.models import ListModel as goodsspecs
                            demo_data = []
                            for goods_specs in randomspecs:
                                demo_data.append(
                                    goodsspecs(openid=transaction_code,
                                               goods_specs=goods_specs,
                                               creater='DemoData'))
                            goodsspecs.objects.bulk_create(demo_data,
                                                           batch_size=100)
                            from goodsorigin.models import ListModel as goodsorigin
                            goodsorigin_data_list = []
                            for city in randomcity:
                                demo_data = goodsorigin(
                                    openid=transaction_code,
                                    goods_origin=city,
                                    creater='DemoData')
                                goodsorigin_data_list.append(demo_data)
                            goodsorigin.objects.bulk_create(
                                goodsorigin_data_list, batch_size=100)
                            from goods.models import ListModel as goods
                            goods_data_list = []
                            for goods_data in range(1, 42):
                                goods_w = round(random.uniform(10, 1000), 2),
                                goods_d = round(random.uniform(10, 1000), 2),
                                goods_h = round(random.uniform(10, 1000), 2),
                                goods_cost = round(random.uniform(10, 1000),
                                                   2),
                                goods_price = round(random.uniform(10, 1000),
                                                    2),
                                while True:
                                    if goods_cost[0] >= goods_price[0]:
                                        goods_price = round(
                                            random.uniform(10, 1000), 2),
                                    else:
                                        break
                                demo_data = goods(
                                    openid=transaction_code,
                                    goods_code="A0000" + str(goods_data),
                                    goods_desc="Goods Desc-" + str(goods_data),
                                    goods_supplier='Supplier Name-' +
                                    str(random.randint(1, 42)),
                                    goods_weight=random.randint(100, 10000),
                                    goods_w=goods_w[0],
                                    goods_d=goods_d[0],
                                    goods_h=goods_h[0],
                                    unit_volume=round(
                                        (int(goods_w[0]) * int(goods_d[0]) *
                                         int(goods_h[0])) / 1000000000, 4),
                                    goods_unit=random.choice(randomunit),
                                    goods_class=random.choice(randomclass),
                                    goods_brand='Brand Name-' +
                                    str(random.randint(1, 42)),
                                    goods_color=random.choice(randomcolor),
                                    goods_shape=random.choice(randomshape),
                                    goods_specs=random.choice(randomspecs),
                                    goods_origin=random.choice(randomcity),
                                    goods_cost=goods_cost[0],
                                    goods_price=goods_price[0],
                                    creater='DemoData')
                                goods_data_list.append(demo_data)
                            goods.objects.bulk_create(goods_data_list,
                                                      batch_size=100)
                            from payment.models import TransportationFeeListModel as freight
                            freight_data_list = []
                            for sender in randomcity:
                                for receiver in randomcity:
                                    demo_data = freight(
                                        openid=transaction_code,
                                        send_city=sender,
                                        receiver_city=receiver,
                                        weight_fee=random.randint(10, 20),
                                        volume_fee=random.randint(100, 200),
                                        min_payment=random.randint(250, 300),
                                        transportation_supplier="Supplier",
                                        creater="DemoData")
                                    freight_data_list.append(demo_data)
                            freight.objects.bulk_create(freight_data_list,
                                                        batch_size=100)
                            return JsonResponse(ret)
Exemplo n.º 24
0
 def post(self, request, *args, **kwargs):
     if models.Users.objects.filter(openid=request.auth,
                                    appid=request.user.appid,
                                    developer=1,
                                    is_delete=0).exists():
         if models.Users.objects.filter(appid=request.user.appid,
                                        is_delete=0).count() >= 6:
             return Response(FBMsg.err_more_user())
     else:
         return Response(FBMsg.err_dev())
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         if models.Users.objects.filter(appid=request.user.appid,
                                        name=data['name'],
                                        is_delete=0).exists():
             return Response(FBMsg.err_user_same())
         else:
             ip = request.META.get(
                 'HTTP_X_FORWARDED_FOR') if request.META.get(
                     'HTTP_X_FORWARDED_FOR') else request.META.get(
                         'REMOTE_ADDR')
             if 'name' not in data:
                 return Response(FBMsg.err_user_name())
             else:
                 if data['name'] == '':
                     return Response(FBMsg.err_user_name())
                 else:
                     if 'nickname' not in data:
                         return Response(FBMsg.err_user_name())
                     else:
                         if data['nickname'] == '':
                             return Response(FBMsg.err_user_name())
                         else:
                             if 'password1' not in data:
                                 return Response(
                                     FBMsg.err_password1_empty())
                             else:
                                 if data['password1'] == '':
                                     return Response(
                                         FBMsg.err_password1_empty())
                                 else:
                                     if 'password2' not in data:
                                         return Response(
                                             FBMsg.err_password2_empty())
                                     else:
                                         if data['password2'] == '':
                                             return Response(
                                                 FBMsg.err_password2_empty(
                                                 ))
                                         else:
                                             if data['password1'] != data[
                                                     'password2']:
                                                 return Response(
                                                     FBMsg.
                                                     err_password_not_same(
                                                     ))
                                             else:
                                                 transaction_code = Md5.md5(
                                                     data['nickname'])
                                                 models.Users.objects.create(
                                                     openid=Md5.md5(
                                                         data['name']),
                                                     appid=request.user.
                                                     appid,
                                                     transaction_code=
                                                     transaction_code,
                                                     name=data['name'],
                                                     nickname=data[
                                                         'nickname'],
                                                     password=data[
                                                         'password1'],
                                                     ip=ip)
                                                 ret = FBMsg.ret()
                                                 ret['ip'] = ip
                                                 ret['data'] = data['name']
                                                 return Response(ret)
Exemplo n.º 25
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid,
                                   developer=1,
                                   is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = stockbinlist.models.ListModel.objects.filter(
                     appid=request.user.appid, is_delete=0).order_by('name')
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 filepath = os.path.join(
                     settings.BASE_DIR, 'media/file/' + pathlink + '/' +
                     request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].goods_code)
                     file_detail3.append(file_data[i].goods_name)
                     file_detail4.append('')
                     file_detail5.append(file_data[i].t_code)
                 df = pd.DataFrame({
                     pathname: file_detail1,
                     '商品编码': file_detail2,
                     '商品描述': file_detail3,
                     '盘点用户名': file_detail4,
                     '数据标识': file_detail5
                 })
                 dir_path = os.path.join(settings.BASE_DIR,
                                         'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath,
                             sheet_name='sheet1',
                             startcol=0,
                             index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response[
                     'Content-Disposition'] = 'attachment;filename="cyclecountlist.xlsx"'
                 return response
             if str(request._request.GET.get('getfile', '')) == "2":
                 file_data = ListModel.objects.filter(
                     appid=request.user.appid)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 file_detail6 = []
                 file_detail7 = []
                 file_detail8 = []
                 file_detail9 = []
                 filepath = os.path.join(
                     settings.BASE_DIR, 'media/file/' + pathlink + '/' +
                     request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].goods_code)
                     file_detail3.append(file_data[i].goods_name)
                     file_detail4.append(file_data[i].goods_qty)
                     file_detail5.append(file_data[i].cycle_count_balance)
                     file_detail6.append(file_data[i].staff)
                     file_detail7.append(file_data[i].inbound_time.strftime(
                         "%Y-%m-%d %H:%M:%S"))
                     file_detail8.append(file_data[i].create_time.strftime(
                         "%Y-%m-%d %H:%M:%S"))
                     file_detail9.append(
                         file_data[i].last_update_time.strftime(
                             "%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({
                     pathname: file_detail1,
                     '商品编码': file_detail2,
                     '商品描述': file_detail3,
                     '盘点数量': file_detail4,
                     '盘点差异': file_detail5,
                     '盘点用户名': file_detail6,
                     '入库时间': file_detail7,
                     '创建时间': file_detail8,
                     '最后更新时间': file_detail9
                 })
                 dir_path = os.path.join(settings.BASE_DIR,
                                         'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath,
                             sheet_name='sheet1',
                             startcol=0,
                             index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response[
                     'Content-Disposition'] = 'attachment;filename="cyclecountresult.xlsx"'
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', 'name')
             max_page = request._request.GET.get('max_page', 100)
             list = ListModel.objects.filter(
                 appid=request.user.appid).order_by(sort)
             if request._request.GET.get('name', ''):
                 list = list.filter(name__icontains=str(
                     request._request.GET.get('name', ''))).order_by(sort)
             if request._request.GET.get('goods_code', ''):
                 list = list.filter(goods_code__icontains=str(
                     request._request.GET.get('goods_code', ''))).order_by(
                         sort)
             if request._request.GET.get('goods_name', ''):
                 list = list.filter(goods_name__icontains=str(
                     request._request.GET.get('goods_name', ''))).order_by(
                         sort)
             if request._request.GET.get('staff', ''):
                 if list.filter(staff=str(
                         request._request.GET.get('staff', ''))).exists():
                     list = list.filter(
                         staff=str(request._request.GET.get(
                             'staff', ''))).order_by(sort)
                 else:
                     return Response(FBMsg.wms_no_user())
             if request._request.GET.get('t_code', ''):
                 list = list.filter(t_code=str(
                     request._request.GET.get('t_code', ''))).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             create_time__range=[start_date, end_date
                                                 ]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             last_update_time__range=[start_date, end_date
                                                      ]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list,
                                            request=request,
                                            view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get(
                 'HTTP_X_FORWARDED_FOR') if request.META.get(
                     'HTTP_X_FORWARDED_FOR') else request.META.get(
                         'REMOTE_ADDR')
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count() / int(max_page))
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
Exemplo n.º 26
0
def register(request, *args, **kwargs):
    post_data = json.loads(request.body.decode())
    data = {
        "name": post_data.get('name'),
        "password1": post_data.get('password1'),
        "password2": post_data.get('password2')
    }
    ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
        'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
    if Users.objects.filter(name=str(data['name']), developer=1,
                            is_delete=0).exists():
        err_user_same = FBMsg.err_user_same()
        err_user_same['ip'] = ip
        err_user_same['data'] = data['name']
        return JsonResponse(err_user_same)
    else:
        if data.get('password1') is None:
            err_password1_empty = FBMsg.err_password1_empty()
            err_password1_empty['ip'] = ip
            err_password1_empty['data'] = data['name']
            return JsonResponse(err_password1_empty)
        else:
            if str(data['password1']) == '':
                err_password1_empty = FBMsg.err_password1_empty()
                err_password1_empty['ip'] = ip
                err_password1_empty['data'] = data['name']
                return JsonResponse(err_password1_empty)
            else:
                if data.get('password2') is None:
                    err_password2_empty = FBMsg.err_password2_empty()
                    err_password2_empty['ip'] = ip
                    err_password2_empty['data'] = data['name']
                    return JsonResponse(err_password2_empty)
                else:
                    if str(data['password2']) == '':
                        err_password2_empty = FBMsg.err_password2_empty()
                        err_password2_empty['ip'] = ip
                        err_password2_empty['data'] = data['name']
                        return JsonResponse(err_password2_empty)
                    else:
                        if str(data['password1']) != str(data['password2']):
                            err_password_not_same = FBMsg.err_password_not_same(
                            )
                            err_password_not_same['ip'] = ip
                            err_password_not_same['data'] = data['name']
                            return JsonResponse(err_password_not_same)
                        else:
                            transaction_code = Md5.md5(data['name'])
                            user = User.objects.create_user(
                                username=str(data['name']),
                                password=str(data['password1']))
                            Users.objects.create(
                                user_id=user.id,
                                name=str(data['name']),
                                openid=transaction_code,
                                appid=Md5.md5(data['name'] + '1'),
                                t_code=Md5.md5(str(timezone.now())),
                                developer=1,
                                ip=ip)
                            auth.login(request, user)
                            staff.objects.create(staff_name=str(data['name']),
                                                 staff_type='1',
                                                 openid=transaction_code)
                            ret = FBMsg.ret()
                            ret['ip'] = ip
                            data['openid'] = transaction_code
                            data['name'] = str(data['name'])
                            data.pop('password1', '')
                            data.pop('password2', '')
                            ret['data'] = data
                            return JsonResponse(ret)
Exemplo n.º 27
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = ListModel.objects.filter(appid=request.user.appid, is_delete=0)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 file_detail6 = []
                 file_detail7 = []
                 file_detail8 = []
                 file_detail9 = []
                 file_detail11 = []
                 file_detail12 = []
                 file_detail13 = []
                 file_detail14 = []
                 file_detail15 = []
                 file_detail16 = []
                 file_detail17 = []
                 file_detail18 = []
                 file_detail19 = []
                 file_detail20 = []
                 filepath = os.path.join(settings.BASE_DIR, 'media/file/' + pathlink + '/' + request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].goods_name)
                     file_detail3.append(file_data[i].goods_unit)
                     file_detail4.append(file_data[i].goods_class)
                     file_detail5.append(file_data[i].goods_spacs)
                     file_detail6.append(file_data[i].goods_shape)
                     file_detail7.append(file_data[i].goods_color)
                     file_detail8.append(file_data[i].goods_brand)
                     file_detail9.append(file_data[i].goods_city)
                     file_detail11.append(file_data[i].goods_l)
                     file_detail12.append(file_data[i].goods_w)
                     file_detail13.append(file_data[i].goods_h)
                     file_detail14.append(file_data[i].goods_weight)
                     file_detail15.append(file_data[i].goods_cost)
                     file_detail16.append(file_data[i].goods_price1)
                     file_detail17.append(file_data[i].goods_price2)
                     file_detail18.append(file_data[i].goods_price3)
                     file_detail19.append(file_data[i].create_time.strftime("%Y-%m-%d %H:%M:%S"))
                     file_detail20.append(file_data[i].last_update_time.strftime("%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({pathname: file_detail1,
                                    '商品描述': file_detail2,
                                    '商品单位': file_detail3,
                                    '商品类别': file_detail4,
                                    '商品规格': file_detail5,
                                    '商品形状': file_detail6,
                                    '商品颜色': file_detail7,
                                    '商品品牌': file_detail8,
                                    '商品产地': file_detail9,
                                    '商品长(单位: mm)': file_detail11,
                                    '商品宽(单位: mm)': file_detail12,
                                    '商品高(单位: mm)': file_detail13,
                                    '商品重量(单位: 克)': file_detail14,
                                    '成本价(单位: 元)': file_detail15,
                                    '一销价(单位: 元)': file_detail16,
                                    '二销价(单位: 元)': file_detail17,
                                    '三销价(单位: 元)': file_detail18,
                                    '创建时间': file_detail19,
                                    '最后更新时间': file_detail20
                                    })
                 dir_path = os.path.join(settings.BASE_DIR, 'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath, sheet_name='sheet1', startcol=0, index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response['Content-Disposition'] = 'attachment;filename="%s.xlsx"' % pathlink
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', '-create_time')
             max_page = request._request.GET.get('max_page', 100)
             list = ListModel.objects.filter(appid=request.user.appid, is_delete=0).order_by(sort)
             if request._request.GET.get('name', ''):
                 list = list.filter(name__icontains=str(request._request.GET.get('name', ''))).order_by(sort)
             if request._request.GET.get('goods_name', ''):
                 list = list.filter(goods_name__icontains=str(request._request.GET.get('goods_name', ''))).order_by(sort)
             if request._request.GET.get('goods_unit', ''):
                 list = list.filter(goods_unit__icontains=str(request._request.GET.get('goods_unit', ''))).order_by(sort)
             if request._request.GET.get('goods_class', ''):
                 list = list.filter(goods_class__icontains=str(request._request.GET.get('goods_class', ''))).order_by(sort)
             if request._request.GET.get('goods_spacs', ''):
                 list = list.filter(goods_spacs__icontains=str(request._request.GET.get('goods_spacs', ''))).order_by(sort)
             if request._request.GET.get('goods_shape', ''):
                 list = list.filter(goods_shape__icontains=str(request._request.GET.get('goods_shape', ''))).order_by(sort)
             if request._request.GET.get('goods_color', ''):
                 list = list.filter(goods_color__icontains=str(request._request.GET.get('goods_color', ''))).order_by(sort)
             if request._request.GET.get('goods_brand', ''):
                 list = list.filter(goods_brand__icontains=str(request._request.GET.get('goods_brand', ''))).order_by(sort)
             if request._request.GET.get('goods_city', ''):
                 list = list.filter(goods_city__icontains=str(request._request.GET.get('goods_city', ''))).order_by(sort)
             if request._request.GET.get('create_name', ''):
                 list = list.filter(create_name__icontains=str(request._request.GET.get('create_name', ''))).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(create_time__range=[start_date, end_date]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(last_update_time__range=[start_date, end_date]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list, request=request, view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
                 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count()/int(max_page))
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
Exemplo n.º 28
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid,
                                   developer=1,
                                   is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = UserAuth.objects.filter(
                     appid=request.user.appid, is_delete=0)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 file_detail6 = []
                 file_detail7 = []
                 file_detail8 = []
                 file_detail9 = []
                 file_detail10 = []
                 file_detail11 = []
                 file_detail12 = []
                 file_detail13 = []
                 file_detail14 = []
                 file_detail15 = []
                 file_detail16 = []
                 file_detail17 = []
                 file_detail18 = []
                 file_detail19 = []
                 file_detail20 = []
                 file_detail21 = []
                 file_detail22 = []
                 file_detail23 = []
                 filepath = os.path.join(
                     settings.BASE_DIR, 'media/file/' + pathlink + '/' +
                     request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].aut1)
                     file_detail3.append(file_data[i].aut2)
                     file_detail4.append(file_data[i].aut3)
                     file_detail5.append(file_data[i].aut4)
                     file_detail6.append(file_data[i].aut5)
                     file_detail7.append(file_data[i].aut6)
                     file_detail8.append(file_data[i].aut7)
                     file_detail9.append(file_data[i].aut8)
                     file_detail10.append(file_data[i].aut9)
                     file_detail11.append(file_data[i].aut10)
                     file_detail12.append(file_data[i].aut11)
                     file_detail13.append(file_data[i].aut12)
                     file_detail14.append(file_data[i].aut13)
                     file_detail15.append(file_data[i].aut14)
                     file_detail16.append(file_data[i].aut15)
                     file_detail17.append(file_data[i].aut16)
                     file_detail18.append(file_data[i].aut17)
                     file_detail19.append(file_data[i].aut18)
                     file_detail20.append(file_data[i].aut19)
                     file_detail21.append(file_data[i].aut20)
                     file_detail22.append(file_data[i].create_time.strftime(
                         "%Y-%m-%d %H:%M:%S"))
                     file_detail23.append(
                         file_data[i].last_update_time.strftime(
                             "%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({
                     pathname: file_detail1,
                     'aut1': file_detail2,
                     'aut2': file_detail3,
                     'aut3': file_detail4,
                     'aut4': file_detail5,
                     'aut5': file_detail6,
                     'aut6': file_detail7,
                     'aut7': file_detail2,
                     'aut8': file_detail9,
                     'aut9': file_detail10,
                     'aut10': file_detail11,
                     'aut11': file_detail12,
                     'aut12': file_detail13,
                     'aut13': file_detail14,
                     'aut14': file_detail15,
                     'aut15': file_detail16,
                     'aut16': file_detail17,
                     'aut17': file_detail18,
                     'aut18': file_detail19,
                     'aut19': file_detail20,
                     'aut20': file_detail21,
                     '创建时间': file_detail22,
                     '最后更新时间': file_detail23
                 })
                 dir_path = os.path.join(settings.BASE_DIR,
                                         'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath,
                             sheet_name='sheet1',
                             index=False,
                             encoding='utf-8')
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response[
                     'Content-Disposition'] = 'attachment;filename="%s.xlsx"' % pathlink
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', '-create_time')
             max_page = request._request.GET.get('max_page', 100)
             list = UserAuth.objects.filter(appid=request.user.appid,
                                            is_delete=0).order_by(sort)
             if request._request.GET.get('name', ''):
                 list = list.filter(name__icontains=request._request.GET.
                                    get('name', '')).order_by(sort)
             if request._request.GET.get('create_name', ''):
                 list = list.filter(
                     create_name__icontains=request._request.GET.get(
                         'create_name', '')).order_by(sort)
             if request._request.GET.get('authorization', ''):
                 if str(request._request.GET.get('authorization',
                                                 '')) == "1":
                     auth_name = Users.objects.filter(
                         appid=request.user.appid,
                         openid=request.auth,
                         is_delete=0).first().auth_name
                     list = list.filter(appid=request.user.appid,
                                        name=auth_name,
                                        is_delete=0).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             create_time__range=[start_date, end_date
                                                 ]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             last_update_time__range=[start_date, end_date
                                                      ]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list,
                                            request=request,
                                            view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get(
                 'HTTP_X_FORWARDED_FOR') if request.META.get(
                     'HTTP_X_FORWARDED_FOR') else request.META.get(
                         'REMOTE_ADDR')
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count() / int(max_page))
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
Exemplo n.º 29
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid,
                                   developer=1,
                                   is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = DetailModel.objects.filter(
                     appid=request.user.appid, is_delete=0)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 filepath = os.path.join(
                     settings.BASE_DIR, 'media/file/' + pathlink + '/' +
                     request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].po_status)
                     file_detail3.append(file_data[i].create_name)
                     file_detail4.append(file_data[i].create_time.strftime(
                         "%Y-%m-%d %H:%M:%S"))
                     file_detail5.append(
                         file_data[i].last_update_time.strftime(
                             "%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({
                     pathname: file_detail1,
                     '订单状态': file_detail2,
                     '创建人': file_detail3,
                     '创建时间': file_detail4,
                     '最后更新时间': file_detail5
                 })
                 dir_path = os.path.join(settings.BASE_DIR,
                                         'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath,
                             sheet_name='sheet1',
                             startcol=0,
                             index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response[
                     'Content-Disposition'] = 'attachment;filename="%s.xlsx"' % pathlink
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', '-create_time')
             max_page = request._request.GET.get('max_page', 100)
             list = DetailModel.objects.filter(appid=request.user.appid,
                                               is_delete=0).order_by(sort)
             if request._request.GET.get('po_number', ''):
                 list = list.filter(
                     name__icontains=request._request.GET.get(
                         'po_number', '')).order_by(sort)
             if request._request.GET.get('po_status', ''):
                 list = list.filter(
                     po_status=int(request._request.GET.get(
                         'po_status', ''))).order_by(sort)
             if request._request.GET.get('supplier', ''):
                 list = list.filter(
                     supplier__icontains=request._request.GET.get(
                         'supplier', '')).order_by(sort)
             if request._request.GET.get('sorted', ''):
                 list = list.filter(up_qty__gt=int(
                     request._request.GET.get('sorted', ''))).order_by(sort)
             if request._request.GET.get('shortage', ''):
                 list = list.filter(shortage_qty__gt=int(
                     request._request.GET.get('shortage', ''))).order_by(
                         sort)
             if request._request.GET.get('damage', ''):
                 list = list.filter(damage_qty__gt=int(
                     request._request.GET.get('damage', ''))).order_by(sort)
             if request._request.GET.get('more', ''):
                 list = list.filter(more_qty__gt=int(
                     request._request.GET.get('more', ''))).order_by(sort)
             if request._request.GET.get('create_name', ''):
                 list = list.filter(
                     create_name__icontains=request._request.GET.get(
                         'create_name', '')).order_by(sort)
             if request._request.GET.get('t_code', ''):
                 list = list.filter(t_code=request._request.GET.get(
                     't_code', '')).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             create_time__range=[start_date, end_date
                                                 ]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             last_update_time__range=[start_date, end_date
                                                      ]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list,
                                            request=request,
                                            view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get(
                 'HTTP_X_FORWARDED_FOR') if request.META.get(
                     'HTTP_X_FORWARDED_FOR') else request.META.get(
                         'REMOTE_ADDR')
             bin_list = binset.models.ListModel.objects.filter(
                 appid=request.user.appid, is_delete=0).order_by('name')
             bin_list_ser = BinListSerializers(bin_list, many=True)
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count() / int(max_page))
             ret['bin_list'] = bin_list_ser.data
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
Exemplo n.º 30
0
 def post(self, request, *args, **kwargs):
     if models.Users.objects.filter(openid=request.auth,
                                    appid=request.user.appid,
                                    developer=1,
                                    is_delete=0).exists():
         pass
     else:
         return Response(FBMsg.err_dev())
     data = DataSolve.datasolve(request)
     try:
         if data['code'] == "1031":
             return Response(FBMsg.err_bad())
     except:
         ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
             'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
         if models.Users.objects.filter(appid=request.user.appid,
                                        name=data['name'],
                                        is_delete=0).exists():
             user = models.Users.objects.filter(appid=request.user.appid,
                                                name=data['name'],
                                                is_delete=0).first()
             if 'password' not in data:
                 return Response(FBMsg.err_psw())
             else:
                 if data['password'] == '':
                     return Response(FBMsg.err_psw())
                 else:
                     if user.password == data['password']:
                         today = datetime.date.today()
                         note_date = today.strftime('%Y-%m-%d')
                         today_note = NoteBook.objects.filter(
                             openid=user.openid,
                             note_day__gte=note_date,
                             is_delete=0).order_by('note_day')[:30]
                         today_note_ser = NoteBookSerializers(today_note,
                                                              many=True)
                         note_num = NoteBook.objects.filter(
                             openid=user.openid,
                             note_day=note_date,
                             progress=0,
                             is_delete=0).count()
                         delta = datetime.timedelta(days=90)
                         start_date = (today - delta).strftime('%Y-%m-%d')
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         events = NoteBook.objects.filter(
                             openid=user.openid,
                             note_day__range=[start_date, end_date
                                              ]).order_by('-create_time')
                         events_ser = NoteBookEventSerializers(events,
                                                               many=True)
                         ret = FBMsg.ret()
                         data.pop('name')
                         data.pop('password')
                         ret['ip'] = ip
                         ret['events'] = events_ser.data
                         ret['today_note'] = today_note_ser.data
                         ret['note_num'] = note_num
                         data['openid'] = user.openid
                         ret['data'] = data
                         return Response(ret)
                     else:
                         err_ret = FBMsg.err_ret()
                         return Response(err_ret)
         else:
             return Response(FBMsg.err_auth())