Пример #1
0
 public function cadastrarAction()
 {
     try {
         $conexao = $this->conexao->getConexao();
         $redirecionar = "?modulo=pacientes";
         $breadcrumbs = array();
         $breadcrumbs[] = array("Pacientes" => "?modulo=" . $_GET["modulo"]);
         $dados = inicializaDados(new Paciente());
         if (isset($_GET["id"])) {
             $dados = $this->dao->findByPk($conexao, "pacientes", (int) $_GET["id"]);
             $breadcrumbs[] = array("Atualizar" => "");
             $acao = "editar";
         } else {
             $breadcrumbs[] = array("Cadastrar" => "");
             $acao = "novo";
         }
         if (count($_POST) > 0) {
             $redirecionar = NULL;
             $dados = $_POST["Paciente"];
             $dados["tratamentos"] = isset($dados["tratamentos"]) ? implode(",", $dados["tratamentos"]) : NULL;
             $obrigatorios = array("nome" => array("tipo" => "input", "nome" => "Nome"));
             $mensagem = validaPost($obrigatorios, $dados);
             if (!empty($mensagem)) {
                 throw new Exception($mensagem);
             }
             if (Funcoes::jaExiste($conexao, $this->dao, $dados, "pacientes", "nome")) {
                 throw new Exception('Já existe um paciente com esse nome');
             }
             if ($dados["id"] == 0) {
                 $dados["timestamp"] = time();
                 $dados["data"] = date('d/m/Y H:i:s', $dados["timestamp"]);
             }
             $dados = $this->dao->salva($conexao, "pacientes", $dados);
             if ($acao == "novo") {
                 setMensagem("info", "Paciente cadastrado [" . $dados["nome"] . "]");
             } else {
                 $conexao->query()->from("agenda")->where("paciente = ?", (int) $dados["id"])->save(array('nomePaciente' => $dados["nome"]));
                 setMensagem("info", "Paciente atualizado [" . $dados["nome"] . "]");
             }
             $redirecionar = "?modulo=pacientes&acao=cadastrar&id=" . $dados["id"];
             if (isset($_GET["r"])) {
                 $redirecionar = urldecode($_GET["r"]);
             }
             $conexao->commit();
             $conexao->disconnect();
             Application::redirect($redirecionar);
             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, "paciente" => $dados));
     $view->showContents();
 }