<?php
session_start();
if (!isset($_SESSION['idUsuarioLogado'])) {
  header("location: ./");
}
$idPerfilLogado = $_SESSION['idPerfilLogado'];
$agendaVisivel  = $_SESSION['agendaVisivel'];
$unidadeLogada  = $_SESSION['unidadeLogada'];
include_once("header.php");

$getOp = $_GET['op'];
if ($getOp == "cs") {
  $liHeaderMenu  = "liCadastroSolicitacao";
} else if ($getOp == "as") {
  $liHeaderMenu  = "liSolicitacaoAgendar";
} else if ($getOp == "sc") {
  $liHeaderMenu  = "liSolicitacaoConsultar";
} else {
  $liHeaderMenu  = "liSolicitacaoEntregar";
}
$configuraComboStatus  = $getOp;

$esconderControlesSolicitante  = "";
$esconderControlesEnfermeiro  = "";
if (($idPerfilLogado == 3 || $idPerfilLogado == 6) && $getOp != "as") {
  $esconderControlesSolicitante  = " display:none";
}

if ($idPerfilLogado == 7 || $idPerfilLogado == 8) {
  $esconderControlesEnfermeiro  = " display:none";
}

if ($idPerfilLogado != 1 && $idPerfilLogado != 2 && $idPerfilLogado != 4 && $idPerfilLogado != 4) {
  $esconderPeriodo  = "display:none";
  $mostrarPesquisa  = "display:block";
} else {
  $esconderPeriodo = "";
  $mostrarPesquisa = "display:none";
}

?>
<div class="app-content content" style='background-color:#e1e9e7;'>
  <div class="content-wrapper" style='padding:10px;'>
    <section id="ordering">
      <div class="row">
        <div class="col-12">
          <div class="card" style='border:gray 1px solid;' id="card-tela">
            <div class="card-header titulo-telas">
              <i class="icofont icofont-search" style='margin-top:-15px !important'></i>&nbsp;Consultar Solicitação
            </div>
            <div class="card-content collapse show">
              <div class="card-body">
                <form class="form" style='margin-top:-10px'>
                  <div class="form-body">
                    <h4 class="form-section"><i class="ft-user"></i> <b>Informações para pesquisa</b></h4>
                    <div class="row" style="margin-top:-10px; <?php echo $esconderControlesSolicitante . $esconderControlesEnfermeiro; ?>">
                      <div class="col-md-5">
                        <div class="form-group">
                          <label for="grupoProcedimento">Grupo:</label>
                          <select class="form-control" id="grupoProcedimento" onchange="filtrarProcedimentos()">
                            <option value="">SELECIONE...</option>
                            <?php
                            if ($idPerfilLogado == '3') {
                              $stmGrupo  = $rsConexao->prepare("SELECT * FROM reg_tb_procedimento_grupo WHERE disponivel_guiche='S' AND id_grupo_procedimento!='1' ORDER BY nome_grupo_procedimento");
                            } else if ($idPerfilLogado == '4') {
                              $stmUnidade = $rsConexao->prepare("SELECT perfil_estabelecimento, codigoestabelecimento_cnes FROM tb_estabelecimento WHERE codigoestabelecimento_cnes='$unidadeLogada'");
                              $stmUnidade->execute();
                              $rsUnidade  = $stmUnidade->fetch(PDO::FETCH_OBJ);
                              if ($rsUnidade->perfil_estabelecimento == "A" || $rsUnidade->perfil_estabelecimento == "E") {
                                $codigoUnidade = $rsUnidade->codigoestabelecimento_cnes;
                                $sqlGrupos = "SELECT reg_tb_procedimento_grupo.nome_grupo_procedimento, 
                                reg_tb_procedimento_grupo.id_grupo_procedimento
                                FROM reg_tb_tetounidade
                                INNER JOIN reg_tb_procedimento_grupo ON (reg_tb_tetounidade.id_grupo_procedimento = reg_tb_procedimento_grupo.id_grupo_procedimento)
                                WHERE (reg_tb_tetounidade.codigoestabelecimento_cnes='$codigoUnidade')
                                GROUP BY reg_tb_procedimento_grupo.nome_grupo_procedimento";
                                $stmGrupo  = $rsConexao->prepare($sqlGrupos);
                              }else{
                                $stmGrupo  = $rsConexao->prepare("SELECT * FROM reg_tb_procedimento_grupo WHERE id_grupo_procedimento!='1' ORDER BY nome_grupo_procedimento");
                              }
                            } else {
                              $stmGrupo  = $rsConexao->prepare("SELECT * FROM reg_tb_procedimento_grupo WHERE id_grupo_procedimento!='1' ORDER BY nome_grupo_procedimento");
                            }
                            $stmGrupo->execute();
                            $rsGrupo = $stmGrupo->fetchAll(PDO::FETCH_ASSOC);
                            $totalGrupo  = $stmGrupo->rowCount();
                            if ($totalGrupo > 0) {
                              echo "<option value='1'>NÃO AGRUPADOS</option>";
                              foreach ($rsGrupo as $fieldGrupo) {
                                $idGrupo = $fieldGrupo['id_grupo_procedimento'];
                                $nomeGrupo = mb_strtoupper($fieldGrupo['nome_grupo_procedimento']);
                                echo "<option value='$idGrupo'>$nomeGrupo</option>";
                              }
                            }
                            ?>
                          </select>
                        </div>
                      </div>
                      <div class="col-md-7">
                        <div class="form-group">
                          <label for="nomeProcedimento">Nome do Procedimento:</label>
                          <select class="form-control" id="nomeProcedimento">
                            <option value="">TODOS...</option>
                          </select>
                          <input type="hidden" id="procedimentoSelecionado" class="form-control" />
                        </div>
                      </div>
                    </div>
                    <div class="row" style='margin-top:-10px;'>
                      <div class="col-md-4" style="<?php echo $esconderControlesSolicitante; ?>">
                        <div class="form-group">
                          <label for="statusSolicitacao">Status da Solicitação:</label>
                          <select id="statusSolicitacao" class="form-control">
                            <?php
                            if ($configuraComboStatus == "as") {
                              $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao='2' OR id_statussolicitacao='3')";
                            } else if ($configuraComboStatus == "em") {
                              $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao='3')";
                            } else {
                              if ($idPerfilLogado == 3) {
                                echo "<option value=''>TODOS...</option>";
                                $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao!=4 AND id_statussolicitacao!=10) ORDER BY nome_statusslicitacao";
                              } else if ($idPerfilLogado == 5) {
                                echo "<option value=''>TODOS...</option>";
                                $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao=1 OR id_statussolicitacao=2 OR id_statussolicitacao=9 ) ORDER BY nome_statusslicitacao";
                              } else if ($idPerfilLogado == 7 || $idPerfilLogado == 8) {
                                $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao=1) ORDER BY nome_statusslicitacao";
                              } else if ($idPerfilLogado == 2) {
                                echo "<option value=''>TODOS...</option>";
                                $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao WHERE (id_statussolicitacao!=4 AND id_statussolicitacao!=8) ORDER BY nome_statusslicitacao";
                              } else {
                                echo "<option value=''>TODOS...</option>";
                                $sqlEstatus = "SELECT * FROM reg_rl_statussolicitacao ORDER BY nome_statusslicitacao";
                              }
                            }

                            if ($idPerfilLogado == 3) {
                              echo "<option value='10'>DEVOLVIDO</option>";
                            }
                            $stmStatusSolicitacao = $rsConexao->prepare($sqlEstatus);
                            $stmStatusSolicitacao->execute();
                            $rsStatusSolicitacao  =  $stmStatusSolicitacao->fetchAll(PDO::FETCH_ASSOC);
                            foreach ($rsStatusSolicitacao as $fieldStatusSolicitacao) {
                              $idStatusSolicitacao    = $fieldStatusSolicitacao['id_statussolicitacao'];
                              $nomeStatusSolicitacao  = $fieldStatusSolicitacao['nome_statusslicitacao'];
                              echo "<option value='$idStatusSolicitacao'>$nomeStatusSolicitacao</option>";
                            }
                            ?>
                          </select>
                        </div>
                      </div>
                      <div class="col-md-4">
                        <div class="form-group">
                          <label for="numeroCNSCPF">Cartão SUS/CPF:</label>
                          <input type="text" id="numeroCNSCPF" class="form-control text-center">
                        </div>
                      </div>
                      <div class="col-md-4">
                        <div class="form-group">
                          <label for="numeroProtocolo">Nº Protocolo:</label>
                          <input type="text" id="numeroProtocolo" class="form-control text-center">
                        </div>
                      </div>
                      <div class="col-md-3" style="<?php echo $mostrarPesquisa; ?>">
                        <div class="form-group">
                          <label>&nbsp;</label><br>
                          <button type="button" class="btn btn-info" onClick="buscarSolicitacao('listar-solicitacao')">
                            <i class="fa fa-search"></i> Pesquisar
                          </button>
                        </div>
                      </div>
                    </div>
                    <div class="row" style="margin-top:-10px; <?php echo $esconderPeriodo; ?>">
                      <div class="col-md-2">
                        <div class="form-group">
                          <label for="dataInicialPesquisa">Data Inicial:</label>
                          <input type="date" id="dataInicialPesquisa" class="form-control text-center">
                        </div>
                      </div>
                      <div class="col-md-2">
                        <div class="form-group">
                          <label for="dataFinalPesquisa">Data Inicial:</label>
                          <input type="date" id="dataFinalPesquisa" class="form-control text-center">
                        </div>
                      </div>
                      <div class="col-md-2">
                        <div class="form-group">
                          <label for="retornoPesquisa">Retorno:</label>
                          <select id="retornoPesquisa" class="form-control">
                            <option value=''>INDIFERENTE</option>
                            <option value='S'>SIM</option>
                            <option value='N'>NÃO</option>
                          </select>
                        </div>
                      </div>
                      <div class="col-md-4">
                        <div class="form-group">
                          <label for="unidadeSolicitantePesquisa">Unidade Solicitante:</label>
                          <select id="unidadeSolicitantePesquisa" class="form-control">
                            <option value=''>INDIFERENTE</option>
                            <?php
                              $sqlUnidadeSolicitante = "SELECT * 
                              FROM tb_estabelecimento 
                              WHERE (perfil_estabelecimento='S' OR perfil_estabelecimento='A')
                              AND(prestador_privado='N')
                              ORDER BY nfantasia_estabelecimento";
                              $stmUnidadesSolicitantes  = $rsConexao->prepare($sqlUnidadeSolicitante);
                              $stmUnidadesSolicitantes  ->execute();
                              if($stmUnidadesSolicitantes->rowCount()>0){
                                $rsUnidadesSolicitantes = $stmUnidadesSolicitantes->fetchAll(PDO::FETCH_ASSOC);
                                foreach($rsUnidadesSolicitantes AS $fieldUnidadesSolicitantes){
                                  $idUnidade    = $fieldUnidadesSolicitantes['codigoestabelecimento_cnes'];
                                  $nomeUnidade  = $fieldUnidadesSolicitantes['nfantasia_estabelecimento'];
                                  echo "<option value='$idUnidade'>$nomeUnidade</option>";
                                }
                              }
                            ?>
                          </select>
                        </div>
                      </div>
                      <div class="col-md-2">
                        <div class="form-group">
                          <label>&nbsp;</label><br>
                          <button type="button" class="btn btn-info" onClick="buscarSolicitacao('listar-solicitacao')">
                            <i class="fa fa-search"></i> Pesquisar
                          </button>
                        </div>
                      </div>
                    </div>
                  </div>
                  <div class="form-actions" style="margin-top:-15px !important"></div>
                </form>
              </div>
            </div>
            <div class="card-content collapse show" style="margin-top:-65px !important">
              <div class="card-body card-dashboard">
                <table class="table table-striped table-bordered default-ordering table-responsive-xl2" id='dados_solicitacoes'>
                  <thead>
                    <tr>
                      <th style="text-align:center; width:150px">OPÇÕES</th>
                      <th style="width:150px">CLASSIFICAÇÃO</th>
                      <th style="text-align:center; width:80px">DATA</th>
                      <th>NOME DO PACIENTE</th>
                      <th style="text-align:center; width:60px">IDADE</th>
                      <th style="text-align:center; width:100px">Nº CNS</th>
                      <th>PROCEDIMENTO</th>
                      <th>TELEFONE</th>
                      <th style="text-align:center; width:100px">PROTOCOLO</th>
                      <th style="text-align:center; width:100px">STATUS</th>
                      <th style="text-align:center; width:100px">UND SOLICITANTE</th>
                      <?php
                      if ($idPerfilLogado == 1 || $idPerfilLogado == 4) {
                        echo "<th width='20%'>OBSERVAÇÃO</th>";
                      }
                      ?>
                    </tr>
                  </thead>
                  <tbody style="background-color:#ececec">
                  </tbody>
                </table>
              </div>
            </div>
          </div>
        </div>
    </section>
  </div>
</div>

<?php
include_once("footer.php");
include_once("include/box_envio_cancelar.php");
include_once("include/box_altera_prazoretirada.php");
?>
<script src="../app-assets/vendors/js/forms/extended/inputmask/jquery.inputmask.bundle.min.js"></script>
<script src="../app-assets/js/scripts/forms/extended/form-inputmask.min.js"></script>
<script src="../app-assets/vendors/js/tables/datatable/datatables.min.js"></script>
<script src="../app-assets/js/scripts/tables/datatables/datatable-basic.min.js"></script>
<script src="../app-assets/js/scripts/ui/jquery-ui/buttons-selects.min.js"></script>

<script>
  setClassTable("dados_solicitacoes");

  $("#<?php echo $liHeaderMenu; ?>").attr('class', 'active');
  $("#<?php echo $liHeaderMenu; ?>").css("border-bottom", "2px solid #c4c8ca");

  function filtrarProcedimentos() {

    $("#embacado").css("display", "block");

    $.ajax({
      url: 'filtros/filtrar_procedimento',
      type: 'post',
      dataType: 'html',
      data: {
        'opcaoPesquisa': 'consultar-solicitacao',
        'grupoProcedimento': $("#grupoProcedimento").val()
      }
    }).done(function(resultadoRetorno) {
      $("#procedimentoSelecionado").val("");
      $("#nomeProcedimento").html("");
      $("#nomeProcedimento").html(resultadoRetorno);
      $("#embacado").css("display", "none");
    });

  }

  //Função para realizar busca do cadastro do cidadão.
  function buscarSolicitacao(opcaoBusca) {

    var grupoProcedimento = $("#grupoProcedimento").val();
    var nomeProcedimento = $("#nomeProcedimento").val();
    var statusSolicitacao = $("#statusSolicitacao").val();
    var numeroCNSCPF = $("#numeroCNSCPF").val();
    var numeroProtocolo = $("#numeroProtocolo").val();
    var dataInicialPesquisa = $("#dataInicialPesquisa").val();
    var dataFinalPesquisa = $("#dataFinalPesquisa").val();
    var idPerfilLogado = "<?php echo $idPerfilLogado; ?>";
    if (idPerfilLogado == "3" || idPerfilLogado == "6") {
      if (numeroCNSCPF == "" && numeroProtocolo == "") {
        swal("Dados Obrigatórios", "Você deve preencher Cartão SUS ou CPF, ou informar o número do protocolo para pesquisa.", "error");
        return false;
      }
    }

    if (idPerfilLogado != 7 && idPerfilLogado != 8 && idPerfilLogado != 1 && grupoProcedimento == "" && numeroCNSCPF == "" && numeroProtocolo == "") {
      swal("Dados Obrigatórios", "Você deve selecionar o grupo de procedimentos que deseja pesquisar.", "error");
      return false;
    }

    if (dataInicialPesquisa > dataFinalPesquisa) {
      swal("Período Inválido", "A data inicial não pode ser posterior à data final.", "error");
      return false;
    }

    if ((dataInicialPesquisa != "" && dataFinalPesquisa == "") || (dataInicialPesquisa == "" && dataFinalPesquisa != "")) {
      swal("Período Inválido", "Para realizar o filtro por período você deve informar a data inicial e a data final.", "error");
      return false;
    }

    if ((dataInicialPesquisa != "" && statusSolicitacao == "")) {
      swal("Filtros Incompatíveis", "Para informar o período da pesquisa, você deve selecionar qual status deseja buscar.", "error");
      return false;
    }

    $("#embacado").css("display", "block");
    $.ajax({
      url: 'filtros/filtrar_solicitacoes',
      type: 'post',
      dataType: 'html',
      data: {
        'opcaoBusca': opcaoBusca,
        'getOp': "<?php echo $getOp ?>",
        'grupoProcedimento': grupoProcedimento,
        'nomeProcedimento': nomeProcedimento,
        'statusSolicitacao': statusSolicitacao,
        'numeroCNSCPF': numeroCNSCPF,
        'numeroProtocolo': numeroProtocolo,
        'dataInicialPesquisa': dataInicialPesquisa,
        'dataFinalPesquisa': dataFinalPesquisa,
        'retornoPesquisa' : $("#retornoPesquisa").val(),
        'unidadeSolicitantePesquisa' : $("#unidadeSolicitantePesquisa").val()
      }
    }).done(function(resultadoRetorno) {

      $("#embacado").css("display", "none");
      if (resultadoRetorno == "NaoExiste") {
        $('#dados_solicitacoes').DataTable().destroy();
        $('#dados_solicitacoes tbody').empty().append();
        $('#dados_solicitacoes').DataTable();
        swal("Solicitação não Encontrada", "Nenhuma solicitação foi encontrada com os dados inforados.", "info");
        return false;
      } else {
        $('#dados_solicitacoes').DataTable().destroy();
        $('#dados_solicitacoes tbody').empty().append(resultadoRetorno);
        $('#dados_solicitacoes').DataTable();
      }

    });

  }

  function solicitarCancelamento(conteudoSolicitacaoCancelar) {

    var splitConteudo = conteudoSolicitacaoCancelar.split("#");
    $("#idSolicitacaoCancelar").val(splitConteudo[0]);
    $("#nomePacienteCancelar").html(splitConteudo[1]);
    $("#nomeProcedimentoCancelar").html(splitConteudo[2]);
    $("#box_envio_cancelar").modal();

  }

  function confirmarSolicitacaoCancelamento() {

    if ($("#justificativaCancelamento").val() == "") {
      swal("Justificativa Obrigatória", "A justificativa do pedido de cancelamento da solicitação é de preenchimento obrigatório e será analizada.", "error");
      return false;
    }

    $("#embacado").css("display", "block");
    $.ajax({
      url: 'action/gravar_solicitacao',
      type: 'post',
      dataType: 'html',
      data: {
        'opcaoGravacao': 'solicitacao-solicitar-cancelamento',
        'idSolicitacao': $("#idSolicitacaoCancelar").val(),
        'justificativaCancelamento': $("#justificativaCancelamento").val()
      }
    }).done(function(resultadoRetorno) {
      $("#tdStatusSolicitacao" + $("#idSolicitacaoCancelar").val()).html("CANCELAR");
      $("#box_envio_cancelar").modal("hide");
      $("#embacado").css("display", "none");
      swal("Solicitação de Cancelamento", "Seu pedido de cancelamento foi enviado com sucesso. A solicitação será cancelada", "success");
    });

  }

  function alterarPrazoEntrega(opcaoEdicao, idReferencia) {
    $("#idReferenciaPrazo").val(idReferencia);
    $("#opcaoEdicao").val(opcaoEdicao);
    $.ajax({
      url: 'filtros/buscar_dados_edicao',
      type: 'post',
      dataType: 'html',
      data: {
        'opcaoBusca': 'dados-solicitacao-agendamento',
        'opcaoEdicao': opcaoEdicao,
        'idReferencia': idReferencia
      }
    }).done(function(resultadoRetorno) {
      var retornoResultado = resultadoRetorno.split("#");
      $("#nomePacientePrazo").val(retornoResultado[0]);
      $("#nomeProcedimentoPrazo").val(retornoResultado[1]);
      $("#dataAtualPrazo").val(retornoResultado[2]);
      $("#dataNovaPrazo").val('');
      $("#box_altera_prazoretirada").modal();
    });

  }

  function confirmaEdicaoPrazoRetirada() {

    var obtemDataHoje = new Date();
    var anoAtual = obtemDataHoje.getFullYear();
    var mesAtual = obtemDataHoje.getMonth() + 1;
    var diaAtual = obtemDataHoje.getDate();
    var dataHoje = anoAtual + '-' + ("00" + mesAtual).slice(-2) + '-' + ("00" + diaAtual).slice(-2);

    if ($("#dataNovaPrazo").val() == "") {
      swal("Data Obrigatória", "Você deve informar a nova dara para prazo de retirada.", "error");
      return false;
    }

    if ($("#dataNovaPrazo").val() < dataHoje) {
      swal("Data Inválida", "O novo prazo para retirada não pode ser inferior à data de hoje.", "error");
      return false;
    }

    $("#embacado").css("display", "block");
    $.ajax({
      url: 'action/gravar_novoprazo_retirada',
      type: 'post',
      dataType: 'html',
      data: {
        'opcaoEdicao': $("#opcaoEdicao").val(),
        'idReferenciaPrazo': $("#idReferenciaPrazo").val(),
        'dataNovaPrazo': $("#dataNovaPrazo").val()
      }
    }).done(function(resultadoRetorno) {
      $("#embacado").css("display", "none");
      swal("Prazo de Retirada", "Novo prazo de retirada registrado com sucesso", "success");
    });

  }

  $("#numeroProtocolo").blur(function() {
    if (this.value != "") {
      $("#grupoProcedimento").val('');
      $("#nomeProcedimento").val('');
      $("#numeroCNSCPF").val('');
      $("#dataInicialPesquisa").val('');
      $("#dataFinalPesquisa").val('');
    }
  })

  function enviarPacienteAtualizacao(idPaciente, nomePaciente, indexReferencia) {

    Swal.fire({
      title: "Enviar Paciente",
      html: "<p style='text-align:justify'>Ao confirmar esta ação o cadastro do(a) paciente [" + nomePaciente + "] e suas solicitações serão enviados à tela da unidade de saúde para atualização. Confirma?</p>",
      type: "question",
      showCancelButton: !0,
      confirmButtonText: "<i class='icofont icofont-checked'></i> SIM",
      confirmButtonClass: "btn btn-blue botao-confirmacao-swal",
      cancelButtonText: "<i class='fa fa-times'></i> Não",
      cancelButtonClass: "btn btn-danger ml-1 botao-negacao-swal",
      buttonsStyling: !1,
    }).then(function(retornoComando) {
      if (retornoComando.value) {
        $("#embacado").css("display", "block");
        $.ajax({
          url: 'action/gravar_paciente',
          type: 'post',
          dataType: 'html',
          data: {
            'opcaoRegistro': 'enviar-paciente-ubs',
            'idPaciente': idPaciente
          }
        }).done(function(resultadoRetorno) {
          $("#embacado").css("display", "none");
          var totalsolicitacoes = $("#dados_solicitacoes").dataTable().fnSettings().fnRecordsTotal();
          var contaLinhas = 0;
          for (contaLinhas = 0; contaLinhas <= totalsolicitacoes - 1; contaLinhas++) {
            var dataTableReference = $('#dados_solicitacoes').DataTable();
            var removerLinha = dataTableReference.row('#' + indexReferencia);
            var paginaAtual = dataTableReference.page();
            removerLinha.remove().draw();
            dataTableReference.page(paginaAtual).draw(false);
          }
          swal("Enviar Paciente", "O paciente selecionado foi enviado com sucesso para atualização.", "success");
        });
      }
    });

  }
</script>