<?php
    require_once('adodb/adodb.inc.php'); //biblioteca necessaria para trabalhar com adodb
	require_once('conexao.php');
	require_once('funcoes.php');
	require_once("fpdf/fpdf.php");
	$diaatual = date ('d/m/Y H:i');	
	require_once('manutencao_oscam.php');
	require_once('PHPMailer_v5.1/class.phpmailer.php');			
	class cspadm_sistema
	{
		
	function validaAcessoLogado($login, $acesso_idempresa, $acesso_idusuario){
		$con = new conexao();
		$sql = "select idusuario from usuario where usuario.del ='NAO' and MD5(CONCAT(`login`,`senha`)) = '$login'";
		
		if ($acesso_idempresa <> ""){
			$sql .= " and idempresa = '$acesso_idempresa'";	
		}
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		if ($registro->IDUSUARIO == ""){
			return "erro";
		} else {
			$idusuario = $registro->IDUSUARIO;
			if ($acesso_idusuario <> ""){
				if ($idusuario <> $acesso_idusuario){
					return "erro";
				}
			}
			return "ok";			
		}		
	}

		
		
		
//amfphp_acesso
//		  function validaacesso($logindigitado, $senhadigitado){
	function validaacesso($logindigitado, $senhadigitado){
			$con = new conexao();			
			$senha = $senhadigitado;
			$senhadigitado = $this->encripta($senhadigitado);	
			
			$ip_user = $_SERVER[REMOTE_ADDR];
// ***************************************** Validando o acesso do cliente e verificando se nao teve tentativas erradas
			$data_atual=date('Ymd');
			$hora_atual=date('Hi');
			$sql_bloqueado="select * from acesso_bloqueado where ip='$ip_user' order by id DESC limit 1";
		    $res_bloqueado = $con->banco->Execute($sql_bloqueado);
			$reg_bloqueado = $res_bloqueado->FetchNextObject();
			$bloqueado = "NAO";
			if ($reg_bloqueado->IP <> ""){
				$hr_bl=substr($reg_bloqueado->HORA,0,2);
				$min_bl=substr($reg_bloqueado->HORA,3,2);
				$dia_bl=substr($reg_bloqueado->DATA,0,2);
				$mes_bl=substr($reg_bloqueado->DATA,3,2);
				$ano_bl=substr($reg_bloqueado->DATA,6,4);
				$data_bloqueado="$ano_bl$mes_bl$dia_bl";
				$hora_bloqueado="$hr_bl$min_bl";

				if ($data_bloqueado > $data_atual){
					$bloqueado="SIM";
					$dados_retorno['dados']['erro']		= "IP_BLOQUEADO";
					$dados_retorno['dados']['dataA']	= date('d/m/Y');
					$dados_retorno['dados']['horaA']	= date('H:i');
					$dados_retorno['dados']['dataB']	= $reg_bloqueado->DATA;
					$dados_retorno['dados']['horaB']	= $reg_bloqueado->HORA;
					$dados_retorno['dados']['ip']		= $ip_user;					
					$dados_retorno['dados']['ipmsg']	= "Bloqueado ate $reg_bloqueado->DATA as $reg_bloqueado->HORA";
					return $dados_retorno;
				} else {
					if ($data_bloqueado == $data_atual){
						if ($hora_bloqueado >= $hora_atual){
							$bloqueado = "SIM";
							$dados_retorno['dados']['erro']		= "IP_BLOQUEADO";
							$dados_retorno['dados']['dataA']	= date('d/m/Y');
							$dados_retorno['dados']['horaA']	= date('H:i');			
							$dados_retorno['dados']['dataB']	= $reg_bloqueado->DATA;
							$dados_retorno['dados']['horaB']	= $reg_bloqueado->HORA;
							$dados_retorno['dados']['ip']		= $ip_user;
							$dados_retorno['dados']['ipmsg']	= "Seu endereco IP $ip_user foi Bloqueado ate $reg_bloqueado->DATA as $reg_bloqueado->HORA devido a varios acessos com senha errada. Aguarde o tempo e tente novamente.";
							return $dados_retorno;
						}
					}
				}
			}
// *************************************************************************************************************** Final do bloco
		if ($bloqueado == "NAO"){
			$sql = "select usuario.*, empresa.situacao as situacaoempresa, empresa.sub_revendedor, empresa.prepago, empresa.code, empresa.validoate  as empresaValidoAte, empresa.msg as msgEmpresa from usuario, empresa where usuario.idempresa = empresa.idempresa and usuario.del = 'NAO' and usuario.login = '$logindigitado' and usuario.senha='$senhadigitado'";
		    $resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			
			// Inicio do log de acesso ao sistema
			$data = date('d/m/Y');
			$hora = date ('H:i');
			if ($registro->IDUSUARIO == ""){
				$sql_log="insert into acesso (login, senha, ip, data, hora, acesso) values ('$logindigitado', '$senhadigitado', '$ip_user', '$data', '$hora','NAO')";
				$con->banco->Execute($sql_log);
			} 

			$sqlqtde="select count(idacesso) as qtde from acesso where ip='$ip_user' and bloq=0";
		    $resultadoqtde = $con->banco->Execute($sqlqtde);
			$registroqtde = $resultadoqtde->FetchNextObject();
			$qtde=$registroqtde->QTDE;			
			
			$verifica_bloqueio=$this->verifica_bloqueio_acesso($ip_user);
			// Final do Log de acesso
			if ($registro->IDUSUARIO == ""){
            	$dados_retorno['dados']['erro'] = "NaoExiste";
                $dados_retorno['dados']['ipmsg'] = "Tentativa $qtde / 3";
				return $dados_retorno;
			} else { 
				if ($logindigitado <> $registro->LOGIN || $senhadigitado <> $registro->SENHA){
					$dados_retorno['dados']['erro'] = "NaoExiste";
					return $dados_retorno;
				}	
				
			// Revendedor conseguiui acesso, limpando tentativas erradas do banco de dados
				$sql_acesso = "update acesso set bloq=1 where ip='$ip_user' and bloq=0";
				$con->banco->Execute($sql_acesso);
			// final da regra
				if ($registro->SITUACAOEMPRESA == "Bloqueado"){
					$dados_retorno['dados']['erro'] = "BloqueadoEmpresa";
					if ($registro->MSGEMPRESA <> ""){
						$dados_retorno['dados']['msg'] 	= $registro->MSGEMPRESA;
					} else {
						$dados_retorno['dados']['msg'] 	= "O painel encontra-se bloqueado. Entre em contato com julianosmi@hotmail.com";;
					}
					return $dados_retorno;	
				}
				if ($registro->SITUACAO == "Bloqueado"){
					$dados_retorno['dados']['erro'] = "Bloqueado";
					$dados_retorno['dados']['msg'] 	= "Voce encontra-se bloqueado. Entre em contato com o seu administrador";
					return $dados_retorno;
				}
				if ($registro->SITUACAO == "Inativo"){
					$dados_retorno['dados']['erro'] = "Inativo";
					$dados_retorno['dados']['msg'] 	= "Login Inativo. Entre em contato com o seu administrador";
					return $dados_retorno;
				}
				if ($registro->SITUACAO == ""){
					$dados_retorno['dados']['erro'] = "Desconhecido";
					$dados_retorno['dados']['msg'] 	= "Erro desconhecido.";
					return $dados_retorno;
				}
				if ($registro->SITUACAO == "Ativo"){
					$ymd = date('Y-m-d');
					$dataAlerta = $this->subDayIntoDate($registro->EMPRESAVALIDOATE,5);
					$maisumdia  = $this->addDayIntoDate($registro->EMPRESAVALIDOATE,1);
					// Verifica validade da empresa para informar ou bloquear o acesso - by juliano em 11/07/2012
					if ($ymd >= $dataAlerta and $ymd < $registro->EMPRESAVALIDOATE){
						$dados_retorno['dados']['empresaMsgValidade']	= "Seu painel ira vencer em " . dmy($registro->EMPRESAVALIDOATE);
						$dados_retorno['dados']['empresaOK'] = "Aviso";	
					}
					if ($ymd >= $dataAlerta and $ymd == $registro->EMPRESAVALIDOATE){
						$tmp = $this->addDayIntoDate($registro->EMPRESAVALIDADE,1);
						$dados_retorno['dados']['empresaMsgValidade']	= "Atencao. A mensalidade de renovacao do seu painel vence hoje. O Painel sera bloqueado temporariamente. Duvidas: suporte@cspadm.com.br";
						$dados_retorno['dados']['empresaOK'] = "Aviso";	
					}
					if ($ymd > $registro->EMPRESAVALIDOATE){						
						if ($ymd == $maisumdia){
							$dados_retorno['dados']['empresaMsgValidade']	= "Atencao. A mensalidade do seu painel venceu ontem e nao foi encontrado o pgto. Dia $maisumdia seu painel sera bloqueado temporariamente.";
							$dados_retorno['dados']['empresaOK'] = "Aviso";	
						} else {
							$dados_retorno['dados']['empresaMsgValidade']	= "Seu painel encontra-se temporariamente bloqueado. Duvidas, entre em contato com o suporte pelo email suporte@cspadm.com.br. (Info: Painel valido ate $registro->EMPRESAVALIDOATE)";
							$dados_retorno['dados']['empresaOK'] = "Bloqueado";
						}
					}
					
					// Final da verificacao
										
					 $dados_retorno['dados']['idempresa']	= $registro->IDEMPRESA;
					 $dados_retorno['dados']['idusuario']	= $registro->IDUSUARIO;
					 $dados_retorno['dados']['idcliente']	= "0";
					 $dados_retorno['dados']['nome']		= $registro->NOME;
					 $dados_retorno['dados']['admin']		= $registro->ADMIN;
					 $dados_retorno['dados']['senha']		= $this->decripta($registro->SENHA);
					 $dados_retorno['dados']['login']		= $registro->LOGIN;
					 $dados_retorno['dados']['permiterev']	= $registro->PERMITEREV;
					 $dados_retorno['dados']['permitepre']	= $registro->PREPAGO;
					 $dados_retorno['dados']['permitecode']	= $registro->CODE;
					 $dados_retorno['dados']['idrevendedor_pai']= $registro->IDREVENDEDOR;
					 $dados_retorno['dados']['sub_revendedor']	= $registro->SUB_REVENDEDOR;
					 $dados_retorno['dados']['nivel']		= $registro->NIVEL;
					 $dados_retorno['dados']['niveln']		= $registro->NIVELN;
					 $dados_retorno['dados']['tipo']		= $registro->TIPO;
					 $dados_retorno['dados']['hash']		= md5("$logindigitado$senhadigitado");
					 $dados_retorno['dados']['hashD']		= md5("$logindigitado$senha");
					 $dados_retorno['dados']['delcliente']	= $registro->DELCLIENTE;
 					 $dados_retorno['dados']['delrevenda']	= $registro->DELREVENDA;
					 $d_dados=$this->parametros($registro->IDEMPRESA);
					 foreach ($d_dados as $value){
						foreach ($value as $dados){
							$bloqueia_revendedor_vencido =  $dados['bloqueia_revendedor_vencido'];
						}
					 }
					 if ($registro->VALIDOATE <> "" && $bloqueia_revendedor_vencido == "SIM"){
						$valido=dmy($registro->VALIDOATE);
					    $msg = "Seu acesso ao sistema expirara em $valido. ";
						$revendedor_valido_ate = substr($registro->VALIDOATE,0,4) . substr($registro->VALIDOATE,5,2) . substr($registro->VALIDOATE,8,2);
						if (date('Ymd') > $revendedor_valido_ate){
							$dados_retorno['dados']['libera_acesso_revendedor'] = "NAO";
						} else {
							$dados_retorno['dados']['libera_acesso_revendedor'] = "SIM";
						}
					 }
					 $msg .= $registro->MSG;
					 $dados_retorno['dados']['validoate'] 	= $msg;
					 $dados_retorno['dados']['erro']		= "OK";
				}
				return $dados_retorno;	 
			}			
		}
	}

		  function validaacesso_cliente($login){
			$con = new conexao();
			
			$sql2 = "select csp_user.*, empresa.situacao as sitempresa, empresa.msg as msgempresa from csp_user, empresa where csp_user.idempresa = empresa.idempresa and csp_user.del='NAO' and csp_user.situacao = 'Ativo' and MD5(CONCAT(`name`,`password`)) = '$login'";			
		    $resultado2 = $con->banco->Execute($sql2);
			$registro2 = $resultado2->FetchNextObject();
			if ($registro2->ID == ""){
				$dados_retorno['dados']['erro'] = "NaoExiste";
			} else {
				if ($registro2->SITEMPRESA == "Bloqueado"){
					$dados_retorno['dados']['erro'] = "EmpresaBloqueada";
					if ($registro2->MSGEMPRESA <> ""){
						$dados_retorno['dados']['msg'] = $registro2->MSGEMPRESA;
					} else {
						$dados_retorno['dados']['msg'] = "O painel encontra-se Bloqueado. Entre em contato com julianosmi@hotmail.com";
					}
				}
				if ($registro2->SITEMPRESA == "Inativo"){
					$dados_retorno['dados']['erro']	= "EmpresaInativa";
					$dados_retorno['dados']['msg'] 	= "O painel encontra-se Inativo. Entre em contato com julianosmi@hotmail.com";
				}
				if ($registro2->SITEMPRESA == "Ativo"){
					$id = $registro2->ID;
					$idprofile = $registro2->IDPROFILE;
					$sql3 = "select provedor.nome, provedor.email, provedor.idrevendedor, profile.profile as profile, profile.host, profile.portacsp, profile.portaprofile, profile.obs, plano.valor from provedor, profile, plano where provedor.idprovedor = '$id' and profile.idprofile = $idprofile and provedor.idplano = plano.idplano and provedor.del='NAO'";
				    $resultado3 = $con->banco->Execute($sql3);
					$registro3 = $resultado3->FetchNextObject();					
					
				 $dados_retorno['dados']['idempresa']		= $registro2->IDEMPRESA;
				 $dados_retorno['dados']['idusuario']		= $registro3->IDREVENDEDOR;
				 $dados_retorno['dados']['idcliente']		= $registro2->ID;
				 $dados_retorno['dados']['admin']			= "0";
				 $dados_retorno['dados']['nome']			= $registro3->NOME;
				 $dados_retorno['dados']['email']			= $registro3->EMAIL;
				 $dados_retorno['dados']['login']			= $registro2->NAME;
				 $dados_retorno['dados']['senha']			= $registro2->PASSWORD;					 
				 $dados_retorno['dados']['situacao']		= $registro2->SITUACAO;
				 $dados_retorno['dados']['idprofile']		= $registro2->IDPROFILE;
				 $dados_retorno['dados']['profile']			= $registro3->PROFILE;
				 $dados_retorno['dados']['host']			= $registro3->HOST;
				 $dados_retorno['dados']['portaprofile']	= $registro3->PORTAPROFILE;
				 $dados_retorno['dados']['valor']			= $registro3->VALOR;
				 $dados_retorno['dados']['valido']			= dmy($registro2->EXPIREDATE);
				 $dados_retorno['dados']['obs']				= $registro3->OBS;
				 $dados_retorno['dados']['nivel']			= "CLIENTE";
				 $dados_retorno['dados']['erro']			= "PainelCliente";
				}
			}
			return $dados_retorno;	 
		}



		function filtra_sel_usuario_para($acesso_idempresa, $acesso_idusuario){
			$con = new conexao();
  		  	$sql="select * from usuario where idempresa='$acesso_idempresa' and idusuario <> '$acesso_idusuario' and situacao='Ativo' and del='NAO'";
			$sql .= " order by login ASC";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while ($registro = $resultado->FetchNextObject()){
				$dados_bd['dados'][$i]['idusuario']	= $registro->IDUSUARIO;
				$dados_bd['dados'][$i]['usuario']	= $registro->LOGIN;
				$dados_bd['dados'][$i]['idempresa']	= $registro->IDEMPRESA;
				$i++;
			}
			return $dados_bd;
		}

		function filtra_usuario_especie($acesso_idempresa, $acesso_idusuario){
			$con = new conexao();
  		  	$sql="select usuario_especie.* from usuario_especie where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario' and situacao='Ativo'";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while ($registro = $resultado->FetchNextObject()){
				$dados_bd['dados'][$i]['id']		= $registro->ID;
				$dados_bd['dados'][$i]['especie']	= $registro->ESPECIE;
				$i++;
			}
			return $dados_bd;
		}

		function verifica_bloqueio_acesso($ip){
			$con = new conexao();
			$sql_bloq = "select * from acesso where ip='$ip' order by idacesso DESC limit 3";
			$res_bloq = $con->banco->Execute($sql_bloq);
			$n=0;
				
			while ($reg_bloq = $res_bloq->FetchNextObject()){
				if ($reg_bloq->ACESSO == "NAO" && $reg_bloq->BLOQ == "0"){
					$n++;
				}
			}

			if ($n >= 3){
				$sql_ = "update acesso set bloq=1 where ip='$ip' and bloq=0";
				$con->banco->Execute($sql_);				
				$hora_bloqueia=date('H');
				$minuto_bloqueia=date('i');
				$dia_bloqueia=date('d');
				$mes_bloqueia=date('m');
				$ano_bloqueia=date('Y');
				$minuto_bloqueia = $minuto_bloqueia + 15;
				if ($minuto_bloqueia > 60){
					$minuto_bloqueia = $minuto_bloqueia - 60;
					$hora_bloqueia++;
				}
				if ($hora_bloqueia > 23){
					$hora_bloqueia = 0;
					$dia_bloqueia++;
				}
				if ($mes_bloqueia == "02"){
					if ($dia_bloqueia > 28){
						$dia_bloqueia="01";
						$mes_bloqueia++;	
					}
				} else if ($mes_bloqueia == "04" || $mes_bloqueia == "06" || $mes_bloqueia == " 09" || $mes_bloqueia == "11" ){
						if ($dia_bloqueia > 30){
							$dia_bloqueia="01" ;
							$mes_bloqueia++;
						}
						
				} else if ($mes_bloqueia == "01"  || $mes_bloqueia == "03" || $mes_bloqueia == "05" || $mes_bloqueia =="07"  || $mes_bloqueia == "08"  ||  $mes_bloqueia == "10"  || $mes_bloqueia == "12"){
						if ($dia_bloqueia > 31){
							$dia_bloqueia = "01";
							$mes_bloqueia++;	
						}
					}
				if ($mes_bloqueia > 12){
					$mes_bloqueia = "01";
					$ano_bloqueia++;	
				}
				$dia_bloqueia=CompletaComZeros(2,$dia_bloqueia);
				$mes_bloqueia=CompletaComZeros(2,$mes_bloqueia);
				$hora_bloqueia=CompletaComZeros(2,$hora_bloqueia);
				$minuto_bloqueia=CompletaComZeros(2,$minuto_bloqueia);
				$data_bloqueio = "$dia_bloqueia/$mes_bloqueia/$ano_bloqueia";
				$hora_bloqueio = "$hora_bloqueia:$minuto_bloqueia";
				$bloqueia = "insert into acesso_bloqueado (ip, data, hora) values ('$ip', '$data_bloqueio', '$hora_bloqueio')";	
				$con->banco->Execute($bloqueia);
			}
		}		
	

//cspadm_admin_excluir

	  function filtra_grid_csp_user($acesso_idempresa, $idrevendedor, $nome, $csplogin, $email, $situacao, $teste, $hash){
		  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa,"");
		  if ($valida == "ok"){
		    $con = new conexao();
			$sql = "select csp_user.*, provedor.nome, provedor.clienteteste, provedor.email, profile.descricao as descprofile, profile.profile as profile, provedor.situacao as sitprovedor, usuario.login, plano.descricao as plano from csp_user, provedor, profile, usuario, plano where csp_user.id = provedor.idprovedor and csp_user.idprofile = profile.idprofile and csp_user.idempresa='$acesso_idempresa' and  provedor.idrevendedor = usuario.idusuario and csp_user.del='NAO' and csp_user.situacao = '$situacao' and provedor.idplano = plano.idplano";
			if ($nome <> ""){
					$sql .= " and provedor.nome like '$nome%'";
				}				

				if ($csplogin <> ""){
					$sql .= " and csp_user.name like '$csplogin%'";	
				}
				
				if ($email <> ""){
					$sql .= " and provedor.email like '$email%'";
				}
			if ($teste == "true"){
				$sql .= " and provedor.clienteteste = 1";	
			} 
			if ($idrevendedor <> "0"){
				$sql .= " and provedor.idrevendedor = '$idrevendedor'";
			}
			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				 if ($registro->CLIENTETESTE == "1"){
					 	$teste = "Sim";
				 } else {
						$teste = "Nao"; 
				 }
				 $dados_bd['dados'][$i]['id']         = $registro->ID;
				 $dados_bd['dados'][$i]['name']       = $registro->NAME;
				 $dados_bd['dados'][$i]['password']   = $registro->PASSWORD;
				 $dados_bd['dados'][$i]['profile']    = $registro->DESCRICAO;
 				 $dados_bd['dados'][$i]['descricao']  = $registro->PROFILE;
				 $dados_bd['dados'][$i]['expiredate'] = $registro->EXPIREDATE;
				 $dados_bd['dados'][$i]['vencimento'] = dmy($registro->EXPIREDATE);
				 $dados_bd['dados'][$i]['enabled']    = $registro->ENABLED; 
				 $dados_bd['dados'][$i]['situacao']   = $registro->SITUACAO;
				 $dados_bd['dados'][$i]['nome']       = $registro->NOME;
				 $dados_bd['dados'][$i]['teste']      = $teste;
				 $dados_bd['dados'][$i]['revendedor'] = $registro->LOGIN;
				 $dados_bd['dados'][$i]['sitprovedor']= $registro->SITPROVEDOR;
				 $dados_bd['dados'][$i]['maxconnections']= $registro->MAXCONNECTIONS;
				 $dados_bd['dados'][$i]['idprofile']    = $registro->IDPROFILE;
				 $dados_bd['dados'][$i]['idrevendedor'] = $registro->IDREVENDEDOR;
				 $dados_bd['dados'][$i]['criadoem']   = dmy(substr($registro->CRIADOEM,0,10));
				 $dados_bd['dados'][$i]['nome']   = $registro->NOME;
				 $dados_bd['dados'][$i]['email']   = $registro->EMAIL;
				 $dados_bd['dados'][$i]['plano']   = $registro->PLANO;				 
				 
				 $i++;
			}
			return $dados_bd;
		  }
	 }	 
	 
	function filtra_sel_revendedor($acesso_idempresa, $acesso_idusuario, $admin, $idcliente, $hash){
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
		if ($valida == "ok"){
		$con = new conexao();
		$niveln = $this->buscaNiveln($acesso_idempresa, $acesso_idusuario);
		$condicao = $this->buscaNivelnTabela($niveln);
		$sql = "select * from usuario where idempresa='$acesso_idempresa' and $condicao = '$acesso_idusuario' and del='NAO'";
		$resultado = $con->banco->Execute($sql);
		$dados_bd['dados'][0] = "";
		$i = 0;
		while($registro = $resultado->FetchNextObject()) {
			$revendedor = $this->montaUsuario($registro->IDUSUARIO, $registro->IDEMPRESA, $niveln);
			$dados_bd['dados'][$i]['idrevendedor'] = $registro->IDUSUARIO;
//			$dados_bd['dados'][$i]['revendedor']   = $registro->LOGIN;
			$dados_bd['dados'][$i]['revendedor']   = $revendedor;
			$dados_bd['dados'][$i]['niveln']   	   = $registro->NIVELN;
			$i++;
		}
		return $dados_bd;
		}
	 }

 	function buscaNiveln($acesso_idempresa, $acesso_idusuario){
		$con = new conexao();
		$s = "select niveln from usuario where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario'";	
		$r = $con->banco->Execute($s);
		$re = $r->FetchNextObject();
		return $re->NIVELN;
	}
	function buscaNivelnTabela($niveln){
		if ($niveln == "0"){
			return "nadmin";	
		}
		if ($niveln == "1"){
			return "nrev";	
		}
		if ($niveln == "2"){
			return "nsub1";	
		}
		if ($niveln == "3"){
			return "nsub2";
		}
		if ($niveln == "4"){
			return "nsub3";
		}
		if ($niveln == "5"){
			return "nsub4";
		}
		if ($niveln == "6"){
			return "nsub5";
		}
		if ($niveln == "7"){
			return "nsub6";
		}
		if ($niveln == "8"){
			return "nsub7";
		}
		if ($niveln == "9"){
			return "nsub8";
		}	
	}


	 function trocar_selecionados($acesso_idempresa, $de, $para, $array, $situacao, $hash){
		$con = new conexao();
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
		if ($valida == "ok"){
		$n=0;
		if ($para <> "0"){
			$qtde = 0;
			foreach ($array as $value){
				$sele=$value->checked;
				if ($sele == "true"){
					$qtde++;
				}
			}
			// Verifica Saldo se Pode transferir
			$permite = $this->verificaSaldo($acesso_idempresa, $para, $qtde);
			if ($permite == 0){
				return "ERRO_SALDO";	
			}
			
			foreach ($array as $value){
				$idcliente=$value->id;
				$nome=$value->nome;
				$sele=$value->checked;				
				if ($sele == "true"){
					// Atualizando o saldo
					$this->atualizaSaldo($acesso_idempresa, $de,   1, 'add');
					$this->atualizaSaldo($acesso_idempresa, $para, 1, 'del');
					// Final da atualizacao do Saldo
					
					$sql2="select idplano from plano where idrevendedor='$para' and idempresa='$acesso_idempresa' and valor > 0 and del='NAO' order by idplano DESC limit 1";
					$resultado=$con->banco->Execute($sql2);
					$registro = $resultado->FetchNextObject();
					$idplano = $registro->IDPLANO;
					$sql = "update provedor set idrevendedor = '$para', idplano='$idplano' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";
					$con->banco->Execute($sql);
					$n++;
					
					return "OK";
					}													
			}
			} else {
			return "ERRO";
		}
		}
	 }
 	 function excluir_selecionados($acesso_idempresa, $acesso_idusuario, $de, $array, $situacao, $hash){
		 $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
		 if ($valida == "ok"){
		$ip=$_SERVER['REMOTE_ADDR'];
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
		if ($valida == "ok"){ // validado
		$con = new conexao();
		$n=0;
		foreach ($array as $value){
			$idcliente=$value->id;
			$sele=$value->checked;
			$csplogin=$value->name;
			if ($sele == "true"){
				// Atualizacao do Saldo 03/08/12
				$sql = "select maxconnections from csp_user where idempresa='$acesso_idempresa' and id='$idcliente' and name='$csplogin'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$qtde = $registro->MAXCONNECTIONS;
				$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $qtde, 'add');
				// Final da atualizacao
				
				$del1= "update csp_user set del='SIM' where idempresa='$acesso_idempresa' and name='$csplogin'";
				$con->banco->Execute($del1);				
				$sql = "select count(name) as qtde from csp_user where idempresa='$acesso_idempresa' and id='$idcliente' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				if ($registro->QTDE <= 0){
					$del2= "update financeiro set del='SIM' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";
					$del3= "update provedor set del='SIM' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";
					$con->banco->Execute($del2);
					$con->banco->Execute($del3);
					$auditor="insert into auditor (idusuario, tabela, idregistro, descricao, origem, ip) values ('$acesso_idusuario', 'csp_user', '$idcliente', '$cspname', 'sistema', '$ip')";
					$con->banco->Execute($auditor);				
				}
				$n++;
			}			
		}
		return $n;
		}
		 }
	 }


//manutencao_acesso
	  function valida_acesso(){
		    $con = new conexao();
			$sql = "select * from serial";				
			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'] = "";
			$i = 0;
			$registro = $resultado->FetchNextObject();
			$sn=$registro->SERIAL;
			$sn_d=decripta($sn);
			$sn_txt = explode("|", $sn_d);
			$IPS=$sn_txt[3];
			$VLS=$sn_txt[2];				
			$datadmy=dmy($registro->DATA);
			$vls=substr($VLS,6,4) ."/". substr($VLS,3,2) ."/". substr($VLS,0,2);				
			$alerta=substr($VLS,6,4) ."/". substr($VLS,3,2) ."/". (substr($VLS,0,2) - 5);
			$dados_bd['dados'][0]['Nome']	  = $sn_txt[0];
			$dados_bd['dados'][0]['Contato']  = $registro->CONTATO;
			$dados_bd['dados'][0]['Data']     = $registro->DATA;
			$dados_bd['dados'][0]['Data2']    = $datadmy;
			$dados_bd['dados'][0]['IP']       = $registro->IP;
			$dados_bd['dados'][0]['IPSerial'] = (string)$IPS;
			$dados_bd['dados'][0]['ValidoATE']= (string)$vls;
			$dados_bd['dados'][0]['Alerta']   = (string)$alerta;
			$dados_bd['dados'][0]['AlertaV']  = (string)$VLS;
			$dados_bd['dados'][0]['Serial']   = (string)$sn;
			$dados_bd['dados'][0]['SO']       = (string)$sn_txt[4];
			$dados_bd['dados'][0]['Value']    = $sn_txt[5];
			$dados_bd['dados'][0]['Temp']     = $registro->TEMP;
			return $dados_bd;
	  }
	  


//manutencao_banco
		  function filtra_grid_banco($acesso_idempresa, $acesso_idusuario, $filtro){
			    $con = new conexao();
				$sql = "select banco.*, boletophp.boletophp from banco, boletophp where banco.boletophp = boletophp.boletophp and banco.idrevendedor = '$acesso_idusuario' and banco.idempresa='$acesso_idempresa'";
				if ($filtro <> ""){
					$sql .= " and banco.descricao like '$filtro%'";
				}
				$sql .= " order by banco.conta DESC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['agencia']   = $registro->AGENCIA;
	 				 $dados_bd['dados'][$i]['conta']     = $registro->CONTA;
					 $dados_bd['dados'][$i]['dv']        = $registro->DV;
					 $dados_bd['dados'][$i]['praca']     = $registro->PRACA;
					 $dados_bd['dados'][$i]['byte']      = $registro->BYTE;
					 $dados_bd['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $dados_bd['dados'][$i]['titular']   = $registro->TITULAR;
					 $dados_bd['dados'][$i]['cidade']    = $registro->CIDADE;
					 $dados_bd['dados'][$i]['uf']        = $registro->UF;
					 $dados_bd['dados'][$i]['tx']        = $registro->TXBANCARIA;
					 $dados_bd['dados'][$i]['juros']     = $registro->JUROS;
					 $dados_bd['dados'][$i]['desconto']  = $registro->DESCONTO;
					 $dados_bd['dados'][$i]['mora']      = $registro->MORA;
					 $dados_bd['dados'][$i]['situacao']  = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['boletophp'] = $registro->BOLETOPHP;
					 $dados_bd['dados'][$i]['emiteboleto'] = $registro->EMITEBOLETO;
					 $i++;
				}
				return $dados_bd;
		  }
		  
  		  function grava_banco($acesso_idempresa, $acesso_idusuario, $boletophp, $agencia, $conta, $dv, $praca, $byte, $descricao, $titular, $cidade, $uf, $txbancaria, $desconto, $juros, $mora, $situacao, $emiteboleto, $hash){			     
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
				if ($valida == "ok"){
			    $con = new conexao();
				$sql_existe="select * from banco where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and conta='$conta'";
				$verifica = $con->banco->Execute($sql_existe);
				$existe=$verifica->FetchNextObject();
				$existe_cc=$existe->CONTA;
				if ($existe_cc == ""){
					$sql = "insert into banco (idempresa, idrevendedor, boletophp, agencia, conta, dv, praca, byte, descricao, titular, cidade, uf, txbancaria, desconto, juros, mora, situacao, emiteboleto) values ('$acesso_idempresa', '$acesso_idusuario', '$boletophp', '$agencia', '$conta', '$dv', '$praca', '$byte', '$descricao', '$titular', '$cidade', '$uf', '$txbancaria', '$juros', '$desconto', '$mora', '$situacao', '$emiteboleto')";
				} else {
					$sql = "update banco set boletophp='$boletophp', agencia='$agencia', conta='$conta', dv='$dv', praca='$praca', byte='$byte', descricao = '$descricao', titular='$titular', cidade='$cidade', uf='$uf', txbancaria='$txbancaria', desconto='$desconto', juros='$juros', mora='$mora', emiteboleto='$emiteboleto' where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and conta='$conta'";		
				}
				$filtro="";
				$resultado = $con->banco->Execute($sql);
				$dados_bd = $this->filtra_grid_banco($acesso_idempresa, $acesso_idusuario, $filtro);
				return $dados_bd;
				}
		  }

  		  function filtra_sel_boletophp(){
			    $con = new conexao();
				$sql = "select * from boletophp where situacao='Ativo'";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['boletophp'] = $registro->BOLETOPHP;
					 $i++;
				}
				return $dados_bd;
		  }


//manutencao_cliente
		  function filtra_grid_cliente($acesso_idempresa, $acesso_idrevendedor, $acesso_admin, $nome, $email, $csplogin, $cspvalidoi, $cspvalidof, $situacao, $idprofile, $filtraCSP, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa,"");
			  if ($valida == "ok"){
				$con = new conexao();
				$sql = "select provedor.*, plano.descricao as plano, usuario.login from provedor, plano, usuario where provedor.idempresa='$acesso_idempresa' and provedor.idplano = plano.idplano and provedor.idrevendedor = usuario.idusuario and provedor.idrevendedor='$acesso_idrevendedor' and provedor.del='NAO' and provedor.revendedor='NAO' and provedor.clienteteste='0'";
				if ($situacao <> ""){
				 	$sql .= " and provedor.situacao='$situacao'";	
				}
				if ($nome <> ""){
					$sql .= " and provedor.nome like '$nome%'";
				}				
				if ($email <> ""){
					$sql .= " and provedor.email like '$email%'";
				}
				if ($filtraCSP <> "" && $filtraCSP == "true"){
					$sql .= " and provedor.idprovedor in (select id from csp_user where idempresa='$acesso_idempresa'";
					if ($csplogin <> ""){
						$sql .= "  and name like '$csplogin%'";	
					}
					if ($cspvalidoi <> "" && $cspvalidof <> ""){
						$cspvalidoI=ymd($cspvalidoi);
						$cspvalidoF=ymd($cspvalidof);
						$sql .= " and expiredate between '$cspvalidoI' and '$cspvalidoF'";
					}
					if ($idprofile <> "" && $idprofile <> "0"){
						$sql .= "  and idprofile='$idprofile'";
					}
					$sql .= " and del='NAO')";
				}
				$sql .= " order by nome ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'][0] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject()) {
					 if ($registro->GERARMENSALIDADE == "1"){
						 $isento = "Nao";
					 } else {
						 $isento = "Sim"; 
					 }
					 if ($registro->CLIENTETESTE == 0){
						 $teste = "NAO";
					 } else {
						$teste = "SIM";
					 }
					 $dados_bd['dados'][$i]['idprovedor']    = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']          = $registro->NOME;
					 $dados_bd['dados'][$i]['diavencimento'] = $registro->DIAVENCIMENTO;
					 $dados_bd['dados'][$i]['email']         = $registro->EMAIL;
					 $dados_bd['dados'][$i]['situacao']      = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['plano']         = $registro->PLANO;
					 $dados_bd['dados'][$i]['Dsituacao']     = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['endereco']      = $registro->ENDERECO;
					 $dados_bd['dados'][$i]['telefone']      = $registro->TELEFONE;
					 $dados_bd['dados'][$i]['celular']	     = $registro->CELULAR;
					 $dados_bd['dados'][$i]['revendedor']	 = $registro->LOGIN;
					 $dados_bd['dados'][$i]['idusuario']	 = $registro->IDUSUARIO;
					 $dados_bd['dados'][$i]['isento']		 = $isento;
					 $dados_bd['dados'][$i]['teste']		 = $teste;
					 $dados_bd['dados'][$i]['cspname']		 = "";
					 $sql2 = "select name from csp_user where id = '$registro->IDPROVEDOR' and del='NAO'";
					 $res2 = $con->banco->Execute($sql2);
	 				 while($reg2 = $res2->FetchNextObject()){
	 					 $dados_bd['dados'][$i]['cspname']	 .= "$reg2->NAME ";					 	 
					 }					 
					 $i++;
				}
				return $dados_bd;
			  }
		  }

		  function filtra_grid_csp($acesso_idempresa, $idcliente, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select csp_user.*, profile.descricao as descricaoprofile, profile.profile as profile from csp_user, profile where csp_user.idempresa='$acesso_idempresa' and csp_user.id='$idcliente' and csp_user.idprofile = profile.idprofile and csp_user.del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['id']         = $registro->ID;
 					 $dados_bd['dados'][$i]['seq']        = $registro->SEQ;
					 $dados_bd['dados'][$i]['name']       = $registro->NAME;
					 $dados_bd['dados'][$i]['password']   = $registro->PASSWORD;
					 $dados_bd['dados'][$i]['enabled']    = $registro->ENABLED;
					 $dados_bd['dados'][$i]['expiredate'] = dmy($registro->EXPIREDATE);
 					 $dados_bd['dados'][$i]['idprofile']  = $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']    = $registro->PROFILE;
					 $dados_bd['dados'][$i]['descricao']  = $registro->DESCRICAOPROFILE;
					 $dados_bd['dados'][$i]['maxconnections']    = $registro->MAXCONNECTIONS;
 					 $dados_bd['dados'][$i]['diavcto']    = substr($registro->EXPIREDATE,8,2);
					 
					 $i++;
				}
				return $dados_bd;
			  }
		  }

		  function filtra_sel_profile_usuario_acesso($acesso_idempresa, $acesso_idusuario, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select profile.idprofile, profile.descricao, profile.profile from profile, usuario_profile where usuario_profile.idprofile = profile.idprofile and usuario_profile.idempresa='$acesso_idempresa' and usuario_profile.idusuario = '$acesso_idusuario' and profile.del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprofile'] = $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']   = $registro->PROFILE;
					 $dados_bd['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $i++;
				}
				return $dados_bd;
			  }
		  }
		  
		  function verifica_usuario_conectado($acesso_idempresa, $acesso_idusuario, $user_login, $user_senha){
			$con = new conexao();
			$user_senha = $this->encripta($user_senha);
			// Validando Usuario / Senha do usuario que esta adicionando o cliente
			$sql = "select * from usuario where idempresa='$acesso_idempresa' and login='$user_login' and senha='$user_senha' and situacao='Ativo' and del='NAO'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			if ($registro->NIVEL == ""){
				return "ERRO";
			} else {
				return "OK";
			}
			// final da validacao  
		  }
		  
		  function filtra_sel_plano($acesso_idempresa, $acesso_idusuario){
			   $con = new conexao();
				$sql = "select * from plano where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and del='NAO' and valor >0 and online='NAO' and code='NAO'";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idplano'] = $registro->IDPLANO;
					 $dados_bd['dados'][$i]['plano']   = $registro->DESCRICAO;
					 $i++;
				}
				return $dados_bd;
		  }
  		  function grava_cliente($acesso_idempresa, $acesso_idusuario, $acesso_admin, $user_login, $user_senha, $id_sel_profile, $id_sel_plano, $idcliente, $nome, $email, $diavencimento, $csplogin, $cspsenha, $cspvalido, $situacao, $cspseq, $liberar_acesso_incluir, $check_enviar_email, $endereco, $telefone, $celular, $situacao_cliente, $isento, $cspqtde, $hash){
			  $valida = $this->validaAcessoLogado($hash, "","");
			  if ($valida == "ok"){
			  $csplogin = trim($csplogin);
			  $cspsenha = trim($cspsenha);
			  if (strlen($cspvalido) <> 10){
				  $cspvalido = date('d/m/Y');
			  }
			    $con = new conexao();				
				// Verifica Login / Senha do usuario conectado
				 $usuario_conectado = $this->verifica_usuario_conectado($acesso_idempresa, $acesso_idusuario, $user_login, $user_senha);
				 if ($usuario_conectado == "ERRO"){
					return "NAO_CONFERE"; 
				 }
				// Final da verificacao
				
				//if ($diavencimento == ""){
					$diavencimento = substr($cspvalido,0,2);
				//}

				if ($liberar_acesso_incluir == "VERIFICAR_SALDO_CREDITO"){
					$tipo_retorno = "PREPAGO";
					if ($celular == "Adicionar" || $celular == "Renovar"){
						$saldo = $this->buscaSaldoCredito($acesso_idempresa, $acesso_idusuario,'Pago');
						if ($saldo < $cspqtde){
							return "SALDO_INSUFICIENTE";
						} else {
							$liberar_acesso_incluir = "1";
							$this->descontaCredito($acesso_idempresa, $acesso_idusuario, $cspqtde, $csplogin);
							$cspqtde = 1;
						}
					}
				} else {
					$tipo_retorno = "POSPAGO";	
				}
				
			    $cspvalido=ymd($cspvalido);
				$dedata=dmy($cspvalido);
				if ($cspqtde == ""){
					$cspqtde = 1;	
				}

				// Pegando o Ultimo ID-PROVEDOR + 1
				$sql = "select idprovedor from provedor order by idprovedor DESC limit 1";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$idprovedor = $registro->IDPROVEDOR;
				if ($idprovedor==""){
					$idprovedor=1;
				} else {
					$idprovedor++;
				}
				if ($isento == "true"){
					$isento = "0";
				} else {
					$isento = "1";
				}
				if ($idcliente == ""){
					$sequencia = 1;
				} else {
					$sql="select seq from csp_user where idempresa='$acesso_idempresa' and id='$idcliente' order by seq DESC limit 1";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$sequencia = $registro->SEQ;
					if ($sequencia==""){
						$sequencia=1;
					} else {
						$sequencia++;
					}
				}

				if ($idcliente == "" && $liberar_acesso_incluir=="1"){
					$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, diavencimento, tipo, email, idrevendedor, endereco, telefone, celular, gerarmensalidade) values ('$idprovedor', '$id_sel_plano', '$acesso_idempresa', '$nome', '$diavencimento', 1, '$email', '$acesso_idusuario', '$endereco', '$telefone', '$celular', '$isento')";
				} else {
					$sql_provedor="update provedor set nome='$nome', email='$email', diavencimento='$diavencimento', idplano='$id_sel_plano', endereco='$endereco', telefone='$telefone', celular='$celular', situacao='$situacao_cliente', gerarmensalidade='$isento' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";	
				}
				
				$csplogin = str_replace(" ","",$csplogin); 
				$cspsenha = str_replace(" ","",$cspsenha); 
				if ($cspseq == "" && $liberar_acesso_incluir=="1"){
					if ($idcliente <> ""){
						$idprovedor = $idcliente;
					}
					// Verificando se o Login nao foi excluido, DEL = SIM
					$sql_del="select del from csp_user where name='$csplogin' and idempresa='$acesso_idempresa'";
					$res_del = $con->banco->Execute($sql_del);
					$reg_del = $res_del->FetchNextObject();
					if ($reg_del->DEL=="SIM"){
						$timestamp=date('Y-m-d H:i:s');
						$sql_del = "delete from csp_user where idempresa='$acesso_idempresa' and name='$csplogin'";
						$con->banco->Execute($sql_del);	
					}
					$sql_csp="insert into csp_user (id, name, idempresa, password, displayname, enabled, expiredate, seq, idprofile, maxconnections) values ('$idprovedor', '$csplogin', '$acesso_idempresa', '$cspsenha', '$name', '$situacao', '$cspvalido', '$sequencia', '$id_sel_profile', '$cspqtde')";	
					
					//Atualiza Saldo
					$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $cspqtde, "del");
								
				} else {
					$sqlR="select enabled, expiredate, renovacoes, maxconnections from csp_user where idempresa='$acesso_idempresa' and name='$csplogin'";
					$resultadoR = $con->banco->Execute($sqlR);
					$registroR = $resultadoR->FetchNextObject();
					$renovacoes = $registroR->RENOVACOES;
					$cspvalidoymd=ymd($cspvalido);
					$expiredate=$registroR->EXPIREDATE;
					$expireatual=dmY($expiredate);
					$qtde_anterior = $registroR->MAXCONNECTIONS;
					$enabled_anterior = $registroR->ENABLED;
					$sql_soma = "select sum(maxconnections) as qtde from csp_user where del='NAO' and idempresa='$acesso_idempresa' and id='$idcliente'";
					$resultado_soma = $con->banco->Execute($sql_soma);
					$registro_soma = $resultado_soma->FetchNextObject();						
					$quantidade = $registro_soma->QTDE;
					
					if ($registroR->EXPIREDATE <> $cspvalidoymd){
						$dmyatual=date('d/m/Y');
						$renovacoes .= "#### Em $dmyatual, renovado de $expireatual para $dedata.  ";
					}
					if ($situacao_cliente == "Inativo"){
						if ($enabled_anterior == "Ativo"){
											
							// Atualizando Saldo
							$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $quantidade, "add");
						}
						$sql_csp="update csp_user set situacao='Inativo', enabled='Inativo' where idempresa='$acesso_idempresa' and id='$idcliente'";
					}
					if ($situacao == "Inativo"){
						if ($enabled_anterior == "Ativo"){
							// Atualizando Saldo
							$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $cspqtde, "add");
						}
						$sql_csp="update csp_user set situacao='Inativo', enabled='Inativo' where idempresa='$acesso_idempresa' and name='$csplogin'";
					}
					if ($situacao_cliente == "Ativo"){
						$sql_csp="update csp_user set name='$csplogin', password='$cspsenha', expiredate='$cspvalido', expirehora='2359', enabled='$situacao', idprofile='$id_sel_profile', displayname='$nome', maxconnections='$cspqtde', renovacoes='$renovacoes', situacao='Ativo' where idempresa='$acesso_idempresa' and seq='$cspseq' and id='$idcliente'";
						//if ($qtde_anterior <> $cspqtde){
						//	if ($cspqtde > $qtde_anterior){
						//		$qtde = $cspqtde - $qtde_anterior;
						//		$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $qtde, "del");
						//	} else {
						//		$qtde = $qtde_anterior - $cspqtde;	
						//		$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $qtde, "add");
						//	}
					//	} else {
							if ($enabled_anterior == "Inativo"){
								$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, $cspqtde, "del");
							}
					//	}
					}
				}
				$con->banco->Execute($sql_provedor);
				$con->banco->Execute($sql_csp);
				
				// Atualizando empresa. 12/07/2012
				$this->atualizaEmpresa($acesso_idempresa, $csplogin, $cspvalido);
				// Final da Atualizacao da empresa
				
				// Bloco para Envio de Email
				if ($check_enviar_email == true){
					if ($idcliente == ""){
						$idcliente = $idprovedor;
					}
					$this->enviar_email_dados_conexao($acesso_idempresa, $acesso_idusuario, $email, "", $idcliente);
					
				}				
				if ($tipo_retorno == "PREPAGO"){
					$dados_bd = $this->filtra_grid_csp_user($acesso_idempresa,$acesso_idusuario, "", "", "", $situacao, "false", $hash);
				} else {
					$dados_bd = $this->filtra_grid_cliente($acesso_idempresa, $acesso_idusuario, $acesso_admin, $nome, $email, $csplogin, "","", $situacao_cliente,"0","", $hash);
				}
				return $dados_bd;
			  }
		  }


   		  function excluir_csp($acesso_idempresa, $idcliente, $sequencia, $csplogin, $hash){			 
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){ 
			  	$con = new conexao();
				$sql = "select count(id) as qtde from csp_user where idempresa='$acesso_idempresa' and id='$idcliente' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				if ($registro->QTDE == "1"){
					return 0 ;
				} else {
					// Inicio 03/08/12
					// Atualizar Saldo - Busca revendedor
					$sql = "select idrevendedor from provedor where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$idusuario = $registro->IDREVENDEDOR;
					
					// Atualizar Saldo - Busca qtde maxconnections
					$sql = "select maxconnections from csp_user where idempresa='$acesso_idempresa' and id='$idcliente' and seq='$sequencia' and name = '$csplogin'";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$qtde = $registro->MAXCONNECTIONS;
					//Atualizando Saldo
					$this->atualizaSaldo($acesso_idempresa, $idusuario, $qtde, 'add');
					// Final 03/08/12
										
					$ins="update csp_user set del='SIM' where idempresa = '$acesso_idempresa' and id='$idcliente' and seq='$sequencia' and name='$csplogin'";
					$con->banco->Execute($ins);
					$dados_bd = $this->filtra_grid_csp($acesso_idempresa, $idcliente, $hash);
					return $dados_bd;
				}
			}
		  }
		  
		function liberacao_acesso($acesso_idempresa, $acesso_idusuario, $cspqtde, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$erro = "nao";
			$dados_bd['dados'] = "";
			// Verificando a Quantidade de Logins liberado para a empresa
			$sql = "select limite from empresa where idempresa='$acesso_idempresa'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$qtde_limite_empresa = $registro->LIMITE;
			if ($qtde_limite_empresa > 0){
				$qtde_logins_empresa = $this->conta_qtde_login($acesso_idempresa, 0) + $cspqtde;
				if ($qtde_logins_empresa >= $qtde_limite_empresa){
					$erro = "sim";
					$dados_bd['dados'][0]['INCLUSAO'] = "0";
					$dados_bd['dados'][0]['limite_permitidos'] = $qtde_limite_empresa;
					$dados_bd['dados'][0]['total_logins'] = $qtde_logins_empresa;
					$dados_bd['dados'][0]['ERRO'] = "EMPRESA_EXCEDEU_LIMITE_CONTRATADO";
					return $dados_bd;
				}
			}
			$saldo = $this->verificaSaldo($acesso_idempresa, $acesso_idusuario, $cspqtde);
			if ($saldo == 0){
				$dados_bd['dados'][0]['INCLUSAO'] = "0";
				$erro = "sim";
				$dados_bd['dados'][0]['limite_permitidos'] = $limite_permitido;
				$dados_bd['dados'][0]['total_logins'] = $total_clientes;
				$dados_bd['dados'][0]['total_revenda'] = $qtde_revendedor;
				$dados_bd['dados'][0]['total_subrevenda'] = $qtde_subrevendedor;							
				$dados_bd['dados'][0]['ERRO'] = "REVENDEDOR_EXCEDEU_LIMITE_CONTRATADO";
				return $dados_bd;
			}
			if ($erro == "nao"){
				$dados_bd['dados'][0]['INCLUSAO'] = "1";
				return $dados_bd;	
			}
			}
		}		  
		
		function verifica_login($acesso_idempresa, $csplogin, $idprovedor, $sequencia, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
		    $con = new conexao();
			$sql_limite_empresa="select limite from empresa where idempresa='$acesso_idempresa'";
			$resultado = $con->banco->Execute($sql_limite_empresa);
			$registro = $resultado->FetchNextObject();
			$limite_empresa=$registro->LIMITE;
			
			if ($limite_empresa <> "0"){
				$sql_qtde_empresa="select count(name) as qtde from csp_user where idempresa='$acesso_idempresa' and del='NAO' and id not in (select idprovedor from provedor where idempresa='$acesso_idempresa' and (clienteteste=1 or clienteteste=2))";
				$resultado = $con->banco->Execute($sql_qtde_empresa);
				$registro = $resultado->FetchNextObject();
				$qtde_empresa=$registro->QTDE;
				if ($qtde_empresa > $limite_empresa){
					return "Limite_excedido_empresa";
				}
			}

			$sql = "select id, seq, del from csp_user where idempresa='$acesso_idempresa' and name='$csplogin' and del='NAO'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$id  = $registro->ID;
			if ($sequencia == ""){
				if ($id==""){
					return 0;
				} else {
					if ($id == $idcliente){
						return 0;
					} else {
						return 1;
					}
				}
			} else {
				if ($sequencia == $registro->SEQ){
					return 0;
				} else {
					return 1;	
				}
			}
			}
		}
		

		function verifica_login_teste($acesso_idempresa, $acesso_idusuario, $csplogin, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
		    $con = new conexao();			
			$saldo = $this->verificaSaldo($acesso_idempresa, $acesso_idusuario, 1);
			if ($saldo == 0){
				return "ERRO_SALDO";
			}
			
			$sql_limite_empresa="select limiteteste, nivel from usuario where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario'";
			$resultado = $con->banco->Execute($sql_limite_empresa);
			$registro = $resultado->FetchNextObject();
			$limite_teste=$registro->LIMITETESTE;
			$nivel=$registro->NIVEL;
			
			if ($nivel == "ADMIN"){
				$OK = "SIM";
			} else {
				if ($limite_teste == 0){
					$OK = "SIM";
				}				
				if ($limite_teste > 0){
					$dataatual = date('Y-m-d');					
					$sql = "select count(maxconnections) as qtde from csp_user where idempresa='$acesso_idempresa' and criadoem like '$dataatual%' and id in (select idprovedor from provedor where idempresa='$acesso_idempresa' and clienteteste=1 and idrevendedor in (select idusuario from usuario where idempresa='$acesso_idempresa' and (idrevendedor = '$acesso_idusuario' or idusuario='$acesso_idusuario')))";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$qtde = $registro->QTDE;
					if ($qtde >= $limite_teste){
						$OK = "ERRO_REVENDEDOR";
					} else {
						if ($nivel == "SUBREVENDEDOR"){
							$sql = "select count(maxconnections) as qtde from csp_user where idempresa='$acesso_idempresa' and criadoem like '$dataatual%' and id in (select idprovedor from provedor where idempresa='$acesso_idempresa' and clienteteste=1 and idrevendedor in (select idusuario from usuario where idempresa='$acesso_idempresa' and idusuario = '$acesso_idusuario'))";
							$resultado = $con->banco->Execute($sql);
							$registro = $resultado->FetchNextObject();
							$qtde = $registro->QTDE;
							if ($qtde >= $limite_teste){
								$OK = "ERRO_SUBREVENDEDOR";
							} else {
								$OK = "SIM";
							}
						} else {
							$OK = "SIM";
						}
					}
				}
				
			}
			if ($OK == "ERRO_REVENDEDOR"){
				return 1;
			}
			if ($OK == "ERRO_SUBREVENDEDOR"){
				return 2;
			}
			if ($OK == "SIM"){
				$sql = "select name from csp_user where idempresa='$acesso_idempresa' and name='$csplogin' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$existe = $registro->NAME;
				if ($existe == ""){
					return 0;
				} else {
					return 9;	
				}
			}
			}
		}

/* *************************************************		
	  function dados_relatorio_validade($acesso_idempresa, $acesso_idusuario, $nome, $email, $csplogin, $cspvalidoi, $cspvalidof){
		  	session_start();
			$con = new conexao();
			$sql = "select csp_user.*, provedor.nome, profile.descricao as profile from csp_user, provedor, profile where csp_user.id = provedor.idprovedor and csp_user.idprofile = profile.idprofile and csp_user.idempresa='$acesso_idempresa' and provedor.idrevendedor = '$acesso_idusuario' and provedor.clienteteste=0 and provedor.gerarmensalidade = 1 and csp_user.del='NAO'";
			if ($nome <> ""){
				$sql .= " and provedor.nome like '$nome%'";
			}				
			if ($email <> ""){
				$sql .= " and provedor.email like '$email%'";
			}
			if ($csplogin <> ""){
				$sql .= " and csp_user.name like '$csplogin%'";	
			}
			if ($cspvalidoi <> "" && $cspvalidof <> ""){
				$cspvalidoI=ymd($cspvalidoi);
				$cspvalidoF=ymd($cspvalidof);
				$sql .= " and csp_user.expiredate between '$cspvalidoI' and '$cspvalidoF'";
			}
			$sql .= " order by csp_user.expiredate ASC";
			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			
			$pdf = new MeuPDF('L'); 
			$pdf->Open();
      		$pdf->AddPage();						
      		$pdf->SetX(-10);
      		$pdf->line(10, 25, $pdf->GetX(), 25);
      		$pdf->SetXY(10, 27);
      		$pdf->SetFont('Arial', '', 12); 	 		
			
			while($registro = $resultado->FetchNextObject())
			{	
			 $validade	= dmy($registro->EXPIREDATE);
			 $pdf->Cell(40, 5, $validade, 0, 0);
			 $pdf->Cell(60, 5, $registro->NAME, 0, 0);
			 $pdf->Cell(40, 5, $registro->PROFILE, 0, 0);
			 $pdf->Cell(50, 5, $registro->NOME, 0, 1);
			 $i++;
			}

      	$arquivo = "/tmp/relatorio_".session_id().".pdf";
		$arquivo_completo = dirname(__FILE__)."$arquivo";
		$pdf->Output( $arquivo_completo,'F' );
		return $arquivo;
	  }
*/
//manutencao_cliente_teste
		  function filtra_grid_cliente_teste($acesso_idempresa, $acesso_idusuario, $nome, $csplogin, $email, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select provedor.idprovedor, provedor.nome, provedor.email, csp_user.*, profile.profile as profile from provedor, csp_user, profile  where provedor.idempresa='$acesso_idempresa' and provedor.idrevendedor='$acesso_idusuario' and provedor.idprovedor = csp_user.id and csp_user.idprofile = profile.idprofile and provedor.del='NAO' and csp_user.del='NAO' and (provedor.clienteteste=1 or provedor.clienteteste=2)";
				if ($nome <> ""){
					$sql .= " and nome like '$nome%'";
				}				

				if ($csplogin <> ""){
					$sql .= " and csp_user.name like '$csplogin%'";	
				}
				
				if ($email <> ""){
					$sql .= " and provedor.email like '$email%'";
				}

				$sql .= " order by provedor.idprovedor DESC";
				$resultado = $con->banco->Execute($sql);
				$i = 0;
				$dados_bd['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject()){
					 $dados_bd['dados'][$i]['idprovedor'] = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']       = $registro->NOME;
					 $dados_bd['dados'][$i]['name']       = $registro->NAME;
					 $dados_bd['dados'][$i]['password']   = $registro->PASSWORD;
					 $dados_bd['dados'][$i]['expiredate'] = dmy($registro->EXPIREDATE);
					 $dados_bd['dados'][$i]['expirehora'] = $registro->EXPIREHORA;
					 $dados_bd['dados'][$i]['profile']    = $registro->PROFILE;
					 $dados_bd['dados'][$i]['enabled']    = $registro->ENABLED;
					 $dados_bd['dados'][$i]['situacao']   = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['email'] 	  = $registro->EMAIL;
					 $i++;
				}
				return $dados_bd;
			  }
		  }


		  function filtra_grid_cliente_code($acesso_idempresa, $acesso_idusuario, $nome, $email, $datai, $dataf, $ativado, $idrevenda, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select provedor.idprovedor, provedor.nome, provedor.email, csp_user.*, profile.profile as profile, plano.idplano, plano.descricao as planodescricao, plano.qtde as tempo from provedor, csp_user, profile, plano where provedor.idempresa='$acesso_idempresa' and provedor.idrevendedor='$idrevenda' and provedor.idprovedor = csp_user.id and csp_user.idprofile = profile.idprofile and provedor.del='NAO' and provedor.clienteteste=3 and provedor.idplano = plano.idplano";
				if ($nome <> ""){
					$sql .= " and provedor.nome like '$nome%'";
				}				

				if ($email <> ""){
					$sql .= " and provedor.email like '$email%'";
				}	

				if ($datai <> "" and $dataf <> ""){
					$dataI = ymd($datai);
					$dataF = ymd($dataf);
					$sql .= " and provedor.criadoem between '$dataI%' and '$dataF%'";	
				}
				if ($ativado == false){
					$sql .= " and csp_user.dataativacao = '0000-00-00'";
				} else {
					$sql .= " and csp_user.dataativacao <> '0000-00-00'";	
				}
				
				$resultado = $con->banco->Execute($sql);
				$i = 0;
				$dados_bd['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject()){
					$ok = 0;
					$dataativacao = $registro->DATAATIVACAO;					
					$dados_bd['dados'][$i]['idprovedor'] = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']       = $registro->NOME;
					 if ($dataativacao == "0000-00-00"){
						 $dados_bd['dados'][$i]['name']       = "";
	 					 $dados_bd['dados'][$i]['password']   = "";
						 $dados_bd['dados'][$i]['ativado']    = "NAO";
						 $dados_bd['dados'][$i]['expiredate'] = "";
						 $dados_bd['dados'][$i]['expirehora'] = "";
						 $dados_bd['dados'][$i]['dataativacao'] = "";
					 } else {
						 $dados_bd['dados'][$i]['name']       = $registro->NAME;
	 					 $dados_bd['dados'][$i]['password']   = $registro->PASSWORD;
						 $dados_bd['dados'][$i]['ativado']   = dmy($registro->DATAATIVACAO);
						 $dados_bd['dados'][$i]['expiredate'] = dmy($registro->EXPIREDATE);
						 $dados_bd['dados'][$i]['expirehora'] = $registro->EXPIREHORA;
						 $dados_bd['dados'][$i]['dataativacao'] = dmy($registro->DATAATIVACAO);
					 }
					 $dados_bd['dados'][$i]['profile']    = $registro->PROFILE;
					 $dados_bd['dados'][$i]['enabled']    = $registro->ENABLED;
					 $dados_bd['dados'][$i]['situacao']   = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['email'] 	  = $registro->EMAIL;
					 $dados_bd['dados'][$i]['code'] 	  = $registro->CODE;
					 $dados_bd['dados'][$i]['criadoem']   = $registro->CRIADOEM;					 
					 $dados_bd['dados'][$i]['idplano']   = $registro->IDPLANO;
					 $dados_bd['dados'][$i]['plano']   = $registro->PLANODESCRICAO;
					 $dados_bd['dados'][$i]['tempo']   = $registro->TEMPO;
					 $i++;
				}
				return $dados_bd;
			  }
		  }


		  
		
  		  function grava_cliente_teste($acesso_idempresa, $acesso_idusuario, $idcliente, $id_sel_profile, $nome, $csplogin, $cspsenha, $cspvalido, $idplano, $email, $csphora, $enviar_email, $hash){
			  
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				if ($valida == "ok"){
			  if ($idcliente == ""){
				$diavencimento = substr($cspvalido,0,2);
			    $cspvalido=ymd($cspvalido);
			    $con = new conexao();
				// Pegando o Ultimo ID-PROVEDOR + 1
				$sql = "select idprovedor from provedor order by idprovedor DESC limit 1";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$idprovedor = $registro->IDPROVEDOR;
				if ($idprovedor==""){
					$idprovedor=1;
				} else {
					$idprovedor++;
				}
				//$diavencimento=date('d');
				
				$sql="select id, del from csp_user where name='$csplogin' and idempresa='$acesso_idempresa'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$id = $registro->ID;				
				if ($id == ""){
					$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, diavencimento, tipo, idrevendedor,clienteteste, email) values ('$idprovedor', '$idplano', '$acesso_idempresa', '$nome', '$diavencimento', 1, '$acesso_idusuario',1, '$email')";
					$sql_csp="insert into csp_user (id, name, idempresa, password, displayname, enabled, expiredate, expirehora, seq, idprofile) values ('$idprovedor', '$csplogin', '$acesso_idempresa', '$cspsenha', '$nome', 'Ativo', '$cspvalido', $csphora, 1, '$id_sel_profile')";
				} else {
					if ($registro->DEL == "SIM"){
						$criadoem= date ('Y-m-d H:i:s');
						$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, diavencimento, tipo, idrevendedor, clienteteste, email) values ('$idprovedor', '$idplano', '$acesso_idempresa', '$nome', '$diavencimento', 1, '$acesso_idusuario',1, '$email')";
						$sql_csp="update csp_user set id='$idprovedor', password='$cspsenha', displayname='$nome', enabled='Ativo', expiredate='$cspvalido', seq='1', idprofile='$id_sel_profile', del='NAO', criadoem='$criadoem' where id='$id' and name='$csplogin'";
					}										
				}
				$con->banco->Execute($sql_provedor);
				$con->banco->Execute($sql_csp);
				if ($enviar_email == "true"){
					$this->enviar_email_dados_conexao($acesso_idempresa, $acesso_idusuario, $email, "", $idprovedor);
				}
				$nome=""; $csplogin="";
				return $this->filtra_grid_cliente_teste($acesso_idempresa, $acesso_idusuario, $nome, $csplogin, $hash);
			  }
				}
		  }

  		  function grava_cliente_code($acesso_idempresa, $acesso_idusuario, $idprofile, $nome, $email, $enviar_email, $qtde, $idplano, $teste, $hash){			
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				if ($valida == "ok"){
				$n = 0;
		    	$con = new conexao();
				$sql_teste = "select * from parametros where parametros.idempresa='$acesso_idempresa'";
			$resultado_teste = $con->banco->Execute($sql_teste);
			$registro_teste = $resultado_teste->FetchNextObject();
			$id_teste = $registro_teste->IDPLANO_TESTE;
			
				$sql = "select * from plano where idplano='$idplano' and idempresa='$acesso_idempresa'";			
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$tempo = $registro->QTDE;	
				if ($teste == true){
					$testeSN = "SIM";
				//	$try = "3";
					$id_plano = $id_teste;
				}
				if ($teste == false){
					$testeSN = "NAO";
				//	$try = "4";
					$id_plano = $idplano;
				}

				while ($n < $qtde){
					$n++;
					$csplogin = RandomPass(8);					
					$cspsenha = RandomPass(5);
					$codigo = RandomPass(13);
			    	$cspvalido=date('Y-m-d');
					$csphora = "2359";

					// Pegando o Ultimo ID-PROVEDOR + 1
					$sql = "select idprovedor from provedor order by idprovedor DESC limit 1";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$idprovedor = $registro->IDPROVEDOR;
					if ($idprovedor == ""){
						$idprovedor = 1;
					} else {
						$idprovedor++;
					}
					
					$diavencimento=date('d');
					
					$sql="select id, del from csp_user where name='$csplogin' and idempresa='$acesso_idempresa'";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					$id = $registro->ID;
					$diaatual = date('d/m/Y');
					$code = "$codigo$acesso_idempresa$tempo$diaatual$n$idprofile";
					$code = md5($code);

					if ($id == ""){
						$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, diavencimento, tipo, idrevendedor,clienteteste, email) values ('$idprovedor', '$id_plano', '$acesso_idempresa', '$nome', '$diavencimento', 1, '$acesso_idusuario',3, '$email')";
						$sql_csp="insert into csp_user (id, name, idempresa, password, displayname, enabled, expiredate, expirehora, seq, idprofile, code, qtde,codeteste) values ('$idprovedor', '$csplogin', '$acesso_idempresa', '$cspsenha', '$nome', 'Bloqueado', '$cspvalido', $csphora, 1, '$idprofile', '$code', '$tempo','$testeSN')";
					} else {
						if ($registro->DEL == "SIM"){
							$criadoem= date ('Y-m-d H:i:s');
							$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, diavencimento, tipo, idrevendedor, clienteteste, email) values ('$idprovedor', '$id_plano', '$acesso_idempresa', '$nome', '$diavencimento', 1, '$acesso_idusuario',3, '$email')";
							$sql_csp="update csp_user set id='$idprovedor', password='$cspsenha', displayname='$nome', enabled='Ativo', expiredate='$cspvalido', seq='1', idprofile='$idprofile', del='NAO', criadoem='$criadoem', code='$code', qtde='$tempo', codeteste='$testeSN' where id='$id' and name='$csplogin'";
						}										
					}
					$con->banco->Execute($sql_provedor);
					$con->banco->Execute($sql_csp);
					if ($enviar_email == "true"){
						$this->enviar_email_dados_code($acesso_idempresa, $acesso_idusuario, $email, "", $idprovedor);
					}
			
				  }
				}
			 return $this->filtra_grid_cliente_code($acesso_idempresa, $acesso_idusuario, "","","","",false,$acesso_idusuario,$hash);
			 }
			 
			 function excluir_csp_code($acesso_idempresa, $acesso_idusuario, $idcliente, $code, $hash){			  
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
				if ($valida == "ok"){
			    $con = new conexao();
				$nome="";
				$del1="update csp_user set del='SIM' where idempresa = '$acesso_idempresa' and id='$idcliente' and seq='1' and code='$code' and id in (select idprovedor from provedor where clienteteste=3 and idprovedor='$idcliente')";
				$del2="update provedor set del='SIM' where idempresa = '$acesso_idempresa' and idprovedor='$idcliente' and clienteteste=3";
				$con->banco->Execute($del1);
				$con->banco->Execute($del2);
				$nome=""; $csplogin="";
				return $this->filtra_grid_cliente_teste($acesso_idempresa, $acesso_idusuario, $nome, $csplogin, $hash);
				}
		  }




   		  function excluir_csp_teste($acesso_idempresa, $acesso_idusuario, $idcliente, $csplogin, $hash){			  
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
				if ($valida == "ok"){
			    $con = new conexao();
				$nome="";
				$del1="update csp_user set del='SIM' where idempresa = '$acesso_idempresa' and id='$idcliente' and seq='1' and name='$csplogin' and id in (select idprovedor from provedor where (clienteteste=1 or clienteteste=2) and idprovedor='$idcliente')";
				$del2="update provedor set del='SIM' where idempresa = '$acesso_idempresa' and idprovedor='$idcliente' and clienteteste=1";
				$con->banco->Execute($del1);
				$con->banco->Execute($del2);
				$nome=""; $csplogin="";
				return $this->filtra_grid_cliente_teste($acesso_idempresa, $acesso_idusuario, $nome, $csplogin, $hash);
				}
		  }

		function parametros($acesso_idempresa){
			$con = new conexao();
			$sql = "select parametros.*, empresa.email from parametros, empresa where parametros.idempresa='$acesso_idempresa' and parametros.idempresa = empresa.idempresa";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$dados_bd['dados'] = "";
   		    $dados_bd['dados'][0]['idplano_teste'] 		= $registro->IDPLANO_TESTE;
			$dados_bd['dados'][0]['tempo_teste']   		= $registro->TEMPO_TESTE;
			$dados_bd['dados'][0]['idplano_revendedor'] = $registro->IDPLANO_REVENDEDOR;
			$dados_bd['dados'][0]['descricao_boleto']	= $registro->DESCRICAO_BOLETO;
			$dados_bd['dados'][0]['cliente_add']		= $registro->CLIENTE_ADD;
			$dados_bd['dados'][0]['permite_excluir']	= $registro->PERMITE_EXCLUIR;
			$dados_bd['dados'][0]['email_empresa']		= $registro->EMAIL;
			$dados_bd['dados'][0]['bloqueia_revendedor_vencido']	= $registro->BLOQUEIA_REVENDEDOR_VENCIDO;
			$dados_bd['dados'][0]['plano_profile']		= $registro->PLANO_PROFILE;
			return $dados_bd;
		}

		public function filtra_plano_profile($acesso_idempresa, $acesso_idusuario, $idplano, $idprofile, $online){
			$con = new conexao();
			$sql = "select plano.*, plano_profile.*, profile.profile from plano, plano_profile, profile where plano_profile.idprofile = profile.idprofile and plano_profile.idempresa = '$acesso_idempresa' and plano_profile.idusuario='$acesso_idusuario' and plano_profile.idplano = plano.idplano and plano.del='NAO'";
			if ($idplano <> ""){
				$sql .= "  and plano_profile.idplano = '$idplano'";
			}
			if ($online <> ""){
				$sql .= "  and plano.online = '$online'";
			}
			if ($idprofile <> ""){
				$sql .= " and plano_profile.idprofile = '$idprofile'";
			}
			$resultado = $con->banco->Execute($sql);
			$i = 0;
			$dados_bd['dados'][$i] = "";
			while($registro = $resultado->FetchNextObject()) {
				$dados_bd['dados'][$i]['idprofile'] = $registro->IDPROFILE;
				$dados_bd['dados'][$i]['idplano']   = $registro->IDPLANO;
				$dados_bd['dados'][$i]['idusuario'] = $registro->IDUSUARIO;
				$dados_bd['dados'][$i]['profile']   = $registro->PROFILE;
				$dados_bd['dados'][$i]['descricao'] = $registro->DESCRICAO;
				$dados_bd['dados'][$i]['valor']     = $registro->VALOR;
				$dados_bd['dados'][$i]['tempo']     = $registro->QTDE;
				$dados_bd['dados'][$i]['online']    = $registro->ONLINE;
				$i++;
			}
			return $dados_bd;
		}
		public function del_plano_profile($acesso_idempresa, $acesso_idusuario, $idplano, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$sql = "delete from plano_profile where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario' and idprofile='$idprofile' and idplano='$idplano'";
			$con->banco->Execute($sql);
			$dados_bd =  $this->filtra_plano_profile($acesso_idempresa, $acesso_idusuario, "","","");
			return $dados_bd;
			}
		}

		public function add_plano_profile($acesso_idempresa, $acesso_idusuario, $idplano, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$sql = "select idprofile from plano_profile where idempresa='$acesso_idempresa' and idusuario = '$acesso_idusuario' and idplano='$idplano' and idprofile = '$idprofile'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			if ($registro->IDPROFILE == ""){
				$sql = "insert into plano_profile (idempresa, idusuario, idplano, idprofile) values ('$acesso_idempresa', '$acesso_idusuario', '$idplano', '$idprofile')";
				$con->banco->Execute($sql);
				$dados_bd =  $this->filtra_plano_profile($acesso_idempresa, $acesso_idusuario, $idplano,"","");
				return $dados_bd;
			} else {
				return "JaExiste";
			}
			}
		}
		
		function expireTeste($acesso_idempresa){
			$d_dados=$this->parametros($acesso_idempresa);  
			date_default_timezone_set ('America/Sao_Paulo');
			$dia = date('d');
			$mes = date('m');
			$ano = date('Y');
			$hora = date('H');
			$minuto = date('i');
			foreach ($d_dados as $value){
				foreach ($value as $dados){
					if ($dados['tempo_teste'] < 24){
						
						$hora = $hora + $dados['tempo_teste'];
						if ($hora >= 24){
							$hora = $hora - 24;
							$dia++;
						}
					}
					if ($dados['tempo_teste'] == 24){
						$dia = $dia + 1;
					}
					if ($dados['tempo_teste'] > 24){
					$hour = $dados['tempo_teste'];
					$d = floor($hour / 24);
					$hour %= 24;
					$hora = $hora + $hour;
					$dia = $dia + $d;
					
				//	$dataatual = date('d-m-Y H:i:s');
				//	$data = date($dataatual, strtotime('+8 hour'));
				//	$dia = $d;
				//	$hora = $h;
				
			//		($dados['tempo_teste'])/24;										
			//		$dias = substr($diac,0,2);
			//		$horaporc = substr($diac,4,2);
			//		$horacert = $horasporc*24; 
			//			$dia = $dia + $dias;
			//			$horaok = $hora + $horacert;
					}
					}
					}
		
			if ($dia > 28 && $mes =="02"){
				$dia = $dia - 28;
				$mes++;	
			}
			if ($dia > 30 && ($mes == "04" || $mes == "06" || $mes == "09" || $mes == "11")){
				$dia = $dia - 30;
				$mes++;	
			}
			if ($dia > 31 && ($mes == "01" || $mes == "03" || $mes == "05" || $mes == "07" || $mes == "08" || $mes == "10" || $mes == "12")){			
				$dia = $dia - 31;
				$mes++;	
			}
			if ($mes > 12){
				$mes = "01";
				$ano++;
			}
			$dia = CompletaComZeros(2,$dia);
			$mes = CompletaComZeros(2,$mes);
			$hora = CompletaComZeros(2,$hora);
			return "$dia/$mes/$ano $hora$minuto";			
		}

		
		function ativar_definitivo($acesso_idempresa, $iduser, $acesso_idusuario, $idcliente, $csplogin, $hash){			
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $iduser);
		//	$valida = "ok";
			if ($valida == "ok"){
			$diaatual=date('d/m/Y');
			$con = new conexao();
			$sql = "select idplano from plano where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and del='NAO' and valor > 0";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$idplano = $registro->IDPLANO;
			
			$sql = "update provedor set clienteteste=0, idplano='$idplano' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";
			$con->banco->Execute($sql);
			$renovacoes = "Cliente Ativado definitivamente em $diaatual .";
			$sql = "update csp_user set renovacoes='$renovacoes' where id='$idcliente' and name='$csplogin'";
			$con->banco->Execute($sql);
			
			// Atualizando Saldo
			$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, 1, 'del');
			// Final da atualizacao
			
			$dados_bd = $this->filtra_grid_cliente_teste($acesso_idempresa, $acesso_idusuario, "", "", $hash);
			return $dados_bd;
			}
		}
		
		// Funcao para Gravar o auto-cadastro do Cliente		
		function grava_cliente_add($acesso_idempresa, $acesso_idusuario, $id_sel_profile, $nome, $email, $csplogin, $cspsenha, $cspvalido, $csphora, $idplano){											
		    $cspvalido=ymd($cspvalido);
		    $con = new conexao();
			$sq = "select idprovedor from provedor where clienteteste=2 and idempresa=1 and email='$email'";
			$resultad = $con->banco->Execute($sq);
			$registr = $resultad->FetchNextObject();
			$id_existe = $registr->IDPROVEDOR;
			$dados_bd['dados_erro'][0] = "";
			if ($id_existe <> ""){
				return "ERRO";
			} else {
				// Pegando o Ultimo ID-PROVEDOR + 1
				$sql = "select idprovedor from provedor order by idprovedor DESC limit 1";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$idprovedor = $registro->IDPROVEDOR;
				if ($idprovedor==""){
					$idprovedor=1;
				} else {
					$idprovedor++;
				}
				if ($csplogin == ""){
					$csplogin = RandomPass(5);
					$cspsenha = date('dm');						
				}
				$diavencimento=date('d');
				$sql_provedor="insert into provedor (idprovedor, idplano, idempresa, nome, email, diavencimento, tipo, idrevendedor,clienteteste) values ('$idprovedor', '$idplano', '$acesso_idempresa', '$nome', '$email', '$diavencimento', 1, '$acesso_idusuario',2)";			
				$sql_csp="insert into csp_user (id, name, idempresa, password, displayname, enabled, expiredate, expirehora, seq, idprofile) values ('$idprovedor', '$csplogin', '$acesso_idempresa', '$cspsenha', '$nome', 'Ativo', '$cspvalido', '$csphora', 1, '$id_sel_profile')";

				$con->banco->Execute($sql_provedor);
				$con->banco->Execute($sql_csp);
				//Enviar por email automaticamente os dados.
				$this->enviar_email_dados_conexao("1", "1", $email, "", $idprovedor);
				return "OK";
			  }
			  
		  }
		function cliente_add_ativar($expire, $idplano, $array_datagrid){
		    $con = new conexao();
			$n=0;
			foreach ($array_datagrid as $value){
				$para=$value->email;				
				$sele=$value->checked;				
				$idcliente=$value->id;
				$expire=ymd($expire);
				if ($sele == "true"){
					$sql_provedor = "update provedor set idplano = '$idplano', clienteteste=0 where idprovedor = '$idcliente'";
					$sql_csp = "update csp_user set expiredate='$expire' where id='$idcliente'";
					$con->banco->Execute($sql_provedor);
					$con->banco->Execute($sql_csp);
					$n++;					
				}
			}
			return $n;
		}
		function cliente_add_excluir($array_datagrid){
		    $con = new conexao();
			$n=0;
			foreach ($array_datagrid as $value){
				$sele=$value->checked;				
				$idcliente=$value->id;
				if ($sele == "true"){
					$sql_csp = "delete from csp_user where id ='$idcliente'";
					$sql_provedor = "delete from provedor where idprovedor = '$idcliente'";
					$con->banco->Execute($sql_csp);
					$con->banco->Execute($sql_provedor);
					$n++;					
				}
			}
			return $n;
		}
			
			
//manutencao_cliente_transacao

		  function filtra_grid_cliente_idcliente($acesso_idempresa, $acesso_idcliente){
				$con = new conexao();
				$sql = "select provedor.*, plano.valor from provedor, plano where provedor.idempresa='$acesso_idempresa' and provedor.idprovedor='$acesso_idcliente' and provedor.idplano = plano.idplano and provedor.del='NAO'";

				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'][0] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprovedor']    = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']          = $registro->NOME;
					 $dados_bd['dados'][$i]['diavencimento'] = $registro->DIAVENCIMENTO;
					 $dados_bd['dados'][$i]['email']         = $registro->EMAIL;
					 $dados_bd['dados'][$i]['situacao']      = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['valor']         = $registro->VALOR;
					 $dados_bd['dados'][$i]['Dsituacao']     = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['endereco']      = $registro->ENDERECO;
					 $dados_bd['dados'][$i]['cidade']	     = $registro->CIDADE;
					 $dados_bd['dados'][$i]['uf']    	     = $registro->UF;
 					 $dados_bd['dados'][$i]['cep']    	     = $registro->CEP;
					 $i++;
				}
				return $dados_bd;

		  }
		  function filtra_grid_cliente_add(){
				$con = new conexao();
				$sql = "select csp_user.*, provedor.email, profile.descricao as profile from csp_user, provedor, profile where csp_user.id = provedor.idprovedor and csp_user.idprofile = profile.idprofile and provedor.clienteteste=2 and csp_user.del='NAO' and csp_user.idempresa='1' order by expiredate ASC";

				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'][0] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['id']			= $registro->ID;
   				     $dados_bd['dados'][$i]['email']        = $registro->EMAIL;
					 $dados_bd['dados'][$i]['login'] 		= $registro->NAME;
					 $dados_bd['dados'][$i]['senha'] 		= $registro->PASSWORD;
					 $dados_bd['dados'][$i]['profile']      = $registro->PROFILE;
					 $dados_bd['dados'][$i]['criadoem']     = $registro->CRIADOEM;
					 $dados_bd['dados'][$i]['validoate']    = dmy($registro->EXPIREDATE);
					 $i++;
				}
				return $dados_bd;
		  }


  		  function altera_cliente_transacao($acesso_idempresa, $acesso_idcliente, $idcliente, $nome, $email, $csplogin, $cspsenha, $cspseq, $endereco, $cidade, $uf, $cep){
			    $con = new conexao();
				$sql_provedor="update provedor set nome='$nome', email='$email', endereco='$endereco', cidade='$cidade', uf='$uf', cep='$cep' where idempresa='$acesso_idempresa' and idprovedor='$idcliente'";	
				$sql_csp="update csp_user set password='$cspsenha', displayname='$nome' where idempresa='$acesso_idempresa' and seq='$cspseq' and name='$csplogin'";	
				$con->banco->Execute($sql_provedor);
				$con->banco->Execute($sql_csp);				
//				$dados_bd = $this->filtra_grid_cliente($acesso_idempresa, $acesso_idcliente);
//				return $dados_bd;
		  }

//manutencao_csp
		function filtra_grid_csp_online($acesso_idempresa, $acesso_idusuario, $admin, $idprofile, $csplogin, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> "" || $cspporta <> 0){
				$dados_plano['dados'] = "";
				$i = 0;
				$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=proxy-users");
				foreach ($xml->children() as $teste1) {
					foreach ($teste1->children() as $teste2) {
						$online_login= (string) $teste2['name'];						
						$sql="select csp_user.id, usuario.login as revendedor from csp_user, provedor, usuario where csp_user.name='$online_login' and csp_user.idempresa='$acesso_idempresa' and csp_user.id = provedor.idprovedor and provedor.idrevendedor = usuario.idusuario and csp_user.del='NAO'";
						if ($admin == 0){
							$sql .= " and provedor.idrevendedor = '$acesso_idusuario'";
						}
						if ($csplogin <> ""){
							$sql .= " and csp_user.name like '$csplogin%'";	
						}
						$resultado = $con->banco->Execute($sql);
						$registro = $resultado->FetchNextObject();
						if ($registro->ID <> ""){
							$online_session= (string)$teste2['sessions'];
							$dados_plano['dados'][$i]['login']  = (string)$online_login;
							$dados_plano['dados'][$i]['session']= (string)$online_session;
							$dados_plano['dados'][$i]['revendedor']=$registro->REVENDEDOR;
							foreach ($teste2->children() as $teste3) {
								$dados_plano['dados'][$i]['ip']= (string)$teste3['host'];
								$online_connected = $teste3['connected'];
								$online_connected=substr($online_connected,0,25);
								$dados_plano['dados'][$i]['conectadoem'] = (string)$online_connected;
								$dados_plano['dados'][$i]['tempo']       = (string)$teste3['duration'];
								$dados_plano['dados'][$i]['last']        = (string)$teste3['last-transaction'];
								$dados_plano['dados'][$i]['lastzap']     = (string)$teste3['last-zap'];
								$dados_plano['dados'][$i]['flags']       = (string)$teste3['flags'];
								$dados_plano['dados'][$i]['avg']         = (string)$teste3['avg-ecm-interval'];
								foreach ($teste3->children() as $teste4) {
									$dados_plano['dados'][$i]['canal'] = (string)$teste4['name'];
									$dados_plano['dados'][$i]['cdata'] = (string)$teste4['cdata'];
								}
							}
						    $i++;
						}
					}
					
				} 
				return $dados_plano;
	  		} else {
			return 0;	
			}
			}
	 	}




  		function captura_reshare($acesso_idempresa, $acesso_idusuario, $admin, $idprofile, $qtde, $tipo, $mediade, $mediaate, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			
			$sql = "delete from reshare where idprofile = '$idprofile'";
			$con->banco->Execute($sql);
			
			if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> ""){
				$dados_plano['dados'] = "";
				$i = 0;
				while ($n <= $qtde){
					$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=proxy-users");
					foreach ($xml->children() as $teste1) {
						foreach ($teste1->children() as $teste2) {
							$online_login= (string) $teste2['name'];
							$online_session= (string)$teste2['sessions'];
							foreach ($teste2->children() as $teste3) {
								$dados_plano['dados'][$i]['ip']= (string)$teste3['host'];
								$online_connected = $teste3['connected'];
								$online_connected=substr($online_connected,0,25);
								$online_zap   = $teste3['last-zap'];
								$online_flags = $teste3['flags'];
								$online_ecm   = $teste3['avg-ecm-interval'];
								foreach ($teste3->children() as $teste4) {
									$canal=$teste4['name'];
									$cdata=$teste4['cdata'];
									$Canal = "$canal - $cdata";
								}
							}
							$diaatualBD=date('Y-m-d');
							$horaatualBD=date('h:i:s');
							$sql="insert into reshare (login, lastzap, flags, ecminterval, canal, data, hora, idprofile) values ('$online_login', '$online_zap', '$online_flags', '$online_ecm', '$Canal', '$diaatualBD', '$horaatualBD', '$idprofile')";
							$con->banco->Execute($sql);
						}
					}
					sleep(5);
					$n++;
				}

				if ($tipo == "Simplificado"){
					return $this->filtra_rel_simples($idprofile, $mediade, $mediaate);
				}
				if ($tipo == "Detalhado"){
					return $this->filtra_rel_detalhado($idprofile, $mediade, $mediaate);
				}

	  		} else {
			return 0;
			}
			}
	 	}

		function captura_ip_online($acesso_idempresa, $acesso_idusuario, $admin, $profile, $Flogin, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$profile = explode(" ",$profile);
			
			$query1 = "CREATE TABLE IF NOT EXISTS `tt` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `profile` varchar(20) NOT NULL,
  `login` varchar(20) NOT NULL,
  `ip` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)) ENGINE=MEMORY AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;";
		$criatt = $con->banco->Execute($query1);
		if (!$criatt){
			return $con->banco->ErrorMsg();
		}
			
			foreach ($profile as $value){
	  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and descricao='$value' and situacao='Ativo'";
				$resultado  = $con->banco->Execute($sql);
				while($registro = $resultado->FetchNextObject()){
					$cspusuario = $this->decripta($registro->USUARIO);
					$cspsenha   = $this->decripta($registro->SENHA);
					$csphost    = $registro->HOST;
					$cspporta   = $registro->PORTACSP;					
					if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> "" || $cspporta > 0){
						$i = 0;
						$dados_plano['dados'][$i]["$value"] = "";
						if ($Flogin == ""){
							$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=proxy-users");
						} else {
							$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=proxy-users&name=$Flogin");
						}
						foreach ($xml->children() as $teste1) {
							foreach ($teste1->children() as $teste2) {
								$online_login= (string) $teste2['name'];
								foreach ($teste2->children() as $teste3) {
									$ip = (string)$teste3['host'];
								}
								$sqltt = "insert into tt (profile, login, ip) values ('$value', '$online_login', '$ip')";
								$exett = $con->banco->Execute($sqltt);
								if (!$exett){
									return $con->banco->ErrorMsg();
								}

//								$dados_plano['dados'][$i]["$value"]['login'] = $online_login;
//								$dados_plano['dados'][$i]["$value"]['ip']    = $ip;
//								$i++;
							}
						}
					}
				}
			}
			$i=0;
			$dados_bd['dados'][$i] = "";
			$sqltt = "select * from tt where  login <> '' group by login";
			$resultado  = $con->banco->Execute($sqltt);
			while($registro = $resultado->FetchNextObject()){
				$val_login   = $registro->LOGIN;
				$sql1 = "select csp_user.id, usuario.login as revendedor from csp_user, usuario, provedor where csp_user.id = provedor.idprovedor and provedor.idrevendedor = usuario.idusuario and csp_user.idempresa='$acesso_idempresa' and csp_user.name = '$val_login' and csp_user.del='NAO'";
				$res1 = $con->banco->Execute($sql1);
				$reg1 = $res1->FetchNextObject();
				if ($reg1->ID <> ""){
					$dados_bd['dados'][$i]['login']		= $val_login;
					$dados_bd['dados'][$i]['ID']		= $reg1->ID;
					$dados_bd['dados'][$i]['revendedor']= $reg1->REVENDEDOR;					
					foreach ($profile as $value){
						$sql2 = "select * from tt where login = '$val_login' and profile = '$value'";
						$res2  = $con->banco->Execute($sql2);
						$reg2 = $res2->FetchNextObject();
						$val_ip = $reg2->IP;
						$dados_bd['dados'][$i]["$value"] = "$val_ip";
					}
					$i++;
				}
			}
			$sqltt = "DROP TABLE IF EXISTS tt";
			$con->banco->Execute($sqltt);
			return $dados_bd;
			}
		}
		
		function bloquearCSPsimples($acesso_idempresa, $idusuario, $login){
			$con = new conexao();
			$sql = "update csp_user set situacao='Bloqueado' where idempresa='$acesso_idempresa' and name='login'";
			$exe = $con->banco->Execute($sql);
			if (!$exe){
				return $con->banco->ErrorMsg();
			} else {
				return "Login bloqueado com sucesso.";	
			}				
		}

		
		
		
		function filtra_rel_simples($idprofile, $mediade, $mediaate){
			$con = new conexao();
			$sql = "select reshare.login, count(reshare.login) as qtde, usuario.nome as revendedor, provedor.nome from reshare, csp_user, provedor, usuario where reshare.login = csp_user.name and csp_user.id = provedor.idprovedor and provedor.idrevendedor = usuario.idusuario and reshare.idprofile='$idprofile' group by reshare.login";
			$resultado  = $con->banco->Execute($sql);
			$dados_plano['dados'] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				$login=$registro->LOGIN;
				$sql2="select avg(ecminterval) as media from reshare where login='$login' and ecminterval > 0 and idprofile='$idprofile'";
				$resultado2  = $con->banco->Execute($sql2);
				$registro2 = $resultado2->FetchNextObject();
				$media=$registro2->MEDIA;
				if ($media >= $mediade && $media <= $mediaate){
					$dados_plano['dados'][$i]['Login']=$registro->LOGIN;
					$dados_plano['dados'][$i]['Revendedor']=$registro->REVENDEDOR;
					$dados_plano['dados'][$i]['Qtde']=$registro->QTDE;
					$dados_plano['dados'][$i]['Media']=$registro2->MEDIA;
					$i++;
				}
			}
			return $dados_plano;
		}
		function filtra_rel_detalhado($idprofile, $mediade, $mediaate){
			$con = new conexao();
			$sql = "select reshare.login, count(reshare.login) as qtde, usuario.nome as revendedor from reshare, csp_user, provedor, usuario where reshare.login = csp_user.name and csp_user.id = provedor.idprovedor and provedor.idrevendedor = usuario.idusuario and reshare.idprofile = '$idprofile' group by reshare.login";
			$resultado  = $con->banco->Execute($sql);
			$dados_plano['dados'] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				$login=$registro->LOGIN;
				$login_qtde=$registro->QTDE;
				$sql2="select avg(ecminterval) as media from reshare where login='$login' and ecminterval > 0 and idprofile='$idprofile'";
				$resultado2  = $con->banco->Execute($sql2);
				$registro2 = $resultado2->FetchNextObject();
				
				$media=$registro2->MEDIA;
				if ($media >= $mediade && $media <= $mediaate){
					$dados_plano['dados'][$i]['0_Login(Qtde)']="$login($login_qtde)";
					$dados_plano['dados'][$i]['1_Revendedor']=$registro->REVENDEDOR;
					$dados_plano['dados'][$i]['2_Media_iV']=$registro2->MEDIA;
					
					$sql3="select flags, count(flags) as qtde from reshare where login='$login' and idprofile='$idprofile' group by flags";
					$resultado3  = $con->banco->Execute($sql3);
					$csp_flag = "";
					while($registro3 = $resultado3->FetchNextObject()){
						$flags = $registro3->FLAGS;
						$qflag = $registro3->QTDE;
						$csp_flag .= "$flags($qflag). "; 
					}
					$dados_plano['dados'][$i]['Flags(qtde)']="$csp_flag";

					$sql3="select ecminterval, count(ecminterval) as qtde from reshare where login='$login' and idprofile='$idprofile' group by ecminterval";
					$resultado3  = $con->banco->Execute($sql3);
					$csp_ecm = "";
					while($registro3 = $resultado3->FetchNextObject()){
						$ecm = $registro3->ECMINTERVAL;
						$qecm = $registro3->QTDE;
						$csp_ecm .= "$ecm($qecm) | "; 
					}
					$dados_plano['dados'][$i]['Tempo iV(qtde)']="$csp_ecm";

					$sql3="select canal, count(canal) as qtde from reshare where login='$login' and idprofile='$idprofile' group by canal";
					$resultado3  = $con->banco->Execute($sql3);
					$csp_canal = "";
					while($registro3 = $resultado3->FetchNextObject()){
						$canal = $registro3->CANAL;
						$qcanal = $registro3->QTDE;
						$csp_canal .= "$canal($qcanal) | "; 
					}
					$dados_plano['dados'][$i]['Canal(qtde)']="$csp_canal";
					$i++;
				}
				
			}
			return $dados_plano;
		}
		
		function filtra_grid_csp_erro($acesso_idempresa, $acesso_idusuario, $admin, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> ""){
				$dados_plano['dados'] = "";
				$i = 0;
				$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=login-failures");
				foreach ($xml->children() as $teste1) {
					foreach ($teste1->children() as $teste2) {
						$erro_login=$teste2['name'];
						$sql="select csp_user.id from csp_user, provedor where csp_user.name='$erro_login' and csp_user.idempresa='$acesso_idempresa' and csp_user.id = provedor.idprovedor and csp_user.del='NAO'";
						if ($admin == 0){
							$sql .= " and provedor.idrevendedor = '$acesso_idusuario'";
						}
						if ($csplogin <> ""){
							$sql .= " and csp_user.name like '$csplogin%'";	
						}
						$resultado = $con->banco->Execute($sql);
						$registro = $resultado->FetchNextObject();
						if ($registro->ID <> ""){
							$dados_plano['dados'][$i]['login'] = (string)$erro_login;
							$dados_plano['dados'][$i]['qtde'] = (string)$teste2['failure-count'];
							$dados_plano['dados'][$i]['host'] = (string)$teste2['host'];
							$erro_ultima=$teste2['last-failure'];
							$erro_ultima=substr($erro_ultima,0,25);
							$dados_plano['dados'][$i]['ultima'] = (string)$erro_ultima;
							$dados_plano['dados'][$i]['motivo'] = (string)$teste2['reason'];
							$i++;
						}
					}
				}
				return $dados_plano;
			} else {
				return 0;	
			}
			}
		}
		
		function apagar_log($acesso_idempresa, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa,"");
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> ""){
				$dados_plano['dados'] = "";
				$i = 0;
				simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=remove-failed");
				$dados_plano['dados'][$i]['login'] = "";
				$dados_plano['dados'][$i]['qtde'] = "";
				$dados_plano['dados'][$i]['host'] = "";
				$dados_plano['dados'][$i]['ultima'] = "";
				$dados_plano['dados'][$i]['motivo'] = "";
				return $dados_plano;
			} else {
				return 0;	
			}
			}
		}
		function filtra_grid_bloqueio($acesso_idempresa, $acesso_idusuario, $oqfazer, $vctoi, $vctof, $vctocspi, $vctocspf, $nome, $email, $login, $situacao, $todos, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$vctoi_bd=ymd($vctoi);
			$vctof_bd=ymd($vctof);
			$vctocspi_bd=ymd($vctocspi);
			$vctocspf_bd=ymd($vctocspf);
		//	$niveln = $this->buscaNiveln($acesso_idempresa, $acesso_idusuario);
		//	$condicao = $this->buscaNivelnTabela($niveln);
			$sql = "select csp_user.name, csp_user.id, csp_user.expiredate, csp_user.enabled, profile.descricao as profile, profile.profile as descricao, provedor.nome, provedor.email, provedor.clienteteste, usuario.login as revendedor from csp_user, profile, provedor, usuario where csp_user.id = provedor.idprovedor and csp_user.idprofile = profile.idprofile and provedor.idempresa = '$acesso_idempresa' and csp_user.del='NAO' and provedor.del='NAO' and provedor.idrevendedor = usuario.idusuario";
			if ($todos == false){
				$sql .= " and provedor.idrevendedor = '$acesso_idusuario'";	
			}
			if ($nome <> ""){
				$sql .= " and provedor.nome like '$nome%'";	
			}
			if ($email <> ""){
				$sql .= " and provedor.email like '$email%'";	
			}
			if ($login <> ""){
				$sql .= " and csp_user.name like '$login%'";	
			}
			if ($vctoi <> "" && $vctof <> "" ){
				$sql .= " and provedor.idprovedor in (select idprovedor from financeiro where datavencimento between '$vctoi_bd' and '$vctof_bd' and situacao='$situacao')";
			}
			if ($vctocspi <> "" && $vctocspf <> "" ){
				$sql .= " and csp_user.expiredate between '$vctocspi_bd' and '$vctocspf_bd'";
			}
			if ($oqfazer == "Bloquear"){
				$sql .= " and csp_user.enabled = 'Ativo'";
			}
			if ($oqfazer == "Desbloquear"){
				$sql .= " and csp_user.enabled = 'Inativo'";
			}
			if ($oqfazer == "Renovar Acesso"){
				$sql .= " and csp_user.enabled = 'Ativo'";
			}
			
			$sql .= " order by csp_user.name ASC";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				$teste = $registro->CLIENTETESTE;
				if ($teste == "0"){
					$returntest = "NAO";
				} else{
					$returntest = "SIM";
					
				}				
				$dados_bd['dados'][$i]['id']      = $registro->ID;
				$dados_bd['dados'][$i]['login']   =$registro->NAME;
				$dados_bd['dados'][$i]['descricao'] =$registro->DESCRICAO;
				$dados_bd['dados'][$i]['nome']    =$registro->NOME;
				$dados_bd['dados'][$i]['email']    =$registro->EMAIL;
				$dados_bd['dados'][$i]['teste']    =$returntest;
				$dados_bd['dados'][$i]['revendedor']    =$registro->REVENDEDOR;
				$dados_bd['dados'][$i]['enabled'] =$registro->ENABLED;
				$dados_bd['dados'][$i]['expire']  =dmy($registro->EXPIREDATE);
				$i++;
			}
			return $dados_bd;
			}
		}
		
		function acao_oqfazer($acesso_idempresa, $acesso_idusuario, $oqfazer, $array_datagrid, $renovar, $excluir, $hash){			
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
		//	$selecionado = 0;
			if ($excluir == "1"){
				$excluir = "true";
			} else {
				$excluir = "false";	
			}
			foreach ($array_datagrid as $value){				
				$id=$value->id;
				$nome=$value->nome;
				$login=$value->login;
				$profile=$value->profile;
				$sele=$value->checked;
				if ($oqfazer == "Bloquear"){
					$situacao = "Inativo";
					$update	= "add";	
				}
				if ($oqfazer == "Desbloquear"){
					$situacao = "Ativo";
					$update	= "del";
				}
				if ($oqfazer == "Renovar Acesso"){
					$situacao = "Ativo";					
				}
				if ($sele == "true"){
					$selecionado = 1;
					if ($excluir == "true"){
						// Atualizando Saldo
						$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, "1", "add");
						$del2= "update csp_user set del='SIM' where idempresa='$acesso_idempresa' and id='$id' and name='$login'";
						$con->banco->Execute($del2);					
						$sql2= "select idprovedor from provedor where idprovedor='$id' and idprovedor in (select id from csp_user where id='$id' and del='NAO')";
						$resultado2  = $con->banco->Execute($sql2);
						$registro2 = $resultado2->FetchNextObject();
						if ($registro2->IDPROVEDOR == ""){
							$del1= "update financeiro set del='SIM' where idempresa='$acesso_idempresa' and idprovedor='$id'";
							$del3= "update provedor set del='SIM' where idempresa='$acesso_idempresa' and idprovedor='$id'";				
							$con->banco->Execute($del1);
							$con->banco->Execute($del3);							
						}
					} else {
					//	$selecionado = 1;
						if ($oqfazer == "Desbloquear" || $oqfazer == "Bloquear"){
						$this->atualizaSaldo($acesso_idempresa, $acesso_idusuario, "1", $update);						
						}
						$sql = "update csp_user set enabled = '$situacao' where id='$id' and idempresa='$acesso_idempresa' and name='$login'";
						$con->banco->Execute($sql);																		
						if ($renovar <> ""){
							$this->renovar_acesso2($acesso_idempresa, $acesso_idusuario, $id, $renovar, $login, $hash);
						}
					}
				}
			}
			return $selecionado;
			}
		}
		function desconectar($acesso_idempresa, $acesso_idusuario, $admin, $idprofile, $csplogin, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost <> "" || $cspusuario <>"" || $cspsenha <> ""){
				$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=kick-user&name=$csplogin");
			}
			$csplogin="";
			return $this->filtra_grid_csp_online($acesso_idempresa, $acesso_idusuario, $admin, $idprofile, $csplogin, $hash);
			}
		}
		function renovar_acesso($acesso_idempresa, $acesso_idusuario, $idprovedor, $para, $login, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao;
			$sql="select * from csp_user where idempresa='$acesso_idempresa' and id='$idprovedor' and del='NAO'";
			if ($login <> ""){
				$sql .= " and name='$login'";
			}
			$resultado=$con->banco->Execute($sql);
			while($registro = $resultado->FetchNextObject()){
				$expire=$registro->EXPIREDATE;
				$expiredmy=dmy($expire);
				$enabled=$registro->ENABLED;
				$csplogin=$registro->NAME;
				$expire=ymd($para);
				$renovacoes = $registro->RENOVACOES;
				$dmyatual = date('d/m/Y');
				//$renovacoes .= "Renovado de $expiredmy para $para em $dmyatual .";
				$renovacoes .= "#### Em $dmyatual, renovado de $expiredmy para $para.  ";
				$sql="update csp_user set enabled='Ativo', expiredate='$expire', expirehora='2359', renovacoes = '$renovacoes' where idempresa='$acesso_idempresa' and name='$csplogin'";
				$con->banco->Execute($sql);
				$this->atualizaEmpresa($acesso_idempresa,$csplogin,$expire);
			}
			}
		}
		
		function renovar_acesso2($acesso_idempresa, $acesso_idusuario, $idprovedor, $para, $login, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao;
			$sql="select * from csp_user where idempresa='$acesso_idempresa' and id='$idprovedor' and del='NAO'";
			if ($login <> ""){
				$sql .= " and name='$login'";
			}
			$resultado=$con->banco->Execute($sql);
			while($registro = $resultado->FetchNextObject()){
				$expire=$registro->EXPIREDATE;
				$expiredmy=dmy($expire);
				$enabled=$registro->ENABLED;
				$csplogin=$registro->NAME;
				$expire=ymd($para);
				$renovacoes = $registro->RENOVACOES;
				$dmyatual = date('d/m/Y');
				//$renovacoes .= "Renovado de $expiredmy para $para em $dmyatual .";
				$renovacoes .= "#### Em $dmyatual, renovado de $expiredmy para $para.  ";
				$sql="update csp_user set enabled='Ativo', expiredate='$expire', expirehora='2359', renovacoes = '$renovacoes' where idempresa='$acesso_idempresa' and name='$csplogin'";
				$con->banco->Execute($sql);
				$sql_plano = "select idplano from plano where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and del='NAO' and valor > 0";
			$resultado_plano = $con->banco->Execute($sql_plano);
			$registro_plano = $resultado_plano->FetchNextObject();
			$idplano = $registro_plano->IDPLANO;
				$sql2="update provedor set clienteteste='0', idplano='$idplano' where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and idprovedor='$idprovedor'";
				$con->banco->Execute($sql2);
				$this->atualizaEmpresa($acesso_idempresa,$csplogin,$expire);
			}
			}
		}
		
		function verifica_csp_online($acesso_idempresa, $csplogin, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
  		  	$sql="select * from profile where idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost <> "" && $cspusuario <>"" && $cspsenha <> "" ){
				$dados_plano['dados'] = "";
				$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=proxy-users&name=$csplogin");
				foreach ($xml->children() as $teste1) {
					foreach ($teste1->children() as $teste2) {
						$online_login= (string) $teste2['name'];						
						$online_session= (string)$teste2['sessions'];
						$dados_plano['dados']['login']  = (string)$online_login;
						$dados_plano['dados']['session']= (string)$online_session;
						foreach ($teste2->children() as $teste3) {
							$dados_plano['dados']['ip']= (string)$teste3['host'];
							$online_connected = $teste3['connected'];
							$online_connected=substr($online_connected,0,25);
							$dados_plano['dados']['conectadoem'] = (string)$online_connected;
							$dados_plano['dados']['tempo']       = (string)$teste3['duration'];
							$dados_plano['dados']['last']        = (string)$teste3['last-transaction'];
							$dados_plano['dados']['lastzap']     = (string)$teste3['last-zap'];
							$dados_plano['dados']['flags']       = (string)$teste3['flags'];
							$dados_plano['dados']['avg']         = (string)$teste3['avg-ecm-interval'];
							foreach ($teste3->children() as $teste4) {
								$dados_plano['dados']['canal'] = (string)$teste4['name'];
								$dados_plano['dados']['cdata'] = (string)$teste4['cdata'];
							}
						}
					}
				} 
				return $dados_plano;
	  		} else {
				return 0;	
			}
			}
	 	}
		
		function filtra_csplogin($login_conectado, $idcliente, $idempresa){
			$con = new conexao();
			$sql = "select name from csp_user where id='$idcliente' and idempresa='$idempresa' and del='NAO' order by name ASC";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				$dados_bd['dados'][$i]['login']		= $registro->NAME;
				$dados_bd['dados'][$i]['expire']	= $registro->EXPIREDATE;
				$i++;
			}
			return $dados_bd;				
		}

//manutencao_especie
		  function filtra_grid_especie($acesso_idempresa, $filtro, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			   $con = new conexao();
				$sql = "select * from especie where idempresa='$acesso_idempresa'";
				if ($filtro <> ""){
					$sql .= " and especie like '$filtro%'";
				}
				$sql .= " order by especie ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_plano['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
	 				 $dados_plano['dados'][$i]['tipo']     = $registro->TIPO;
					 $dados_plano['dados'][$i]['especie']  = $registro->ESPECIE;
					 $dados_plano['dados'][$i]['cobranca'] = $registro->COBRANCA;
					 $i++;
				}
				return $dados_plano;
			  }
		  }

  		  function grava_especie($acesso_idempresa, $especie, $tipo, $cobranca, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa,"");
			  if ($valida == "ok"){
			   $con = new conexao();
				$sql = "insert into especie (idempresa, tipo, especie, cobranca) values ('$acesso_idempresa', '$tipo','$especie', '$cobranca')";
				$filtro="";
				$resultado = $con->banco->Execute($sql);
				$dados_plano = $this->filtra_grid_especie($acesso_idempresa, $filtro);
				return $dados_plano;
			  }
		  }

//manutencao_financeiro
		  function filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $tipo, $vctoI, $vctoF, $numero, $situacao, $nome, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select financeiro.*, provedor.nome from financeiro, provedor where financeiro.idempresa='$acesso_idempresa'  and financeiro.situacao='$situacao' and financeiro.idrevendedor='$acesso_idusuario' and financeiro.idprovedor = provedor.idprovedor and financeiro.del='NAO'";
				if ($tipo <> ""){
					$sql .= " and (financeiro.tipo = '$tipo' or financeiro.especie='$tipo')";	
				}
				if ($numero <> ""){
					$sql .= " and financeiro.numero like '$numero%'";
				}
				if ($nome <> ""){
					$sql .= " and (provedor.nome like '$nome%' or provedor.email like '$nome%')";	
				}
				if ($vctoI <> "" && $vctoF <> ""){
					$vctoI=ymd($vctoI);
					$vctoF=ymd($vctoF);
					$sql .=" and financeiro.datavencimento between '$vctoI' and '$vctoF' ";	
				}
				$sql .= " order by financeiro.numero DESC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
 				$i = 0;
				$dados_bd['dados'][$i]['idfinanceiro']= "";
 				$dados_bd['dados'][$i]['numero']      = "";
				$dados_bd['dados'][$i]['tipo']        = "";
				$dados_bd['dados'][$i]['especie']     = "";
				$dados_bd['dados'][$i]['valor']       = "";
				$dados_bd['dados'][$i]['vencimento']  = "";
				$dados_bd['dados'][$i]['provedor']    = "";
				$dados_bd['dados'][$i]['descricao']   = "";
				$dados_bd['dados'][$i]['situacao']    = "";
				$dados_bd['dados'][$i]['databaixa']   = "";
				$dados_bd['dados'][$i]['valorbaixa']  = "";
				$dados_bd['dados'][$i]['idbanco']     = "";
				$dados_bd['dados'][$i]['banco']   	  = ""; 
				while($registro = $resultado->FetchNextObject())
				{
					 $idbanco = $registro->IDBANCO;
					 if ($registro->IDBANCO <> ""){	
						$sql2 = "select * from banco where idempresa='$acesso_idempresa' and idbanco='$idbanco'";
						$resultado2 = $con->banco->Execute($sql2);
						$registro2 = $resultado2->FetchNextObject();
				 		$agencia   = $registro2->AGENCIA;
				 		$conta     = $registro2->CONTA;
				 		$dv        = $registro2->DV;
				 		$descricao = $registro2->DESCRICAO;
				 		$byte      = $registro2->BYTE;
				 		$combobox="$agencia / $conta-$dv / $byte";
						$dados_bd['dados'][$i]['idbanco'] = $registro2->IDBANCO;
						$dados_bd['dados'][$i]['banco']   = (string)$combobox; 
					 } else {
						$dados_bd['dados'][$i]['idbanco'] = "";
						$dados_bd['dados'][$i]['banco']   = "";
					 }
					 $dados_bd['dados'][$i]['idfinanceiro']= $registro->IDFINANCEIRO;
	 				 $dados_bd['dados'][$i]['numero']      = $registro->NUMERO;
					 $dados_bd['dados'][$i]['tipo']        = $registro->TIPO;
					 $dados_bd['dados'][$i]['especie']     = $registro->ESPECIE;
					 $dados_bd['dados'][$i]['valor']       = $registro->VALOR;
					 $dados_bd['dados'][$i]['vencimento']  = dmy($registro->DATAVENCIMENTO);
					 $dados_bd['dados'][$i]['provedor']    = $registro->NOME;
					 $dados_bd['dados'][$i]['descricao']   = $registro->DESCRICAO;
					 $dados_bd['dados'][$i]['situacao']    = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['emissao']	   = dmy($registro->DATAEMISSAO);
					 $dados_bd['dados'][$i]['databaixa']   = dmy($registro->DATABAIXA);
					 $dados_bd['dados'][$i]['valorbaixa']  = $registro->VALORBAIXA;
					 $i++;
				} 
				return $dados_bd;
			  }
		  }
		  
		  function filtra_sel_especie($acesso_idempresa, $tipo){
			    $con = new conexao();
				$sql = "select * from especie where idempresa='$acesso_idempresa'";
				if ($tipo <> "" ){
					$sql .= " and tipo='$tipo'";
				}
				$sql .= "  order by especie ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['especie']= $registro->ESPECIE;
					 $i++;
				}
				return $dados_bd;
		  }

		  function filtra_sel_provedor($acesso_idempresa, $acesso_idusuario){
			    $con = new conexao();
				$sql = "select idprovedor, nome from provedor where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and situacao='Ativo' and clienteteste=0 and del='NAO' order by nome ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprovedor'] = $registro->IDPROVEDOR;
					 $dados_bd['dados'][$i]['provedor']   = $registro->NOME;
					 $i++;
				}
				return $dados_bd;
		  }
		   
  		  function grava_financeiro($idfinanceiro, $especie, $idprovedor, $acesso_idempresa, $tipo, $numero, $datavencimento, $valor, $descricao, $situacao, $databaixa, $valorbaixa, $acesso_idusuario, $enviar_email, $emissao, $hash){			  
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				if ($valida == "ok"){
			    $con = new conexao();
				$qtde = 0;
				$saldo = 0;
				$erro = "nao";
				if ($situacao == ""){
					$situacao = "Pendente";
				}
				if ($especie == "CREDITOS"){
					$idprovedor = $this->buscaIDProvedorUsuario($acesso_idempresa, $idprovedor);
					if ($idprovedor == ""){
						return "ERRO_Provedor_nao_encontrado";
					}
					$vencimento = date('d-m-Y');
					$qtde = $descricao;
					$saldo = $qtde;
					$descricao = "Compra de $qtde Creditos em $vencimento";	
					$databaixa = $vencimento;
					$emissao = $vencimento;
				}
				
				$datavencimentoDB=ymd($datavencimento);
				if ($emissao == ""){
					$emissaoDB=date('Y-m-d');
				} else {
					$emissaoDB=ymd($emissao);	
				}
				
				if ($numero == ""){
					$sql="select idfinanceiro from financeiro where idempresa = '$acesso_idempresa' order by idfinanceiro DESC limit 1";
					$resultado    = $con->banco->Execute($sql);
					$registro     = $resultado->FetchNextObject();
					$numeroDB     = $registro->IDFINANCEIRO;
					if ($numeroDB == ""){
						$numero=1;
					} else {
						$numeroDB++;
						$numero=$numeroDB;
					}
				}
				
				if ($idfinanceiro == ""){					
					$sql = "insert into financeiro (especie, idprovedor, idempresa, tipo, numero, dataemissao, datavencimento, valor, descricao, idrevendedor, quantidade, saldo, situacao) values ('$especie', '$idprovedor', '$acesso_idempresa', '$tipo', '$numero', '$emissaoDB', '$datavencimentoDB', '$valor', '$descricao', '$acesso_idusuario', '$qtde', '$saldo', '$situacao')";
				} else {
					$databaixa=ymd($databaixa);
					if ($situacao == "Cancelado"){
						$sql = "update financeiro set situacao = '$situacao' where idfinanceiro = '$idfinanceiro'";
					}
					if ($situacao == "Pago"){
						$sql = "update financeiro set situacao = '$situacao', databaixa = '$databaixa', valorbaixa = '$valorbaixa' 	   where idfinanceiro = '$idfinanceiro'";
					}
					if ($situacao == "Pendente"){
						$sql = "update financeiro set datavencimento = '$datavencimentoDB' where idfinanceiro = '$idfinanceiro'";
					}
				}
				if ($especie == "Boleto" and $numero == ""){
					$erro = "sim";
				}
				if ($erro == "nao"){
				$resultado = $con->banco->Execute($sql);
				if ($enviar_email == "true" && $databaixa==""){
					$sql_email = "select email from provedor where idprovedor='$idprovedor' and idempresa='$acesso_idempresa'";
					$result_email = $con->banco->Execute($sql_email);
					$reg_email  = $result_email->FetchNextObject();
					$para = $reg_email->EMAIL;
					$msg_adicional="";
					$sql2="select cobranca from especie where idempresa='$acesso_idempresa' and especie='$especie'";
					$result = $con->banco->Execute($sql2);
					$reg= $result->FetchNextObject();
					if ($reg->COBRANCA == "Online"){
						$this->enviar_email_transacao_online($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, $datavencimento, $datavencimento);
					} else {					
						$this->enviar_email_mensalidade($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, $datavencimento, $datavencimento);
					}
				}
				}
				
				$nome=""; $vctoI=""; $vctoF="";
				$dados_bd = $this->filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $tipo, $vctoI, $vctoF, $numero, $situacao, $nome, $hash);
				return $dados_bd;
				}
		  }
		  

  		  function excluir_financeiro($idfinanceiro, $situacao, $oqfazer, $acesso_idempresa, $acesso_idusuario, $hash){			  
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
			    $con = new conexao();
				if ($oqfazer=="Cancela_Pagamento"){
					$sql = "update financeiro set valorbaixa=null, databaixa=null, situacao='Pendente' where idfinanceiro = '$idfinanceiro'";
				}
				if ($oqfazer=="Descancela_Conta"){
					$sql = "update financeiro set situacao='Pendente' where idfinanceiro = '$idfinanceiro'";	
				}
				if ($oqfazer=="Cancela_Conta"){
					$sql = "update financeiro set situacao='Cancelado' where idfinanceiro = '$idfinanceiro'";	
				}
				$resultado = $con->banco->Execute($sql);
				$vctoI=""; $vctoF=""; $tipo="CAR"; $numero=""; $nome="";
				$dados_bd = $this->filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $tipo, $vctoI, $vctoF, $numero, $situacao, $nome, $hash);
				return $dados_bd;
			}
		  }
		  
		  function excluir_fin($idfinanceiro, $situacao, $oqfazer, $acesso_idempresa, $acesso_idusuario){			  
			$valida = ok;
			if ($valida == "ok"){
			    $con = new conexao();
				if ($oqfazer=="Cancela_Pagamento"){
					$sql = "update financeiro set valorbaixa=null, databaixa=null, situacao='Pendente' where idfinanceiro = '$idfinanceiro'";
				}
				if ($oqfazer=="Descancela_Conta"){
					$sql = "update financeiro set situacao='Pendente' where idfinanceiro = '$idfinanceiro'";	
				}
				if ($oqfazer=="Cancela_Conta"){
					$sql = "update financeiro set situacao='Cancelado' where idfinanceiro = '$idfinanceiro'";	
				}
				$resultado = $con->banco->Execute($sql);
				$vctoI=""; $vctoF=""; $tipo="CAR"; $numero=""; $nome="";
				$dados_bd = $this->filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $tipo, $vctoI, $vctoF, $numero, $situacao, $nome);
				return $dados_bd;
			}
		  }

		  function filtra_grid_mensalidades($acesso_idempresa, $acesso_idusuario, $mesano, $diai, $diaf, $especie, $descricao){
				$con = new conexao();
				$diai=CompletaComZeros(2,$diai);
				$diaf=CompletaComZeros(2,$diaf);
				$mesvcto = substr($mesano,0,2);
				$anovcto = substr($mesano,3,4);
				$vctoi = "$diai/$mesvcto/$anovcto";
				$vctof = "$diaf/$mesvcto/$anovcto";
				$vctoI = ymd($vctoi);
				$vctoF = ymd($vctof);
				$sql = "select provedor.*, plano.descricao as plano, plano.valor as valor from provedor, plano where provedor.idempresa='$acesso_idempresa' and provedor.idrevendedor='$acesso_idusuario' and provedor.situacao='Ativo' and provedor.idplano = plano.idplano and provedor.gerarmensalidade=1 and plano.valor > 0 and provedor.clienteteste = 0 and provedor.del='NAO' and provedor.idprovedor in (select id from csp_user where idempresa = '$acesso_idempresa' and expiredate between '$vctoI' and '$vctoF')";
				if ($descricao <> ""){
					$sql .= " and provedor.idprovedor not in (select idprovedor from financeiro where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and especie='$especie' and descricao='$descricao')";	
				}
				$sql .= " order by provedor.nome ASC";
				$resultado = $con->banco->Execute($sql);
				$i = 0;
				$dados_bd['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprovedor'] = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']       = $registro->NOME;
					 $dados_bd['dados'][$i]['diavcto']    = $registro->DIAVENCIMENTO;
					 $dados_bd['dados'][$i]['plano']      = $registro->PLANO;
					 $dados_bd['dados'][$i]['valor']      = $registro->VALOR;
					 $dados_bd['dados'][$i]['marcar']     = true;
					 $dados_bd['dados'][$i]['email']      = $registro->EMAIL;
					 $i++;
				}
				return $dados_bd;
		  }

		  function gera_mensalidade($acesso_idempresa, $acesso_idusuario, $mesano, $especie, $descricao, $array_datagrid, $enviar_email, $emissao, $idbanco, $hash){
			  
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
				if ($valida == "ok"){
				$con = new conexao();
				$n=0;
				foreach ($array_datagrid as $value){
					$sele=$value->checked;
					if ($sele == "true"){
						$valor=$value->valor;
						$idprovedor=$value->idprovedor;
						$email=$value->email;
						$diavcto=$value->diavcto;
						$mesvcto=substr($mesano,0,2);
						$anovcto=substr($mesano,3,4);
						if ($descricao == ""){
							$descricao = "Servicos de Informatica $mesano";
						}
						$vencimento   = "$diavcto/$mesvcto/$anovcto";
						$vencimentoDB = ymd($vencimento);
						$sql="select idfinanceiro from financeiro where (idprovedor = '$idprovedor') and (datavencimento='$vencimentoDB') and (descricao like '%$descricao%') and (idempresa = '$acesso_idempresa') and especie='$especie'";
						$resultado    = $con->banco->Execute($sql);
						$registro     = $resultado->FetchNextObject();
						$idfinanceiro = $registro->IDFINANCEIRO;
						$emissaoDB    = ymd($emissao);

						if ($idfinanceiro == ""){
							$n++;
							$prorroga = "select prorroga_vcto from parametros where idempresa='$acesso_idempresa'";
							$resul = $con->banco->Execute($prorroga);
							$regis = $resul->FetchNextObject();
							if ($regis->PRORROGA_VCTO == "SIM"){
								$data = mktime(0, 0, 0, $mesvcto, $diavcto, $anovcto);
								$dia_semana = date("w", $data);
								if($dia_semana == 0){
									$diavcto++;
								}
								if($dia_semana == 6){
									$diavcto++;
									$diavcto++;
								}
							}
							// Inicio do Bloco para gerar mensalidades
							$diavcto=CompletaComZeros(2,$diavcto);
							if (($mesvcto=="2" || $mesvcto == "02") && $diavcto > 28){
								$diavcto=28;
							}
							$vencimento   = "$diavcto/$mesvcto/$anovcto";
							$vencimentoDB = ymd($vencimento);
							if ($especie == "Boleto"){ 
								$this->gerar_boleto($acesso_idempresa, $acesso_idusuario, $idprovedor, $descricao, $valor, $enviar_email, $emissao, $vencimento, $idbanco);
							} else {
								$tipo="CAR";
								$numero="";
								$situacao="Pendente";
								$databaixa="";
								$valorbaixa="";
								$this->grava_financeiro($idfinanceiro, $especie, $idprovedor, $acesso_idempresa, $tipo, $numero, $vencimento, $valor, $descricao, $situacao, $databaixa, $valorbaixa, $acesso_idusuario, $enviar_email, $emissao, $hash);
							}
						}
					}
				}
				return "$n";
				}
			}
			
		function gerar_nossonumero($acesso_idempresa, $acesso_idusuario, $idbanco, $vencimento){
			$con = new conexao();
			$sqlbanco="select banco.* from banco where banco.idempresa='$acesso_idempresa' and banco.idbanco='$idbanco'";
			$resultado = $con->banco->Execute($sqlbanco);
			$registro  = $resultado->FetchNextObject();
			$banco_agencia  = $registro->AGENCIA;
			$banco_conta    = $registro->CONTA;
			$banco_df       = $registro->DV;
			$banco_praca    = $registro->PRACA;
			$banco_byte     = $registro->BYTE;
			$banco_boletophp= $registro->BOLETOPHP;
			$ano=substr($vencimento,8,2);

			// Ultimo Numero 
			$sqlbol2="select numero from financeiro where (idempresa = '$acesso_idempresa') and (idbanco='$idbanco') and numero like '$ano$banco_byte%' and especie='Boleto' order by numero DESC limit 1";
			$resultado = $con->banco->Execute($sqlbol2);
			$registro  = $resultado->FetchNextObject();
			$ultimo_numero = $registro->NUMERO;

			// Ultimo idfinanceiro
			$ultimo_idfinanceiro = $this->ultimoIdfinanceiro();
			
			if ($ultimo_numero == ""){
				$sequencia="00001";
			} else {
				$sequencia = substr($ultimo_numero, 3, 5);
				$sequencia++;
				$sequencia=CompletaComZeros(5,$sequencia);
			}

			if ($banco_boletophp == "sicredi"){
				require_once('boletophp_Sicredi.php');
				$funcao=new boletophp_Sicredi();
				$nnum = $ano . $banco_byte . $sequencia;
				$dv_nosso_numero = $funcao->digitoVerificador_nossonumero("$banco_agencia$banco_praca$banco_conta$nnum");
				$numero="$ano$banco_byte$sequencia$dv_nosso_numero";
			}

			if ($banco_boletophp == "bradesco"){
				require_once('boletophp_Bradesco.php');
				$funcao=new boletophp_Bradesco();
				$sequencia=CompletaComZeros(11,$sequencia);
				$nnum =  $sequencia;
				$dv_nosso_numero = $funcao->digitoVerificador_nossonumero("$banco_praca$nnum");
				$numero="$sequencia$dv_nosso_numero";
			}
			if ($banco_boletophp == "hsbc"){
				require_once('boletophp_hsbc.php');
				$funcao=new boletophp_hsbc();
				$nnum = $funcao->formata_numero($ultimo_idfinanceiro,13,0);
				$numero = $funcao->geraNossoNumero($nnum,$banco_praca,$vencimento,'4');
			}
			if ($banco_boletophp == "cef"){
				$sqlbol2="select numero from financeiro where (idempresa = '$acesso_idempresa') and (idbanco='$idbanco') and numero like '$banco_praca$banco_byte%' and especie='Boleto' order by numero DESC limit 1";
				$resultado = $con->banco->Execute($sqlbol2);
				$registro  = $resultado->FetchNextObject();
				$ultimo_numero = $registro->NUMERO;
				if ($ultimo_numero == ""){
					$sequencia="0000001";
				} else {
					$sequencia = substr($ultimo_numero, 3, 7);
					$sequencia++;
					$sequencia=CompletaComZeros(7,$sequencia);
				}
				require_once('boletophp_cef.php');
				$funcao=new boletophp_cef();
				$nnum = $banco_praca . $banco_byte . $funcao->formata_numero($sequencia,7,0);
				$numero = $nnum . $funcao->digitoVerificador_nossonumero($nnum);
			}
			return $numero;
		}

		function gerar_boleto($acesso_idempresa, $acesso_idusuario, $idprovedor, $descricao, $valor, $enviar_email, $emissao, $vencimento, $idbanco){
			$con = new conexao();
			$numero = $this->gerar_nossonumero($acesso_idempresa, $acesso_idusuario, $idbanco, $vencimento);
			if ($emissao == ""){
				$emissao=date('d/m/Y');	
			}
			$emissaoDB=ymd($emissao);
			$vencimentoDB=ymd($vencimento);
			$sqlbol2="select numero from financeiro where (idempresa = '$acesso_idempresa') and (idbanco='$idbanco') and dataemissao = '$emissaoDB' and datavencimento = '$vencimentoDB' and idprovedor='$idprovedor' and valor='$valor'";
			$resultado = $con->banco->Execute($sqlbol2);
			$registro  = $resultado->FetchNextObject();
			$ultimo_numero = $registro->NUMERO;
			if ($ultimo_numero == ""){
				$idfinanceiro = $this->ultimoIdfinanceiro();
				$SQL="insert into financeiro (idfinanceiro, numero, idempresa, idprovedor, tipo, especie, dataemissao, datavencimento, valor, descricao, idrevendedor, idbanco) values ('$idfinanceiro', '$numero','$acesso_idempresa', '$idprovedor', 'CAR', 'Boleto', '$emissaoDB', '$vencimentoDB','$valor', '$descricao', '$acesso_idusuario', '$idbanco')";
				$con->banco->Execute($SQL);
				if ($enviar_email == "true"){
					$sql_m = "select email from provedor where idprovedor='$idprovedor' and idempresa='$acesso_idempresa'";
					$res_m = $con->banco->Execute($sql_m);
					$reg_m  = $res_m->FetchNextObject();
					$para = $reg_m->EMAIL;
					$msg_adicional="";
					$this->enviar_email_boleto($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, "", "");
				}
			}
		}
	  function filtra_sel_banco($acesso_idempresa, $acesso_idusuario){
			$con = new conexao();
			$sql = "select * from banco where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and situacao = 'Ativo'";
			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				 $dados_bd['dados'][$i]['idbanco']   = $registro->IDBANCO;
				 $agencia   = $registro->AGENCIA;
				 $conta     = $registro->CONTA;
				 $dv        = $registro->DV;
				 $descricao = $registro->DESCRICAO;
				 $byte      = $registro->BYTE;
				 $combobox="$agencia / $conta-$dv / $byte";
				 $dados_bd['dados'][$i]['banco']   = (string)$combobox;
				 $i++;
			}
			return $dados_bd;
		}
		
		
  		  function grava_financeiro_transacao_online($especie, $idprovedor, $acesso_idempresa, $tipo, $datavencimento, $valor, $descricao, $acesso_idusuario){
			    $con = new conexao();
				$datavencimentoDB=ymd($datavencimento);
				$emissao=date('Y-m-d');
				$sql="select idfinanceiro from financeiro where idempresa = '$acesso_idempresa' order by idfinanceiro DESC limit 1";
				$resultado    = $con->banco->Execute($sql);
				$registro     = $resultado->FetchNextObject();
				$numeroDB     = $registro->IDFINANCEIRO;
				if ($numeroDB == ""){
					$numero=1;
				} else {
					$numeroDB++;
					$numero=$numeroDB;
				}
				$sql = "insert into financeiro (especie, idprovedor, idempresa, tipo, numero, dataemissao, datavencimento, valor, descricao, idrevendedor) values ('$especie', '$idprovedor', '$acesso_idempresa', '$tipo', '$numero', '$emissao', '$datavencimentoDB', '$valor', '$descricao', '$acesso_idusuario')";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados']['especie'] = $especie;
				$dados_bd['dados']['numero']  = $numero;
				return $dados_bd;
		  }

//manutencao_financeiro_pagamento
		  function filtra_grid_pagamento($acesso_idempresa, $acesso_idrevendedor, $tipo, $situacao, $numero, $vctoi, $vctof, $provedor, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
				$con = new conexao();
				$sql = "select financeiro.*, especie.cobranca, provedor.nome, provedor.email, provedor.clienteteste, provedor.diavencimento from financeiro, provedor, especie where financeiro.idprovedor = provedor.idprovedor and financeiro.idempresa='$acesso_idempresa' and financeiro.idrevendedor='$acesso_idrevendedor' and financeiro.situacao = '$situacao' and financeiro.tipo = '$tipo' and financeiro.del='NAO' and financeiro.especie = especie.especie";
				if ($numero <> ""){
					$sql .= " and financeiro.numero like '%$numero%'";
				}				
				if ($vctoi <> "" || $vctof<> ""){
					$vctoI=ymd($vctoi);
					$vctoF=ymd($vctof);
					$sql .= " and financeiro.datavencimento between '$vctoI' and '$vctoF'";
				}
				if ($provedor <> ""){
					$sql .= " and provedor.nome like '$provedor%'";	
				}

				$sql .= " group by financeiro.idfinanceiro order by financeiro.dataemissao ASC";
				$resultado = $con->banco->Execute($sql);				
 				$i = 0;
				$dados_bd['dados'][$i] = "";

				while($registro = $resultado->FetchNextObject()) {
					 $dados_bd['dados'][$i]['idprovedor']   = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['provedor']     = $registro->NOME;
					 $dados_bd['dados'][$i]['email']     = $registro->EMAIL;
					 $dados_bd['dados'][$i]['idfinanceiro'] = $registro->IDFINANCEIRO;
					 $dados_bd['dados'][$i]['numero']       = $registro->NUMERO;
					 $dados_bd['dados'][$i]['tipo']         = $registro->TIPO;
					 $dados_bd['dados'][$i]['especie']      = $registro->ESPECIE;
					 $dados_bd['dados'][$i]['valor']        = $registro->VALOR;	 
 					 $dados_bd['dados'][$i]['vencimento']   = dmy($registro->DATAVENCIMENTO);
					 $dados_bd['dados'][$i]['dataemissao']  = dmy($registro->DATAEMISSAO);
					 $dados_bd['dados'][$i]['situacao']     = $registro->SITUACAO;	 
					 $dados_bd['dados'][$i]['databaixa']    = dmy($registro->DATABAIXA);	 
					 $dados_bd['dados'][$i]['valorbaixa']   = $registro->VALORBAIXA;
					 $dados_bd['dados'][$i]['diavencimento']= $registro->DIAVENCIMENTO;
					 if ($registro->CLIENTETESTE == "0"){
						 $dados_bd['dados'][$i]['clienteteste']   = "NAO";
					 } 
					 if ($registro->CLIENTETESTE == "1"){
						 $dados_bd['dados'][$i]['clienteteste']   = "SIM";
					 }
					 if ($registro->ESPECIE == "Boleto" && $registro->SITUACAO == "Pendente"){
						$nossonumero=$registro->NUMERO;
						$idbanco = $registro->IDBANCO;
					
						$sql_boleto="select boletophp.arquivo2, empresa.linkboleto from boletophp, banco, empresa where banco.boletophp = boletophp.boletophp and banco.idbanco = '$idbanco' and banco.idempresa=empresa.idempresa";
						$result = $con->banco->Execute($sql_boleto);
						$reg    = $result->FetchNextObject();
						$arquivophp=$reg->ARQUIVO2;
						$linkhost=$reg->LINKBOLETO;
						$link_boleto="boletophp/$arquivophp?idbanco=$idbanco&numero=$nossonumero";
					}
					
					 $dados_bd['dados'][$i]['cobranca']		= $registro->COBRANCA;
					 $dados_bd['dados'][$i]['idbanco']		= $registro->IDBANCO;
					 $dados_bd['dados'][$i]['boleto_bancario']	= $link_boleto;	
					 $i++;
				}
				return $dados_bd;
			  }
		  }
  		  function grava_pagamento($acesso_idempresa, $acesso_idusuario, $idfinanceiro, $valorbaixa, $databaixa, $situacao, $renovar, $idplano, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){  
  		        $databaixa=ymd($databaixa);
				$diavencimento = substr($renovar,0,2);
 			    $con = new conexao();
				$sql="update financeiro set valorbaixa = '$valorbaixa', databaixa='$databaixa', situacao='Pago' where idfinanceiro='$idfinanceiro' and idempresa='$acesso_idempresa'";	
				$con->banco->Execute($sql);
				$sql="select * from financeiro where idfinanceiro='$idfinanceiro'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$tipo=$registro->TIPO;
				$numero=$registro->NUMERO;
				$idprovedor=$registro->IDPROVEDOR;
				if ($idplano <> "" && $idplano <> "0"){
					$ativa = "update provedor set idplano = '$idplano', clienteteste = '0' where idprovedor = '$idprovedor'";	
					$con->banco->Execute($ativa);
				}
				if ($renovar <> ""){
					$this->renovar_acesso($acesso_idempresa, $acesso_idusuario, $idprovedor, $renovar,"", $hash);
					$sql_prov = "update provedor set diavencimento = '$diavencimento' where idprovedor = '$idprovedor'";
					$con->banco->Execute($sql_prov);
				}
				$vctoi=""; $vctof="";$provedor="";
				return $this->filtra_grid_pagamento($acesso_idempresa, $acesso_idrevendedor, $tipo, $situacao, $numero, $vctoi, $vctof, $provedor, $hash);
		  }
		  }
		  


  		  function cancela_pgto($acesso_idempresa, $acesso_idusuario, $idfinanceiro, $hash){			 
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){ 
  		        $databaixa=ymd($databaixa);
 			    $con = new conexao();
				$sql="update financeiro set valorbaixa = '', databaixa='', situacao='Pendente' where idfinanceiro='$idfinanceiro' and idempresa='$acesso_idempresa'";
				$con->banco->Execute($sql);
				
				$sql="select * from financeiro where idfinanceiro='$idfinanceiro'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$tipo=$registro->TIPO;
				$numero=$registro->NUMERO;
				$vctoi=""; $vctof="";$provedor="";							
				return $this->filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $tipo, $situacao, $numero, $vctoi, $vctof, $provedor, $hash);
			 }
		  }

//manutencao_msg
		function filtra_grid_msg($acesso_idempresa, $acesso_idusuario, $admin, $situacao, $de, $ate){
			$con = new conexao();
  		  	$sql="select * from msg where idempresa='$acesso_idempresa' and situacao='$situacao' and (idusuario_de = '$acesso_idusuario' or idusuario_para = '$acesso_idusuario')";
			if ($de <> "" && $ate <> ""){
				$deDB=ymd($de);
				$ateDB=ymd($ate);
				$sql .=" and criadoem between '$deDB' and '$ateDB'";	
			}
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while ($registro = $resultado->FetchNextObject()){
				$data=substr($registro->CRIADOEM,0,10);
				$hora=substr($registro->CRIADOEM,11,5);
				$data=dmy($data);
				$dados_bd['dados'][$i]['idusuario_de']	= $registro->IDUSUARIO_DE;
				$dados_bd['dados'][$i]['idusuario_para']= $registro->IDUSUARIO_PARA;
				$dados_bd['dados'][$i]['idmsg']     	= $registro->IDMSG;
				$dados_bd['dados'][$i]['data']     		= "$data $hora";
				$dados_bd['dados'][$i]['assunto']     	= $registro->ASSUNTO;
				$dados_bd['dados'][$i]['msg']     		= $registro->MSG;
				$dados_bd['dados'][$i]['situacao'] 		= $registro->SITUACAO;
				$idusuario_de    = $registro->IDUSUARIO_DE;
				$idusuario_para  = $registro->IDUSUARIO_PARA;
				
				
				if ($idusuario_de == $acesso_idusuario){
					$dados_bd['dados'][$i]['tipo']     = "Enviado";
				}
				if ($idusuario_para == $acesso_idusuario){
					$dados_bd['dados'][$i]['tipo']     = "Recebido";
				}
				$sql2="select login from usuario where idempresa='$acesso_idempresa' and idusuario='$idusuario_de'";
				$resultado2 = $con->banco->Execute($sql2);
				$registro2  = $resultado2->FetchNextObject();
				if ($registro2->LOGIN <> ""){
					$dados_bd['dados'][$i]['usuariode']     = $registro2->LOGIN;
				} else {
					$dados_bd['dados'][$i]['usuariode']     = "";	
				}

				$sql3="select login from usuario where idempresa='$acesso_idempresa' and idusuario='$idusuario_para' ";
				$resultado3 = $con->banco->Execute($sql3);
				$registro3  = $resultado3->FetchNextObject();
				if ($registro3->LOGIN <> ""){
					$dados_bd['dados'][$i]['usuariopara']     = $registro3->LOGIN;
				} else {
					$dados_bd['dados'][$i]['usuariopara']     = "";	
				}
				$i++;
			}
			return $dados_bd;

		}
		function filtra_sel_usuario_de_msg($acesso_idempresa, $acesso_idusuario, $admin){
			$con = new conexao();
  		  	$sql="select * from usuario where idempresa='$acesso_idempresa' and idusuario = '$acesso_idusuario' and del='NAO'";
			$sql .= " order by login ASC";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while ($registro     = $resultado->FetchNextObject()){
				$dados_bd['dados'][$i]['idusuario']	= $registro->IDUSUARIO;
				$dados_bd['dados'][$i]['usuario']	= $registro->LOGIN;
				$dados_bd['dados'][$i]['idempresa']	= $registro->IDEMPRESA;
				$i++;
			}
			return $dados_bd;
		}

		function filtra_sel_usuario_para_msg($acesso_idempresa, $acesso_idusuario, $admin){
			$con = new conexao();
  		  	$sql="select * from usuario where idempresa='$acesso_idempresa' and idusuario <> '$acesso_idusuario' and del='NAO'";
			if ($admin == 0){
				$sql .= " and admin = 1'";	
			}
			$sql .= " order by login ASC";
			$resultado  = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while ($registro     = $resultado->FetchNextObject()){
				$dados_bd['dados'][$i]['idusuario']	= $registro->IDUSUARIO;
				$dados_bd['dados'][$i]['usuario']	= $registro->LOGIN;
				$dados_bd['dados'][$i]['idempresa']	= $registro->IDEMPRESA;
				$i++;
			}
			return $dados_bd;
		}
		function grava_msg($acesso_idempresa, $acesso_idusuario, $admin, $id, $idusuariode, $idusuariopara, $assunto, $msg, $situacao){
			$con = new conexao();
			if ($id == ""){
				$sql = "insert into msg (idempresa, idusuario_de, idusuario_para, assunto, msg, situacao) values ('$acesso_idempresa', '$idusuariode', '$idusuariopara', '$assunto', '$msg', 'Nao_Lida')";
			} else {
				$sql = "update msg set situacao='$situacao' where idempresa='$acesso_idempresa' and idmsg='$id'";	
			}
			$resultado  = $con->banco->Execute($sql);
			$dados_datagrid = $this->filtra_grid_msg($acesso_idempresa, $acesso_idusuario, $admin, $sit, $de, $ate);
			$sit="Nao_Lida";
			$de="";
			$ate="";
			return $dados_datagrid;
		}

//manutencao_plano
		  function filtra_grid_plano($acesso_idempresa, $acesso_idusuario, $filtro, $online){
			    $con = new conexao();
				$sql = "select plano.*, usuario.login from plano, usuario where plano.idrevendedor='$acesso_idusuario' and plano.idempresa='$acesso_idempresa' and plano.del='NAO' and plano.idrevendedor = usuario.idusuario and plano.code = 'NAO'";
				
				if ($online == "SIM"){
					$sql .= " and plano.online = 'SIM'";
				}
				if ($online == "NAO"){
					$sql .= " and plano.online = 'NAO'";
				}
			//	if ($code == "SIM"){
			//		$sql .= " and plano.code = 'SIM'";
			//	}
			//	if ($code == "NAO"){
			//		$sql .= " and plano.code = 'NAO'";
			//	}

				if ($filtro <> ""){
					$sql .= " and (plano.descricao like '$filtro%' or plano.idplano in (select idplano from provedor where idprovedor = '$online'))";
				}

				$sql .= " order by idplano DESC";
				$resultado = $con->banco->Execute($sql);				
				$i = 0;
				$dados_plano['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_plano['dados'][$i]['idplano']   = $registro->IDPLANO;
	 				 $dados_plano['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $dados_plano['dados'][$i]['valor']     = $registro->VALOR;
					 $dados_plano['dados'][$i]['tempo']     = $registro->QTDE;
					 $dados_plano['dados'][$i]['online']    = $registro->ONLINE;
			//		 $dados_plano['dados'][$i]['code']      = $registro->CODE;
 					 $dados_plano['dados'][$i]['idrevendedor']  = $registro->IDREVENDEDOR;
 					 $dados_plano['dados'][$i]['revendedor']	= $registro->LOGIN;
					 $i++;
				}
				return $dados_plano;
		  }
		  
		  function filtra_grid_plano2($acesso_idempresa, $acesso_idusuario, $filtro, $online){
			    $con = new conexao();
				$sql = "select plano.*, usuario.login from plano, usuario where plano.idrevendedor='$acesso_idusuario' and plano.idempresa='$acesso_idempresa' and plano.del='NAO' and plano.idrevendedor = usuario.idusuario and plano.code = 'SIM'";
				
		//		if ($online == "SIM"){
		//			$sql .= " and plano.online = 'SIM'";
		//		}
		//		if ($online == "NAO"){
		//			$sql .= " and plano.online = 'NAO'";
		//		}
		//		if ($code == "SIM"){
		//			$sql .= " and plano.code = 'SIM'";
		//		}
		//		if ($code == "NAO"){
		//			$sql .= " and plano.code = 'NAO'";
		//		}

				if ($filtro <> ""){
					$sql .= " and (plano.descricao like '$filtro%' or plano.idplano in (select idplano from provedor where idprovedor = '$online'))";
				}


				$sql .= " order by idplano DESC";
				$resultado = $con->banco->Execute($sql);				
				$i = 0;
				$dados_plano['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_plano['dados'][$i]['idplano']   = $registro->IDPLANO;
	 				 $dados_plano['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $dados_plano['dados'][$i]['valor']     = $registro->VALOR;
					 $dados_plano['dados'][$i]['tempo']     = $registro->QTDE;
				//	 $dados_plano['dados'][$i]['online']    = $registro->ONLINE;
					 $dados_plano['dados'][$i]['code']      = $registro->CODE;
 					 $dados_plano['dados'][$i]['idrevendedor']  = $registro->IDREVENDEDOR;
 					 $dados_plano['dados'][$i]['revendedor']	= $registro->LOGIN;
					 $i++;
				}
				return $dados_plano;
		  }
		  
		  function filtra_grid_plano_code($acesso_idempresa, $acesso_idusuario){
			    $con = new conexao();
				$sql = "select plano.*, usuario.login from plano, usuario where plano.idrevendedor='$acesso_idusuario' and plano.idempresa='$acesso_idempresa' and plano.del='NAO' and plano.idrevendedor = usuario.idusuario and plano.code='SIM'";
				$sql .= " order by idplano DESC";
				$resultado = $con->banco->Execute($sql);				
				$i = 0;
				$dados_plano['dados'][$i] = "";
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_plano['dados'][$i]['idplano']   = $registro->IDPLANO;
	 				 $dados_plano['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $dados_plano['dados'][$i]['valor']     = $registro->VALOR;
					 $dados_plano['dados'][$i]['tempo']     = $registro->QTDE;
					 $dados_plano['dados'][$i]['online']    = $registro->ONLINE;
					 $dados_plano['dados'][$i]['code']      = $registro->CODE;
 					 $dados_plano['dados'][$i]['idrevendedor']  = $registro->IDREVENDEDOR;
 					 $dados_plano['dados'][$i]['revendedor']	= $registro->LOGIN;
					 $i++;
				}
				return $dados_plano;
		  }
		  
  		  function grava_plano($acesso_idempresa, $acesso_idusuario, $id, $descricao, $valor, $tempo, $online, $code, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			  if ($valida == "ok"){
			    $con = new conexao();
				if ($online == "TRUE"){
					$online = "SIM"	;
				} else {
					$online = "NAO";	
				}
				if ($code == "TRUE"){
					$code = "SIM"	;
				} else {
					$code = "NAO";	
				}

				if ($id == ""){
					$sql = "insert into plano (idempresa, idrevendedor, descricao, valor, qtde, online, code) values ('$acesso_idempresa', '$acesso_idusuario','$descricao','$valor', '$tempo','$online', '$code')";
				} else {
					$sql = "update plano set descricao = '$descricao', valor = '$valor', qtde='$tempo', online='$online', code='$code' where idplano='$id'";		
				}
				$filtro="";
				$resultado = $con->banco->Execute($sql);
				$dados_plano = $this->filtra_grid_plano($acesso_idempresa, $acesso_idusuario, $filtro, "");
				return $dados_plano;
			  }
		  }

  		  function exclui_plano($acesso_idempresa, $acesso_idusuario, $id, $confirmado, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				 if ($valida == "ok"){
			    $con = new conexao();
				if ($confirmado=="NAO"){
					$sql = "select count(idprovedor) as qtde from provedor where idrevendedor='$acesso_idusuario' and idplano='$id'";
					$resultado = $con->banco->Execute($sql);
					$registro = $resultado->FetchNextObject();
					if ($registro->QTDE >0){
						return $registro->QTDE;
				//		return "NAO";
					} else {				
					$confirmado = "SIM";									
					}			
				}
				 if ($confirmado=="SIM"){
//					$parametro=$this->parametros($acesso_idempresa);
//					$idplano_teste = $parametro['dados'][0]['idplano_teste'];
					$sql1 = "update financeiro set del='SIM' where idempresa='$acesso_idempresa' and idprovedor in (select idprovedor from provedor where idempresa='$acesso_idempresa' and idplano='$id')";
					$con->banco->Execute($sql1);
					$sql2 = "update csp_user set del='SIM' where idempresa='$acesso_idempresa' and id in (select idprovedor from provedor where idempresa='$acesso_idempresa' and idplano='$id')";
					$con->banco->Execute($sql2);
					$sql3="update provedor set del='SIM' where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and idplano='$id'";
					$con->banco->Execute($sql3);
					$sql4="update plano set del='SIM' where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and idplano='$id'";
					$con->banco->Execute($sql4);																		
					return "OK" ;
				}
			  }
		  }


//manutencao_profile
		  function filtra_grid_profile($acesso_idempresa, $filtro, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa,"");
			  if ($valida == "ok"){
			    $con = new conexao();
				$sql = "select * from profile where idempresa='$acesso_idempresa' and del='NAO'";
				if ($filtro <> ""){
					$sql .= " and descricao like '$filtro%'";
				}
				$sql .= " order by idprofile DESC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprofile']	= $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']		= $registro->PROFILE;
	 				 $dados_bd['dados'][$i]['descricao']	= $registro->DESCRICAO;
					 $dados_bd['dados'][$i]['host']			= $registro->HOST;
					 $dados_bd['dados'][$i]['usuario']		= $this->decripta($registro->USUARIO);
					 $dados_bd['dados'][$i]['portacsp']		= $registro->PORTACSP;
					 $dados_bd['dados'][$i]['portaprofile']	= $registro->PORTAPROFILE;
					 $dados_bd['dados'][$i]['senha']		= $this->decripta($registro->SENHA);
					 $dados_bd['dados'][$i]['obs']			= $registro->OBS;
 					 $dados_bd['dados'][$i]['conexao']		= $registro->CONEXAO;
					 $dados_bd['dados'][$i]['caid']			= $registro->CAID;
					 $dados_bd['dados'][$i]['ident']		= $registro->IDENT;
					 $dados_bd['dados'][$i]['grupo']		= $registro->GRUPO;
					 $dados_bd['dados'][$i]['teste']		= $registro->TESTE;
					 $dados_bd['dados'][$i]['des']			= $registro->DES;
					 $i++;
				}
				return $dados_bd;
			  }
		  }
		  
  		  function grava_profile($acesso_idempresa, $id, $descricao, $host, $usuario, $senha, $portacsp, $portaprofile, $obs, $tipoconexao, $caid, $ident, $group, $teste, $des, $profile, $hash){			  
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			  $login_criptado = $this->encripta($usuario);
			  $senha_criptado = $this->encripta($senha);
			  $host = trim($host);
			  if ($teste == "true"){
				  $teste = "SIM";
			  }
			  if ($teste == "false"){
				  $teste = "NAO";
			  }
			    $con = new conexao();
				if ($id == ""){
					$sql = "insert into profile (idempresa, descricao, host, usuario, senha, portacsp, portaprofile, obs, conexao, caid, ident, grupo, teste, des, profile) values ('$acesso_idempresa', '$descricao', '$host', '$login_criptado','$senha_criptado', '$portacsp', '$portaprofile', '$obs', '$tipoconexao', '$caid', '$ident', '$group', '$teste','$des','$profile')";
				} else {
					$sql = "update profile set descricao = '$descricao', host = '$host', usuario='$login_criptado', senha='$senha_criptado', portacsp='$portacsp', portaprofile='$portaprofile', obs='$obs', conexao='$tipoconexao', caid='$caid', ident='$ident', grupo='$group' , teste='$teste', des='$des', profile='$profile' where idprofile='$id'";		
				}
				$filtro="";
				$resultado = $con->banco->Execute($sql);
				$dados_bd = $this->filtra_grid_profile($acesso_idempresa, $filtro, $hash);
				return $dados_bd;
			}
		  }

//manutencao_usuario
		  function filtra_grid_usuario($acesso_idempresa, $fnome, $flogin, $acesso_admin, $acesso_idusuario, $hash){
			  $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			  if ($valida == "ok"){
			    $con = new conexao();
				$niveln = $this->buscaNiveln($acesso_idempresa, $acesso_idusuario);
				$condicao = $this->buscaNivelnTabela($niveln);
				$sql = "select * from usuario where idempresa='$acesso_idempresa' and del='NAO' and $condicao = '$acesso_idusuario'";

				if ($fnome <> ""){
					if ($fnome == "REVENDEDORES-PREPAGO"){
						$sql .=  " and tipo = 'PRE'";
					} else {
						$sql .= " and tipo = 'POS'";
					 	$sql .= " and nome like '$fnome%'";
					}
				}
				if ($flogin <> ""){
					$sql .= " and login like '$flogin%'";
				}
				$sql .= " order by idusuario DESC";
				$registro = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				
				while (!$registro->EOF) {					 
					 $idusuario = $registro->fields['idusuario'];
					 $dados_bd['dados'][$i]['idusuario']  		= $registro->fields['idusuario'];
					 $dados_bd['dados'][$i]['nome']       		= $registro->fields['nome'];
					 $dados_bd['dados'][$i]['login']      		= $registro->fields['login'];
					 $dados_bd['dados'][$i]['senha']      		= $this->decripta($registro->fields['senha']);
					 $dados_bd['dados'][$i]['csp_limite'] 		= $registro->fields['csp_limite'];
					 $dados_bd['dados'][$i]['csp_saldo'] 		= $registro->fields['csp_saldo'];
					 $dados_bd['dados'][$i]['limiteteste'] 		= $registro->fields['limiteteste'];
					 $dados_bd['dados'][$i]['situacao']   		= $registro->fields['situacao'];
					 $dados_bd['dados'][$i]['Dsituacao']  		= $registro->fields['situacao'];
					 $dados_bd['dados'][$i]['idprovedor'] 		= $registro->fields['idprovedor'];
					 $dados_bd['dados'][$i]['validoate']  		= dmy($registro->fields['validoate']);
					 $dados_bd['dados'][$i]['msg']  	 		= $registro->fields['msg'];
					 $dados_bd['dados'][$i]['email_conta']		= $registro->fields['email_conta'];
					 $dados_bd['dados'][$i]['email_servidor']  	= $registro->fields['email_servidor'];
					 $dados_bd['dados'][$i]['email_porta']  	= $registro->fields['email_porta'];
					 $dados_bd['dados'][$i]['email_senha']  	= $registro->fields['email_senha'];
					 $dados_bd['dados'][$i]['permiterev']  		= $registro->fields['permiterev'];
					 $dados_bd['dados'][$i]['delcliente']  		= $registro->fields['delcliente'];
					 $dados_bd['dados'][$i]['delrevenda']  		= $registro->fields['delrevenda'];
					 $dados_bd['dados'][$i]['idrevendedor_pai']	= $registro->fields['idrevendedor'];
					 $dados_bd['dados'][$i]['tipo']				= $registro->fields['tipo'];
					 if ($registro->TIPO == "PRE"){
						 $dados_bd['dados'][$i]['saldo'] 		= $this->buscaSaldoCredito($acesso_idempresa, $registro->fields['idusuario'],'Pago');
					 } else {
						 $dados_bd['dados'][$i]['saldo'] 		= 0;
					 }					 
					 // Pegando o Nome do Revendedor
 					 $dados_bd['dados'][$i]['revendedor_pai']  	  = $this->montaUsuario($registro->fields['idusuario'], $acesso_idempresa, $niveln);
					 $dados_bd['dados'][$i]['csp_qtde'] 		  = $this->conta_qtde_login($acesso_idempresa,$registro->fields['idusuario']);
					 $i++;
					 $registro->MoveNext();
				}
				return $dados_bd;
			  }
		  }
		  
		  function conta_qtde_login($idempresa, $idusuario){
				$con = new conexao();
				$sql = "select sum(maxconnections) as qtde from csp_user where del='NAO' and idempresa='$idempresa' and enabled='Ativo' and situacao='Ativo'";
				if ($idusuario <> "0"){
					$sql .= " and id in (select idprovedor from provedor where clienteteste=0 and idrevendedor='$idusuario')";
				}
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				if ($registro->QTDE == null){
					return 0;
				} else {
					return $registro->QTDE;
				}
		  }

  		  function grava_usuario($acesso_idempresa, $id, $nome, $login, $senha, $csp_limite, $situacao, $validoate, $msg, $permiterev, $idrevendedor_pai, $nivel, $limiteteste, $delcliente, $delrevenda,$tipo, $niveln, $hash){
			    $valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				if ($valida == "ok"){
			  	$niveln_usuario = $niveln;
				$niveln_usuario++;

			    // Verifica saldo do revendedor Pai para ver se ele pode criar subrevendedores
				$saldo_revendedor_pai = $this->verificaSaldo($acesso_idempresa, $idrevendedor_pai, $csp_limite);
				if ($saldo_revendedor_pai == 0){
					return 2;
				}
				// Final da verificacao
			  
				$senha = $this->encripta($senha);
				if ($permiterev == ""){
					$permiterev = "NAO";
				}
				if ($nivel == "ADMIN"){
					$usuario_nivel = "REVENDEDOR";
				}
				if ($nivel == "REVENDEDOR" or $nivel == "SUBREVENDEDOR"){
					$usuario_nivel = "SUBREVENDEDOR";
					if ($csp_limite == 0){
						return 1;	
					}
				}
				if ($tipo == "PRE"){
					$permiterev = "NAO";
					$delrevenda = "NAO";	
				}
			    $con = new conexao();
				if ($id == ""){
					$sql="select idusuario from usuario where login = '$login' and idempresa='$acesso_idempresa' and del='NAO'";
					$resultado = $con->banco->Execute($sql);
					$existe = $resultado->FetchNextObject();
					if ($existe->IDUSUARIO == ""){
						/* Iniciando alteracao para cadastrar o revendedor como provedor. 30/06/2011 */
						$idusuario  = $this->ultimoIdusuario();
						$idprovedor = $this->ultimoIdprovedor();
						$sql2="select idplano, idrevendedor from plano where idempresa='$acesso_idempresa' and descricao = 'REVENDEDOR' and valor='0.00' and del='NAO'";
						$res = $con->banco->Execute($sql2);
						$reg = $res->FetchNextObject();
						$idplano=$reg->IDPLANO;
						$idrevendedor=$reg->IDREVENDEDOR;
						$diavcto=date('%d');
						$valido=ymd($validoate);
												
						// Alterando saldo do Revendedor Pai
						$this->atualizaSaldo($acesso_idempresa, $idrevendedor_pai, $csp_limite, "del");
						$sql = "insert into usuario (idempresa, idusuario, nome, login, senha, csp_limite, situacao, idprovedor, validoate, msg, permiterev, idrevendedor, nivel, limiteteste, delcliente, delrevenda, tipo, niveln, csp_saldo) values ('$acesso_idempresa', '$idusuario', '$nome', '$login', '$senha','$csp_limite','$situacao', '$idprovedor', '$valido', '$msg', '$permiterev', '$idrevendedor_pai', '$usuario_nivel', '$limiteteste', '$delcliente', '$delrevenda', '$tipo','$niveln_usuario', '$csp_limite')";
						$sql2= "insert into provedor (idprovedor, idempresa, idplano, idrevendedor, nome, diavencimento, email, revendedor) values ('$idprovedor', '$acesso_idempresa', '$idplano', '$idrevendedor', '$nome', '$diavcto', 'a_completar', 'SIM')";

						// Criando sequencia de usuarios, revendas, subrevendas 22/08/2012
						$sql3 = "select * from usuario where idusuario='$idrevendedor_pai' and idempresa='$acesso_idempresa'";
						$exe = $con->banco->Execute($sql3);
						$tmp = $exe->FetchNextObject();
						$nadmin = $tmp->NADMIN;
						$nrev   = $tmp->NREV;
						$nsub1  = $tmp->NSUB1;
						$nsub2  = $tmp->NSUB2;
						$nsub3  = $tmp->NSUB3;
						$nsub4  = $tmp->NSUB4;
						$nsub5  = $tmp->NSUB5;
						$nsub6  = $tmp->NSUB6;
						$nsub7  = $tmp->NSUB7;
						$nsub8  = $tmp->NSUB8;
						$nsub9  = $tmp->NSUB9;
						if ($niveln_usuario == "0"){
							$nadmin = $idusuario;
						}
						if ($niveln_usuario == "1"){
							$nrev = $idusuario;
						}
						if ($niveln_usuario == "2"){
							$nsub1 = $idusuario;
						}
						if ($niveln_usuario == "3"){
							$nsub2 = $idusuario;
						}
						if ($niveln_usuario == "4"){
							$nsub3 = $idusuario;
						}
						if ($niveln_usuario == "5"){
							$nsub4 = $idusuario;
						}
						if ($niveln_usuario == "6"){
							$nsub5 = $idusuario;
						}
						if ($niveln_usuario == "7"){
							$nsub6 = $idusuario;
						}
						if ($niveln_usuario == "8"){
							$nsub7 = $idusuario;
						}
						if ($niveln_usuario == "9"){
							$nsub8 = $idusuario;
						}
						$sql3 = "update usuario set nadmin='$nadmin', nrev='$nrev', nsub1='$nsub1', nsub2='$nsub2', nsub3='$nsub3', nsub4='$nsub4', nsub5='$nsub5', nsub6='$nsub6', nsub7='$nsub7', nsub8='$nsub8' where idusuario='$idusuario' and idempresa='$acesso_idempresa'";
						// final do bloco 22/08/2012

						/* Final do Bloco de Alteracao */
					} else {
						return 0;
						exit;	
					}
				} else {
					$valido=ymd($validoate);
					// Atualizando saldo do Revendedor PAI
					$sql = "select csp_limite from usuario where idempresa='$acesso_idempresa' and idusuario = '$id'";
					$res = $con->banco->Execute($sql);
					$reg = $res->FetchNextObject();
					$limite_antigo = $reg->CSP_LIMITE;
					
					if ($limite_antigo <> $csp_limite){
						if ($limite_antigo > $csp_limite){
							$qtde = $csp_limite - $limite_antigo;
							$this->atualizaSaldo($acesso_idempresa, $idrevendedor_pai, $qtde, "del");
							$this->atualizaSaldo($acesso_idempresa, $id, $qtde, "add");
						} else {
							$qtde = $limite_antigo - $csp_limite;
							$this->atualizaSaldo($acesso_idempresa, $idrevendedor_pai, $qtde, "add");
							$this->atualizaSaldo($acesso_idempresa, $id, $qtde, "del");
						}
					}
//					$this->atualizaSaldo($acesso_idempresa, $id, $csp_limite, "");
					
					$sql = "update usuario set nome = '$nome', login = '$login', senha='$senha', csp_limite='$csp_limite', situacao='$situacao', validoate='$valido', msg='$msg', permiterev='$permiterev', limiteteste='$limiteteste', delcliente='$delcliente', delrevenda='$delrevenda', tipo='$tipo' where idusuario='$id'";
					$sql2="select idprovedor from usuario where idusuario='$id'";
					$res = $con->banco->Execute($sql2);
					$reg = $res->FetchNextObject();
					$idprovedor=$reg->IDPROVEDOR;
					$sql2="update provedor set nome = '$nome', situacao='$situacao' where idprovedor='$idprovedor'";
					
					if ($situacao == "Bloqueado"){
						$sqlgrava2="update csp_user set situacao='Bloqueado' where situacao='Ativo' and id in (select idprovedor from provedor where idrevendedor='$id' and idempresa='$acesso_idempresa')";
						$resultado = $con->banco->Execute($sqlgrava2);
						$sqlgrava2 = "update usuario set situacao = 'Bloqueado' where idrevendedor='$id'";
						$resultado = $con->banco->Execute($sqlgrava2);
						$sqlgrava2="update csp_user set situacao='Bloqueado' where situacao='Ativo' and id in (select provedor.idprovedor from provedor, usuario where provedor.idempresa='$acesso_idempresa' and provedor.idrevendedor=usuario.idusuario and usuario.idrevendedor='$id')";
						$resultado = $con->banco->Execute($sqlgrava2);
					}
					if ($situacao == "Ativo"){
						$sqlgrava2="update csp_user set situacao='Ativo' where situacao='Bloqueado' and id in (select idprovedor from provedor where idrevendedor='$id' and idempresa='$acesso_idempresa')";
						$resultado = $con->banco->Execute($sqlgrava2);
						$sqlgrava2 = "update usuario set situacao = 'Ativo' where situacao='Bloqueado' and idrevendedor='$id'";
						$resultado = $con->banco->Execute($sqlgrava2);						
						$sqlgrava2="update csp_user set situacao='Ativo' where situacao='Bloqueado' and id in (select provedor.idprovedor from provedor, usuario where provedor.idempresa='$acesso_idempresa' and provedor.idrevendedor=usuario.idusuario and usuario.idrevendedor='$id')";
						$resultado = $con->banco->Execute($sqlgrava2);				
					}
				}
				$filtro="";$filtro2="";
				
				$resultado = $con->banco->Execute($sql);
			 				 $con->banco->Execute($sql2);
				if ($id == ""){
					$con->banco->Execute($sql3);
				}
				
				$dados_bd = $this->filtra_grid_usuario($acesso_idempresa, $filtro, $filtro2, '0', $idrevendedor_pai, $hash);
				return $dados_bd;
				
				}
		  }
		  
   		  function altera_senha($acesso_idempresa, $acesso_idusuario, $senha, $hash){			  
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
 		        $senha = $this->encripta($senha);
			    $con = new conexao();
				$sql="select login from usuario where idusuario = '$acesso_idusuario' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$existe = $resultado->FetchNextObject();
				$login=$existe->LOGIN;
				$sql="select idusuario from usuario where login = '$login' and senha='$senha' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$existe = $resultado->FetchNextObject();
				if ($existe->IDUSUARIO ==""){
					$sql = "update usuario set senha = '$senha' where idusuario='$acesso_idusuario' and idempresa='$acesso_idempresa'";		
					$resultado = $con->banco->Execute($sql);
				} else {
					return 0;	
				}
			}
		  }

		  function del_usuario($acesso_idempresa, $idusuario, $acesso_idusuario, $hash){			  
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
			if ($valida == "ok"){
				$con = new conexao();
				$del1= "update financeiro set del='SIM' where idempresa='$acesso_idempresa' and idrevendedor='$idusuario'";
				$del2= "update csp_user set del='SIM' where idempresa='$acesso_idempresa' and id in (select idprovedor from provedor where idrevendedor ='$idusuario')";
				$del3= "update provedor set del='SIM' where idempresa='$acesso_idempresa' and idrevendedor='$idusuario'";
				$del4= "update usuario set del='SIM' where idempresa='$acesso_idempresa' and (idusuario='$idusuario' or idrevendedor='$idusuario')";

				$sql2="select idprovedor, csp_limite, idrevendedor from usuario where idusuario='$idusuario'";
				$res = $con->banco->Execute($sql2);
				$reg = $res->FetchNextObject();
				$idprovedor=$reg->IDPROVEDOR;
				$csp_limite=$reg->CSP_LIMITE;
				$idrevendedor_pai = $reg->IDREVENDEDOR;
				$del5="update provedor set del='SIM' where idempresa='$acesso_idempresa' and idprovedor='$idprovedor' and revendedor='SIM'";

				$con->banco->Execute($del1);
				$con->banco->Execute($del2);
				$con->banco->Execute($del3);
				$con->banco->Execute($del4);
				$con->banco->Execute($del5);
				// Atualizando Saldo
				$this->atualizaSaldo($acesso_idempresa, $idrevendedor_pai, $csp_limite, "add");
				
				$filtro="";$filtro2="";
				return $this->filtra_grid_usuario($acesso_idempresa, $filtro, $filtro2,"0",$acesso_idusuario, $hash);
			}
		  }

//manutencao_usuario2
		  function filtra_grid_profile_usuario($acesso_idempresa, $idusuario){
			    $con = new conexao();
				$sql = "select profile.idprofile, profile.descricao, profile.host, profile.profile from usuario_profile, profile where usuario_profile.idprofile = profile.idprofile and usuario_profile.idempresa='$acesso_idempresa' and usuario_profile.idusuario ='$idusuario' ";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
   			    $dados_bd['dados'][0]['idprofile'] = "";
			    $dados_bd['dados'][0]['profile']   = "";
			    $dados_bd['dados'][0]['host']      = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprofile'] = $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']   = $registro->PROFILE;
					 $dados_bd['dados'][$i]['descricao'] = $registro->DESCRICAO;
					 $dados_bd['dados'][$i]['host']      = $registro->HOST;
					 $i++;
				}
				return $dados_bd;
		  }

  		  function altera_usuario($acesso_idempresa, $id, $email_servidor, $email_porta, $email_conta, $email_senha, $situacao, $ssl, $hash){
				$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
				if ($valida == "ok"){
			    $con = new conexao();
				if ($id <> ""){
					$sql = "update usuario set email_conta = '$email_conta', email_senha = '$email_senha', email_servidor='$email_servidor', email_porta='$email_porta', situacao='$situacao', email_ssl = '$ssl' where idusuario='$id'";
					if ($situacao == "Bloqueado"){
						$sqlgrava2="update csp_user set situacao='Bloqueado' where situacao='Ativo' and id in (select idprovedor from provedor where idrevendedor='$id' and idempresa='$acesso_idempresa')";
						$resultado = $con->banco->Execute($sqlgrava2);
					}
					if ($situacao == "Ativo"){
						$sqlgrava2="update csp_user set situacao='Ativo' where situacao='Bloqueado' and id in (select idprovedor from provedor where idrevendedor='$id' and idempresa='$acesso_idempresa')";
						$resultado = $con->banco->Execute($sqlgrava2);
					}

				}
				$fnome=""; $flogin="";
				$resultado = $con->banco->Execute($sql);
				$dados_bd = $this->filtra_grid_profile_usuario($acesso_idempresa, $fnome, $flogin);
				return $dados_bd;
				}
		  }

		  function filtra_sel_profile($acesso_idempresa, $acesso_idusuario, $acesso_nivel){
			    $con = new conexao();
				$sql = "select * from profile where idempresa='$acesso_idempresa' and del='NAO'";
				if ($acesso_nivel == "REVENDEDOR"){
					$sql .= " and idprofile in (select idprofile from usuario_profile where idempresa = '$acesso_idempresa' and idusuario='$acesso_idusuario')";	
				}
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprofile'] 	= $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']   	= $registro->PROFILE;
					 $dados_bd['dados'][$i]['descricao']   	= $registro->DESCRICAO;
					 $dados_bd['dados'][$i]['url']   	 	= $registro->HOST;
					 $dados_bd['dados'][$i]['portaprofile'] = $registro->PORTAPROFILE;
					 $dados_bd['dados'][$i]['key']   		= $registro->DES;
					 $i++;
				}
				return $dados_bd;
		  }
		  function filtra_sel_profile_teste($acesso_idempresa, $idusuario){
			    $con = new conexao();
				$sql = "select * from profile where idempresa='$acesso_idempresa' and teste='SIM' and del='NAO'";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprofile'] = $registro->IDPROFILE;
					 $dados_bd['dados'][$i]['profile']   = $registro->PROFILE;
					 $dados_bd['dados'][$i]['url']   = $registro->HOST;
					 $dados_bd['dados'][$i]['portaprofile']   = $registro->PORTAPROFILE;
					 $dados_bd['dados'][$i]['key']   = "0102...1314";
					 $i++;
				}
				return $dados_bd;
		  }
		  function buscaEmpresa($acesso_idempresa){
			    $con = new conexao();
				$sql = "select empresa.*, parametros.* from empresa, parametros where empresa.idempresa = '$acesso_idempresa' and empresa.idempresa = parametros.idempresa";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idempresa']	= $registro->IDEMPRESA;
					 $dados_bd['dados'][$i]['descricao']	= $registro->DESCRICAO;					 
					 $dados_bd['dados'][$i]['email']   		= $registro->EMAIL;
					 $dados_bd['dados'][$i]['logo']   		= $registro->LOGO;
					 $dados_bd['dados'][$i]['situacao']   	= $registro->SITUACAO;
					 $dados_bd['dados'][$i]['link']   		= $registro->LINKBOLETO;
					 $dados_bd['dados'][$i]['limite']   	= $registro->LIMITE;
					 $dados_bd['dados'][$i]['kkey']   		= $registro->KKEY;
					 $dados_bd['dados'][$i]['teste']   		= $registro->TEMPO_TESTE;
					 $dados_bd['dados'][$i]['permitedel'] 	= $registro->PERMITE_EXCLUIR;
					 $dados_bd['dados'][$i]['bloqueiarev']	= $registro->BLOQUEIA_REVENDEDOR_VENCIDO;
					 $dados_bd['dados'][$i]['prorroga_vcto']= $registro->PRORROGA_VCTO;
					 $dados_bd['dados'][$i]['plano_profile']= $registro->PLANO_PROFILE;
					 $i++;
				}
				return $dados_bd;
		  }
		  function gravaEmpresa($idempresa, $descricao, $email, $chave, $link, $permitedel, $tempoteste, $bloqueiarev, $prorrogavcto, $planoprofile, $hash){			 
			$valida = $this->validaAcessoLogado($hash, $idempresa, "");
			if ($valida == "ok"){ 
				$con = new conexao();
				$sql1 = "update empresa set descricao='$descricao', email='$email', kkey='$chave', linkboleto='$link' where idempresa='$idempresa'"; 
				$sql2 = "update parametros set tempo_teste='$tempoteste', permite_excluir='$permitedel', bloqueia_revendedor_vencido='$bloqueiarev',prorroga_vcto='$prorrogavcto', plano_profile = '$planoprofile' where idempresa='$idempresa'"; 
				$con->banco->Execute($sql1);
				$con->banco->Execute($sql2);
				return "OK";
		  }
		  }


   		  function grava_usuario_profile($acesso_idempresa, $idusuario, $idprofile, $hash){
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			    $con = new conexao();
				$sql="select count(idusuario) as qtde from usuario_profile where idempresa='$acesso_idempresa' and idusuario='$idusuario' and idprofile='$idprofile'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				if ($registro->QTDE == 0){
					$ins="insert into usuario_profile (idempresa, idusuario, idprofile) values ('$acesso_idempresa', '$idusuario', '$idprofile')";
					$con->banco->Execute($ins);
				} 
				$dados_bd = $this->filtra_grid_profile_usuario($acesso_idempresa, $idusuario);
				return $dados_bd;
			}
		  }
   		  function excluir_usuario_profile($acesso_idempresa, $idusuario, $idprofile, $hash){			  
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			    $con = new conexao();
				$ins="delete from usuario_profile where idempresa = '$acesso_idempresa' and idusuario='$idusuario' and idprofile='$idprofile'";
				$con->banco->Execute($ins);
				$dados_bd = $this->filtra_grid_profile_usuario($acesso_idempresa, $idusuario);
				return $dados_bd;
			}
		  }
		  
		  
  		  function filtra_grid_transacao($acesso_idempresa, $acesso_idusuario, $especie){
			    $con = new conexao();
				$sql = "select usuario_especie.*, usuario.login from usuario_especie, usuario, especie where usuario_especie.idusuario = usuario.idusuario and usuario_especie.idempresa='$acesso_idempresa' and usuario_especie.idusuario = '$acesso_idusuario' and usuario_especie.especie = especie.especie and especie.cobranca = 'Online'";
				if ($especie <> ""){
					$sql .= " and especie.especie = '$especie'";	
				}
				$sql .= " group by usuario_especie.token";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['id']			= $registro->ID;
   				     $dados_bd['dados'][$i]['idusuario']	= $registro->IDUSUARIO;
					 $dados_bd['dados'][$i]['login']		= $registro->LOGIN;
					 $dados_bd['dados'][$i]['especie']	    = $registro->ESPECIE;
					 $dados_bd['dados'][$i]['token']	    = $registro->TOKEN;
					 $dados_bd['dados'][$i]['email'] 		= $registro->EMAIL;
					 $dados_bd['dados'][$i]['retorno']	    = $registro->RETORNO;
					 $dados_bd['dados'][$i]['situacao']     = $registro->SITUACAO;
					 $dados_bd['dados'][$i]['chavekey']     = $registro->CHAVEKEY;
					 $i++;
				}
				return $dados_bd;
		  }
		  
  		  function grava_transacao($acesso_idempresa, $acesso_idusuario, $especie, $id, $email, $token, $retorno, $situacao, $txtkey){
			    $con = new conexao();
				if ($id <> ""){
					$sql = "update usuario_especie set especie = '$especie', token='$token', email='$email', retorno='$retorno', situacao='$situacao', chavekey='$txtkey' where id='$id'";
				} else {
					$SQL = "select id from usuario_especie where idempresa='$acesso_idempresa' and idusuario = '$acesso_idusuario' and especie='$especie' and email='$email'";
					$res = $con->banco->Execute($SQL);
					$reg = $res->FetchNextObject();
					if ($reg->ID == ""){
						$sql = "insert into usuario_especie (idusuario, idempresa, especie, token, email, retorno, situacao, chavekey) values ('$acesso_idusuario', '$acesso_idempresa', '$especie', '$token', '$email', '$retorno', '$situacao','$txtkey')";
					} else {
						return 0;
					}
				}
				$resultado = $con->banco->Execute($sql);
				$dados_bd = $this->filtra_grid_transacao($acesso_idempresa, $acesso_idusuario,"");
				return $dados_bd;
		  }
		  
		  
		  function filtra_sel_especie_transacao($acesso_idempresa, $tipo){
			    $con = new conexao();
				$sql = "select * from especie where idempresa='$acesso_idempresa' and tipo='$tipo' and cobranca='Online' order by especie ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['especie']= $registro->ESPECIE;
					 $i++;
				}
				return $dados_bd;
		  }

//manutencao_enviar_email
		  function filtra_grid($acesso_idempresa, $acesso_idusuario, $sel_assunto, $vctoi, $vctof, $situacao, $idprofile){
				$con = new conexao();
				$sql = "select * from provedor where idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and situacao='$situacao' and email <> '' and provedor.del='NAO'";
				
				if ($sel_assunto == "Cliente Bloqueado"){
					if ($idprofile <> "0"){
						$sql .= " and idprovedor in (select id from csp_user where idempresa='$acesso_idempresa' and situacao='Bloqueado and del='NAO' and idprofile='$idprofile')";	
					} else {
						$sql .= " and idprovedor in (select id from csp_user where idempresa='$acesso_idempresa' and situacao='Bloqueado and del='NAO')";		
					}
				}
				if ($sel_assunto == "Cliente Desbloqueado"){
					if ($idprofile <> "0"){
						$sql .= " and idprovedor in (select id from csp_user where idempresa='$acesso_idempresa' and situacao='Ativo' and del='NAO' and idprofile='$idprofile')";	
					} else {
						$sql .= " and idprovedor in (select id from csp_user where idempresa='$acesso_idempresa' and situacao='Ativo' and del='NAO')";		
					}
				}
				
				if ($sel_assunto == "Mensalidades"){
					$vctoI = ymd($vctoi);
					$vctoF = ymd($vctof);	
					$sql .= " and idprovedor in (select idprovedor from financeiro where especie = 'a Receber' and idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and (datavencimento between '$vctoI' and '$vctoF') and situacao = 'Pendente')";
				}
				if ($sel_assunto == "Boletos Bancarios"){
					$vctoI = ymd($vctoi);
					$vctoF = ymd($vctof);	
					$sql .= " and idprovedor in (select idprovedor from financeiro where especie = 'Boleto' and idempresa='$acesso_idempresa' and idrevendedor='$acesso_idusuario' and (datavencimento between '$vctoI' and '$vctoF') and situacao = 'Pendente')";
				}
				if ($sel_assunto == "Renovacao de Acesso"){
					$vctoI = ymd($vctoi);
					$vctoF = ymd($vctof);	
					if ($idprofile <> "0"){
						$sql .= " and idprovedor in (select id from csp_user where idempresa = '$acesso_idempresa' and expiredate between '$vctoI' and '$vctoF' and idprofile='$idprofile')";
					} else {
						$sql .= " and idprovedor in (select id from csp_user where idempresa = '$acesso_idempresa' and expiredate between '$vctoI' and '$vctoF')";
					}
				}

				if ($sel_assunto == "Informar manualmente" && $vctoi <> "" && $vctof <> ""){
					$vctoI = ymd($vctoi);
					$vctoF = ymd($vctof);
					if ($idprofile <> "0"){
						$sql .= " and idprovedor in (select id from csp_user where idempresa = '$acesso_idempresa' and expiredate between '$vctoI' and '$vctoF' and idprofile='$idprofile')";
					} else {
						$sql .= " and idprovedor in (select id from csp_user where idempresa = '$acesso_idempresa' and expiredate between '$vctoI' and '$vctoF')";
					}
				}

				$sql .= " order by provedor.nome ASC";
				$resultado = $con->banco->Execute($sql);
				$dados_bd['dados'][0] = "";
				$i = 0;
				while($registro = $resultado->FetchNextObject())
				{
					 $dados_bd['dados'][$i]['idprovedor']    = $registro->IDPROVEDOR;
   				     $dados_bd['dados'][$i]['nome']          = $registro->NOME;
					 $dados_bd['dados'][$i]['email']         = $registro->EMAIL;
					 $dados_bd['dados'][$i]['diavcto']       = $registro->DIAVENCIMENTO;
					 $dados_bd['dados'][$i]['marcar']        = true;
					 $i++;
				}
				return $dados_bd;
		  }

  		  function envia_email($acesso_idempresa, $id_user, $acesso_idusuario, $sel_assunto, $vctoi, $vctof, $msg_adicional, $array_datagrid, $hash){			
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $id_user);
			if ($valida == "ok"){
				$con = new conexao();
				$n=0;
				foreach ($array_datagrid as $value){
					$para=$value->email;
					$cliente=$value->nome;
					$sele=$value->checked;
					$idcliente=$value->idprovedor;
					if ($sele == "true"){
						$n++;						
						if ($sel_assunto == "Dados para Conexao"){
							$this->enviar_email_dados_conexao($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente);
						}
						if ($sel_assunto == "Cliente Bloqueado"){
							$this->enviar_email_bloqueio($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente);
						}
						if ($sel_assunto == "Cliente Desbloqueado"){
							$this->enviar_email_desbloqueio($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente);
						}
						
						if ($sel_assunto == "Mensalidades"){
							$numero="";
							$this->enviar_email_mensalidade($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente, $numero, $vctoi, $vctof);
						}
						if ($sel_assunto == "Boletos Bancarios"){
							$numero="";
							$this->enviar_email_boleto($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente, $numero, $vctoi, $vctof);
						}
						if ($sel_assunto == "Renovacao de Acesso"){
							$this->enviar_email_renovacao_acesso($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente, $vctoi, $vctof);
						}
						
						if ($sel_assunto == "Informar manualmente"){
							$this->enviar_email_informar_manualmente($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente);
						}
						
					}
				}
				return $n;
			}
		  }
		  

		  
//cspadm_smtp
	function enviar_email($acesso_idempresa, $acesso_idusuario, $para, $assunto, $mensagem){
		$con = new conexao();
		$sql="select * from usuario where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario'";
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		$smtp_host  = $registro->EMAIL_SERVIDOR;
		$smtp_port  = $registro->EMAIL_PORTA;
		$smtp_email = $registro->EMAIL_CONTA;
		$smtp_senha = $registro->EMAIL_SENHA;
		$smtp_ssl   = $registro->EMAIL_SSL;

		if ($smtp_host == "" || $smtp_port == "" ||  $smtp_email == ""|| $smtp_senha == ""){
			return 0;
		} else {
			$mailer = new PHPMailer();
			$mailer->IsSMTP();
			$mailer->SMTPDebug = 1;
			$mailer->IsHTML(true);
			$mailer->Port = "$smtp_port"; 
			$mailer->Host = "$smtp_host";
			$mailer->SMTPAuth = true; //define se haverá ou não autenticação no SMTP
			if ($smtp_ssl == "Sim"){
				$mailer->SMTPSecure = "ssl";   // Utilizado pelo gmail
			}
			
			$mailer->Username = "$smtp_email"; //Informe o e-mai o completo
			$mailer->Password = "$smtp_senha"; //Senha da caixa postal
			$mailer->FromName = $assunto; //Nome que será exibido para o destinatário
			$mailer->From = "$smtp_email"; //Obrigatório ser a mesma caixa postal indicada em "username"
			$mailer->AddAddress($para); //Destinatários
			$mailer->Subject = utf8_decode($assunto);  
			$mailer->Body = $mensagem;
			if (!$mailer->Send()){
				return "Erro: " . $mailer->ErrorInfo;
			} 				
		}
	}
	
// envio de email informando os dados de conexao
	function enviar_email_dados_conexao($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){
		
		require ('mail/dados_conexao.php');
		
	}

	function enviar_email_dados_code($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){
		
		require ('mail/dados_code.php');
		
	}
	
	
	// envio de email informando os dados de code ativado
	function enviar_email_code_ativado($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){
		
		require ('mail/code_ativado.php');
		
	}


	
// envio de email informando que o cliente foi bloqueado	
	function enviar_email_bloqueio($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){
		
		require ('mail/informa_bloqueio.php');
		
	}
	
// Envio de email de clientes desbloqueados
	function enviar_email_desbloqueio($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){
		
		require ('mail/cliente_desbloqueado.php');
		
	}
	
	function enviar_email_transacao($acesso_idempresa, $acesso_idusuario, $para, $id_pedido, $cliente, $data_transacao, $tipo_pagamento, $produto_descricao, $especie, $id_transacao, $status, $valor){
		
		require ('mail/email_transacao.php');
		
	}

	
// Envio de Email referente a mensalidades
	function enviar_email_mensalidade($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, $vctoi, $vctof){
		
		require ('mail/informa_mensalidade.php');
		
	}
	function enviar_email_transacao_online($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, $vctoi, $vctof){
		
		require ('mail/transacao_online.php');
		
	}

	function enviar_email_boleto($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idprovedor, $numero, $vctoi, $vctof){
		
		require ('mail/email_boleto.php');
		
	}


// Envio de Email referente a alteracao de vencimentos- boletos bancarios
	function enviar_email_alteracao_vcto_boleto($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $cliente, $vctoI, $vctoF){
		
		require ('mail/alteracao_vencimento_boleto.php');
		
	}

// Envio de Email referente a renovacao de acesso
	function enviar_email_renovacao_acesso($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente, $vctoi, $vctof){
		
		require ('mail/renova_acesso.php');
		
	}

	function enviar_email_informar_manualmente($acesso_idempresa, $acesso_idusuario, $para, $msg_adicional, $idcliente){

	require ('mail/informa_manual.php');

	}

	function encripta($string){
		$criptografada = base64_encode($string);
		return $criptografada;
	}
	function serial($string){
		$con = new conexao();
		$sql = "select * from serial";
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		if ($registro->TEMP <> $string){
			$sql = "update serial set temp='$string'";
			$con->banco->Execute($sql);		
		}
	}
		  
	function decripta($string){
		$descriptografada=base64_decode($string);
		return $descriptografada;
	}

	public function admin_financeiro($acesso_idempresa, $acesso_idusuario, $sel_situacao, $sel_oqfazer, $dados, $sel_especie, $hash){		
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
		if ($valida == "ok"){
		$con = new conexao();
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
		if ($valida == "ok"){
		foreach ($dados as $value){
				$sele=$value->checked;
				$valor=$value->valor;
				$idfinanceiro=$value->idfinanceiro;
				$databaixa=$value->databaixa;
				$valorbaixa=$value->valorbaixa;
				if ($sele == "true"){
					if ($sel_oqfazer == "Pagar"){
						$databaixa=date('Y-m-d');
						$sql = "update financeiro set situacao='Pago', databaixa='$databaixa', valorbaixa='$valorbaixa' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";
					}
					
					if ($sel_oqfazer == "Cancelar_Pagamento"){
						$databaixa="0000-00-00";
						$sql = "update financeiro set situacao='Pendente', databaixa='$databaixa', valorbaixa='0' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";
					}

					if ($sel_oqfazer == "Cancelar"){
						$sql = "update financeiro set situacao='Cancelado' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";
					}
					
					if ($sel_oqfazer == "Descancelar"){
						if ($valorbaixa <> "" && $valorbaixa > 0){
							$sql = "update financeiro set situacao='Pago' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";
						} else {
							$sql = "update financeiro set situacao='Pendente', databaixa='0000-00-00', valorbaixa='0' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";	
						}
					}
					$con->banco->Execute($sql);
				}
			}
			return $this->filtra_grid_financeiro($acesso_idempresa, $acesso_idusuario, $sel_especie, "","","",$sel_situacao,"", $hash);
		}
		}
	}
	
	function excluir_profile($acesso_idempresa, $acesso_idusuario, $idprofile, $hash){		
		$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, $acesso_idusuario);
		if ($valida == "ok"){
		$con = new conexao();
		$sql = "select count(name) as qtde from csp_user where idempresa='$acesso_idempresa' and idprofile='$idprofile' and del='NAO'";
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		if ($registro->QTDE > 0){
			return 1;	
		}
		$sel = "select count(idusuario) as qtde from usuario_profile where idprofile='$idprofile' and idempresa='$acesso_idempresa'";
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		if ($registro->QTDE > 0){
			return 2;	
		}
		$sql = "update profile set del='SIM' where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
		$con->banco->Execute($sql);
		$dados_bd = $this->filtra_grid_profile($acesso_idempresa, "", $hash);
		return $dados_bd;
		}
	}

//******************************************************************************************************************************


// cspadm_relatorio
  	  function financeiro_filtra_grid($acesso_idempresa, $idrevendedor, $tipo, $vctoi, $vctof, $nome, $situacao, $ordem, $idcliente){	
		    $con = new conexao();
			$sql = "select financeiro.*, provedor.nome, especie.cobranca from financeiro, provedor, especie where financeiro.idprovedor = provedor.idprovedor and financeiro.idempresa='$acesso_idempresa' and financeiro.idrevendedor='$idrevendedor' and financeiro.especie = especie.especie and financeiro.idempresa = especie.idempresa and financeiro.del='NAO'";
			if ($idcliente <> "0"){
				$sql .= " and financeiro.idprovedor = '$idcliente'";	
			}
			if ($nome <> ""){
				$sql .= " and provedor.nome like '$nome%'";
			}
			if ($vctoi <> "" && $vctof <> ""){
				$vctoI=ymd($vctoi);
				$vctoF=ymd($vctof);
				$sql .= " and financeiro.datavencimento between '$vctoI' and '$vctoF'";
			}
			if ($tipo <> "Todos"){
				$sql .= " and financeiro.tipo = '$tipo'";	
			}
			if ($situacao <> "Todos"){
				$sql .= " and financeiro.situacao = '$situacao'";	
			}
			if ($ordem == "Nome Cliente"){
				$sql .= " order by provedor.nome ASC";
			}

			if ($ordem == "Tipo"){
				$sql .= " order by financeiro.tipo ASC";
			}
			if ($ordem == "Vencimento"){
				$sql .= " order by financeiro.datavencimento ASC";
			}
			if ($ordem == "Emissao"){
				$sql .= " order by financeiro.dataemissao ASC";
			}

			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject())
			{
				if ($registro->ESPECIE == "Boleto" && $registro->SITUACAO == "Pendente"){
					$nossonumero=$registro->NUMERO;
					$idbanco = $registro->IDBANCO;
					
					$sql_boleto="select boletophp.arquivo2, empresa.linkboleto from boletophp, banco, empresa where banco.boletophp = boletophp.boletophp and banco.idbanco = '$idbanco' and banco.idempresa=empresa.idempresa";
					$result = $con->banco->Execute($sql_boleto);
					$reg    = $result->FetchNextObject();
					$arquivophp=$reg->ARQUIVO2;
					$linkhost=$reg->LINKBOLETO;
					$link_boleto="boletophp/$arquivophp?idbanco=$idbanco&numero=$nossonumero";
				}
				if ($registro->COBRANCA == "Online"){
					$dados=$this->filtra_grid_transacao($acesso_idempresa, $idrevendedor, $registro->ESPECIE);
/*					foreach ($dados as $value){
						foreach ($value as $dd){
							$dados_bd['dados'][$i]['transacao_token']	= $dd['token'];
							$dados_bd['dados'][$i]['transacao_key']		= $dd['chavekey'];
							$dados_bd['dados'][$i]['transacao_email']	= $dd['email'];
						}
					}
*/					
						
				}
				
				 $dados_bd['dados'][$i]['id']			= $registro->IDFINANCEIRO;
				 $dados_bd['dados'][$i]['numero']		= $registro->NUMERO;
				 $dados_bd['dados'][$i]['tipo']			= $registro->TIPO;
				 $dados_bd['dados'][$i]['especie']		= $registro->ESPECIE;
				 $dados_bd['dados'][$i]['emissao']		= dmy($registro->DATAEMISSAO);
				 $dados_bd['dados'][$i]['vencimento']	= dmy($registro->DATAVENCIMENTO);
				 $dados_bd['dados'][$i]['situacao']		= $registro->SITUACAO; 
				 $dados_bd['dados'][$i]['valor']		= $registro->VALOR;
				 $dados_bd['dados'][$i]['nome']			= $registro->NOME;
 				 $dados_bd['dados'][$i]['databaixa']	= dmy($registro->DATABAIXA);
				 $dados_bd['dados'][$i]['valorbaixa']	= $registro->VALORBAIXA;
				 $dados_bd['dados'][$i]['cobranca']		= $registro->COBRANCA;
				 $dados_bd['dados'][$i]['idbanco']		= $registro->IDBANCO;
				 $dados_bd['dados'][$i]['boleto_bancario']	= $link_boleto;
				 $i++;
			}
			return $dados_bd;
	 }
	function servidor($sn, $url){
		$post = "sn=$sn" .
				"&url=$url";
		ob_start();
		$ch = curl_init();		
		// informar URL e outras funções ao CURL
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
		$output = curl_exec($ch);
		$info = curl_getinfo($ch);
		$resposta = ob_get_contents();
		ob_end_clean();
		// Faz um POST
		
		// Acessar a URL e imprimir a saída
		
		return $resposta;
	}
	
	function servidorbkp($sn, $url){
		$post = "sn=$sn" .
				"&url=$url";
		ob_start();
		$ch = curl_init();		
		// informar URL e outras funções ao CURL
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
		$output = curl_exec($ch);
		$info = curl_getinfo($ch);
		$resposta = ob_get_contents();
		ob_end_clean();
		// Faz um POST
		
		// Acessar a URL e imprimir a saída
		
		return $resposta;
	}
	
	function parametroUsuario($acesso_idempresa, $acesso_idusuario){
		$con = new conexao();
		$sql = "select * from usuario where idempresa='$acesso_idempresa' and idusuario='$acesso_idusuario'";
		$resultado  = $con->banco->Execute($sql);
		$registro   = $resultado->FetchNextObject();
		$dados_retorno['dados']['delrevenda'] 	= $registro->DELREVENDA;
		$dados_retorno['dados']['delcliente'] 	= $registro->DELCLIENTE;
		return $dados_retorno;			
	}
	
	function conexaoCSP($acesso_idempresa, $acesso_idusuario, $acesso_nivel, $idprofile, $comando, $parametro, $filtro){
			$con = new conexao();
  		  	$sql="select * from profile where idempresa='$acesso_idempresa' and idprofile='$idprofile'";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$cspusuario = $this->decripta($registro->USUARIO);
			$cspsenha   = $this->decripta($registro->SENHA);
			$csphost    = $registro->HOST;
			$cspporta   = $registro->PORTACSP;
			if ($csphost == "" || $cspusuario == "" || $cspsenha == "" || $cspporta == ""){
				return "ERRO";
			} else {
				$dados_plano['dados'] = "";
				$i = 0;
				if ($parametro <> ""){
					$complemento = "&$parametro=$filtro";
				} else {
					$complemento = "";	
				}
													
				$xml = simplexml_load_file("http://$cspusuario:$cspsenha@$csphost:$cspporta/xmlHandler?command=$comando$complemento");
				if ($comando == "proxy-status"){
					foreach ($xml->children() as $teste1) {
						$dados_plano['dados'][$i]['01.Status'] 	= (string)$teste1['state'];
						$dados_plano['dados'][$i]['02.Nome']      	= (string)$teste1['name'];
						$dados_plano['dados'][$i]['03.Started']   	= (string)$teste1['started'];
						$dados_plano['dados'][$i]['04.Duracao']  	= (string)$teste1['duration'];
						$dados_plano['dados'][$i]['05.Conectores'] = (string)$teste1['connectors'];
						$dados_plano['dados'][$i]['06.Sessions']   = (string)$teste1['sessions'];
						$dados_plano['dados'][$i]['07.Sessions Ativas ']   = (string)$teste1['active-sessions'];
						$dados_plano['dados'][$i]['08.ecm-count']   = (string)$teste1['ecm-count'];
						$dados_plano['dados'][$i]['09.ecm-forwards']   = (string)$teste1['ecm-forwards'];
						$dados_plano['dados'][$i]['10.ecm-cache']   = (string)$teste1['ecm-cache-hits'];
						$dados_plano['dados'][$i]['11.ecm-failures']   = (string)$teste1['ecm-failures'];
						$dados_plano['dados'][$i]['12.ecm-filtered']   = (string)$teste1['ecm-filtered'];
						$i++;
/*						foreach ($teste1->children() as $teste2) {
							$dados_plano['dados'][$i]['Status'] = (string)$teste2['state'];
							$dados_plano['dados'][$i]['Nome']   = (string)$teste2['name'];
							$i++;
						}
*/						
					}
				}
				
				if ($comando == "all-services"){
					foreach ($xml->children() as $teste1) {
						foreach ($teste1->children() as $teste2) {
							$dados_plano['dados'][$i]['ID']		= (string)$teste2['id'];
							$dados_plano['dados'][$i]['cdata']  = (string)$teste2['cdata'];
							$dados_plano['dados'][$i]['Canal']  = (string)$teste2['name'];
							$dados_plano['dados'][$i]['Profile']= (string)$teste2['profile'];
							$i++;
						}						
					}
				}
				if ($comando == "user-log"){
					foreach ($xml->children() as $teste1) {							
						foreach ($teste1->children() as $teste2) {
							$dados_plano['dados'][$i]['01.Login'] 		= (string)$teste1['name'];
							$dados_plano['dados'][$i]['02.Timestamp'] 	= (string)$teste2['timestamp'];
							$dados_plano['dados'][$i]['03.Canal']      	= (string)$teste2['service-name'];
							$dados_plano['dados'][$i]['04.Time']   		= (string)$teste2['time'];
							$dados_plano['dados'][$i]['05.Flag']  		= (string)$teste2['flags'];
							$dados_plano['dados'][$i]['06.cws-name'] 	= (string)$teste2['cws-name'];
							$i++;
						}
					}
				}
				if ($comando == "user-warning-log"){
					foreach ($xml->children() as $teste1) {
						foreach ($teste1->children() as $teste2) {
							if ($filtro <> "" && $teste2['name'] == $filtro){
								continue;
							}
							$dados_plano['dados'][$i]['01.Login'] 		= (string)$teste2['name'];
							$dados_plano['dados'][$i]['02.Timestamp'] 	= (string)$teste2['timestamp'];
							$dados_plano['dados'][$i]['03.Canal']      	= (string)$teste2['service-name'];
							$dados_plano['dados'][$i]['04.Time']   		= (string)$teste2['time-cache'];
							$dados_plano['dados'][$i]['05.Flag']  		= (string)$teste2['flags'];
							$dados_plano['dados'][$i]['06.cws-name'] 	= (string)$teste2['cws-name'];
							$i++;
						}
					}
				}

				if ($comando == "last-seen"){
					foreach ($xml->children() as $teste1) {
						foreach ($teste1->children() as $teste2) {
							$dados_plano['dados'][$i]['01.Login']	 	= (string)$teste2['name'];
							$dados_plano['dados'][$i]['02.Profile']    	= (string)$teste2['profile'];
							$dados_plano['dados'][$i]['03.Last Login']	= (string)$teste2['last-login'];
							$dados_plano['dados'][$i]['04.Last Seen'] 	= (string)$teste2['last-seen'];
							$dados_plano['dados'][$i]['05.IP'] 			= (string)$teste2['host'];
							$i++;
						}
					}
					
				}
				if ($comando == "login-failures"){
					foreach ($xml->children() as $teste1) {
						foreach ($teste1->children() as $teste2) {
							$dados_plano['dados'][$i]['Login']	 	    = (string)$teste2['name'];
							$dados_plano['dados'][$i]['Porta/profile']  = (string)$teste2['context'];
							$dados_plano['dados'][$i]['Primeira Falha']	= (string)$teste2['first-failure'];
							$dados_plano['dados'][$i]['Ultima Falha'] 	= (string)$teste2['last-failure'];
							$dados_plano['dados'][$i]['Qtde Tentativa'] = (string)$teste2['failure-count'];
							$dados_plano['dados'][$i]['IP'] 			= (string)$teste2['host'];
							$dados_plano['dados'][$i]['Motivo']			= (string)$teste2['reason'];
							$i++;
						}
					}
				}
				
				return $dados_plano;				
			}	
		}
		
		function buscaSaldoCredito($acesso_idempresa, $idusuario, $situacao){
			$con = new conexao();
			$idusuarioprovedor = $this->buscaIDProvedorUsuario($acesso_idempresa, $idusuario);
			$sql = "select sum(saldo) as saldo from financeiro where idempresa='$acesso_idempresa' and idprovedor='$idusuarioprovedor' and financeiro.del='NAO' and situacao='$situacao' and especie='CREDITOS'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			return $registro->SALDO;
		}
		function calculaValidade($qtde, $expireatual){
			
			$dia = date('d');
			$mes = date('m');	
			$ano = date('Y');
			if ($expireatual <> ""){
				$expireD = substr($expireatual,0,2);
				$expireM = substr($expireatual,3,2);
				$expireA = substr($expireatual,6,4);
				if ("$expireA$expireM$expireD" > "$ano$mes$dia"){
					$dia=$expireD;
					$mes=$expireM;
					$ano=$expireA; 
				}
			}
			
			$mes = $mes + $qtde;
			if (($mes == "2" || $mes == "02") && $dia > 28){
				$dia = "28";
			}
			if ($dia > 30){
				$dia == "30";
			}
			if ($mes > 12){
				$mes = $mes - 12;
				$ano++;
			}
			$dia = CompletaComZeros(2,$dia);
			$mes = CompletaComZeros(2,$mes);
			return "$dia/$mes/$ano";			
		}
		
		function liberaCliente($acesso_idempresa, $login, $idrevendedor, $tempo){			
			$valida = $this->validaAcessoLogado($hash, $acesso_idempresa, "");
			if ($valida == "ok"){
			$con = new conexao();
			$dados_bd['dados'][0] = "";
			$i = 0;
			$saldo = $this->buscaSaldoCredito($acesso_idempresa,$idrevendedor,'Pago');
						
			if ($saldo <= 0){
				return "SEM_SALDO";
				
			}
			if ($saldo < $qtde ){
				return "SALDO_INSUFICIENTE";
			}
			$sql = "select name from csp_user where idempresa='$acesso_idempresa' and name='$login'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			if ($registro->NAME <> ""){
				return "LOGIN_EXISTENTE";
			} else {
				return "OK";
			}
			}
		}
		
		
		function descontaCredito($acesso_idempresa, $idrevendedor, $qtde, $login){
			$con = new conexao();
			$i=1;
			$idusuarioprovedor = $this->buscaIDProvedorUsuario($acesso_idempresa, $idrevendedor);
			while ($i <= $qtde){
				$sql = "select idfinanceiro, saldo from financeiro where idempresa='$acesso_idempresa' and idprovedor='$idusuarioprovedor' and situacao='Pago' and del='NAO' and saldo>0";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$idfinanceiro = $registro->IDFINANCEIRO;
				$saldo = $registro->SALDO;
				$saldo = $saldo - 1;
				$criadoem=date('d/m/Y');
				$ultimo_id = $this->ultimoCspuserCredito();
				
				// Gravando Expiredate
				$sql = "select expiredate from csp_user where idempresa='$acesso_idempresa' and name='$login'";
				$resultado = $con->banco->Execute($sql);
				$registro = $resultado->FetchNextObject();
				$expiredate=dmy($registro->EXPIREDATE);
				
				$sql2="insert into cspuser_credito (idcspuser_credito, idfinanceiro, idempresa, name, qtde, criadoem, situacao, del, validoate) values ('$ultimo_id', '$idfinanceiro', '$acesso_idempresa', '$login', '1', '$criadoem', 'Ativo', 'NAO', '$expiredate')";
				$con->banco->Execute($sql2);
				$sql3="update financeiro set saldo='$saldo' where idempresa='$acesso_idempresa' and idfinanceiro='$idfinanceiro'";
				$con->banco->Execute($sql3);
				$i++;
			}
//			return $sql2;
		}

	function ultimoCspuserCredito(){
			$con = new conexao();
			$sql = "select idcspuser_credito from cspuser_credito order by idcspuser_credito DESC limit 1";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			if ($registro->IDCSPUSER_CREDITO == ""){
				$id = 1;
			} else {
				$id=$registro->IDCSPUSER_CREDITO;
				$id++;
			}
			return $id;
		}

		function buscaIDProvedorUsuario($acesso_idempresa, $idusuario){
			$con = new conexao();
			$sql = "select idprovedor from usuario where idusuario = '$idusuario' and idempresa='$acesso_idempresa'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			return $registro->IDPROVEDOR;
		}
		
		function buscaCredito($acesso_idempresa, $idusuario, $saldo){
			$con = new conexao();
			$idrevendedor = $this->buscaIDProvedorUsuario($acesso_idempresa, $idusuario);
			$sql = "select * from financeiro where financeiro.idempresa='$acesso_idempresa' and financeiro.idprovedor='$idrevendedor' and financeiro.del='NAO' and financeiro.situacao='Pago'";
			if ($saldo == "1"){
				$sql .= " and financeiro.saldo >= 0";
			}
			if ($saldo == "0"){
				$sql .= " and financeiro.saldo = 0";
			}
			$sql .= " order by financeiro.saldo DESC";
			$resultado = $con->banco->Execute($sql);
			$dados_bd['dados'][0] = "";
			$i = 0;
			while($registro = $resultado->FetchNextObject()){
				$dados_bd['dados'][$i]['idcredito']	= $registro->IDFINANCEIRO;
				$dados_bd['dados'][$i]['qtde']		= $registro->QUANTIDADE;
				$dados_bd['dados'][$i]['saldo']		= $registro->SALDO;
				$dados_bd['dados'][$i]['criadoem']	= dmy(substr($registro->CRIADOEM,0,10));
				$i++;
			}
			return $dados_bd;
		}

	function addDayIntoDate($date,$days) {
	     // formato yyyy-mm-dd
	     $thisyear = substr ( $date, 0, 4 );
	     $thismonth = substr ( $date, 5, 2 );
	     $thisday =  substr ( $date, 8, 2 );
	     $nextdate = mktime ( 0, 0, 0, $thismonth, $thisday + $days, $thisyear );
    	 return strftime("%Y-%m-%d", $nextdate);
	}

	function subDayIntoDate($date,$days) {
	     // formato yyyy-mm-dd
    	 $thisyear = substr ( $date, 0, 4 );
	     $thismonth = substr ( $date, 5, 2 );
    	 $thisday =  substr ( $date, 8, 2 );
		 $nextdate = mktime ( 0, 0, 0, $thismonth, $thisday - $days, $thisyear );
	     return  strftime("%Y-%m-%d", $nextdate);
	}

	
	function atualizaEmpresa($idempresa, $login, $validoate){
		$con = new conexao();
		if ($idempresa == "1"){ // Somente a empresa principal do painel
			$tmp = substr($login,0,3);
			if ($tmp == "emp"){
				$idempresa = substr($login,3,10);
				$sql = "update empresa set validoate = '$validoate' where idempresa='$idempresa'";
				$con->banco->Execute($sql);
			}
		}
	}
	
	
	function verificaSaldo($idempresa, $idusuario, $qtde){
		$con = new conexao();
		$sql = "select csp_saldo from usuario where idusuario='$idusuario' and idempresa='$idempresa'";
		$resultado = $con->banco->Execute($sql);
		$registro = $resultado->FetchNextObject();
		$csp_saldo = $registro->CSP_SALDO;
		if ($qtde <> ""){
			$saldo = $csp_saldo - $qtde;
			if ($saldo < 0) {
				return 0;
			} else {
				return 1;	
			}
		} else {
			return $csp_saldo;
		}
	}
	function atualizaSaldo($idempresa, $idusuario, $qtde, $tipo){
		$con = new conexao();
		if ($tipo == "add"){
			$sql = "update usuario set csp_saldo = csp_saldo + $qtde where idempresa='$idempresa' and idusuario='$idusuario'";
		}
		if ($tipo == "del"){
			$sql = "update usuario set csp_saldo = csp_saldo - $qtde where idempresa='$idempresa' and idusuario='$idusuario'";
		}
		
		if ($tipo == ""){
			// Atualizando saldo do revendedor
			$sql = "select niveln from usuario where idempresa='$idempresa' and idusuario='$idusuario'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$niveln = $registro->NIVELN;
			$qtde_ativo = $this->conta_qtde_login_subrevenda($idempresa, $idusuario, $niveln);
			$saldo = $qtde - $qtde_ativo;
			if ($saldo < 0){
				$saldo = 0;
			}
			$sql = "update usuario set csp_saldo = '$saldo' where idusuario='$idusuario' and idempresa='$idempresa'";					
		}
		$con->banco->Execute($sql);
	}
	
	function conta_qtde_login_subrevenda($idempresa, $idusuario, $niveln){
		$con = new conexao();
		$qtde = 0;
		if ($niveln == "0"){
			$condicao = "nadmin";	
		}
		if ($niveln == "1"){
			$condicao = "nrev";	
		}
		if ($niveln == "2"){
			$condicao = "nsub1";	
		}
		if ($niveln == "3"){
			$condicao = "nsub2";
		}
		if ($niveln == "4"){
			$condicao = "nsub3";
		}
		if ($niveln == "5"){
			$condicao = "nsub4";
		}
		if ($niveln == "6"){
			$condicao = "nsub5";
		}
		if ($niveln == "7"){
			$condicao = "nsub6";
		}
		if ($niveln == "8"){
			$condicao = "nsub7";
		}
		if ($niveln == "9"){
			$condicao = "nsub8";
		}
		$qtde = $this->conta_qtde_login($idempresa, $idusuario);
		$sql_u = "select idusuario from usuario where $condicao = '$idrevendedor' and idusuario <> '$idusuario' and del='NAO' order by nadmin, nrev, nsub1, nsub2, nsub3, nsub4, nsub5, nsub6, nsub7, nsub8";
		$res_u = $con->banco->Execute($sql_u);
		while($reg_u = $res_u->FetchNextObject()){
			$IDUsuario = $reg_u->IDUSUARIO;
			$sql  = "select sum(csp_limite) as qtde from usuario where del='NAO' and idempresa='$idempresa' and situacao='Ativo' and idusuario = '$IDUsuario'";
			$resultado = $con->banco->Execute($sql);
			$registro = $resultado->FetchNextObject();
			$qtde = $qtde + $registro->QTDE;
		}
		return $qtde;
	}
	
	 function montaUsuario($idusuario, $idempresa, $niveln){
		$con = new conexao();
		$sqlU = "select * from usuario where idempresa='$idempresa' and idusuario='$idusuario'";
		$resU = $con->banco->Execute($sqlU);
		$regU = $resU->FetchNextObject();
		$nadmin = $regU->NADMIN;
		$nrev   = $regU->NREV;
		$nsub1	= $regU->NSUB1;
		$nsub2	= $regU->NSUB2;
		$nsub3	= $regU->NSUB3;
		$nsub4	= $regU->NSUB4;
		$nsub5	= $regU->NSUB5;
		$nsub6	= $regU->NSUB6;
		$nsub7	= $regU->NSUB7;
		$nsub8	= $regU->NSUB8;
		$retorno = "";
		if ($nadmin <> "0"){
			$s = "select login from usuario where idusuario='$nadmin'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln == 0){
				$retorno .= "$login";
			}
		}
		if ($nrev <> "0"){
			$s = "select login from usuario where idusuario='$nrev'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 1){
				$retorno .= "->$login";
			}
		}
		if ($nsub1 <> "0"){
			$s = "select login from usuario where idusuario='$nsub1'";
			$r= $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 2){
				$retorno .= "->$login";
			}
		}
		if ($nsub2 <> "0"){
			$s = "select login from usuario where idusuario='$nsub2'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 3){
				$retorno .= "->$login";
			}
		}
		if ($nsub3 <> "0"){
			$s = "select login from usuario where idusuario='$nsub3'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 4){
				$retorno .= "->$login";
			}
		}
		if ($nsub4 <> "0"){
			$s = "select login from usuario where idusuario='$nsub4'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 5){
				$retorno .= "->$login";
			}
		}
		if ($nsub5 <> "0"){
			$s = "select login from usuario where idusuario='$nsub5'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 6){
				$retorno .= "->$login";
			}
		}
		if ($nsub6 <> "0"){
			$s = "select login from usuario where idusuario='$nsub6'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 7){
				$retorno .= "->$login";
			}
		}
		if ($nsub7 <> "0"){
			$s = "select login from usuario where idusuario='$nsub7'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 8){
				$retorno .= "->$login";
			}
		}
		if ($nsub8 <> "0"){
			$s = "select login from usuario where idusuario='$nsub8'";
			$r = $con->banco->Execute($s);
			$re = $r->FetchNextObject();
			$login = $re->LOGIN;
			if ($niveln <= 9){
				$retorno .= "->$login";
			}
		}
		return $retorno;
	}

		function importa_xml($idempresa, $idusuario, $formato, $dados_xml, $hash){			
			$valida = $this->validaAcessoLogado($hash, "", "");
			if ($valida == "ok"){
			$con = new conexao();
			$i=0;
			$dados_bd['dados'][$i] = "";
//			$dados_xml = str_replace("\"", "\'", $dados_xml);
			$tmp = "<root> ";
			$tmp .= $dados_xml;
			$tmp .= " </root>";

			$xml = simplexml_load_string($tmp);
			
			foreach ($xml->user as $value) {
				$name =  $value["name"];
				$password = $value["password"];
				$email= $value["email-address"];
				$expire = $value["expire-date"];
				$profile = $value["profiles"];
				$display = $value["display-name"];
				$maxconnections = $value["maxconnections"];
				if ($email == ""){
					$email="";
				}
				if ($display == ""){
					$display = $name;	
				}
				if ($maxconnections == ""){
					$maxconnections = 1;
				}
				
				if ($formato == "NaoDefinido"){
					$anovcto = date('Y');
					$valida="$anovcto-12-31";
				} else {
					$tipo = substr($formato,1,1);
					if ($tipo == "/"){
						$expire_dmy = explode("/", $expire);
						if ($formato == "d/m/y"){
							$diavcto=$expire_dmy[0];
							$mesvcto=$expire_dmy[1];
							$anovcto=$expire_dmy[2];
						}
						if ($formato == "y/m/d"){
							$diavcto=$expire_dmy[2];
							$mesvcto=$expire_dmy[1];
							$anovcto=$expire_dmy[0];
						}
					}
					if ($tipo == "-"){
						$expire_dmy = explode("-", $expire);
						if ($formato == "d-m-y"){
							$diavcto=$expire_dmy[0];
							$mesvcto=$expire_dmy[1];
							$anovcto=$expire_dmy[2];
						}
						if ($formato == "y-m-d"){
							$diavcto=$expire_dmy[2];
							$mesvcto=$expire_dmy[1];
							$anovcto=$expire_dmy[0];
						}
					}
					$diavcto=$this->CompletaComZeros(2,$diavcto);
					$mesvcto=$this->CompletaComZeros(2,$mesvcto);
					$valida="$anovcto-$mesvcto-$diavcto";
				}
				
				$sql = "select name, del from csp_user where name='$name' and idempresa='$idempresa'";
				$resultado  = $con->banco->Execute($sql);
				$registro   = $resultado->FetchNextObject();
				$csp_name   = $registro->NAME;
				$del        = $registro->DEL;
				
				if ($csp_name <> ""){
					if ($del == "NAO"){
						$situacao = "ERRO. $csp_name ja existe";
					} else {
						$situacao = "OK!";
					}
				} else {
					$situacao = "OK";	
				}
				if ($name == "" || $password == "" || $profile == ""){
					$situacao = "ERRO. Dados nao encontrados";
				}
				
				$dados_bd['dados'][$i]['csplogin']	 = (string)$name;
				$dados_bd['dados'][$i]['cspsenha']	 = (string)$password;
				$dados_bd['dados'][$i]['cspnome']	 = (string)$display;
				$dados_bd['dados'][$i]['cspemail']	 = (string)$email;
				$dados_bd['dados'][$i]['cspprofile'] = (string)$profile;
				$dados_bd['dados'][$i]['cspqtde'] 	 = (string)$maxconnections;
				$dados_bd['dados'][$i]['cspvalido']  = (string)$valida;
				$dados_bd['dados'][$i]['cspsituacao']= (string)$situacao;
				$i++;
		    }
		    return $dados_bd;
			}
	  }

	  function importa_xml_OK($idempresa, $idusuario, $array_dados, $formato, $hash){		  
			$valida = $this->validaAcessoLogado($hash, $idempresa, "");
			if ($valida == "ok"){
			$con        = new conexao();
			$sql        = "select idprovedor from provedor order by idprovedor DESC limit 1";
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$idprovedor = $registro->IDPROVEDOR;
			$n=1;
			if ($idprovedor == ""){
				$idprovedor=1;
			} else {				
				$idprovedor++;
			}

			$sql        = "select idplano from plano where idempresa='$idempresa' and idrevendedor='$idusuario' and valor > 0 and del='NAO'";			
			$resultado  = $con->banco->Execute($sql);
			$registro   = $resultado->FetchNextObject();
			$idplano 	= $registro->IDPLANO;
			if ($idplano == ""){
				$sql = "select idplano from plano order by idplano DESC limit 1";	
				$resultado  = $con->banco->Execute($sql);
				$registro   = $resultado->FetchNextObject();
				$idplano = $registro->IDPLANO;
				$idplano++;
				$sql = "insert into plano (idplano, descricao, idrevendedor, valor) values ('$idplano', 'COBRANCA', '$idusuario','30')";	
				$con->banco->Execute($sql);
			}
			foreach ($array_dados as $value){
				$situacao = $value->cspsituacao;
				if ($situacao == "OK" or $situacao == "OK!"){
					$name =  $value->csplogin;
					$password = $value->cspsenha;
					$email= $value->cspemail;
					$valida = $value->cspvalido;
					$profile = $value->cspprofile;
					$display = $value->cspnome;
					$qtde = $value->cspqtde;
					$diavcto = substr($valida,0,2);
					if ($email == ""){
						$email="";
					}

					if ($display == ""){
						$display = $name;	
					}
					$tipo = substr($formato,1,1);
					
					$sql="select idprofile from profile where idempresa='$idempresa' and descricao='$profile'";
					$resultado  = $con->banco->Execute($sql);
					$registro   = $resultado->FetchNextObject();
					$idprofile=$registro->IDPROFILE;
					if ($idprofile ==""){
						$sql = "select idprofile from profile order by idprofile desc limit 1";
						$resultado  = $con->banco->Execute($sql);
						$registro   = $resultado->FetchNextObject();
						$idprofile = $registro->IDPROFILE;
						$idprofile++;
						$sql = "insert into profile (idprofile, idempresa, descricao) values ('$idprofile', '$idempresa', '$profile')";
						$con->banco->Execute($sql);
					}
					if ($situacao == "OK!"){
						// se o cliente existir com o status de DEL=SIM, exclui ele primeiro
						$sql_del = "delete from csp_user where idempresa='$idempresa' and name='$name'";
						$con->banco->Execute($sql_del);
					}
					
					$sql_provedor="insert into provedor (idprovedor, idempresa, idplano, idrevendedor, nome, diavencimento, situacao, tipo, email, gerarmensalidade, clienteteste) values ('$idprovedor', '$idempresa', '$idplano', '$idusuario', '$display', '$diavcto', 'Ativo', 1, '$email', '1', '0')";
					$sql_csp="insert into csp_user (id, idempresa, name, password, displayname, maxconnections, enabled, expiredate, situacao, seq, idprofile) values ('$idprovedor', '$idempresa', '$name', '$password', '$display', '$qtde', 'Ativo', '$valida', 'Ativo', '1', '$idprofile')";				
					$con->banco->Execute($sql_provedor);
					$con->banco->Execute($sql_csp);
					$idprovedor++;
					$n++;
				}
			  }
			  return $n;
			}
		  }
		  
	function CompletaComZeros($tamMax, $strIn) {
		$strOut = "";
		$tamStr = strlen($strIn);
		for ($i = $tamStr ; $i < $tamMax ; $i++) $strOut .= "0";
		return $strOut . $strIn;
	}
	
	function ultimoIdusuario(){
		$con = new conexao();
		$sql2 = "select idusuario from usuario order by idusuario DESC limit 1";
		$res = $con->banco->Execute($sql2);
		$reg = $res->FetchNextObject();
		$idusuario=$reg->IDUSUARIO;
		$idusuario++;
		return $idusuario;
	}
	function ultimoIdprovedor(){
		$con = new conexao();						
		$sql2 = "select idprovedor from provedor order by idprovedor DESC limit 1";
		$res = $con->banco->Execute($sql2);
		$reg = $res->FetchNextObject();
		$idprovedor=$reg->IDPROVEDOR;
		$idprovedor++;
		return $idprovedor;
	}	
	function ultimoIdfinanceiro(){
		$con = new conexao();
		$sql_idfinanceiro = "select idfinanceiro from financeiro order by idfinanceiro DESC limit 1";
		$r_idfinanceiro = $con->banco->Execute($sql_idfinanceiro);
		$reg_financeiro = $r_idfinanceiro->FetchNextObject();
		$idfinanceiro = $reg_financeiro->IDFINANCEIRO;
		$idfinanceiro++;
		return $idfinanceiro;
	}
		  
}
	
	class MeuPDF extends FPDF
	{
		function Header()
		{	
			$this->SetFont('Arial','B',16);
			$this->Cell(0, 10, 'Relatorio - Renovacao de Acesso',0,1,'C');
      		$this->SetFont('Arial', 'B', 12);
      		$this->Cell(40, 5, "Validade", 0, 0);
			$this->Cell(60, 5, "Login", 0, 0);
			$this->Cell(40, 5, "Profile", 0, 0);
			$this->Cell(50, 5, "Nome:", 0, 0);
			$this->Ln(20);
		}
		function Footer()
		{
			$this->SetY(-15);
			$this->SetFont('Arial','I',10);
			$this->Cell(0,10,'CSPADM 2.0 - Pagina '.$this->PageNo()." $diaatual ",0,0,'C');
		}
	}
?>
