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; }
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; }