<?php
session_start();
require("../../database/dbConection.php");
$usuarioLogado = $_SESSION['idUsuarioLogado'];
$nomeUsuarioLogado = $_SESSION['nomeUsuarioLogado'];
$opcaoRegistro = $_POST['opcaoRegistro'];

switch ($opcaoRegistro) {

  case "salvar-cadastro":
    // DADOS RECEBIDOS DO FOMULÁRIOS DE CADASTRO DO CIDADÃO
    $idPaciente                 = $_POST['idPaciente'];
    $nomePaciente               = str_replace("'", '`', $_POST['nomePaciente']);
    $numeroCNS                  = str_replace(" ", '', $_POST['numeroCNS']);
    $numeroCPF                  = str_replace(".", '', $_POST['numeroCPF']);
    $numeroCPF                  = str_replace("-", '', $numeroCPF);
    $dataNascimento             = $_POST['dataNascimento'];
    $sexoPaciente               = $_POST['sexoPaciente'];
    $nomeMaePaciente            = str_replace("'", '`', $_POST['nomeMaePaciente']);
    $cepPaciente                = str_replace("-", '', $_POST['cepPaciente']);
    $enderecoPaciente           = str_replace("'", '`', $_POST['enderecoPaciente']);
    $numeroEnderecoPaciente     = $_POST['numeroEnderecoPaciente'];
    $pontoRederencia            = str_replace("'", '`', $_POST['pontoRederencia']);
    $bairroPaciente             = str_replace("'", '`', $_POST['bairroPaciente']);
    $ibgeCidade                 = $_POST['ibgeCidade'];
    $telefoneCelular1            = $_POST['telefoneCelular1'];
    $telefoneCelular1Whatsapp   = $_POST['telefoneCelular1Whatsapp'];
    $telefoneCelular2           = $_POST['telefoneCelular2'];
    $telefoneCelular2Whatsapp   = $_POST['telefoneCelular2Whatsapp'];
    $telefoneCelular3           = $_POST['telefoneCelular3'];
    $telefoneCelular3Whatsapp   = $_POST['telefoneCelular3Whatsapp'];
    $cartaoAutorizado           = $_POST['cartaoAutorizado'];
    $justificativaAutorizacao   = $_POST['justificativaAutorizacao'];

    $SQLPacienteExiste    = "SELECT id_paciente FROM tb_paciente WHERE cns_paciente='$numeroCNS'";
    $stmPacienteExiste    = $rsConexao->prepare($SQLPacienteExiste);
    $stmPacienteExiste->execute();
    $totalPacienteExiste  = $stmPacienteExiste->rowCount();
    $rsPacienteExiste     = $stmPacienteExiste->fetchAll(PDO::FETCH_ASSOC);

    /* DADOS DO PACIENTE PARA EXIBIÇÃO */
    $sqlCidade  = "SELECT nome_cidade FROM tb_cidades WHERE codigoibge_cidade='$ibgeCidade'";
    $stmCidade  = $rsConexao->prepare($sqlCidade);
    $stmCidade->execute();
    $rsCidade   = $stmCidade->fetch(PDO::FETCH_OBJ);
    $nomeCidade = $rsCidade->nome_cidade;

    $trataIdade   = new DateTime($dataNascimento);
    $idadeTratada = $trataIdade->diff(new DateTime(date('Y-m-d')));
    $idadePaciente = $idadeTratada->format('%Y');
    /************************************/

    if ($totalPacienteExiste == 0) {
      $sqlPaciente  = "INSERT INTO tb_paciente(
        cns_paciente,
        cpf_paciente,
        nome_paciente,
        datanasc,
        sexo,
        nomemae,
        codracacor,
        cep_paciente,
        endereco_paciente,
        numeroend_paciente,
        prontoreferencia,
        bairro_paciente,
        codigocidade,
        celular1,
        celular1_whatsapp,
        celular2,
        celular2_whatsapp,
        celular3,
        celular3_whatsapp,
        origem,
        idusuario
      )VALUES(
        :setCNSPaciente,
        :setCPFPaciente,
        :setNomepaciente,
        :setdataNascimento,
        :setSexoPaciente,
        :setNomeMae,
        :setRacaCor,
        :setCepPaciente,
        :setEnderecoPaciente,
        :setNumeroEndereco,
        :setPontoReferencia,
        :setBairroEndereco,
        :setCodigoCidade,
        :setTelefoneCelular1,
        :setTelefoneCelular1Wahtsapp,
        :setTelefoneCelular2,
        :setTelefoneCelular2Wahtsapp,
        :setTelefoneCelular3,
        :setTelefoneCelular3Wahtsapp,
        :setOrigemRegistro,
        :setIdUsuario)";
    } else {
      if ($numeroCNS != "") {
        $sqlPaciente  = "UPDATE tb_paciente SET 
        cns_paciente=:setCNSPaciente,
        cpf_paciente=:setCPFPaciente,
        nome_paciente=:setNomepaciente,
        datanasc=:setdataNascimento,
        sexo=:setSexoPaciente,
        nomemae=:setNomeMae,
        codracacor=:setRacaCor,
        cep_paciente=:setCepPaciente,
        endereco_paciente=:setEnderecoPaciente,
        numeroend_paciente=:setNumeroEndereco, 
        prontoreferencia=:setPontoReferencia, 
        bairro_paciente=:setBairroEndereco, 
        codigocidade=:setCodigoCidade,
        celular1=:setTelefoneCelular1,
        celular1_whatsapp=:setTelefoneCelular1Wahtsapp,
        celular2=:setTelefoneCelular2, 
        celular2_whatsapp=:setTelefoneCelular2Wahtsapp,
        celular3=:setTelefoneCelular3,
        celular3_whatsapp=:setTelefoneCelular3Wahtsapp,
        origem=:setOrigemRegistro
        WHERE cns_paciente='$numeroCNS'";
      }

      if ($numeroCPF != "") {
        $sqlPaciente  = "UPDATE tb_paciente SET 
        cns_paciente=:setCNSPaciente,
        cpf_paciente=:setCPFPaciente,
        nome_paciente=:setNomepaciente,
        datanasc=:setdataNascimento,
        sexo=:setSexoPaciente,
        nomemae=:setNomeMae,
        codracacor=:setRacaCor,
        cep_paciente=:setCepPaciente,
        endereco_paciente=:setEnderecoPaciente,
        numeroend_paciente=:setNumeroEndereco, 
        prontoreferencia=:setPontoReferencia, 
        bairro_paciente=:setBairroEndereco, 
        codigocidade=:setCodigoCidade,
        celular1=:setTelefoneCelular1,
        celular1_whatsapp=:setTelefoneCelular1Wahtsapp,
        celular2=:setTelefoneCelular2, 
        celular2_whatsapp=:setTelefoneCelular2Wahtsapp,
        celular3=:setTelefoneCelular3,
        celular3_whatsapp=:setTelefoneCelular3Wahtsapp,
        origem=:setOrigemRegistro
        WHERE cpf_paciente='$numeroCPF'";
      }
    }
    $dahaHoraAutorizacao = date("Y-m-d H:i");
    $stmAddPaciente  = $rsConexao->prepare($sqlPaciente);
    $stmAddPaciente->bindParam(":setCNSPaciente", $numeroCNS, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setCPFPaciente", $numeroCPF, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setNomepaciente", $nomePaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setdataNascimento", $dataNascimento, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setSexoPaciente", $sexoPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setNomeMae", $nomeMaePaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setRacaCor", $racaCorPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setCepPaciente", $cepPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setEnderecoPaciente", $enderecoPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setNumeroEndereco", $numeroEnderecoPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setPontoReferencia", $pontoRederencia, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setBairroEndereco", $bairroPaciente, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setCodigoCidade", $ibgeCidade, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular1", $telefoneCelular1, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular1Wahtsapp", $telefoneCelular1Whatsapp, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular2", $telefoneCelular2, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular2Wahtsapp", $telefoneCelular2Whatsapp, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular3", $telefoneCelular3, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setTelefoneCelular3Wahtsapp", $telefoneCelular3Whatsapp, PDO::PARAM_STR);
    $stmAddPaciente->bindParam(":setOrigemRegistro", $origemRegistro, PDO::PARAM_STR);

    if ($totalPacienteExiste == 0) {
      $stmAddPaciente->bindParam(":setIdUsuario", $usuarioLogado, PDO::PARAM_STR);
    }
    $stmAddPaciente->execute();

    if ($totalPacienteExiste == 0) {
      $ultimoIdPacienteAdd = $rsConexao->lastInsertId();
    } else {
      $ultimoIdPacienteAdd = $rsPacienteExiste[0]['id_paciente'];
    }
    $autorizadorCNS = $_POST['autorizadorCNS'];
    if ($autorizadorCNS == "S") {
      if ($numeroCPF != "") {
        $wherAutoriza = " WHERE cpf_paciente='$numeroCPF'";
      } else {
        $wherAutoriza = " WHERE cns_paciente='$numeroCNS'";
      }
      $sqlAutoriza  = "UPDATE tb_paciente SET
          cataosusdefora_autorizado=:setCNSAutorizado,
          cartaosusdefora_quemautorizou=:setQuemAutorizou,
          cataosusdefora_datahoraautorizou=:setDadosHoraAutorizacao,
          cartaosusdefora_justificativa=:setObservacaoAutorizacao    
          $wherAutoriza";
      $stmAutoriza  = $rsConexao->prepare($sqlAutoriza);
      $stmAutoriza->bindParam(":setCNSAutorizado", $cartaoAutorizado, PDO::PARAM_STR);
      $stmAutoriza->bindParam(":setQuemAutorizou", $usuarioLogado, PDO::PARAM_STR);
      $stmAutoriza->bindParam(":setDadosHoraAutorizacao", $dahaHoraAutorizacao, PDO::PARAM_STR);
      $stmAutoriza->bindParam(":setObservacaoAutorizacao", $justificativaAutorizacao, PDO::PARAM_STR);
      $stmAutoriza->execute();
    }

    # -- executa confirmação de atualização após devolução da Central -- #
    if ($_POST['usouOpcaoAtualizar'] == "SIM") {

      $idPaciente = $_POST['idPaciente'];
      $stmAtualizaPaciente  = $rsConexao->prepare("UPDATE tb_paciente SET devolvido_atualizar='N' WHERE id_paciente='$idPaciente'");
      $stmAtualizaPaciente->execute();

      # -- PEGAR OBSERVAÇÃO EXISTENTE -- #
      $sqlSolicitacoes = "SELECT id_solicitacao, observacaoextra_agendamento
        FROM reg_tb_solicitacoes
        WHERE (id_paciente='$idPaciente')
        AND (id_statussolicitacao='2')";
      $stmSolicitacao = $rsConexao->prepare($sqlSolicitacoes);
      $stmSolicitacao->execute();
      $rsSolicitacao  = $stmSolicitacao->fetchAll(PDO::FETCH_ASSOC);
      if ($stmSolicitacao->rowCount() > 0) {
        foreach ($rsSolicitacao as $fieldObservacao) {
          $idSolicitacao  = $fieldObservacao['id_solicitacao'];
          $dataHora       = date("d/m/Y H:i");
          $txtObervacao   = "$dataHora => Contato atualizado por: $nomeUsuarioLogado";
          if ($fieldObservacao['observacaoextra_agendamento'] != "") {
            $sqlObservacao = "UPDATE reg_tb_solicitacoes 
              SET observacaoextra_agendamento=concat(observacaoextra_agendamento,'<br>','$txtObervacao')
              WHERE (id_solicitacao='$idSolicitacao')";
          } else {
            $sqlObservacao = "UPDATE reg_tb_solicitacoes 
            SET observacaoextra_agendamento='$txtObervacao'
            WHERE (id_solicitacao='$idSolicitacao')";
          }
          $stmAtualizaSolicitacao  =  $rsConexao->prepare($sqlObservacao);
          $stmAtualizaSolicitacao->execute();          
        }
      }
    }

    # ------------------------------------------------------------------ #      
    echo $ultimoIdPacienteAdd;
    break;

  case "enviar-paciente-ubs":
    $idPaciente = $_POST['idPaciente'];
    $stmAtualizaPaciente  = $rsConexao->prepare("UPDATE tb_paciente SET devolvido_atualizar='S' WHERE id_paciente='$idPaciente'");
    $stmAtualizaPaciente->execute();
    break;
}
