コード例 #1
0
 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())
コード例 #2
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #3
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #4
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #5
0
 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())
コード例 #6
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #7
0
 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())
コード例 #8
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #9
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = ListModel.objects.filter(appid=request.user.appid, is_delete=0)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 file_detail6 = []
                 file_detail7 = []
                 file_detail8 = []
                 file_detail9 = []
                 file_detail11 = []
                 file_detail12 = []
                 file_detail13 = []
                 file_detail14 = []
                 file_detail15 = []
                 file_detail16 = []
                 file_detail17 = []
                 file_detail18 = []
                 file_detail19 = []
                 file_detail20 = []
                 filepath = os.path.join(settings.BASE_DIR, 'media/file/' + pathlink + '/' + request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].goods_name)
                     file_detail3.append(file_data[i].goods_unit)
                     file_detail4.append(file_data[i].goods_class)
                     file_detail5.append(file_data[i].goods_spacs)
                     file_detail6.append(file_data[i].goods_shape)
                     file_detail7.append(file_data[i].goods_color)
                     file_detail8.append(file_data[i].goods_brand)
                     file_detail9.append(file_data[i].goods_city)
                     file_detail11.append(file_data[i].goods_l)
                     file_detail12.append(file_data[i].goods_w)
                     file_detail13.append(file_data[i].goods_h)
                     file_detail14.append(file_data[i].goods_weight)
                     file_detail15.append(file_data[i].goods_cost)
                     file_detail16.append(file_data[i].goods_price1)
                     file_detail17.append(file_data[i].goods_price2)
                     file_detail18.append(file_data[i].goods_price3)
                     file_detail19.append(file_data[i].create_time.strftime("%Y-%m-%d %H:%M:%S"))
                     file_detail20.append(file_data[i].last_update_time.strftime("%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({pathname: file_detail1,
                                    '商品描述': file_detail2,
                                    '商品单位': file_detail3,
                                    '商品类别': file_detail4,
                                    '商品规格': file_detail5,
                                    '商品形状': file_detail6,
                                    '商品颜色': file_detail7,
                                    '商品品牌': file_detail8,
                                    '商品产地': file_detail9,
                                    '商品长(单位: mm)': file_detail11,
                                    '商品宽(单位: mm)': file_detail12,
                                    '商品高(单位: mm)': file_detail13,
                                    '商品重量(单位: 克)': file_detail14,
                                    '成本价(单位: 元)': file_detail15,
                                    '一销价(单位: 元)': file_detail16,
                                    '二销价(单位: 元)': file_detail17,
                                    '三销价(单位: 元)': file_detail18,
                                    '创建时间': file_detail19,
                                    '最后更新时间': file_detail20
                                    })
                 dir_path = os.path.join(settings.BASE_DIR, 'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath, sheet_name='sheet1', startcol=0, index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response['Content-Disposition'] = 'attachment;filename="%s.xlsx"' % pathlink
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', '-create_time')
             max_page = request._request.GET.get('max_page', 100)
             list = ListModel.objects.filter(appid=request.user.appid, is_delete=0).order_by(sort)
             if request._request.GET.get('name', ''):
                 list = list.filter(name__icontains=str(request._request.GET.get('name', ''))).order_by(sort)
             if request._request.GET.get('goods_name', ''):
                 list = list.filter(goods_name__icontains=str(request._request.GET.get('goods_name', ''))).order_by(sort)
             if request._request.GET.get('goods_unit', ''):
                 list = list.filter(goods_unit__icontains=str(request._request.GET.get('goods_unit', ''))).order_by(sort)
             if request._request.GET.get('goods_class', ''):
                 list = list.filter(goods_class__icontains=str(request._request.GET.get('goods_class', ''))).order_by(sort)
             if request._request.GET.get('goods_spacs', ''):
                 list = list.filter(goods_spacs__icontains=str(request._request.GET.get('goods_spacs', ''))).order_by(sort)
             if request._request.GET.get('goods_shape', ''):
                 list = list.filter(goods_shape__icontains=str(request._request.GET.get('goods_shape', ''))).order_by(sort)
             if request._request.GET.get('goods_color', ''):
                 list = list.filter(goods_color__icontains=str(request._request.GET.get('goods_color', ''))).order_by(sort)
             if request._request.GET.get('goods_brand', ''):
                 list = list.filter(goods_brand__icontains=str(request._request.GET.get('goods_brand', ''))).order_by(sort)
             if request._request.GET.get('goods_city', ''):
                 list = list.filter(goods_city__icontains=str(request._request.GET.get('goods_city', ''))).order_by(sort)
             if request._request.GET.get('create_name', ''):
                 list = list.filter(create_name__icontains=str(request._request.GET.get('create_name', ''))).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(create_time__range=[start_date, end_date]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(last_update_time__range=[start_date, end_date]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list, request=request, view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
                 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count()/int(max_page))
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
コード例 #10
0
 def get(self, request, *args, **kwargs):
     vip_id = Users.objects.filter(appid=request.user.appid,
                                   developer=1,
                                   is_delete=0).first().vip
     vip_check = VipCheck.VipCheck(vip_id)
     if vip_check == "N":
         return Response(FBMsg.wms_vip_get())
     elif vip_check == "Y":
         if request._request.GET.get('getfile', ''):
             if str(request._request.GET.get('getfile', '')) == "1":
                 file_data = DetailModel.objects.filter(
                     appid=request.user.appid, is_delete=0)
                 file_detail1 = []
                 file_detail2 = []
                 file_detail3 = []
                 file_detail4 = []
                 file_detail5 = []
                 filepath = os.path.join(
                     settings.BASE_DIR, 'media/file/' + pathlink + '/' +
                     request.user.appid + '.xlsx')
                 for i in range(len(file_data)):
                     file_detail1.append(file_data[i].name)
                     file_detail2.append(file_data[i].po_status)
                     file_detail3.append(file_data[i].create_name)
                     file_detail4.append(file_data[i].create_time.strftime(
                         "%Y-%m-%d %H:%M:%S"))
                     file_detail5.append(
                         file_data[i].last_update_time.strftime(
                             "%Y-%m-%d %H:%M:%S"))
                 df = pd.DataFrame({
                     pathname: file_detail1,
                     '订单状态': file_detail2,
                     '创建人': file_detail3,
                     '创建时间': file_detail4,
                     '最后更新时间': file_detail5
                 })
                 dir_path = os.path.join(settings.BASE_DIR,
                                         'media/file/' + pathlink + '/')
                 if os.path.exists(dir_path):
                     pass
                 else:
                     os.makedirs(dir_path)
                 if os.path.isfile(filepath):
                     os.remove(filepath)
                 else:
                     pass
                 df.to_excel(filepath,
                             sheet_name='sheet1',
                             startcol=0,
                             index=False)
                 file = open(filepath, 'rb')
                 response = FileResponse(file)
                 response['Content-Type'] = 'application/octet-stream'
                 response[
                     'Content-Disposition'] = 'attachment;filename="%s.xlsx"' % pathlink
                 return response
             else:
                 ret = FBMsg.wms_errfile()
                 return Response(ret)
         else:
             sort = request._request.GET.get('sort', '-create_time')
             max_page = request._request.GET.get('max_page', 100)
             list = DetailModel.objects.filter(appid=request.user.appid,
                                               is_delete=0).order_by(sort)
             if request._request.GET.get('po_number', ''):
                 list = list.filter(
                     name__icontains=request._request.GET.get(
                         'po_number', '')).order_by(sort)
             if request._request.GET.get('po_status', ''):
                 list = list.filter(
                     po_status=int(request._request.GET.get(
                         'po_status', ''))).order_by(sort)
             if request._request.GET.get('supplier', ''):
                 list = list.filter(
                     supplier__icontains=request._request.GET.get(
                         'supplier', '')).order_by(sort)
             if request._request.GET.get('sorted', ''):
                 list = list.filter(up_qty__gt=int(
                     request._request.GET.get('sorted', ''))).order_by(sort)
             if request._request.GET.get('shortage', ''):
                 list = list.filter(shortage_qty__gt=int(
                     request._request.GET.get('shortage', ''))).order_by(
                         sort)
             if request._request.GET.get('damage', ''):
                 list = list.filter(damage_qty__gt=int(
                     request._request.GET.get('damage', ''))).order_by(sort)
             if request._request.GET.get('more', ''):
                 list = list.filter(more_qty__gt=int(
                     request._request.GET.get('more', ''))).order_by(sort)
             if request._request.GET.get('create_name', ''):
                 list = list.filter(
                     create_name__icontains=request._request.GET.get(
                         'create_name', '')).order_by(sort)
             if request._request.GET.get('t_code', ''):
                 list = list.filter(t_code=request._request.GET.get(
                     't_code', '')).order_by(sort)
             if request._request.GET.get('date1', ''):
                 try:
                     start_date = request._request.GET.get('date1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('date2', ''):
                         date_end = request._request.GET.get('date2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             create_time__range=[start_date, end_date
                                                 ]).order_by(sort)
                 except:
                     pass
             if request._request.GET.get('udate1', ''):
                 try:
                     start_date = request._request.GET.get('udate1', '')
                     date = [int(x) for x in start_date.split('/')]
                     new = datetime.datetime(date[0], date[1], date[2])
                     start_date = new.strftime('%Y-%m-%d')
                     if request._request.GET.get('udate2', ''):
                         date_end = request._request.GET.get('udate2', '')
                         delta = datetime.timedelta(days=1)
                         date = [int(x) for x in date_end.split('/')]
                         old = datetime.datetime(date[0], date[1], date[2])
                         end_date = (old + delta).strftime('%Y-%m-%d')
                     else:
                         today = datetime.date.today()
                         delta = datetime.timedelta(days=1)
                         end_date = (today + delta).strftime('%Y-%m-%d')
                         date = [int(x) for x in end_date.split('-')]
                         old = datetime.datetime(date[0], date[1], date[2])
                     if (old - new).days < 0:
                         return Response(FBMsg.wms_time())
                     else:
                         list = list.filter(
                             last_update_time__range=[start_date, end_date
                                                      ]).order_by(sort)
                 except:
                     pass
             pg = MyPageNumberPagination()
             pg_list = pg.paginate_queryset(queryset=list,
                                            request=request,
                                            view=self)
             list_ser = ListSerializers(pg_list, many=True)
             ip = request.META.get(
                 'HTTP_X_FORWARDED_FOR') if request.META.get(
                     'HTTP_X_FORWARDED_FOR') else request.META.get(
                         'REMOTE_ADDR')
             bin_list = binset.models.ListModel.objects.filter(
                 appid=request.user.appid, is_delete=0).order_by('name')
             bin_list_ser = BinListSerializers(bin_list, many=True)
             ret = FBMsg.ret()
             ret['ip'] = ip
             ret['data'] = list_ser.data
             ret['totlepage'] = math.ceil(list.count() / int(max_page))
             ret['bin_list'] = bin_list_ser.data
             return pg.get_paginated_response(ret)
     else:
         return Response(FBMsg.wms_vip_get())
コード例 #11
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #12
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #13
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #14
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #15
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #16
0
 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())
コード例 #17
0
ファイル: views.py プロジェクト: usr0418/Django_WMS
 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())
コード例 #18
0
 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())
コード例 #19
0
 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())