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: date_data = str(datetime.date.today()).split('-') check_date = str(date_data[0]) + str(date_data[1]) + str(date_data[2]) create_name = Users.objects.filter(openid=request.auth, appid=request.user.appid, is_delete=0).first().name if ListModel.objects.filter(is_delete=0).exists(): po_name = ListModel.objects.filter(is_delete=0).order_by('-create_time').first().name if str(po_name[0:8]) == str(check_date): po_create = str(check_date) + str(int(po_name[-5:]) + 1).rjust(5, '0') else: po_create = str(check_date) + str(1).rjust(5, '0') else: po_create = str(check_date) + str(1).rjust(5, '0') t_code = Md5.md5(datetime.datetime.now().strftime('%Y%m%d%H%M%S')) ListModel.objects.create(appid=request.user.appid, name=po_create, create_name=create_name, t_code=t_code) c_po_num = ListModel.objects.get(appid=request.user.appid, t_code=t_code).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'] = c_po_num return Response(ret) else: return Response(FBMsg.wms_vip())
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 ListModel.objects.filter(appid=request.user.appid, t_code=str(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 = ListModel.objects.filter( appid=request.user.appid, t_code=str(data[j]['t_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 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']), 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): 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, is_delete=0).count() > 0: ret = FBMsg.wms_warehouse_more() 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 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]['po_number']), is_delete=0).exists(): supplier_data = ListModel.objects.filter( appid=request.user.appid, name=str(data[0]['po_number']), is_delete=0).first() supplier_data.supplier = str(data[0]['supplier']) supplier_data.save() for i in range(len(data)): DetailModel.objects.create( appid=request.user.appid, name=str(data[i]['po_number']), goods_code=str(data[i]['goods_code']), goods_name=str(data[i]['goods_name']), po_qty=int(data[i]['goods_qty']), create_name=create_name, supplier=str(data[i]['supplier']), t_code=Md5.md5(str(data[i]['goods_name']))) stock_list_data = stocklist.models.ListModel.objects.filter( appid=request.user.appid, name=str(data[i]['goods_code']), is_delete=0).first() stock_list_data.pre_delivery_stock = stock_list_data.pre_delivery_stock + int( data[i]['goods_qty']) stock_list_data.save() 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 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, name=str(row[pathname]), is_delete=0).exists(): pass else: if binsize.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['库位尺寸']), is_delete=0).exists(): if property.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['库位属性']), 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(row[pathname]), bin_size=str(row['库位尺寸']), bin_property=str(row['库位属性']), create_name=create_name, 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 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 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 'changedata' in data: if str(data['changedata']) == '1': if ListModel.objects.filter( appid=request.user.appid, t_code=str(data['t_code'])).exists(): patch_data = ListModel.objects.filter( appid=request.user.appid, t_code=str(data['t_code'])).first() if 'goods_qty' in data: patch_data.goods_qty = patch_data.goods_qty + int( data['goods_qty']) patch_data.cycle_count_balance = patch_data.cycle_count_balance + int( data['goods_qty']) 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) if 'postdata' in data: if str(data['postdata']) == '1': if binset.models.ListModel.objects.filter( appid=request.user.appid, name=str(data['name']), is_delete=0).exists(): if goodslist.models.ListModel.objects.filter( appid=request.user.appid, name=str(data['goods_code']), is_delete=0).exists(): goods_name = goodslist.models.ListModel.objects.filter( appid=request.user.appid, name=str(data['goods_code']), is_delete=0).first().goods_name else: goods_name = '' ListModel.objects.create( appid=request.user.appid, name=str(data['name']), goods_code=str(data['goods_code']), goods_name=goods_name, goods_qty=int(data['goods_qty']), inbound_time=datetime.datetime.now(), staff=str(data['staff']), cycle_count_balance=int(data['goods_qty']), 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_err() ret['data'] = {"库位不存在": str(data['name'])} 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') if ListModel.objects.filter(appid=request.user.appid, t_code=str(data), is_delete=0).exists(): patch_data = ListModel.objects.filter(appid=request.user.appid, t_code=str(data), is_delete=0).first() if patch_data.po_status == 1: if DetailModel.objects.filter(appid=request.user.appid, name=patch_data.name, is_delete=0).exists(): patch_detail = DetailModel.objects.filter(appid=request.user.appid, name=patch_data.name, is_delete=0) for i in range(len(patch_detail)): patch_detail[i].po_status = 2 stock_list_data = stocklist.models.ListModel.objects.filter(appid=request.user.appid, name=patch_detail[i].goods_code, is_delete=0).first() stock_list_data.pre_delivery_stock = stock_list_data.pre_delivery_stock - patch_detail[i].po_qty stock_list_data.pre_load_stock = stock_list_data.pre_load_stock + patch_detail[i].po_qty stock_list_data.save() patch_detail[i].save() patch_data.po_status = 2 patch_data.save() else: ret = FBMsg.wms_po_status_predelivery_detail() ret['ip'] = ip return Response(ret) elif patch_data.po_status == 2: if DetailModel.objects.filter(appid=request.user.appid, name=patch_data.name, is_delete=0).exists(): patch_detail = DetailModel.objects.filter(appid=request.user.appid, name=patch_data.name, is_delete=0) for i in range(len(patch_detail)): patch_detail[i].po_status = 3 stock_list_data = stocklist.models.ListModel.objects.filter(appid=request.user.appid, name=patch_detail[i].goods_code, is_delete=0).first() stock_list_data.pre_load_stock = stock_list_data.pre_load_stock - patch_detail[i].po_qty stock_list_data.pre_sort_stock = stock_list_data.pre_sort_stock + patch_detail[i].po_qty stock_list_data.save() patch_detail[i].save() patch_data.po_status = 3 patch_data.save() else: ret = FBMsg.wms_po_status_preload_detail() ret['ip'] = ip return Response(ret) else: ret = FBMsg.wms_po_status_predelivery() ret['ip'] = ip return Response(ret) else: ret = FBMsg.wms_po_empty() ret['ip'] = ip return Response(ret) 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 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, name=str(row[pathname]), is_delete=0).exists(): pass else: create_name = Users.objects.filter(openid=request.auth, appid=request.user.appid, is_delete=0).first().name if goodsunit.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品单位']), is_delete=0).exists(): pass else: goodsunit.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品单位']), create_name=create_name, t_code=Md5.md5(str(row['商品单位']))) if goodsclass.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品类别']), is_delete=0).exists(): pass else: goodsclass.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品类别']), create_name=create_name, t_code=Md5.md5(str(row['商品类别']))) if goodsspecs.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品规格']), is_delete=0).exists(): pass else: goodsspecs.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品规格']), create_name=create_name, t_code=Md5.md5(str(row['商品规格']))) if goodsshape.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品形状']), is_delete=0).exists(): pass else: goodsshape.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品形状']), create_name=create_name, t_code=Md5.md5(str(row['商品形状']))) if goodscolor.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品颜色']), is_delete=0).exists(): pass else: goodscolor.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品颜色']), create_name=create_name, t_code=Md5.md5(str(row['商品颜色']))) if goodsbrand.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品品牌']), is_delete=0).exists(): pass else: goodsbrand.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品品牌']), create_name=create_name, t_code=Md5.md5(str(row['商品品牌']))) if goodscity.models.ListModel.objects.filter(appid=request.user.appid, name=str(row['商品产地']), is_delete=0).exists(): pass else: goodscity.models.ListModel.objects.create(appid=request.user.appid, name=str(row['商品产地']), create_name=create_name, t_code=Md5.md5(str(row['商品产地']))) if stocklist.models.ListModel.objects.filter(appid=request.user.appid, name=str(row[pathname]), is_delete=0).exists(): pass else: stocklist.models.ListModel.objects.create(appid=request.user.appid, name=str(row[pathname]), goods_name=str(row['商品描述']), t_code=Md5.md5(str(row[pathname]))) ListModel.objects.create(appid=request.user.appid, name=str(row[pathname]), goods_name=str(row['商品描述']), goods_unit=str(row['商品单位']), goods_class=str(row['商品类别']), goods_spacs=str(row['商品规格']), goods_shape=str(row['商品形状']), goods_color=str(row['商品颜色']), goods_brand=str(row['商品品牌']), goods_city=str(row['商品产地']), create_name=create_name, goods_l=round(float(row['商品长(单位: mm)']), 2), goods_w=round(float(row['商品宽(单位: mm)']), 2), goods_h=round(float(row['商品高(单位: mm)']), 2), goods_weight=round(float(row['商品重量(单位: 克)']), 2), goods_cost=round(float(row['成本价(单位: 元)']), 2), goods_price1=round(float(row['一销价(单位: 元)']), 2), goods_price2=round(float(row['二销价(单位: 元)']), 2), goods_price3=round(float(row['三销价(单位: 元)']), 2), 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 put(self, request, format=None): global cyclecount_number 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 goodslist.models.ListModel.objects.filter( appid=request.user.appid, name=str(row['商品编码']), is_delete=0).exists(): pass else: ret = FBMsg.wms_err() ret['data'] = {"商品编码不存在": str(row['商品编码'])} return Response(ret) if binset.models.ListModel.objects.filter( appid=request.user.appid, name=str(row[pathname]), is_delete=0).exists(): pass else: ret = FBMsg.wms_err() ret['data'] = {"库位不存在": str(row[pathname])} return Response(ret) if Users.objects.filter(appid=request.user.appid, name=str(row['盘点用户名']), is_delete=0).exists(): pass else: ret = FBMsg.wms_err() ret['data'] = {"用户不存在": str(row['盘点用户名'])} return Response(ret) if stockbinlist.models.ListModel.objects.filter( appid=request.user.appid, t_code=str(row['数据标识']), is_delete=0).exists(): cycle_count_data = stockbinlist.models.ListModel.objects.filter( appid=request.user.appid, t_code=str(row['数据标识']), is_delete=0).first() ListModel.objects.create( appid=request.user.appid, name=str(row[pathname]), goods_code=str(row['商品编码']), goods_name=str(row['商品描述']), cycle_count_balance=0 - cycle_count_data.goods_qty, staff=str(row['盘点用户名']), inbound_time=cycle_count_data.create_time, t_code=Md5.md5(str(row[pathname]))) else: ret = FBMsg.wms_err() ret['data'] = {"数据不存在": str(row[pathname])} return Response(ret) 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): global aut1, aut2 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 UserAuth.objects.filter(appid=request.user.appid, name=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 if 'aut1' in data: if str(data['aut1']) == "1": aut1 = 1 else: aut1 = 0 else: aut1 = 0 if 'aut2' in data: if str(data['aut2']) == "1": aut2 = 1 else: aut2 = 0 else: aut2 = 0 if 'aut3' in data: if str(data['aut3']) == "1": aut3 = 1 else: aut3 = 0 else: aut3 = 0 if 'aut4' in data: if str(data['aut4']) == "1": aut4 = 1 else: aut4 = 0 else: aut4 = 0 if 'aut5' in data: if str(data['aut5']) == "1": aut5 = 1 else: aut5 = 0 else: aut5 = 0 if 'aut6' in data: if str(data['aut6']) == "1": aut6 = 1 else: aut6 = 0 else: aut6 = 0 if 'aut7' in data: if str(data['aut7']) == "1": aut7 = 1 else: aut7 = 0 else: aut7 = 0 if 'aut8' in data: if str(data['aut8']) == "1": aut8 = 1 else: aut8 = 0 else: aut8 = 0 if 'aut9' in data: if str(data['aut9']) == "1": aut9 = 1 else: aut9 = 0 else: aut9 = 0 if 'aut10' in data: if str(data['aut10']) == "1": aut10 = 1 else: aut10 = 0 else: aut10 = 0 if 'aut11' in data: if str(data['aut11']) == "1": aut11 = 1 else: aut11 = 0 else: aut11 = 0 if 'aut12' in data: if str(data['aut12']) == "1": aut12 = 1 else: aut12 = 0 else: aut12 = 0 if 'aut13' in data: if str(data['aut13']) == "1": aut13 = 1 else: aut13 = 0 else: aut13 = 0 if 'aut14' in data: if str(data['aut14']) == "1": aut14 = 1 else: aut14 = 0 else: aut14 = 0 if 'aut15' in data: if str(data['aut15']) == "1": aut15 = 1 else: aut15 = 0 else: aut15 = 0 if 'aut16' in data: if str(data['aut16']) == "1": aut16 = 1 else: aut16 = 0 else: aut16 = 0 if 'aut17' in data: if str(data['aut17']) == "1": aut17 = 1 else: aut17 = 0 else: aut17 = 0 if 'aut18' in data: if str(data['aut18']) == "1": aut18 = 1 else: aut18 = 0 else: aut18 = 0 if 'aut19' in data: if str(data['aut19']) == "1": aut19 = 1 else: aut19 = 0 else: aut19 = 0 if 'aut20' in data: if str(data['aut20']) == "1": aut20 = 1 else: aut20 = 0 else: aut20 = 0 UserAuth.objects.create(appid=request.user.appid, name=str(data['name']), create_name=create_name, t_code=Md5.md5(str(data['name'])), aut1=aut1, aut2=aut2, aut3=aut3, aut4=aut4, aut5=aut5, aut6=aut6, aut7=aut7, aut8=aut8, aut9=aut9, aut10=aut10, aut11=aut11, aut12=aut12, aut13=aut13, aut14=aut14, aut15=aut15, aut16=aut16, aut17=aut17, aut18=aut18, aut19=aut19, aut20=aut20) 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 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 UserAuth.objects.filter(appid=request.user.appid, t_code=data['t_code'], is_delete=0).exists(): patch_name = UserAuth.objects.get( t_code=data['t_code']).name if patch_name != data['name']: if UserAuth.objects.filter(appid=request.user.appid, name=data['name'], is_delete=0).exists(): ret = FBMsg.wms_same() ret['data'] = data return Response(ret) patch_data = UserAuth.objects.filter( appid=request.user.appid, t_code=data['t_code'], is_delete=0).first() if 'name' in data: patch_data.name = data['name'] if 'aut1' in data: if str(data['aut1']) == "1": patch_data.aut1 = int(data['aut1']) elif str(data['aut1']) == "0": patch_data.aut1 = int(data['aut1']) if 'aut2' in data: if str(data['aut2']) == "1": patch_data.aut2 = int(data['aut2']) elif str(data['aut2']) == "0": patch_data.aut2 = int(data['aut2']) if 'aut3' in data: if str(data['aut3']) == "1": patch_data.aut3 = int(data['aut3']) elif str(data['aut3']) == "0": patch_data.aut3 = int(data['aut3']) if 'aut4' in data: if str(data['aut4']) == "1": patch_data.aut4 = int(data['aut4']) elif str(data['aut4']) == "0": patch_data.aut4 = int(data['aut4']) if 'aut5' in data: if str(data['aut5']) == "1": patch_data.aut5 = int(data['aut5']) elif str(data['aut5']) == "0": patch_data.aut5 = int(data['aut5']) if 'aut6' in data: if str(data['aut6']) == "1": patch_data.aut6 = int(data['aut6']) elif str(data['aut6']) == "0": patch_data.aut6 = int(data['aut6']) if 'aut7' in data: if str(data['aut7']) == "1": patch_data.aut7 = int(data['aut7']) elif str(data['aut7']) == "0": patch_data.aut7 = int(data['aut7']) if 'aut8' in data: if str(data['aut8']) == "1": patch_data.aut8 = int(data['aut8']) elif str(data['aut8']) == "0": patch_data.aut8 = int(data['aut8']) if 'aut9' in data: if str(data['aut9']) == "1": patch_data.aut9 = int(data['aut9']) elif str(data['aut9']) == "0": patch_data.aut9 = int(data['aut9']) if 'aut10' in data: if str(data['aut10']) == "1": patch_data.aut10 = int(data['aut10']) elif str(data['aut10']) == "0": patch_data.aut10 = int(data['aut10']) if 'aut11' in data: if str(data['aut11']) == "1": patch_data.aut11 = int(data['aut11']) elif str(data['aut11']) == "0": patch_data.aut11 = int(data['aut11']) if 'aut12' in data: if str(data['aut12']) == "1": patch_data.aut12 = int(data['aut12']) elif str(data['aut12']) == "0": patch_data.aut12 = int(data['aut12']) if 'aut13' in data: if str(data['aut13']) == "1": patch_data.aut13 = int(data['aut13']) elif str(data['aut13']) == "0": patch_data.aut13 = int(data['aut13']) if 'aut14' in data: if str(data['aut14']) == "1": patch_data.aut14 = int(data['aut14']) elif str(data['aut14']) == "0": patch_data.aut14 = int(data['aut14']) if 'aut15' in data: if str(data['aut15']) == "1": patch_data.aut15 = int(data['aut15']) elif str(data['aut15']) == "0": patch_data.aut15 = int(data['aut15']) if 'aut15' in data: if str(data['aut15']) == "1": patch_data.aut15 = int(data['aut15']) elif str(data['aut15']) == "0": patch_data.aut15 = int(data['aut15']) if 'aut15' in data: if str(data['aut15']) == "1": patch_data.aut15 = int(data['aut15']) elif str(data['aut15']) == "0": patch_data.aut15 = int(data['aut15']) if 'aut16' in data: if str(data['aut16']) == "1": patch_data.aut16 = int(data['aut16']) elif str(data['aut16']) == "0": patch_data.aut16 = int(data['aut16']) if 'aut17' in data: if str(data['aut17']) == "1": patch_data.aut17 = int(data['aut17']) elif str(data['aut17']) == "0": patch_data.aut17 = int(data['aut17']) if 'aut18' in data: if str(data['aut18']) == "1": patch_data.aut18 = int(data['aut18']) elif str(data['aut18']) == "0": patch_data.aut18 = int(data['aut18']) if 'aut19' in data: if str(data['aut19']) == "1": patch_data.aut19 = int(data['aut19']) elif str(data['aut19']) == "0": patch_data.aut19 = int(data['aut19']) if 'aut20' in data: if str(data['aut20']) == "1": patch_data.aut20 = int(data['aut20']) elif str(data['aut20']) == "0": patch_data.aut20 = int(data['aut20']) 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 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 put(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') for i in range(len(data)): if PickingModel.objects.filter(appid=request.user.appid, t_code=data[i]['t_code'], picking_status=0, is_delete=0).exists(): picking_data = PickingModel.objects.filter( appid=request.user.appid, t_code=data[i]['t_code'], is_delete=0).first() if picking_data.picked_stock + int(data[i][ 'picked_stock']) > picking_data.pick_stock: ret = FBMsg.wms_so_picked_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_so_picked_more() ret['data'] = data return Response(ret) pick_data = PickingModel.objects.filter( appid=request.user.appid, t_code=data[0]['t_code'], is_delete=0).first() so_list = ListModel.objects.filter(appid=request.user.appid, name=pick_data.so_name, is_delete=0).first() so_list.so_status = 4 so_list.save() for j in range(len(data)): picking_data = PickingModel.objects.filter( appid=request.user.appid, t_code=data[j]['t_code'], is_delete=0).first() picking_data.pick_stock = picking_data.pick_stock - int( data[j]['picked_stock']) picking_data.picked_stock = int(data[j]['picked_stock']) picking_data.shipping_stock = int(data[j]['picked_stock']) picking_data.picking_status = 1 so_detail = DetailModel.objects.filter( appid=request.user.appid, name=picking_data.so_name, goods_code=picking_data.goods_code, is_delete=0) for k in range(len(so_detail)): so_detail[k].pick_stock = so_detail[ k].pick_stock - int(data[j]['picked_stock']) so_detail[k].picked_stock = so_detail[ k].picked_stock + int(data[j]['picked_stock']) if PickingModel.objects.filter( appid=request.user.appid, goods_code=picking_data.goods_code, so_name=picking_data.so_name, picking_status=0, is_delete=0).exists(): pass else: so_detail[k].so_status = 4 so_detail[k].save() picking_data.save() ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())