コード例 #1
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())
コード例 #2
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())
コード例 #3
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())