<?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']!="" ? $_POST['idSolicitacao'] : null;
$idUnidadeLogada  = $_SESSION['unidadeLogada'];

if($_POST['idSolicitacao']!=""){
  $numeracaoArquivo   = str_pad($_POST['idSolicitacao'],10,"0");
  $whereIdReferencia  = " WHERE id_sca_solicitacao='$idSolicitacao'";
  $chaveAgendamento   = null;
}else{
  $stmIdAgendamento   = $rsConexao->prepare("SELECT MAX(id_agendamento)+1 as idAgendamento FROM reg_tb_agendamentos");
  $stmIdAgendamento   ->execute();
  $rsIdAgendamento    = $stmIdAgendamento->fetch(PDO::FETCH_OBJ);
  $idAgendamento      = $rsIdAgendamento->idAgendamento;
  $numeracaoArquivo   = str_pad($idAgendamento,8,"0")."AA";
  $chaveAgendamento   = strtoupper(substr(md5(uniqid(rand(), true)), 0,15));  
  $_SESSION['chaveAgendamento-DOC'] = $chaveAgendamento;
  $whereIdReferencia  = " WHERE chave_agendamento='$chaveAgendamento'";
}
$tipoDocumento    = $_POST['tipoDocumento'];
$arquivoDocumento = $_FILES['arquivoDocumento'];
$arquivoTemp      = $arquivoDocumento["tmp_name"];
$nomeArquivo      = $arquivoDocumento["name"]; 

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

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

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

  $sqlAdicionaDocumento = "INSERT INTO reg_tb_solicitacoes_agendado(
    id_sca_solicitacao,
    id_paciente,    
    id_tipodocumento,
    pasta_documento,
    numeracao_arquivo,
    nomearquivo_documento,
    id_usuario_cadastrou,
    id_unidade_cadastrou,
    datahora_inclusao,
    chave_agendamento
  )VALUES(
    :setIdSolicitacao,
    :setIdPaciente,    
    :setTipoDocumento,
    :setNomeDiretorio,
    :setNumeroArquivo,
    :setNomeArquivo,
    :setUsuarioCadastrou,
    :setUnidadeCadastrou,
    :setDataHoraInclusao,
    :setChaveAgendamento
  )";
  $stmGravaDocumento  = $rsConexao->prepare($sqlAdicionaDocumento);
  $stmGravaDocumento  -> bindParam(":setIdSolicitacao",$idSolicitacao,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setIdPaciente",$idPaciente,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setTipoDocumento",$tipoDocumento,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setNomeDiretorio",$diretorioData,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setNumeroArquivo",$numeracaoArquivo,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setNomeArquivo",$nomeArquivo,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setUsuarioCadastrou",$usuarioLogado,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setUnidadeCadastrou",$idUnidadeLogada,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setDataHoraInclusao",$dataHoraHoje,PDO::PARAM_STR);
  $stmGravaDocumento  -> bindParam(":setChaveAgendamento",$chaveAgendamento,PDO::PARAM_STR);
  $stmGravaDocumento  -> execute();

  
  $sqlDocumentoAgendado = "SELECT reg_tb_solicitacoes_agendado.id_sca_documentoagendado, date_format(reg_tb_solicitacoes_agendado.datahora_inclusao,'%d/%m/%Y') AS dataInclusao, 
  date_format(reg_tb_solicitacoes_agendado.datahora_inclusao,'%H:%i') AS horaInclusao, reg_rl_tipodocumento.nome_tipodocumento, reg_tb_solicitacoes_agendado.pasta_documento, 
  reg_tb_solicitacoes_agendado.nomearquivo_documento, reg_tb_solicitacoes_agendado.id_tipodocumento, reg_tb_usuario.nome_usuario, tb_estabelecimento.nfantasia_estabelecimento
  FROM reg_tb_solicitacoes_agendado 
  INNER JOIN reg_rl_tipodocumento ON (reg_tb_solicitacoes_agendado.id_tipodocumento = reg_rl_tipodocumento.id_tipodocumento) 
  INNER JOIN reg_tb_usuario ON (reg_tb_solicitacoes_agendado.id_usuario_cadastrou = reg_tb_usuario.id_usuario) 
  INNER JOIN tb_estabelecimento ON (reg_tb_solicitacoes_agendado.id_unidade_cadastrou = tb_estabelecimento.codigoestabelecimento_cnes) 
  $whereIdReferencia";

  $stmDocumentoAgendado = $rsConexao->prepare($sqlDocumentoAgendado);
  $stmDocumentoAgendado ->execute();
  
  if($stmDocumentoAgendado->rowCount()>0){
    $rsDocumentoAgendado  = $stmDocumentoAgendado->fetchAll(PDO::FETCH_ASSOC);
    $contarDocsAgendado   = 0;
    foreach($rsDocumentoAgendado AS $fieldDocumentoAgendado){
      $contarDocsAgendado       = $contarDocsAgendado+1;
      $idDocumentoAgendado      = $fieldDocumentoAgendado['id_sca_documentoagendado'];
      $dataHoraInclusaoAgendado = $fieldDocumentoAgendado['dataInclusao'].' ÀS '. $fieldDocumentoAgendado['horaInclusao'];
      $tipoDocumentoAgendado    = $fieldDocumentoAgendado['nome_tipodocumento'];
      $idTipoDocumentoAgendado  = $fieldDocumentoAgendado['id_tipodocumento'];
      $pastaDocumentoAgendado   = $fieldDocumentoAgendado['pasta_documento'];
      $incluidoPor              = $fieldDocumentoAgendado['nome_usuario']."<br>(".$fieldDocumentoAgendado['nfantasia_estabelecimento'].")";
      $nomeArquivoAgendado      = mb_strtoupper($fieldDocumentoAgendado['nomearquivo_documento']);

      $arquivoAnexoAgendado     = $diretorioBase . $pastaDocumentoAgendado . "/$numeracaoArquivo" . "_" . $fieldDocumentoAgendado['nomearquivo_documento'];

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

      $cliqueBotaoExcluirAnexoAgendado = 'onClick="excluirAnexo('."'$idDocumentoAgendado','$arquivoAnexoAgendado','$idSolicitacao')" . '"';
      $botaoExcluirAnexoAgendado	= "<i class='icofont icofont icofont-close-squared nova_fonte_delete' title='Excluir documento.' $cliqueBotaoExcluirAnexoAgendado></i>";;
      
      echo "<tr>
        <td style='text-align: center !important; width:20px !important'>
          $botaoVisualizarDocumentoAgendado
          $botaoExcluirAnexoAgendado
        </td>
        <td style='display:none' id='idTipoDoc$contarDocsAgendado'>$idTipoDocumentoAgendado</td>
        <td style='width: 80px; text-align:center'>$dataHoraInclusaoAgendado</td>
        <td style='width: 200px;'>$tipoDocumentoAgendado</td>
        <td style='width: 50%;'>$nomeArquivoAgendado</td>
        <td style='font-size:7pt;width: 15%;'>$incluidoPor</td>
      </tr>";
    }
  }
}
?>