def post(self, request, *args, **kwargs): vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip vip_check = VipCheck.VipCheck(vip_id) if vip_check == "N": return Response(FBMsg.wms_vip()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: create_name = Users.objects.filter(openid=request.auth, appid=request.user.appid, is_delete=0).first().name if ListModel.objects.filter(appid=request.user.appid, name=str(data[0]['po_number']), is_delete=0).exists(): supplier_data = ListModel.objects.filter( appid=request.user.appid, name=str(data[0]['po_number']), is_delete=0).first() supplier_data.supplier = str(data[0]['supplier']) supplier_data.save() for i in range(len(data)): DetailModel.objects.create( appid=request.user.appid, name=str(data[i]['po_number']), goods_code=str(data[i]['goods_code']), goods_name=str(data[i]['goods_name']), po_qty=int(data[i]['goods_qty']), create_name=create_name, supplier=str(data[i]['supplier']), t_code=Md5.md5(str(data[i]['goods_name']))) stock_list_data = stocklist.models.ListModel.objects.filter( appid=request.user.appid, name=str(data[i]['goods_code']), is_delete=0).first() stock_list_data.pre_delivery_stock = stock_list_data.pre_delivery_stock + int( data[i]['goods_qty']) stock_list_data.save() else: ret = FBMsg.wms_po_empty() ret['data'] = data return Response(ret) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def post(self, request, *args, **kwargs): vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip vip_check = VipCheck.VipCheck(vip_id) if vip_check == "N": return Response(FBMsg.wms_vip()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: if DetailModel.objects.filter(appid=request.user.appid, t_code=str(data[0]['t_code']), is_delete=0).exists(): up_data = DetailModel.objects.filter( t_code=str(data[0]['t_code'])).first() bin_data = binset.models.ListModel.objects.filter( appid=request.user.appid, name=str(data[0]['bin']), is_delete=0).first() property_data = property.models.ListModel.objects.filter( appid=request.user.appid, name=bin_data.bin_property).first() up_data.up_qty = up_data.up_qty - int( data[0]['finish_qty']) goods_stock = stocklist.models.ListModel.objects.filter( appid=request.user.appid, name=up_data.goods_code, goods_name=up_data.goods_name, ).first() if property_data.property_code == 1: up_data.actual_up_qty = up_data.actual_up_qty - int( data[0]['finish_qty']) goods_stock.onhand_stock = goods_stock.onhand_stock + int( data[0]['finish_qty']) goods_stock.can_order_stock = goods_stock.can_order_stock + int( data[0]['finish_qty']) goods_stock.sort_stock = goods_stock.sort_stock - int( data[0]['finish_qty']) if up_data.up_qty > 0: if up_data.actual_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), can_order_stock=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) else: ret = FBMsg.wms_po_qty_up_more() ret['data'] = data return Response(ret) elif up_data.up_qty == 0: if up_data.actual_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), can_order_stock=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) if DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, up_qty__gt=0, is_delete=0).exists(): pass else: po_detail_status = DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0) po_list_status = ListModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0).first() for i in range(len(po_detail_status)): po_detail_status[i].po_status = 5 po_detail_status[i].save() po_list_status.po_status = 5 po_list_status.save() else: ret = FBMsg.wms_po_qty_up_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_qty_all_up_more() ret['data'] = data return Response(ret) elif property_data.property_code == 4: up_data.damage_up_qty = up_data.damage_up_qty - int( data[0]['finish_qty']) goods_stock.damage_stock = goods_stock.damage_stock + int( data[0]['finish_qty']) if up_data.up_qty > 0: if up_data.damage_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) else: ret = FBMsg.wms_po_qty_dup_more() ret['data'] = data return Response(ret) elif up_data.up_qty == 0: if up_data.damage_up_qty >= 0: up_data.save() goods_stock.save() bin_data.bin_empty = 1 bin_data.save() stockbinlist.models.ListModel.objects.create( appid=request.user.appid, name=str(data[0]['bin']), goods_code=up_data.goods_code, goods_name=up_data.goods_name, goods_qty=int(data[0]['finish_qty']), bin_property=bin_data.bin_property, bin_size=bin_data.bin_size, po_name=up_data.name, t_code=Md5.md5(data[0]['t_code'])) if DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, up_qty__gt=0, is_delete=0).exists(): pass else: po_detail_status = DetailModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0) po_list_status = ListModel.objects.filter( appid=request.user.appid, name=up_data.name, is_delete=0).first() for i in range(len(po_detail_status)): po_detail_status[i].po_status = 5 po_detail_status[i].save() po_list_status.po_status = 5 po_list_status.save() else: ret = FBMsg.wms_po_qty_dup_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_qty_all_up_more() ret['data'] = data return Response(ret) else: ret = FBMsg.wms_po_empty() ret['data'] = data return Response(ret) ip = request.META.get( 'HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get( 'REMOTE_ADDR') ret = FBMsg.wms_ret() ret['ip'] = ip ret['data'] = data return Response(ret) else: return Response(FBMsg.wms_vip())
def patch(self, request, *args, **kwargs): vip_id = Users.objects.filter(appid=request.user.appid, developer=1, is_delete=0).first().vip vip_check = VipCheck.VipCheck(vip_id) if vip_check == "N": return Response(FBMsg.wms_vip()) elif vip_check == "Y": data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') 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())