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 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 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 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 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())
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, *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 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())
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 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())
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())