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


// DADOS RECEBIDOS DO FOMULÁRIOS DE CADASTRO DA AGENDA
$idAgenda               = $_POST['idAgenda'];
$idUnidadeSaude         = $_POST['idUnidadeSaude'];
$idProfissinoalSaude    = $_POST['idProfissinoalSaude'];
$idGrupoProcedimento    = $_POST['idGrupoProcedimento'];
$eGrupoSelecionado      = $_POST['eGrupoSelecionado'];
$idProcedimento         = $_POST['idProcedimento'] == "" ? null : $_POST['idProcedimento'];
$idMesAgenda            = $_POST['idMesAgenda'];
$anoAgenda              = $_POST['anoAgenda'];
$horaInicialAgenda      = $_POST['horaInicialAgenda'];
$horaFinalAgenda        = $_POST['horaFinalAgenda'];
$intervaloQuebra        = $_POST['quebraHorario'];
$quebrarHorario         = $_POST['quebraHorario'] != "" && $_POST['quebraHorario'] != 0 ? "S" : "N";
$quantidadeVagasPVez    = $_POST['quantidadeVagasPVez'];
$quantidadeVagasRetorno = $_POST['quantidadeVagasRetorno'];
$quantidadeVagasReserva = $_POST['quantidadeVagasReserva'];
$totalVagasAlocadas     = $_POST['totalVagasAlocadas'];
$statusAgenda           = $_POST['statusAgenda'];
$disponibilidadeAgenda  = $_POST['disponibilidadeAgenda'];
$exclusivoOCIAgenda  = $_POST['exclusivoOCIAgenda'];

$idDiaVagas       = 0;
$quantidadeVagas  = 0;
$existeAgenda     = "N";
$dataHoraHoje     = date("Y-m-d H:i");
$replicacaoSalva  = 'S';

# --- verifica existencia de agendamentos --- #
$stmAgendamento   = $rsConexao->prepare("SELECT COUNT(id_agendamento) AS totalAgendamento, tipo_vagaocupada FROM reg_tb_agendamentos WHERE id_agenda='$idAgenda'");
$stmAgendamento->execute();
$rsAgendamento    = $stmAgendamento->fetch(PDO::FETCH_OBJ);
$totalAgendamento = $rsAgendamento->totalAgendamento;
# --- ------------------------------------ --- #

/*************** VALIDA EXISTÊNCIA DA AGENDA ********************/

/****************************************************************/

#--- gravar dados principais da agenda ---#
if ($idAgenda == 0 || $idAgenda == "") {
  $sqlSalvarAgenda = "INSERT INTO reg_tb_agenda(
        codigoestabelecimento_cnes,
        codigoprofissional_cnes,
        id_grupo_procedimento,
        id_procedimento,
        mes_agenda,
        ano_agenda,
        horario_inicioagenda,
        horario_finalagenda,
        intervalo_quebrahorario,
        quebrar_horarioagenda,
        status_agenda,
        disponibilidade_agenda,
        exclusivo_oci,
        id_usuario_cadastrou,
        datahora_cadastro,
        replicacao_salva
      )VALUES(
        :setIdUnidade,
        :setIdProfissional,
        :setIdGrupoProcedimento,
        :setIdProcedimento,
        :setMesAgenda,
        :setAnoAgenda,
        :setHorarioInicial,
        :setHorarioFinal,
        :setIntervaloQuebra,
        :setQuebrarHorario,
        :setStatusAgenda,
        :setDisponibilidadeAgenda,
        :setExclusividadeOCI,
        :setIdUsuarioLogado,
        :setDataHoraRegistro,
        :setReplicacaoSalva
      )";
} else {
  $sqlSalvarAgenda = "UPDATE reg_tb_agenda SET
    codigoestabelecimento_cnes=:setIdUnidade,
    codigoprofissional_cnes=:setIdProfissional,
    id_grupo_procedimento=:setIdGrupoProcedimento,
    id_procedimento=:setIdProcedimento,
    mes_agenda=:setMesAgenda,
    ano_agenda=:setAnoAgenda,
    horario_inicioagenda=:setHorarioInicial,
    horario_finalagenda=:setHorarioFinal,
    intervalo_quebrahorario=:setIntervaloQuebra,
    quebrar_horarioagenda=:setQuebrarHorario,
    status_agenda=:setStatusAgenda,
    disponibilidade_agenda=:setDisponibilidadeAgenda,
    exclusivo_oci=:setExclusividadeOCI,
    id_usuario_alterou=:setIdUsuarioLogado,
    datahora_alteracao=:setDataHoraRegistro,
    replicacao_salva=:setReplicacaoSalva
    WHERE id_agenda='$idAgenda'";
}

$stmSalvarAgenda = $rsConexao->prepare($sqlSalvarAgenda);
$stmSalvarAgenda->bindParam(":setIdUnidade", $idUnidadeSaude, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setIdProfissional", $idProfissinoalSaude, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setHorarioInicial", $horaInicialAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setHorarioFinal", $horaFinalAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setStatusAgenda", $statusAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setDisponibilidadeAgenda", $disponibilidadeAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setExclusividadeOCI", $exclusivoOCIAgenda, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setIdUsuarioLogado", $usuarioLogado, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setDataHoraRegistro", $dataHoraHoje, PDO::PARAM_STR);
$stmSalvarAgenda->bindParam(":setReplicacaoSalva", $replicacaoSalva, PDO::PARAM_STR);
$stmSalvarAgenda->execute();
if ($idAgenda == 0 || $idAgenda == "") {
  $idAgendaCadastrada = $rsConexao->lastInsertId();
} else {
  $idAgendaCadastrada = $idAgenda;
}
#-----------------------------------------#


if ($totalAgendamento == 0) { // Só executa inclusão de registro de vagas diáras caso não haja agendamentos realizados
  # -- deletar registros de dias das agendas --#
  $stmExclusao  = $rsConexao->prepare("DELETE FROM reg_tb_agenda_sub WHERE id_agenda='$idAgendaCadastrada'");
  $stmExclusao->execute();
  $stmRenumera  = $rsConexao->prepare("ALTER TABLE reg_tb_agenda_sub AUTO_INCREMENT=1;");
  $stmRenumera->execute();
  #--------------------------------------------#

  ## -- Salvar registros da agenda de primeira vez -- ##
  $contarDiasVagas  =  count($quantidadeVagasPVez);
  $calcularLoop     = 0;

  for ($contarDias  = 0; $contarDias < $contarDiasVagas; $contarDias++) {

    $separaIdVaga = explode('#', $quantidadeVagasPVez[$contarDias]);
    $idDiaVagas   = str_replace("PVez", "", $separaIdVaga[0]);

    if ($separaIdVaga[1] != "" && intval($separaIdVaga[1] != 0)) {
      $quantidadeVagas  = $separaIdVaga[1];

      #-- Realiza quebra de horário das agendas      
      for ($totalDias = 1; $totalDias <= 31; $totalDias++) {
        if ($idDiaVagas == $totalDias) {
          if ($quebrarHorario == "S") {  // com quebra de horário
            $salvarQuantidadePVez = 1;
            for ($salvarRegistro = 1; $salvarRegistro <= $quantidadeVagas; $salvarRegistro++) {
              if ($salvarRegistro == 1) {
                $gravarHoraInicial  = $horaInicialAgenda;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              } else {
                $gravarHoraInicial  = $gravarHoraFinal;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              }
              $sqlSalvarRegistroPVez = "INSERT INTO reg_tb_agenda_sub(
                id_agenda,
                id_grupo_procedimento,
                id_procedimento,
                mes_agenda,
                ano_agenda,
                dia_agenda,
                horario_inicioagenda,
                horario_finalagenda,
                intervalo_quebrahorario,
                quebrar_horarioagenda,
                quantidadevagas_pvez
              )VALUES(
                :setIdAgenda,
                :setIdGrupoProcedimento,
                :setIdProcedimento,
                :setMesAgenda,
                :setAnoAgenda,
                :setDiaAgenda,
                :setHorarioInicial,
                :setHorarioFinal,
                :setIntervaloQuebra,
                :setQuebrarHorario,
                :setVagasPrimeiraVez
              )";
              $stmSalvarRegistroPVez  = $rsConexao->prepare($sqlSalvarRegistroPVez);
              $stmSalvarRegistroPVez->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->bindParam(":setVagasPrimeiraVez", $salvarQuantidadePVez, PDO::PARAM_STR);
              $stmSalvarRegistroPVez->execute();
            }
          } else { // sem quebra de horário
            $gravarHoraInicial      = $horaInicialAgenda;
            $gravarHoraFinal        = $horaFinalAgenda;
            $salvarQuantidadePVez   = $quantidadeVagas;
            $sqlSalvarRegistroPVez  = "INSERT INTO reg_tb_agenda_sub(
                id_agenda,
                id_grupo_procedimento,
                id_procedimento,
                mes_agenda,
                ano_agenda,
                dia_agenda,
                horario_inicioagenda,
                horario_finalagenda,
                intervalo_quebrahorario,
                quebrar_horarioagenda,
                quantidadevagas_pvez
              )VALUES(
                :setIdAgenda,
                :setIdGrupoProcedimento,
                :setIdProcedimento,
                :setMesAgenda,
                :setAnoAgenda,
                :setDiaAgenda,
                :setHorarioInicial,
                :setHorarioFinal,
                :setIntervaloQuebra,
                :setQuebrarHorario,
                :setVagasPrimeiraVez
              )";
            $stmSalvarRegistroPVez  = $rsConexao->prepare($sqlSalvarRegistroPVez);
            $stmSalvarRegistroPVez->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->bindParam(":setVagasPrimeiraVez", $salvarQuantidadePVez, PDO::PARAM_STR);
            $stmSalvarRegistroPVez->execute();
          }
        }
      }
    }
  }

  ## -- Salvar registros da agenda de retorno -- ##
  $contarDiasVagas  =  count($quantidadeVagasRetorno);
  $calcularLoop     = 0;

  for ($contarDias  = 0; $contarDias < $contarDiasVagas; $contarDias++) {

    $separaIdVaga = explode('#', $quantidadeVagasRetorno[$contarDias]);
    $idDiaVagas   = str_replace("retorno", "", $separaIdVaga[0]);

    if ($separaIdVaga[1] != "" && intval($separaIdVaga[1] != 0)) {
      $quantidadeVagas  = $separaIdVaga[1];

      #-- Realiza quebra de horário das agendas    
      for ($totalDias = 1; $totalDias <= 31; $totalDias++) {
        if ($idDiaVagas == $totalDias) {
          if ($quebrarHorario == "S") {
            $salvarQuantidadeRetorno = 1;
            for ($salvarRegistro = 1; $salvarRegistro <= $quantidadeVagas; $salvarRegistro++) {
              if ($salvarRegistro == 1) {
                $gravarHoraInicial  = $horaInicialAgenda;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              } else {
                $gravarHoraInicial  = $gravarHoraFinal;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              }
              $sqlSalvarRegistroRetorno = "INSERT INTO reg_tb_agenda_sub(
                      id_agenda,
                      id_grupo_procedimento,
                      id_procedimento,
                      mes_agenda,
                      ano_agenda,
                      dia_agenda,
                      horario_inicioagenda,
                      horario_finalagenda,
                      intervalo_quebrahorario,
                      quebrar_horarioagenda,
                      quantidadevagas_retorno
                    )VALUES(
                      :setIdAgenda,
                      :setIdGrupoProcedimento,
                      :setIdProcedimento,
                      :setMesAgenda,
                      :setAnoAgenda,
                      :setDiaAgenda,
                      :setHorarioInicial,
                      :setHorarioFinal,
                      :setIntervaloQuebra,
                      :setQuebrarHorario,
                      :setVagasRetorno
                    )";
              $stmSalvarRegistroRetorno  = $rsConexao->prepare($sqlSalvarRegistroRetorno);
              $stmSalvarRegistroRetorno->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->bindParam(":setVagasRetorno", $salvarQuantidadeRetorno, PDO::PARAM_STR);
              $stmSalvarRegistroRetorno->execute();
            }
          } else {
            $gravarHoraInicial        = $horaInicialAgenda;
            $gravarHoraFinal          = $horaFinalAgenda;
            $salvarQuantidadeRetorno  = $quantidadeVagas;
            $sqlSalvarRegistroRetorno = "INSERT INTO reg_tb_agenda_sub(
                id_agenda,
                id_grupo_procedimento,
                id_procedimento,
                mes_agenda,
                ano_agenda,
                dia_agenda,
                horario_inicioagenda,
                horario_finalagenda,
                intervalo_quebrahorario,
                quebrar_horarioagenda,
                quantidadevagas_retorno
              )VALUES(
                :setIdAgenda,
                :setIdGrupoProcedimento,
                :setIdProcedimento,
                :setMesAgenda,
                :setAnoAgenda,
                :setDiaAgenda,
                :setHorarioInicial,
                :setHorarioFinal,
                :setIntervaloQuebra,
                :setQuebrarHorario,
                :setVagasRetorno
              )";
            $stmSalvarRegistroRetorno  = $rsConexao->prepare($sqlSalvarRegistroRetorno);
            $stmSalvarRegistroRetorno->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->bindParam(":setVagasRetorno", $salvarQuantidadeRetorno, PDO::PARAM_STR);
            $stmSalvarRegistroRetorno->execute();
          }
        }
      }
    }
  }

  ## -- Salvar registros da agenda de reserva -- ##
  $contarDiasVagas  =  count($quantidadeVagasReserva);
  $calcularLoop     = 0;

  for ($contarDias  = 0; $contarDias < $contarDiasVagas; $contarDias++) {

    $separaIdVaga = explode('#', $quantidadeVagasReserva[$contarDias]);
    $idDiaVagas   = str_replace("reserva", "", $separaIdVaga[0]);

    if ($separaIdVaga[1] != "" && intval($separaIdVaga[1] != 0)) {
      $quantidadeVagas  = $separaIdVaga[1];

      #-- Realiza quebra de horário das agendas

      for ($totalDias = 1; $totalDias <= 31; $totalDias++) {
        if ($idDiaVagas == $totalDias) {
          if ($quebrarHorario == "S") {
            $salvarQuantidadeReserva = 1;
            for ($salvarRegistro = 1; $salvarRegistro <= $quantidadeVagas; $salvarRegistro++) {
              if ($salvarRegistro == 1) {
                $gravarHoraInicial  = $horaInicialAgenda;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              } else {
                $gravarHoraInicial  = $gravarHoraFinal;
                $gravarHoraFinal    = date("H:i", strtotime("$gravarHoraInicial + $intervaloQuebra minutes"));
              }
              $sqlSalvarRegistroReserva = "INSERT INTO reg_tb_agenda_sub(
                  id_agenda,
                  id_grupo_procedimento,
                  id_procedimento,
                  mes_agenda,
                  ano_agenda,
                  dia_agenda,
                  horario_inicioagenda,
                  horario_finalagenda,
                  intervalo_quebrahorario,
                  quebrar_horarioagenda,
                  quantidadevagas_reserva
                )VALUES(
                  :setIdAgenda,
                  :setIdGrupoProcedimento,
                  :setIdProcedimento,
                  :setMesAgenda,
                  :setAnoAgenda,
                  :setDiaAgenda,
                  :setHorarioInicial,
                  :setHorarioFinal,
                  :setIntervaloQuebra,
                  :setQuebrarHorario,
                  :setVagasReserva
                )";
              $stmSalvarRegistroReserva  = $rsConexao->prepare($sqlSalvarRegistroReserva);
              $stmSalvarRegistroReserva->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->bindParam(":setVagasReserva", $salvarQuantidadeReserva, PDO::PARAM_STR);
              $stmSalvarRegistroReserva->execute();
            }
          } else {
            $gravarHoraInicial        = $horaInicialAgenda;
            $gravarHoraFinal          = $horaFinalAgenda;
            $salvarQuantidadeReserva  = $quantidadeVagas;
            $sqlSalvarRegistroReserva = "INSERT INTO reg_tb_agenda_sub(
                id_agenda,
                id_grupo_procedimento,
                id_procedimento,
                mes_agenda,
                ano_agenda,
                dia_agenda,
                horario_inicioagenda,
                horario_finalagenda,
                intervalo_quebrahorario,
                quebrar_horarioagenda,
                quantidadevagas_reserva
              )VALUES(
                :setIdAgenda,
                :setIdGrupoProcedimento,
                :setIdProcedimento,
                :setMesAgenda,
                :setAnoAgenda,
                :setDiaAgenda,
                :setHorarioInicial,
                :setHorarioFinal,
                :setIntervaloQuebra,
                :setQuebrarHorario,
                :setVagasReserva
              )";
            $stmSalvarRegistroReserva  = $rsConexao->prepare($sqlSalvarRegistroReserva);
            $stmSalvarRegistroReserva->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setIdProcedimento", $idProcedimento, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setMesAgenda", $idMesAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setAnoAgenda", $anoAgenda, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setDiaAgenda", $idDiaVagas, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setHorarioInicial", $gravarHoraInicial, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setHorarioFinal", $gravarHoraFinal, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setIntervaloQuebra", $intervaloQuebra, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setQuebrarHorario", $quebrarHorario, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->bindParam(":setVagasReserva", $salvarQuantidadeReserva, PDO::PARAM_STR);
            $stmSalvarRegistroReserva->execute();
          }
        }
      }
    }
  }
}

if ($eGrupoSelecionado == "SIM") {

  # -- deletar procedimentos anteriores --#
  $stmExclusao  = $rsConexao->prepare("DELETE FROM reg_tb_agenda_grupoprocedimento WHERE id_agenda='$idAgendaCadastrada'");
  $stmExclusao->execute();
  $stmRenumera  = $rsConexao->prepare("ALTER TABLE reg_tb_agenda_grupoprocedimento AUTO_INCREMENT=1;");
  $stmRenumera->execute();

  $arrayProcedimento    = $_POST['arrayProcedimento'];
  $contarRegistros      =  count($arrayProcedimento);
  $idProcedimentoArray  = 0;

  for ($idRegistro = 1; $idRegistro <= $contarRegistros; $idRegistro++) {
    $idProcedimentoArray = $arrayProcedimento[$idRegistro - 1];

    $sqlAddProcedimento = "INSERT INTO reg_tb_agenda_grupoprocedimento(
      id_agenda,
      id_grupo_procedimento,
      id_procedimento,
      codigoestabelecimento_cnes
    )VALUES(
      :setIdAgenda,
      :setIdGrupoProcedimento,
      :setIdProcedimento,
      :setCodigoEstabelecimento
    )";
    $stmAddProcedimento = $rsConexao->prepare($sqlAddProcedimento);
    $stmAddProcedimento->bindParam(":setIdAgenda", $idAgendaCadastrada, PDO::PARAM_STR);
    $stmAddProcedimento->bindParam(":setIdGrupoProcedimento", $idGrupoProcedimento, PDO::PARAM_STR);
    $stmAddProcedimento->bindParam(":setIdProcedimento", $idProcedimentoArray, PDO::PARAM_STR);
    $stmAddProcedimento->bindParam(":setCodigoEstabelecimento", $idUnidadeSaude, PDO::PARAM_STR);
    $stmAddProcedimento->execute();
  }
}

echo $idAgendaCadastrada;
