Пример #1
0
 public function alterarAction()
 {
     try {
         $conexao = $this->conexao->getConexao();
         //$redirecionar = montaRedirect($_SERVER["QUERY_STRING"], array("id", "acao"));
         $breadcrumbs = array();
         $dadosUsuario = $this->dao->findByPk($conexao, "usuarios", getVariavel("id"));
         // usuário só poderá alterar os dados dele mesmo
         if ($dadosUsuario["id"] != $_SESSION[PREFIX . "loginId"]) {
             throw new Exception("Você não tem permissão para atualizar dados de outros usuários");
         }
         $breadcrumbs[] = array($dadosUsuario["nome"] => "", "Alterar dados" => "");
         // armazena a senha atual em uma variável
         $senhaAtual = $dadosUsuario["senha"];
         $novaSenha = $dadosUsuario["senha"];
         // se submeteu dados
         if (count($_POST) > 0) {
             $redirecionar = NULL;
             $dados = $_POST;
             // todos os dados são obrigatórios
             $obrigatorios = array("nome" => array("tipo" => "input", "nome" => "Nome"), "login" => array("tipo" => "input", "nome" => "Login"), "email" => array("tipo" => "input", "nome" => "E-mail"));
             // se o usuário informar a nova senha, deverá informar a senha atual
             if (!empty($dados["novaSenha"])) {
                 $obrigatorios["senhaAtual"] = array("tipo" => "input", "nome" => "Senha atual");
             }
             // valida
             $mensagem = validaPost($obrigatorios, $dados);
             if (!empty($mensagem)) {
                 throw new Exception($mensagem);
             }
             // recebe e codifica a senha atual
             $dados["senhaAtual"] = !empty($dados["senhaAtual"]) ? md5(trim($dados["senhaAtual"])) : $senhaAtual;
             if ($dados["senhaAtual"] != $senhaAtual) {
                 throw new Exception("Senha atual não confere");
             }
             $dados["senha"] = $dados["novaSenha"] = !empty($dados["novaSenha"]) ? md5(trim($dados["novaSenha"])) : $novaSenha;
             $dados = retiraDoArray(array("novaSenha", "senhaAtual"), $dados);
             $dados = $this->dao->salva($conexao, "usuarios", $dados);
             // adiciona nos logs
             //$this->logDAO->adicionar ($conexao, "alterou", "dados", $_SESSION[PREFIX . "loginNome"], $dados["nome"], "Usuário atualizou seus dados.");
             $conexao->commit();
             $conexao->disconnect();
             setMensagem("info", "Dados atualizados");
             Application::redirect('?modulo=index&acao=alterar&id=' . $dados["id"]);
             exit;
         }
     } catch (Exception $e) {
         $conexao->rollback();
         setMensagem("error", $e->getMessage());
         if ($redirecionar != NULL) {
             Application::redirect($redirecionar);
             exit;
         }
     }
     $conexao->disconnect();
     $view = new View($_GET["modulo"], "extendido", "alterar.phtml");
     $view->setParams(array("title" => getTitulo($breadcrumbs), "breadcrumbs" => $breadcrumbs, "usuario" => $dadosUsuario));
     $view->showContents();
 }
Пример #2
0
 // verifica se precisa cadastrar o paciente
 $existe = function ($dao, $conexao, $nome) {
     return $dao->count($conexao, "pacientes", array('where' => array('nome' => $nome))) > 0;
 };
 $mensagem = '';
 if (!$existe($dao, $conexao->getConexao(), $dados['nomePaciente'])) {
     $timestamp = time();
     $data = date('d/m/Y H:i:s', $timestamp);
     $dao->salva($conexao->getConexao(), "pacientes", array('id' => 0, 'nome' => $dados['nomePaciente'], 'telefoneResidencial' => $dados['telefoneResidencial'], 'telefoneCelular' => $dados['telefoneCelular'], 'observacoes' => 'Paciente cadastrado pela agenda.', "timestamp" => $timestamp, "data" => $data));
     $mensagem = 'Paciente cadastrado. ';
 }
 $fisioterapeutasAtuais = $dao->findAll($conexao->getConexao(), "agenda_fisioterapeutas", array("where" => array("compromisso" => $dados["id"])));
 foreach ($fisioterapeutasAtuais as $f) {
     $fisioterapeutasAtuaisIds[] = $f["fisioterapeuta"];
 }
 $dados = retiraDoArray(array("fisioterapeutas"), $dados);
 list($dados["dia"], $dados["mes"], $dados["ano"]) = explode("/", $dados["data"]);
 if ($dados['id'] == 0) {
     $dados["timestampC"] = time();
     $dados["dataC"] = date('d/m/Y H:i:s', $dados["timestampC"]);
 }
 $dados = $dao->salva($conexao->getConexao(), "agenda", $dados);
 $excluidos = array_diff($fisioterapeutasAtuaisIds, $fisioterapeutas);
 $incluidos = array_diff($fisioterapeutas, $fisioterapeutasAtuaisIds);
 foreach ($incluidos as $id) {
     $dao->salva($conexao->getConexao(), "agenda_fisioterapeutas", array("id" => 0, "fisioterapeuta" => $id, "compromisso" => $dados["id"]));
 }
 foreach ($excluidos as $id) {
     $dao->exclui($conexao->getConexao(), "agenda_fisioterapeutas", array("where" => array("compromisso" => $dados["id"], "fisioterapeuta" => $id)));
 }
 $mensagem .= 'Compromisso salvo com sucesso.' . $conexao->getConexao()->commit();
Пример #3
0
 public function cadastrarAction()
 {
     try {
         $conexao = $this->conexao->getConexao();
         $redirecionar = "?modulo=agenda";
         $tipos = Agenda::getTipos();
         $breadcrumbs = array();
         $breadcrumbs[] = array("Agenda" => "?modulo=" . $_GET["modulo"], "Novo compromisso" => "");
         $dados = inicializaDados(new Agenda());
         $dados["marcador"] = 0;
         $dados["data"] = isset($_GET['data']) ? $_GET['data'] : date('d/m/Y');
         $dados["hora"] = isset($_GET['hora']) ? $_GET['hora'] : '';
         $dados["tipo"] = isset($_GET['tipo']) ? $_GET['tipo'] : '0';
         $fisioterapeutas = $this->dao->findAll($conexao, "vw_usuarios", array("where" => array("permissao" => Permissao::PERMISSAO_FISIOTERAPEUTA), "order" => array("nome" => "asc")));
         // recupera os pacientes para o autocomplete
         $pacientes = $this->dao->findAll($conexao, "pacientes");
         $pacientesArr = array();
         foreach ($pacientes as $paciente) {
             $pacientesArr[] = '"' . $paciente["nome"] . '"';
         }
         if (count($_POST) > 0) {
             $redirecionar = NULL;
             $dados = $dadosIn = $_POST;
             $idsFisioterapeutas = array();
             $dados["fisioterapeutas"] = $dadosIn["fisioterapeutas"] = isset($dadosIn["fisioterapeutas"]) ? $dadosIn["fisioterapeutas"] : array();
             $obrigatorios = array("tipo" => array("tipo" => "select", "nome" => "Tipo"), "nomePaciente" => array("tipo" => "input", "nome" => "Paciente"), "data" => array("tipo" => "input", "nome" => "Data"), "hora" => array("tipo" => "input", "nome" => "Hora"), "fisioterapeutas" => array("tipo" => "array", "nome" => "Fisioterapeutas"));
             $mensagens = array();
             $mensagem = validaPost($obrigatorios, $dadosIn);
             if (!empty($mensagem)) {
                 $mensagens[] = $mensagem;
             }
             if (!empty($dadosIn["hora"]) && !validaHora($dadosIn["hora"])) {
                 $mensagens[] = "Informe uma hora válida.";
             }
             foreach ($dadosIn["fisioterapeutas"] as $f) {
                 list($nome, $id) = explode("-", $f);
                 $idsFisioterapeutas[] = $id;
                 $quantidadeCompromissos = $this->dao->count($conexao, "agenda", array("leftJoin" => array("agenda_fisioterapeutas" => "agenda_fisioterapeutas.compromisso = agenda.id"), "where" => array("agenda.data" => $dadosIn["data"], "agenda.hora" => $dadosIn["hora"], "agenda_fisioterapeutas.fisioterapeuta" => $id), "whereNot" => array("agenda.id" => $dadosIn["id"])));
                 if ($quantidadeCompromissos > 0) {
                     $mensagens[] = "Já existe um compromisso para " . $nome . " nesta mesma data e horário";
                 }
             }
             if (count($mensagens) > 0) {
                 throw new Exception(implode('<br />', $mensagens));
             }
             if ($dadosIn["id"] == 0) {
                 $dadosIn["timestampC"] = time();
                 $dadosIn["dataC"] = date('d/m/Y H:i:s', $dadosIn["timestampC"]);
             }
             $dadosIn = retiraDoArray(array("fisioterapeutas"), $dadosIn);
             list($dadosIn["dia"], $dadosIn["mes"], $dadosIn["ano"]) = explode("/", $dadosIn["data"]);
             $dadosIn = $this->dao->salva($conexao, "agenda", $dadosIn);
             foreach ($idsFisioterapeutas as $id) {
                 $this->dao->salva($conexao, "agenda_fisioterapeutas", array("id" => 0, "compromisso" => $dadosIn["id"], "fisioterapeuta" => $id));
             }
             $conexao->commit();
             setMensagem("info", "Compromisso do dia " . desconverteData($dadosIn["data"]) . " às " . $dadosIn["hora"] . " cadastrado [" . $paciente["nome"] . "]");
             Application::redirect("?modulo=agenda&acao=cadastrar");
             exit;
         }
     } catch (Exception $e) {
         $conexao->rollback();
         setMensagem("error", $e->getMessage());
         if ($redirecionar != NULL) {
             Application::redirect($redirecionar);
             exit;
         }
     }
     $conexao->disconnect();
     $view = new View($_GET["modulo"], "painel", "novo.phtml");
     $view->setParams(array("title" => getTitulo($breadcrumbs), "breadcrumbs" => $breadcrumbs, "compromisso" => $dados, "pacientes" => implode(",", $pacientesArr), "fisioterapeutas" => $fisioterapeutas));
     $view->showContents();
 }