def post(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: create_name = Users.objects.filter(openid=request.auth, appid=request.user.appid, is_delete=0).first().name if ListModel.objects.filter(appid=request.user.appid, name=str(data[0]['so_number']), is_delete=0).exists(): customer_data = ListModel.objects.filter( appid=request.user.appid, name=str(data[0]['so_number']), is_delete=0).first() customer_data.customer = str(data[0]['customer']) customer_data.save() for i in range(len(data)): DetailModel.objects.create( appid=request.user.appid, name=str(data[i]['so_number']), goods_code=str(data[i]['goods_code']), goods_name=str(data[i]['goods_name']), so_qty=int(data[i]['goods_qty']), create_name=create_name, customer=str(data[i]['customer']), t_code=Md5.md5(str(data[i]['goods_name']))) else: ret = FBMsg.wms_po_empty() ret['data'] = data return Response(ret) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
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)
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)
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)
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)
def put(self, request, format=None): file_obj = request.data['file'] vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip file_check = FileVipCheck.FileVipCheck(file_obj.size, vip_id) if file_check == "N": return Response(FBMsg.err_data()) elif file_check == "Y": if os.path.exists(os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink)): pass else: os.makedirs(os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink)) if file_obj.name.endswith('.xlsx'): filename = os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink + '/' + request.user.appid + '.xlsx') elif file_obj.name.endswith('.xls'): filename = os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink + '/' + request.user.appid + '.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 ListModel.objects.filter(appid=request.user.appid).exists(): upload_data = ListModel.objects.filter(appid=request.user.appid) for i in range(len(upload_data)): upload_data[i].delete() for index, row in df.iterrows(): if str(row[pathname]) == '': pass else: if ListModel.objects.filter(appid=request.user.appid, is_delete=0).count() > 0: ret = FBMsg.wms_warehouse_more() ret['data'] = row return Response(ret) else: ListModel.objects.create(appid=request.user.appid, name=str(row[pathname]), province=str(row['省份']), city=str(row['城市']), district=str(row['行政区']), address=str(row['详细地址']), manager=str(row['负责人']), mobile=str(row['联系电话']), t_code=Md5.md5(str(row[pathname]))) os.remove(filename) ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip return Response(ret) else: return Response(FBMsg.err_data())
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)
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)
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)
def delete(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()) elif vip_check == "Y": delete_data = ListModel.objects.filter(appid=request.user.appid) for i in range(len(delete_data)): delete_data[i].delete() ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip return Response(ret) else: return Response(FBMsg.wms_vip())
def post(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if ListModel.objects.filter(appid=request.user.appid, name=str(data['name']), is_delete=0).exists(): ret = FBMsg.wms_same() ret['data'] = data return Response(ret) else: create_name = Users.objects.filter( openid=request.auth, appid=request.user.appid, is_delete=0).first().name ListModel.objects.create( appid=request.user.appid, name=str(data['name']), plate_license=str(data['plate_license']), mobile=int(data['mobile']), identity_card=str(data['identity_card']), driver_license=str(data['driver_license']), vehicle_license=str(data['vehicle_license']), create_name=create_name, t_code=Md5.md5(str(data['name']))) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
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)
def authenticate(self, request): if request.path == "/docs/": return ('docs', 'ok') else: openid = request._request.GET.get('openid', '') if Users.objects.filter(openid=openid, is_delete=0).exists(): user = Users.objects.filter(openid=openid, is_delete=0).first() return (user, openid) else: raise exceptions.AuthenticationFailed(FBMsg.err_auth())
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())
def datasolve(d): data = d.data script_obj = re.findall(r'script', str(data), re.IGNORECASE) select_obj = re.findall(r'select', str(data), re.IGNORECASE) if script_obj: return FBMsg.err_bad() elif select_obj: return FBMsg.err_bad() else: type_obj_dict = re.findall(r'dict', str(type(data)), re.IGNORECASE) type_obj_list = re.findall(r'list', str(type(data)), re.IGNORECASE) if len(type_obj_dict) > 0: if 'data' in data: data = data['data'] return data else: return data elif len(type_obj_list) > 0: return data else: return FBMsg.err_bad()
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())
def delete(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) for i in range(len(data)): if Users.objects.filter(appid=request.user.appid, transaction_code=data[i]['transaction_code'], is_delete=0).exists(): user = Users.objects.get(transaction_code=data[i]['transaction_code']) if user.developer == 1: ret = FBMsg.wms_dev() ret['data'] = data return Response(ret) if user.name == Users.objects.get(openid=request.auth, appid=request.user.appid, is_delete=0).name: ret = FBMsg.wms_user_owner() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_err() ret['data'] = data return Response(ret) for j in range(len(data)): delete_data = Users.objects.filter(appid=request.user.appid, transaction_code=data[j]['transaction_code'], is_delete=0).first() delete_data.is_delete = 1 delete_data.save() ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def patch(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if ListModel.objects.filter(appid=request.user.appid, t_code=str(data['t_code']), is_delete=0).exists(): patch_name = ListModel.objects.get(t_code=str(data['t_code'])).name if patch_name != str(data['name']): if ListModel.objects.filter(appid=request.user.appid, name=str(data['name']), is_delete=0).exists(): ret = FBMsg.wms_same() ret['data'] = data return Response(ret) patch_data = ListModel.objects.filter(appid=request.user.appid, t_code=str(data['t_code']), is_delete=0).first() if 'name' in data: patch_data.name = str(data['name']) patch_data.save() ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: ret = FBMsg.wms_err() ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def post(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if ListModel.objects.filter(appid=request.user.appid, name=str(data['name']), is_delete=0).exists(): ret = FBMsg.wms_same() ret['data'] = data return Response(ret) else: ListModel.objects.create(appid=request.user.appid, name=str(data['name']), province=str(data['province']), city=str(data['city']), district=str(data['district']), address=str(data['address']), manager=str(data['manager']), mobile=str(data['mobile']), t_code=Md5.md5(str(data['name']))) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def put(self, request, format=None): file_obj = request.data['file'] vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip file_check = FileVipCheck.FileVipCheck(file_obj.size, vip_id) if file_check == "N": return Response(FBMsg.err_data()) elif file_check == "Y": if file_obj.name.endswith('.xlsx'): filename = os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink + '/' + request.user.appid + '.xlsx') elif file_obj.name.endswith('.xls'): filename = os.path.join(settings.BASE_DIR, 'media/upload/' + pathlink + '/' + request.user.appid + '.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 Users.objects.filter(appid=request.user.appid).exists(): upload_data = Users.objects.filter(appid=request.user.appid) for i in range(len(upload_data)): upload_data[i].delete() for index, row in df.iterrows(): if str(row[pathname]) == '': pass else: if Users.objects.filter(appid=request.user.appid, name=str(row[pathname]), is_delete=0).exists(): pass else: Users.objects.create(appid=request.user.appid, name=str(row[pathname]), create_name=request.user.nickname, transaction_code=Md5.md5(str(row[pathname]))) os.remove(filename) ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip return Response(ret) else: return Response(FBMsg.err_data())
def delete(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) for i in range(len(data)): if UserAuth.objects.filter(appid=request.user.appid, t_code=data[i]['t_code'], is_delete=0).exists(): pass else: ret = FBMsg.wms_err() ret['data'] = data return Response(ret) for j in range(len(data)): delete_data = UserAuth.objects.filter(appid=request.user.appid, t_code=data[j]['t_code'], is_delete=0).first() delete_data.is_delete = 1 delete_data.save() user_auth_change = Users.objects.filter( appid=request.user.appid, auth_name=delete_data.name, is_delete=0) for k in range(len(user_auth_change)): user_auth_change[k].auth_name = '' user_auth_change[k].save() ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
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())
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)
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)
def post(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if ListModel.objects.filter(appid=request.user.appid, name=str(data['name']), is_delete=0).exists(): ret = FBMsg.wms_same() ret['data'] = data return Response(ret) else: if binsize.models.ListModel.objects.filter(appid=request.user.appid, name=str(data['bin_size']), is_delete=0).exists(): if property.models.ListModel.objects.filter(appid=request.user.appid, name=str(data['bin_property']), is_delete=0).exists(): create_name = Users.objects.filter(openid=request.auth, appid=request.user.appid, is_delete=0).first().name ListModel.objects.create(appid=request.user.appid, name=str(data['name']), bin_size=str(data['bin_size']), bin_property=str(data['bin_property']), create_name=create_name, t_code=Md5.md5(str(data['name']))) ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: ret = FBMsg.wms_binproperty() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_binsize() ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
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)
def post(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()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if DetailModel.objects.filter(appid=request.user.appid, t_code=str(data[0]['t_code']), is_delete=0).exists(): up_data = DetailModel.objects.filter( t_code=str(data[0]['t_code'])).first() bin_data = binset.models.ListModel.objects.filter( appid=request.user.appid, name=str(data[0]['bin']), is_delete=0).first() property_data = property.models.ListModel.objects.filter( appid=request.user.appid, name=bin_data.bin_property).first() up_data.up_qty = up_data.up_qty - int( data[0]['finish_qty']) goods_stock = stocklist.models.ListModel.objects.filter( appid=request.user.appid, name=up_data.goods_code, goods_name=up_data.goods_name, ).first() if property_data.property_code == 1: up_data.actual_up_qty = up_data.actual_up_qty - int( data[0]['finish_qty']) goods_stock.onhand_stock = goods_stock.onhand_stock + int( data[0]['finish_qty']) goods_stock.can_order_stock = goods_stock.can_order_stock + int( data[0]['finish_qty']) goods_stock.sort_stock = goods_stock.sort_stock - int( data[0]['finish_qty']) if up_data.up_qty > 0: if up_data.actual_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), can_order_stock=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) else: ret = FBMsg.wms_po_qty_up_more() ret['data'] = data return Response(ret) elif up_data.up_qty == 0: if up_data.actual_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), can_order_stock=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) if DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, up_qty__gt=0, is_delete=0).exists(): pass else: po_detail_status = DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0) po_list_status = ListModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0).first() for i in range(len(po_detail_status)): po_detail_status[i].po_status = 5 po_detail_status[i].save() po_list_status.po_status = 5 po_list_status.save() else: ret = FBMsg.wms_po_qty_up_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_qty_all_up_more() ret['data'] = data return Response(ret) elif property_data.property_code == 4: up_data.damage_up_qty = up_data.damage_up_qty - int( data[0]['finish_qty']) goods_stock.damage_stock = goods_stock.damage_stock + int( data[0]['finish_qty']) if up_data.up_qty > 0: if up_data.damage_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) else: ret = FBMsg.wms_po_qty_dup_more() ret['data'] = data return Response(ret) elif up_data.up_qty == 0: if up_data.damage_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) if DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, up_qty__gt=0, is_delete=0).exists(): pass else: po_detail_status = DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0) po_list_status = ListModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0).first() for i in range(len(po_detail_status)): po_detail_status[i].po_status = 5 po_detail_status[i].save() po_list_status.po_status = 5 po_list_status.save() else: ret = FBMsg.wms_po_qty_dup_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_qty_all_up_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_empty() ret['data'] = data return Response(ret) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def patch(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()) elif vip_check == "Y": 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') po_data = DetailModel.objects.filter(appid=request.user.appid, t_code=str( data[0]['t_code']), is_delete=0).first().name po_status_data = ListModel.objects.filter( appid=request.user.appid, name=po_data, is_delete=0).first() if po_status_data.po_status == 3: po_status_data.po_status = 4 po_status_data.save() for i in range(len(data)): patch_data = DetailModel.objects.filter( appid=request.user.appid, t_code=str(data[i]['t_code']), is_delete=0).first() patch_data.arrive_qty = int(data[i]['damage_qty']) + int( data[i]['actual_qty']) more_qty = patch_data.arrive_qty - patch_data.po_qty if more_qty <= 0: patch_data.more_qty = 0 else: patch_data.more_qty = more_qty patch_data.damage_qty = int(data[i]['damage_qty']) patch_data.damage_up_qty = int(data[i]['damage_qty']) patch_data.actual_qty = int(data[i]['actual_qty']) patch_data.actual_up_qty = int(data[i]['actual_qty']) patch_data.up_qty = patch_data.arrive_qty if int(data[i]['damage_qty']) + int( data[i]['actual_qty']) < patch_data.po_qty: patch_data.shortage_qty = patch_data.po_qty - ( int(data[i]['damage_qty']) + int(data[i]['actual_qty'])) else: patch_data.shortage_qty = 0 patch_data.po_status = 4 stock_list_data = stocklist.models.ListModel.objects.filter( appid=request.user.appid, name=patch_data.goods_code, is_delete=0).first() stock_list_data.pre_sort_stock = stock_list_data.pre_sort_stock - patch_data.arrive_qty stock_list_data.sort_stock = stock_list_data.sort_stock + patch_data.arrive_qty stock_list_data.save() patch_data.save() ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
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())
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())