Пример #1
0
 public function opcoesAction()
 {
     try {
         $processados = 0;
         $naoProcessados = 0;
         if (empty($_POST["acoes"])) {
             throw new Exception("É necessário escolher uma ação");
         }
         $conexao = $this->conexao->getConexao();
         $objetos = isset($_POST["objetos"]) ? $_POST["objetos"] : array();
         // retira o elemento -1, caso exista
         if (count($objetos) > 0 && $objetos[0] == -1) {
             array_shift($objetos);
         }
         foreach ($objetos as $id) {
             $dados = $this->dao->findByPk($conexao, $this->info["tabela"], $id);
             switch ($_POST['acoes']) {
                 case 'excluir':
                     $opcao = "excluído(a)(s)";
                     try {
                         $affectedRows = $this->dao->excluiByPk($conexao, $this->info["tabela"], $dados["id"]);
                         if ($affectedRows > 0) {
                             $processados += 1;
                             $diretorio = DIR_UPLOADS . SEPARADOR_DIRETORIO . $this->info["modulo"] . SEPARADOR_DIRETORIO . $dados["id"];
                             excluiDiretorio($diretorio);
                             //$this->logDAO->adicionar ($conexao, "excluiu", $this->info["labelSing"], $_SESSION[PREFIX . "loginNome"], $dados[$_GET['nome']], "Usuário excluiu " . $this->info["labelSing"] . " através do recurso de aplicar ações em massa.");
                         }
                     } catch (Exception $e) {
                         $naoProcessados += 1;
                     }
                     break;
             }
         }
     } catch (Exception $e) {
         if (isset($conexao)) {
             $conexao->rollback();
         }
         setMensagem("error", $e->getMessage());
     }
     if ($processados > 0) {
         $conexao->commit();
         setMensagem("info", $processados . " " . $opcao);
     }
     if ($naoProcessados > 0) {
         setMensagem("error", $naoProcessados . " não pode(m) ser " . $opcao);
     }
     if (isset($conexao)) {
         $conexao->disconnect();
     }
     $redirecionar = "?modulo=pacientes";
     if (isset($_GET['exibir'])) {
         $redirecionar .= '&exibir=' . $_GET['exibir'];
     }
     if (isset($_GET['order'])) {
         $redirecionar .= '&order=' . $_GET['order'];
     }
     Application::redirect($redirecionar);
     exit;
 }
Пример #2
0
 public function opcoesAction()
 {
     if (count($_POST) > 0) {
         if (isset($_POST["opcoes"])) {
             $processados = 0;
             $naoProcessados = 0;
             $ids = isset($_POST["agenda"]) ? $_POST["agenda"] : array();
             // retira o elemento -1, caso exista
             if (count($ids) > 0 && $ids[0] == -1) {
                 array_shift($ids);
             }
             try {
                 $conexao = $this->conexao->getConexao();
                 //if (!temPermissao(array('agenda:manterCursos'), $_SESSION[PREFIX . "permissoes"]))
                 //	throw new Exception("Você não tem permissão para realizar esta ação.");
                 foreach ($ids as $id) {
                     $dados = $this->dao->getById($conexao, "agenda", $id);
                     switch ($_POST["opcoes"]) {
                         case "excluir":
                             $opcao = "excluído(s)";
                             try {
                                 $affectedRows = $this->dao->excluir($conexao, "agenda", $id);
                                 if ($affectedRows > 0) {
                                     $processados += 1;
                                     $diretorio = DIR_UPLOADS . SEPARADOR_DIRETORIO . "agenda" . SEPARADOR_DIRETORIO . $id;
                                     excluiDiretorio($diretorio);
                                     //$this->logDAO->adicionar ($conexao, "excluiu", "paciente", $_SESSION[PREFIX . "loginNome"], $dados["nome"], "Usuário excluiu o paciente.");
                                 }
                             } catch (Exception $e) {
                                 $naoProcessados += 1;
                             }
                             break;
                         case "ativar":
                             $opcao = "ativado(s)";
                             $dados["status"] = 1;
                             $affectedRows = $this->dao->atualizar($conexao, "agenda", $dados);
                             if ($affectedRows > 0) {
                                 $processados += 1;
                                 //$this->logDAO->adicionar ($conexao, "ativou", "paciente", $_SESSION[PREFIX . "loginNome"], $dados["nome"], "Usuário ativou paciente.");
                             }
                             break;
                         case "desativar":
                             $opcao = "desativado(s)";
                             $dados["status"] = 0;
                             $affectedRows = $this->dao->atualizar($conexao, "agenda", $dados);
                             if ($affectedRows > 0) {
                                 $processados += 1;
                                 //$this->logDAO->adicionar ($conexao, "desativou", "paciente", $_SESSION[PREFIX . "loginNome"], $dados["nome"], "Usuário desativou paciente.");
                             }
                             break;
                     }
                 }
                 if ($processados > 0) {
                     $conexao->commit();
                     setMensagem("info", $processados . " paciente(s) " . $opcao);
                 }
                 if ($naoProcessados > 0) {
                     setMensagem("error", $naoProcessados . " paciente(s) não podem ser " . $opcao);
                 }
                 $conexao->disconnect();
             } catch (Exception $e) {
                 setMensagem("error", $e->getMessage());
                 $conexao->rollback();
             }
         }
     }
     Application::redirect(WWW_ROOT . "/?" . urldecode($_POST['q']));
     exit;
 }