<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<? 
SESSION_START();
SESSION_DESTROY();

include "includes/functions.php";
include "includes/begin.php";
$acao = $_GET["acao"];
$sc_usuario  = trim(pg_escape_string($_POST['form_usuario']));
$sc_senhaUser=trim($_POST['form_senha']);
$sc_senha    = md5($sc_senhaUser);
$sc_senhausuario = trim(pg_escape_bytea($_POST['form_senha']));
$sc_novasenha= trim(pg_escape_string($_POST['form_novasenha']));
$sc_novasenharedigitada= trim(pg_escape_string($_POST['form_novasenharedigitada']));
$novousuario=$_POST['form_novousuario'];
$sc_jacadastrado=$_POST['form_jacadastrado'];
$sc_tipodoc = $_POST['form_tipodoc'];
$sc_numdoc = $_POST['form_numdoc'];
$sc_documentoUsuario = $_POST['form_documento'];
$sc_documentoUsuario = trim(pg_escape_string($_POST['form_documento']));
$sc_autorizasenha = md5(trim(pg_escape_string($_POST['form_autorizaSenha'])));
$sc_nascimento = trim(pg_escape_string($_POST['form_nascimento']));
$sessao = $sc_usuario;
$sc_confnome = $_POST['form_confnome'];
$autorizaInclusao = md5(trim(pg_escape_string($_POST['form_autorizaInclusao'])));

/* Alteracao verifica Nascimento inclusao de novo usuario */

$sc_nascimentoInclui = trim(pg_escape_string($_POST['form_nascimentoInclui']));

/*   Fim Alteracao */


if (strlen($sc_usuario) == 0)
{
   header('location:index.php?msn=1');
   exit;
}

if (strlen($sc_senhaUser) == 0 && strlen($sc_usuario) == 0 && strlen($sc_documentoUsuario) != 0)
{
   header('location:index.php?msn=1');
   exit;
}

if (strlen($sc_documentoUsuario) != 0)
{
   include "includes/begin.php";
   $sql = "SELECT count(*) as senhas
           FROM   cultura.logon
           WHERE  senha='$sc_autorizasenha'            AND
                  (( tipo_perfil='A'                   AND
                     supervisor='S'
                   )                                    OR
                   (usuario_administrador = 'S')
                  )";

	
   $result=pg_query($dbh, $sql);
   $row=pg_fetch_array($result);
   if ($row['senhas'] == 0)
   {
     header('location:index.php?msn=19');
     exit;
   }

   $dia=substr($sc_nascimento,0,2);
   $mes=substr($sc_nascimento,3,2);
   $ano=substr($sc_nascimento,6,4);
   $sc_nascimento=$ano . "-" . $mes . "-" . $dia;
   
   SESSION_START();
	
   $_SESSION["sessao"] = $sessao;
   $_SESSION["sc_usuario"]=$sc_usuario;

   $sql1 = "SELECT codigousuario, usuario, cultura.usuario.idpessoa
            FROM   cultura.usuario, cabcomum.pessoa_documento
            WHERE  idtipo_documento = 1 AND
                   cultura.usuario.idpessoa = cabcomum.pessoa_documento.idpessoa AND
				   numero = '$sc_documentoUsuario'";

   $result1=pg_query($dbh, $sql1);
   if (pg_num_rows($result1) != 0)
   {
      $row=pg_fetch_array($result1);
      $usuarioAssociado=$row["usuario"];
   }
   else
   {
      if (strlen($sc_documentoUsuario) == 11)
      { 
         $sql1 = "SELECT codigousuario, usuario, cultura.usuario.idpessoa
	               FROM   cultura.usuario, cabcomum.pessoa_documento
	               WHERE  idtipo_documento = 5 AND
		                     cultura.usuario.idpessoa = cabcomum.pessoa_documento.idpessoa AND
		                     numero = '$sc_documentoUsuario'";


         $result1=pg_query($dbh, $sql1);
         if (pg_num_rows($result1) != 0)
         {
            $row=pg_fetch_array($result1);
            $usuarioAssociado=$row["usuario"];
         }
      }
      else
      {
         if (strlen($sc_documentoUsuario) == 15)
         {
            $sql1 = "SELECT codigousuario, usuario, cultura.usuario.idpessoa
                     FROM   cultura.usuario, cabcomum.pessoa_documento
                     WHERE  idtipo_documento = 6 AND
                            cultura.usuario.idpessoa = cabcomum.pessoa_documento.idpessoa AND
		                    numero = '$sc_documentoUsuario'";

            $result1=pg_query($dbh, $sql1);
            if (pg_num_rows($result1) != 0)
            {
               $row=pg_fetch_array($result1);
               $usuarioAssociado=$row["usuario"];
            }
            else
            {
               SESSION_DESTROY();
               pg_close($dbh);
               header('location:index.php?msn=4');
               exit;
            }
         }
         else
         {
            SESSION_DESTROY();
            pg_close($dbh);
            header('location:index.php?msn=4');
            exit;
         }
      }
   }
   
   $codigousuario=$row["codigousuario"]; 
   $idpessoa = $row["idpessoa"];
   
   $sql = "SELECT to_char(data_nascimento,'YYYY-MM-DD') as nascimento
	        FROM cabcomum.pessoa
	        WHERE  id = '$idpessoa'";
   $result=pg_query($dbh, $sql);
	$row1=pg_fetch_array($result);

   $nascimento=$row1['nascimento'];
   if (strcmp($sc_nascimento, $nascimento) != 0)
   {
	   pg_close($dbh);
	   header('location:index.php?msn=1');
	   exit;
   }
	
   if (strlen($usuarioAssociado) == 0)
   {
	   $sql =  "SELECT count(*) as existe
		         FROM   cultura.logon 
					WHERE  usuario = '$sc_usuario'";
      $result=pg_query($dbh, $sql);
	  $row=pg_fetch_array($result);
      $quantidadde=$row["existe"];
      if ($quantidade != 0)
	  {
	      pg_close($dbh);
  	      header('location:index.php?msn=7');
	      exit;
	  }
      $sql2 = "UPDATE cultura.usuario
               SET usuario='$sc_usuario'
               WHERE codigousuario=$codigousuario";
	  $result2=pg_query($dbh, $sql2);
	  if (!$result2)
         die(pg_last_error());

		 $sql3 = "INSERT INTO cultura.logon
		          (usuario, tipo_perfil, cria_usuario, conferencia_estatisticas,
		           usuario_administrador, criou_usuario)
			      VALUES
			      ('$sc_usuario', 'C', 'N', 'N', 'N', '$sc_usuario')";
	    $result3=pg_query($dbh, $sql3);
   }
   else if ($usuarioAssociado != $sc_usuario)
	     {
           $sql2 = "UPDATE cultura.usuario
                    SET usuario='$sc_usuario'
                    WHERE codigousuario=$codigousuario";
           $result2=pg_query($dbh, $sql2);
           if (!$result2)
              die(pg_last_error());

           $sql3 = "INSERT INTO cultura.logon
                    (usuario, tipo_perfil, cria_usuario, conferencia_estatisticas,
                     usuario_administrador, criou_usuario)
                    VALUES
                    ('$sc_usuario', 'C', 'N', 'N', 'N', '$sc_usuario')";
   
	       $result3=pg_query($dbh, $sql3);

           $sql = "delete from cultura.logon where usuario='$usuarioAssociado'";
           $result=pg_query($dbh, $sql);
           if (!$result)
           {
			     die(pg_last_error());
           }
       }
   

   pg_close($dbh);
   header('location:index.php?&msn=20');
   exit;

}

if ($novousuario == "S")
{
//   qualidadeSenha($sc_senhaUser,$sc_usuario, 9);

   if ($sc_senhaUser == $sc_usuario)
   {
      header('location:index.php?msn=9');
      exit;
   }
   include "includes/begin1.php";
   $sql="select codigousuario from cultura.usuario where usuario='$sc_usuario'";
   $result=pg_query($dbh,$sql);
   if (pg_num_rows($result) != 0)
   {
      header('location:index.php?msn=7');
      exit;
   }
   
   $sql="select tipo_perfil from cultura.logon where usuario='$sc_usuario'";
   $result=pg_query($dbh, $sql);
   if (pg_num_rows($result) != 0)
   {
      $row=pg_fetch_array($result);
      if (strcmp($row["tipo_perfil"], "A") == 0)
      {
         header('location:index.php?msn=15');
         exit;
      }
      else
      {
         header('location:index.php?msn=16');
         exit;
      }
   }
   
// criptografia 1 ... novo usuario

   $a=strlen($sc_usuario);
   $i=(int)($a/2);
   $j=$a-$i;
   $ind=$a;
   $nomeInvert="";
   While ($ind >= 0)
   {
     $nomeInvert=$nomeInvert.$sc_usuario[$ind];
     $ind=$ind-1;;
   }
   $user1=substr($nomeInvert,0,$i);
   $user2=substr($nomeInvert,$i,$j);
   $str1=geraCaracteres();
   $str2=geraCaracteres();
   $p=$str1;
   $p=$p.$user1."f&E";
   $p=$p.md5("CNNN");
   $p=$p."b&A";
   $p=$p.$sc_senha;
   $p=$p."d&C";
   $p=$p.$user2;
   $p=$p.$str2;
   $p=base64_encode($p);
   $p="url=".$p;
   
   if (strlen($sc_numdoc) != 0)
   {
   
   /* Alteracao verifica Nascimento inclusao de novo usuario  */
   
      $dia=substr($sc_nascimentoInclui,0,2);
      $mes=substr($sc_nascimentoInclui,3,2);
      $ano=substr($sc_nascimentoInclui,6,4);
      $sc_nascimentoInclui=$ano . "-" . $mes . "-" . $dia;
   
   /*   Fim Alteracao Nascimento */
   
      if ( 1 == 1)
      {
         switch ($sc_tipodoc)
         {   
            case "R":
               $idTipoDoc = 1;
               break;
            case "C":
               $idTipoDoc = 5;
               break;
            case "S":
               $idTipoDoc = 6;
               break;
            case "H":
               $idTipoDoc = 8;
               break;
         }
         if ($idTipoDoc == 1)
         {

         
   /* Alteracao verifica Nascimento inclusao de novo usuario  */
   
             $sql = "select codigousuario
                     from cultura.usuario
                     where rgusuario = '$sc_numdoc' and
                           datanascimentousuario = '$sc_nascimentoInclui'";

   /* Fim Alteracao Nascimento  */


   /*
             $sql = "select codigousuario
                     from cultura.usuario
                     where rgusuario = '$sc_numdoc'";
   */
                     
             $result = pg_query($dbh, $sql);
             if (pg_num_rows($result) != 0)
             {
                header('location:index.php?msn=7');
                exit;
             }
         }
		   if ($idTipoDoc == 5)
         {
		      if (strlen($sc_numdoc) == 11)
			   {
               $numCpf = substr($sc_numdoc,0,3) . "." .
	   	                 substr($sc_numdoc,3,3) . "." .
		                 substr($sc_numdoc,6,3) . "-" .
		                 substr($sc_numdoc,9,2);
			   }
			   else
		 	      $numCpf = $sc_numdoc;
		 	      
   /* Alteracao verifica Nascimento inclusao de novo usuario  */

             $sql = "select codigousuario
                     from cultura.usuario
                     where cpfusuario = '$numCpf'";
                           

   /* Fim Alteracao Nascimento  */
   
   /*
                  $sql = "select codigousuario
                    from cultura.usuario
                    where cpfusuario='$numCpf'";
   */
                    
            $result = pg_query($dbh, $sql);
			   if (pg_num_rows($result) != 0)
			   {
			      header('location:index.php?msn=7');
			      exit;
			   }
         }


         if ($idTipoDoc == 6)
         {
         
   /* Alteracao verifica Nascimento inclusao de novo usuario  */

             $sql = "select codigousuario
                     from cultura.usuario
                     where nrocadsususuario = '$sc_numdoc'";

  /* Fim Alteracao Nascimento  */
         
  /*
		      $sql = "select codigousuario
		              from cultura.usuario
		              where nrocadsususuario = '$sc_numdoc'";
  */

		      $result = pg_query($dbh, $sql);
		      if (pg_num_rows($result) != 0)
		      {
		          header('location:index.php?msn=7');
		          exit;
		      }
         }


         if ($idTipoDoc == 8)
         {
         
   /* Alteracao verifica Nascimento inclusao de novo usuario  */

             $sql = "select codigousuario
                     from cultura.usuario
                     where cartmotoristausuario = '$sc_numdoc'";

   /* Fim Alteracao Nascimento  */

   /*
		      $sql = "select codigousuario
		              from cultura.usuario
		              where cartmotoristausuario = '$sc_numdoc'";
   */
   
		      $result = pg_query($dbh, $sql);
		      if (pg_num_rows($result) != 0)
		      {
		         header('location:index.php?msn=7');
		         exit;
		      }
         }

   /* Alteracao verifica Nascimento inclusao de novo usuario */
   
         if ($idTipoDoc == 1)
         {
            $sql="select idpessoa, nome
                  from cabcomum.pessoa, cabcomum.pessoa_documento
                  where idtipo_documento = '$idTipoDoc' and
                        numero = '$sc_numdoc' and
                        id = idpessoa  and
                        data_nascimento = '$sc_nascimentoInclui'";
         }
         else
         {
            $sql="select idpessoa, nome
                  from cabcomum.pessoa, cabcomum.pessoa_documento
                  where idtipo_documento = '$idTipoDoc' and
                        numero = '$sc_numdoc' and
                        id = idpessoa";
         }
         

  /* Fim Alteracao Nascimento  */

  /*
         $sql="select idpessoa, nome 
               from cabcomum.pessoa, cabcomum.pessoa_documento
               where idtipo_documento = '$idTipoDoc' and
                     numero = '$sc_numdoc' and
                     id = idpessoa ";
  */
                     
         $result = pg_query($dbh, $sql);
         if (pg_num_rows($result) != 0)
         {
            if ($sc_confnome != 'S')
            {
               $row = pg_fetch_array($result);
               $nome = $row['nome'];
               SESSION_START();
                    
               $_SESSION["sessao"] = $sessao;
                
               $_SESSION['jacadastrado'] = $sc_jacadastrado;
               $_SESSION['tipodoc'] = $sc_tipodoc;
               $_SESSION['numdoc'] = $sc_numdoc;
               $_SESSION['senhauser'] = $sc_senhaUser;
               $_SESSION['scusuario'] = $sc_usuario;
               
               $sc_nascimentoInclui = substr($sc_nascimentoInclui,8,2). "-" .
                                      substr($sc_nascimentoInclui,5,2). "-" .
                                      substr($sc_nascimentoInclui,0,4);
               
               $_SESSION['nascimentoInclui'] = $sc_nascimentoInclui;
               
               header('location:index.php?msn=17&nome='.$nome);
               exit;
            }
            else
            {
               SESSION_START();

               $_SESSION["sessao"] = $sessao;

               $row = pg_fetch_array($result);
               $idpessoa = $row['idpessoa'];
               $_SESSION['idpessoa'] = $idpessoa;
            }
         }
         else
         {
            SESSION_START();

            $_SESSION["sessao"] = $sessao;

            $_SESSION['jacadastrado'] = $sc_jacadastrado;
            $_SESSION['tipodoc'] = $sc_tipodoc;
            $_SESSION['numdoc'] = $sc_numdoc;
            $_SESSION['senhauser'] = $sc_senhaUser;
            $_SESSION['scusuario'] = $sc_usuario;
            header('location:index.php?msn=17&nome=Documento Inexistente');
            exit;
         }
      }        
   }

// verifica autorizacao para incluir
   
   if (strlen($autorizaInclusao) == 0)
   {
       header('location:index.php?&msn=18');
       exit;
   }
   
   $sql = "SELECT count(*) as senhas
           FROM   cultura.logon
           WHERE  senha='$autorizaInclusao'            AND
                  (( tipo_perfil='A'                   AND
                     supervisor='S'
                   )                                    OR
                   (usuario_administrador = 'S')
                  )";


   $result=pg_query($dbh, $sql);
   $row=pg_fetch_array($result);
   if ($row['senhas'] == 0)
   {
     header('location:index.php?msn=19');
     exit;
   }

   SESSION_START();
   $_SESSION["sessao"] = $sessao;
   header('location:cadastro.php?acao=cadastrar&'.$p);
   exit;
}

// nao eh novo usuario

$sql="select * from cultura.logon where usuario='$sc_usuario'";
$result=pg_query($dbh, $sql);

if (!$result) {
   die("Erro na selecao do usuario" . pg_last_error());
   header('location:index.php?msn=1');
   exit;
}
if (pg_num_rows($result) == 0)
{
   header('location:index.php?msn=1');
   exit;
}
$nt=pg_fetch_array($result);
$perfil=$nt["tipo_perfil"];
$cria=$nt["cria_usuario"];
$confere=$nt["conferencia_estatisticas"];
$administra=$nt["usuario_administrador"];
$supervisiona=$nt["supervisor"];

if (strlen($sc_novasenha) != 0)
{

//   qualidadeSenha($sc_novasenha, $sc_usuario, 9);

   if ($sc_novasenha == $sc_usuario)
   {
      header('location:index.php?msn=9');
      exit;
   }
   if ($perfil == "A")
   {
      header('location:index.php?msn=1');
      exit;
   }
   if ($sc_novasenha != $sc_novasenharedigitada)
   {
      header('location:index.php?msn=5');
      exit;
   }
   $s1 = $sc_senha;
   $s2 = trim($nt['senha']);
   if (strcmp($s1,$s2)!=0)
   {
	  header('location:index.php?msn=3');
	  exit;
   }

   $novasenha=md5(trim($sc_novasenha));
   $sql1="UPDATE cultura.logon SET senha = '$novasenha' where usuario = '$sc_usuario'";
   $result1=pg_query($dbh,$sql1);
   if (!$result)
   {
      header('location:index.php?msn=6');
      exit;
   }
   header('location:index.php?msn=8');
   exit;
}

// criptografia 2 ... usuario existente

$a=strlen($sc_usuario);
$i=(int)($a/2);
$j=$a-$i;
$ind=$a;
$nomeInvert="";
While ($ind >= 0)
{
  $nomeInvert=$nomeInvert.$sc_usuario[$ind];
  $ind=$ind-1;;
}
$user1=substr($nomeInvert,0,$i);
$user2=substr($nomeInvert,$i,$j);
$str1=geraCaracteres();
$str2=geraCaracteres();
$p=$str1;
$p=$p.$user1."f&E";
$p1=$perfil.$cria.$confere.$administra;
$p=$p.md5($p1);
$p=$p."b&A";
$p=$p.$user2;
$p=$p.$str2;
$p=base64_encode($p);
$p="url=".$p;

SESSION_START();

$_SESSION["sessao"] = $sessao;

$_SESSION['sc_usuario'] = $sc_usuario;

if ($administra=="S" && $acao == "gerenciar")
{
    $s1 = $sc_senha;
    $s2 = trim($nt['senha']);
    if (strcmp($s1,$s2)==0)
    {
       header('location:gerencia.php?'.$p);
       exit;
    }
	$erro = 3;
	header('location:index.php?msn='.$erro);
	exit;
}
if ($administra=="S")
{
    $s1 = $sc_senha;
    $s2 = trim($nt['senha']);
    if (strcmp($s1,$s2)==0)
    {
       header('location:main.php?'.$p);
       exit;
    }
	$erro = 3;
	header('location:index.php?msn='.$erro);
	exit;
}

if ($perfil=="A" && $cria=="S")
{
    $s1 = trim($sc_senha);
    $s2 = trim($nt['senha']);
    if (strcmp($s1,$s2)==0)
    {

       header('location:gerencia.php?botao=gerenciar usuario&'.$p);
       exit;
    }
	$erro = 3;
	header('location:index.php?msn='.$erro);
	exit;
}


if ($perfil=="A" && $confere=="S")
{
	session_start();

    $s1 = trim($sc_senha);
    $s2 = trim($nt['senha']);
    if (strcmp($s1,$s2)==0)
    {
       header('location:estatisticas.php?'.$p);
       exit;
    }
	$erro = 3;
	header('location:index.php?msn='.$erro);
	exit;
}

if ($perfil=="A" && $supervisiona=="S")
{
    $erro = 3;
    header('location:index.php?msn='.$erro);
    exit;
}



if ($perfil=="C")
{
    $s1 = $sc_senha;
    $s2 = trim($nt['senha']);

	 if (strcmp($s1,$s2)==0)
    {
		 $sql="select codigousuario from cultura.usuario where usuario='$sc_usuario'";
		 $result=pg_query($dbh, $sql);
       if (pg_num_rows($result) != 0)
       {
          $rows=pg_fetch_array($result);
          $codigousuario=$rows["codigousuario"];
          
          $sql="select datavisita from cultura.visita
                where codigousuario = $codigousuario and
                (modificou = 'S' or
                modificou = 'I')
                order by datavisita DESC";
          $result=pg_query($dbh,$sql);
          $row=pg_fetch_array($result);
          $dataVisita=$row["datavisita"];
          $dataVisita=substr($dataVisita,0,10);

          $sql="select current_date as datahoje";
          $result=pg_query($dbh,$sql);
          $row=pg_fetch_array($result);
          $dataHoje=$row["datahoje"];

          $sql="select date('$dataHoje') - date('$dataVisita') as dias";
          $result=pg_query($dbh,$sql);
          $row=pg_fetch_array($result);
          $diasPassados=$row["dias"];
          if ($diasPassados >89)
          {
             header('location:cadastro.php?acao=atualizar&'.$p);
             exit;
          }
          else
          {
             header('location:cadastro.php?acao=consultar&'.$p);
             exit;
          }
       }
       else
          $erro='4';
    }
    else
       $erro='3';
	header('location:index.php?msn='.$erro);
	exit;
}

?>
