/**
  * Lista todos os funcionarios de um salão
  */
 public function listarFuncionarios()
 {
     $this->load->library('objrequest');
     //config layout
     $this->data['header'] = Modules::run('main/ctmain/header');
     $this->data['tituloMenu'] = "Confirmar Horario - Funcionários";
     $this->data['personFooter'] = "footers/confirmarhorario/footer-list";
     //busca a lista de funcionarios
     $resquest = new ObjRequest();
     $funcionarioList = $resquest->getToArray(REST_SERVER . "/rest/agenda/agendaService/buscaFuncionariosPorSalao?idSalao=" . $this->idSalao);
     $this->data['listaFuncionario'] = $funcionarioList['responseObj'];
     $this->layout->view('/confirmarhorario/listarfuncionario', $this->data);
 }
 public function recuperarFuncionariosSalao($idServico)
 {
     $this->load->library('objrequest');
     //adiciona na sessão o passo 2
     $efetuarReservaSess = $this->session->userdata('efetuarReserva');
     $efetuarReservaSess['idServico'] = $idServico;
     $this->session->set_userdata('efetuarReserva', $efetuarReservaSess);
     //busca a lista de reservas
     $resquest = new ObjRequest();
     $salaoList = $resquest->getToArray(REST_SERVER . "/rest/agenda/reservaService/buscaFuncionarioServico?idServico=" . $idServico);
     $this->data['listaFuncionario'] = $salaoList['responseObj'];
     //config layout
     $this->data['header'] = Modules::run('main/ctmain/header');
     $this->data['tituloMenu'] = 'Funcionario Salão';
     $this->data['personFooter'] = "footers/agendarhorario/footer-passo23";
     $this->layout->view('/agendarhorario/listarfuncionariosaloes', $this->data);
     $data = null;
 }
 /**
  * Inclui um periodo bloqueado
  */
 public function inserirPeriodoBloqueado($idPeriodoBloqueado = null, $idFuncionario = null)
 {
     $this->load->library('objrequest');
     $resquest = new ObjRequest();
     //config layout
     $header['javascript'][] = '/assets/modules/bloquearagenda/js/bloquearagenda.js';
     $header['javascript'][] = '/assets/library/jQuery-Mask-Plugin-1.6.5/jquery.mask.js';
     $this->data['header'] = Modules::run('main/ctmain/header', $header);
     $this->data['tituloMenu'] = "Bloquear Agenda";
     $this->data['personFooter'] = "footers/bloquearagenda/footer-list";
     //adiciona os dados para registro da reserva
     $data = array("dsPeriodoBloqueado" => $this->input->post('descricao'), "dtPeriodoBloqueado" => $this->input->post('data') == "" ? "01/01/1900" : $this->input->post('data'), "hrInicial" => $this->input->post('horaInicio'), "hrFinal" => $this->input->post('horaFim'), "nrDiaSemana", "tpPeriodoBloqueado" => $this->input->post('data') == "" ? 'HORARIO' : 'DT_AGENDA', "idFuncionario" => $idFuncionario, "id" => $idPeriodoBloqueado);
     $url = base_url(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/inserirPeriodoBloqueado');
     $resp = $resquest->post(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/inserirPeriodoBloqueado', $data);
     if ($resp == true) {
         echo '<script>alert("Periodo bloqueado cadastrado com sucesso!")</script>';
     } else {
         echo '<script>alert("Periodo bloqueado cadastrado com sucesso!")</script>';
     }
     //busca a lista de periodo bloqueado
     $periodoBloqueadoList = $resquest->getToArray(REST_SERVER . "/rest/agenda/PeriodoBloqueadoService/listaPeriodoBloqueado?idFuncionario=" . $idFuncionario . "&tpBloqueio=DT_AGENDA");
     $periodoBloqueadoList = $periodoBloqueadoList['responseObj'];
     //busca a lista de funcionarios
     $funcionarioList = $resquest->getToArray(REST_SERVER . "/rest/agenda/PeriodoBloqueadoService/listaFuncionarioPorSalao?idSalao=" . $this->idSalao);
     $funcionarioList = $funcionarioList['responseObj'];
     $this->data["periodoBloqueadoList"] = $periodoBloqueadoList;
     $this->data["funcionarioList"] = $funcionarioList;
     $this->data['idFuncionario'] = $idFuncionario;
     //informacoes que vao para view
     $this->layout->view('/bloquearagenda/bloqueardiahorario', $this->data);
     $data = null;
 }
 /**
  * Lista um conjunto de reservas buscando por uma data especifica o dia atual
  * 
  * @param date String
  */
 public function listarReserva($idFuncionario = null)
 {
     $this->load->library('objrequest');
     //recebe post
     $dataBusca = $this->input->post('dataEscolhida', TRUE) ? $this->input->post('dataEscolhida', TRUE) : null;
     //adiciona na sessão o passo 3
     $efetuarReservaSess = $this->session->userdata('efetuarReserva');
     $efetuarReservaSess['idFuncionario'] = $idFuncionario;
     //verifica se o usuario inseriu uma data
     if ($dataBusca != null or $dataBusca != '') {
         $dataBusca = explode("/", $dataBusca);
         $data = new DateTime($dataBusca[2] . '-' . $dataBusca[1] . '-' . $dataBusca[0]);
         $dateNow = new DateTime();
         $dateNow->setTime(00, 00, 00);
         //verifica se a data escolhida é menor
         if ($dateNow->getTimestamp() > $data->getTimestamp()) {
             $data = $dateNow->format('d/m/Y');
             $msg['error'][] = "A data Selecionada não pode ser menor que o dia atual!";
             $this->session->set_userdata('msg', $msg);
         } else {
             $data = $data->format('d/m/Y');
         }
     } else {
         //inicia data de hoje
         $date = new DateTime();
         $data = $date->format('d/m/Y');
     }
     $efetuarReservaSess['pesquisaData'] = $data;
     $this->session->set_userdata('efetuarReserva', $efetuarReservaSess);
     //config layout
     $header['javascript'][] = '/assets/library/jQuery-Mask-Plugin-1.6.5/jquery.mask.js';
     $header['javascript'][] = '/assets/modules/efetuarreserva/js/listareserva.js';
     $this->data['header'] = Modules::run('main/ctmain/header', $header);
     $this->data['tituloMenu'] = "Agendar Horário";
     $this->data['personFooter'] = "footers/efetuarreservas/footer-passo4";
     //busca a lista de reservas
     $resquest = new ObjRequest();
     $salaoList = $resquest->getToArray(REST_SERVER . "/rest/agenda/agendaService/buscaAgendaFuncionario?idFuncionario=" . $idFuncionario . "&dtSelecionada=" . $data . "&idServicoSalao=" . $efetuarReservaSess['idServico']);
     $listaAgenda = $salaoList['responseObj'];
     $horasDoSerico = $salaoList['responseObj']['qtdHorasServico'] * 2;
     //adiciona no array apenas os periodos disponiveis
     foreach ($listaAgenda['periodosDisponiveis'] as $chavePerido => $valorPerido) {
         if ($valorPerido['periodoBloqueado'] != true) {
             $horariosDisponiveis[] = $valorPerido['horaMinutos'];
         }
     }
     //bloqueia os periodos que não podem ter reserva de acordo com o tempo do servico
     foreach ($listaAgenda['periodosDisponiveis'] as $chavePerido => $valorPerido) {
         if ($valorPerido['periodoBloqueado'] != true) {
             //verificar formula
             $periodoInicial = $valorPerido['horaMinutos'];
             $periodoInicial = date('H:i', strtotime("{$periodoInicial} - 30 minutes"));
             //verifica se existe o grupo de horarios adequado
             for ($i = 1; $i <= $horasDoSerico; $i++) {
                 $periodoInicial = date('H:i', strtotime("{$periodoInicial} + 30 minutes"));
                 //bloqueia o horarios não compativeis com o tempo do serviço
                 if (!in_array($periodoInicial, $horariosDisponiveis)) {
                     $listaAgenda['periodosDisponiveis'][$chavePerido]['periodoBloqueado'] = true;
                     break;
                 }
             }
         }
     }
     //informacoes que vao para view
     $this->data['dia'] = $data;
     $this->data['listaHorario'] = $listaAgenda['periodosDisponiveis'];
     $this->data['idFuncionario'] = $idFuncionario;
     $this->layout->view('/efetuarreserva/listaragendafuncionario', $this->data);
     $data = null;
 }
 /**
  * Inclui um periodo bloqueado
  */
 public function inserirPeriodoBloqueado($idFuncionario = null)
 {
     $this->load->library('objrequest');
     $resquest = new ObjRequest();
     //config layout
     $header['javascript'][] = '/assets/modules/bloquearagenda/js/bloquearagendasemana.js';
     $header['javascript'][] = '/assets/library/jQuery-Mask-Plugin-1.6.5/jquery.mask.js';
     $this->data['header'] = Modules::run('main/ctmain/header', $header);
     $this->data['tituloMenu'] = "Bloquear Agenda";
     $this->data['personFooter'] = "footers/bloquearagenda/footer-list";
     $diaSemana = array("DOMINGO" => array("status" => $this->input->post('1'), "id" => $this->input->post('i1')), "SEGUNDA" => array("status" => $this->input->post('2'), "id" => $this->input->post('i2')), "TERCA" => array("status" => $this->input->post('3'), "id" => $this->input->post('i3')), "QUARTA" => array("status" => $this->input->post('4'), "id" => $this->input->post('i4')), "QUINTA" => array("status" => $this->input->post('5'), "id" => $this->input->post('i5')), "SEXTA" => array("status" => $this->input->post('6'), "id" => $this->input->post('i6')), "SABADO" => array("status" => $this->input->post('7'), "id" => $this->input->post('i7')));
     foreach ($diaSemana as $diaSemanaChave => $diaSemanaValor) {
         if ($diaSemanaValor['id'] != "") {
             $data = array("idPeriodoBloqueado" => $diaSemanaValor['id']);
             $url = base_url(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/excluirPeriodoBloqueado');
             $resp = $resquest->put(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/excluirPeriodoBloqueado', $data);
         }
     }
     foreach ($diaSemana as $diaSemanaChave => $diaSemanaValor) {
         $nrDia = null;
         switch ($diaSemanaChave) {
             case 'DOMINGO':
                 $nrDia = 1;
                 break;
             case 'SEGUNDA':
                 $nrDia = 2;
                 break;
             case 'TERCA':
                 $nrDia = 3;
                 break;
             case 'QUARTA':
                 $nrDia = 4;
                 break;
             case 'QUINTA':
                 $nrDia = 5;
                 break;
             case 'SEXTA':
                 $nrDia = 6;
                 break;
             default:
                 $nrDia = 7;
                 break;
         }
         if ($diaSemanaValor['status']) {
             //adiciona os dados para inserir o registro
             $data = array("dsPeriodoBloqueado" => $diaSemanaChave, "dtPeriodoBloqueado" => '01/01/1900', "hrInicial" => '', "hrFinal" => '', "nrDiaSemana" => $nrDia, "tpPeriodoBloqueado" => 'DIA_SEMANA', "idFuncionario" => $idFuncionario, "id");
             $url = base_url(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/inserirPeriodoBloqueado');
             $resp = $resquest->post(REST_SERVER . '/rest/agenda/PeriodoBloqueadoService/inserirPeriodoBloqueado', $data);
         }
     }
     if ($resp == true) {
         echo '<script>alert("Periodo bloqueado realizado com sucesso!")</script>';
     } else {
         echo '<script>alert("Erro ao inserir o período bloqueado.")</script>';
     }
     //busca a lista de periodo bloqueado
     $periodoBloqueadoList = $resquest->getToArray(REST_SERVER . "/rest/agenda/PeriodoBloqueadoService/listaPeriodoBloqueado?idFuncionario=" . $idFuncionario . "&tpBloqueio=DIA_SEMANA");
     $periodoBloqueadoList = $periodoBloqueadoList['responseObj'];
     //busca a lista de funcionarios
     $funcionarioList = $resquest->getToArray(REST_SERVER . "/rest/agenda/PeriodoBloqueadoService/listaFuncionarioPorSalao?idSalao=" . $this->idSalao);
     $funcionarioList = $funcionarioList['responseObj'];
     $this->data["periodoBloqueadoList"] = $periodoBloqueadoList;
     $this->data["funcionarioList"] = $funcionarioList;
     $this->data['idFuncionario'] = $idFuncionario;
     //informacoes que vao para view
     $this->layout->view('/bloquearagenda/bloqueardiasemana', $this->data);
     $data = null;
 }