<?php
session_start();
require("../../database/dbConection.php");

$dataHoraHoje     = date("Y-m-d H:i");
$usuarioLogado    = $_SESSION['idUsuarioLogado'];
$idPerfilLogado   = $_SESSION['idPerfilLogado'];
$idPaciente       = $_POST['idPaciente']=="" ? null : $_POST['idPaciente'];
$idSolicitacao    = $_POST['idSolicitacao']=="" ? null : $_POST['idSolicitacao'];
$tipoDocumento    = $_POST['tipoDocumento'];
$tokenSolicitacao = $_POST['tokenSolicitacao'];
$arquivoDocumento = $_FILES['arquivoDocumento'];
$arquivoTemp      = $arquivoDocumento["tmp_name"];
$nomeArquivo      = $arquivoDocumento["name"]; 

$diretorioBase  = "docsolicitacoes/";
$diretorioData  = date("Ym");

$nomePastaArquivo = "../" . $diretorioBase . $diretorioData;
if(is_dir($nomePastaArquivo)==false){
  mkdir($nomePastaArquivo);
}
#------realiza upload do arquivo-------#

#------verificar existência de documento igual na mesma solicitação-------#
/*$nomeValidarArquivo = $tokenSolicitacao . "_" . $nomeArquivo;
$stmDocumentoExiste = $rsConexao->prepare("SELECT id_sca_documentoanexo FROM reg_tb_solicitacoes_anexos WHERE pasta_documento='$diretorioData' AND nomearquivo_documento=''  AND token_solicitacao='$tokenSolicitacao'");
$stmDocumentoExiste -> execute();
if($stmDocumentoExiste->rowCount()>0){
  echo "JáExiste";
  exit;
}*/
#-------------------------------------------------------------------------#
try{

if(move_uploaded_file($arquivoTemp, $nomePastaArquivo . "/" . $tokenSolicitacao . "_" . $nomeArquivo)){

  $sqlAdicionaDocumento = "INSERT INTO reg_tb_solicitacoes_anexos(
    id_sca_solicitacao,
    id_paciente,
    datahora_inclusao,
    id_tipodocumento,
    pasta_documento,
    nomearquivo_documento,
    id_usuario_cadastrou,
    token_solicitacao
  )VALUES(
    :setIdSolicitacao,
    :setIdPaciente,
    :setDataHoraInclusao,
    :setTipoDocumento,
    :setNomeDiretorio,
    :setNomeArquivo,
    :setUsuarioCadastrou,
    :setTokenSolicitacao
  )";
  $stmGravaDocumento  = $rsConexao->prepare($sqlAdicionaDocumento);
  $stmGravaDocumento  -> bindParam(":setIdSolicitacao",$idSolicitacao,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setIdPaciente",$idPaciente,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setDataHoraInclusao",$dataHoraHoje,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setTipoDocumento",$tipoDocumento,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setNomeDiretorio",$diretorioData,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setNomeArquivo",$nomeArquivo,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setUsuarioCadastrou",$usuarioLogado,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setTokenSolicitacao",$tokenSolicitacao,PDO::PARAM_STR);
  $stmGravaDocumento  -> execute();

  $sqlDocumento = "SELECT reg_tb_solicitacoes_anexos.id_sca_documentoanexo, reg_tb_solicitacoes_anexos.id_sca_solicitacao, date_format(reg_tb_solicitacoes_anexos.datahora_inclusao,'%d/%m/%Y') AS dataInclusao, date_format(reg_tb_solicitacoes_anexos.datahora_inclusao,'%H:%i') AS horaInclusao, reg_rl_tipodocumento.nome_tipodocumento, reg_tb_solicitacoes_anexos.pasta_documento, reg_tb_solicitacoes_anexos.nomearquivo_documento, reg_tb_solicitacoes_anexos.id_tipodocumento FROM reg_tb_solicitacoes_anexos INNER JOIN reg_rl_tipodocumento ON (reg_tb_solicitacoes_anexos.id_tipodocumento = reg_rl_tipodocumento.id_tipodocumento) WHERE token_solicitacao='$tokenSolicitacao'";

  $stmDocumento = $rsConexao->prepare($sqlDocumento);
  $stmDocumento ->execute();
  
  if($stmDocumento->rowCount()>0){
    $rsDocumento  = $stmDocumento->fetchAll(PDO::FETCH_ASSOC);
    $contarDocs   = 0;
    foreach($rsDocumento AS $fieldDocumento){
      $contarDocs         = $contarDocs+1;
      $idDocumento        = $fieldDocumento['id_sca_documentoanexo'];
      $idSolicitacaoAnexo = $fieldDocumento['id_sca_solicitacao'];
      $dataHoraInclusao   = $fieldDocumento['dataInclusao'].' ÀS '. $fieldDocumento['horaInclusao'];
      $tipoDocumento      = $fieldDocumento['nome_tipodocumento'];
      $idTipoDocumento    = $fieldDocumento['id_tipodocumento'];
      $pastaDocumento     = $fieldDocumento['pasta_documento'];
      $nomeArquivo        = mb_strtoupper($fieldDocumento['nomearquivo_documento']);
      $arquivoAnexo       = $nomePastaArquivo = $diretorioBase . $pastaDocumento . "/$tokenSolicitacao" . "_" . $fieldDocumento['nomearquivo_documento'];

      $cliqueBotaoVisualizarDocumento = 'onClick="window.open('."'$arquivoAnexo')" . '"';
      $botaoVisualizarDocumento	= "<i class='icofont icofont-search nova_fonte' title='Visualizar documento anexo.' $cliqueBotaoVisualizarDocumento></i>";;

      if($idSolicitacaoAnexo==""){
        $cliqueBotaoExcluirAnexo = 'onClick="excluirAnexo('."'$idDocumento','../$arquivoAnexo','$tokenSolicitacao')" . '"';
        $botaoExcluirAnexo	= "<i class='icofont icofont icofont-close-squared nova_fonte_delete' title='Excluir documento.' $cliqueBotaoExcluirAnexo></i>";;
      }else{
        $botaoExcluirAnexo  = "";
      }
      
      echo "<tr>
        <td align='center'>$botaoVisualizarDocumento&nbsp;$botaoExcluirAnexo</td>
        <td style='display:none' align='center' id='idTipoDoc$contarDocs'>$idTipoDocumento</td>
        <td align='center'>$dataHoraInclusao</td>
        <td>$tipoDocumento</td>
        <td id='tdNomeArquivo$contarDocs'>$nomeArquivo</td>
      </tr>";
    }
  }
}

  #-------- ATUALIZAR STATUS DE RELATÓRIO MÉDICO --------#
  $stmPegarAnexos = $rsConexao->prepare("SELECT COUNT(id_tipodocumento) AS totalRelatorios FROM reg_tb_solicitacoes_anexos WHERE token_solicitacao='$tokenSolicitacao' AND id_tipodocumento='4'");
  $stmPegarAnexos -> execute();
  $rsPegarAnexos  = $stmPegarAnexos->fetch(PDO::FETCH_OBJ);
  
  if($rsPegarAnexos->totalRelatorios > 0){
    $statusRelatorioMedico  = "S";
    $triagemLiberada        = "N";
  }else{
    $statusRelatorioMedico  = "N";
    $triagemLiberada        = "S";
  }

  $stmAtualizaRelatorioMedico = $rsConexao->prepare("UPDATE reg_tb_solicitacoes SET tem_relatoriomedico='$statusRelatorioMedico', triagem_liberada='$triagemLiberada' WHERE token_solicitacao='$tokenSolicitacao'");
  $stmAtualizaRelatorioMedico -> execute();

}catch (Exception $retornoErro) {
  echo 'Uma exceção ocorreu: ' . $retornoErro->getMessage();
}
?>