Exemplo n.º 1
0
 /**
  * @abstract Método que executa uma função para a página
  */
 public function executar()
 {
     # Recebe os parametros validados
     $parametros = $this->getParametros();
     # Monta os dados referente ao parametros
     if (!is_null($parametros)) {
         $tipoJanela = $parametros[JANELA];
         $nomeModulo = $parametros[MODULO];
         $nomeMetodo = ucwords(strtolower($parametros[ACAO]));
         $metodoModulo = sprintf("acao%s", $nomeMetodo);
         $classModulo = $this->getClasseModulo($nomeModulo);
         # Verifica se tem permissao para a ação
         $this->temPermissao($nomeMetodo);
     } else {
         # Os parametros são inválidos
         # Mostra a classe default
         $classModulo = new Sistema_Index();
         $metodoModulo = "principal";
     }
     # Retorno em ajax
     $ajax = false;
     # Verifica se método ação existe para a classe
     if (!method_exists($classModulo, $metodoModulo)) {
         $metodoModulo = sprintf("ajax%s", $nomeMetodo);
         # Verifica se existe o método ajax
         if (!method_exists($classModulo, $metodoModulo)) {
             $this->_msg->setErro("Ação " . $nomeMetodo . " é inválida");
         } else {
             # Trata os textos
             $_POST = $this->trataUTF8($_POST);
             $ajax = true;
         }
     } else {
         # Carrega os modulos e acoes da ultima requiziçao
         # Utilizado para o histórico
         $_SESSION['MOD_ATUAL'] = strtolower($parametros[MODULO]);
         $_SESSION['ACT_ATUAL'] = strtolower($parametros[ACAO]);
     }
     # Verifica se teve erros
     if ($this->_msg->temErro()) {
         return;
     } else {
         # Executa o Método
         $classModulo->{$metodoModulo}();
         # Se for ajax termina a sessão
         if ($ajax) {
             die;
         }
         # Se for para mostrar somenta na janela
         # retorna o conteudo
         if ($tipoJanela == "true") {
             $l = Sistema_Layout::instanciar();
             $l->exibir("janela.tpl");
             die;
         }
     }
 }
Exemplo n.º 2
0
 /**
  * @abstract Metodo que fara a persistencia no banco
  */
 public function salvar($grava_historico = true)
 {
     # Verifica se tem acesso a salvar
     //if($this->_login->temPermissao($_GET[ACAO],Sistema_Login::SALVAR)){
     $temp = $this->_dados;
     # Verifica se utiliza chave
     # incremental pelo sistema
     if (isset($_POST['acaoform'])) {
         $alterar = $_POST['acaoform'] == "alterar" ? true : false;
     } else {
         $alterar = $this->_dados[$this->_chavepk] > 0 ? true : false;
         unset($temp[$this->_chavepk]);
     }
     if (!$this->_msg->temErro()) {
         # Verifica se tem valor para chave primaria
         # UPDATE
         if ($alterar) {
             unset($temp[$this->_chavepk]);
             foreach ($temp as $k => $v) {
                 $sets[] = sprintf(" %s = %s ", $k, $v);
             }
             $set = implode(",", $sets);
             $sql = sprintf("UPDATE %s SET %s WHERE %s=%d", $this->_tabela, $set, $this->_chavepk, $this->_dados[$this->_chavepk]);
             $id = Sistema_Conecta::Execute($sql);
             if ($id > 0) {
                 if ($grava_historico) {
                     # Grava no Histórico
                     $hist = new Sistema_Historico($_SESSION['ACT_ATUAL']);
                     $hist->setHistorico(Sistema_Historico::$OP_ALTERAR, $this->_dados[$this->_chavepk], $this->_tabela);
                 }
                 $this->_msg->setSucesso("Dados alterados com sucesso");
                 return array("id" => array("campoid" => $this->_chavepk, "valorid" => $this->_dados[$this->_chavepk]));
             } else {
                 $this->_msg->setErro("Não foi possível alterar os dados");
                 return null;
             }
         } else {
             # INSERT
             $temp1 = array_keys($temp);
             $campos = implode(",", $temp1);
             $valores = implode(",", $temp);
             $sql = sprintf("INSERT INTO %s (%s) VALUES (%s)", $this->_tabela, $campos, $valores);
             $id = Sistema_Conecta::Execute($sql);
             if ($id > 0) {
                 if ($grava_historico) {
                     # Grava no Histórico
                     $hist = new Sistema_Historico($_SESSION['ACT_ATUAL']);
                     $hist->setHistorico(Sistema_Historico::$OP_INSERIR, $id, $this->_tabela);
                 }
                 $this->_msg->setSucesso("Dados inseridos com sucesso");
                 return array("id" => array("campoid" => $this->_chavepk, "valorid" => $id));
             } else {
                 $this->_msg->setErro("Não foi possível inserir os dados");
                 return null;
             }
         }
     }
     //}else{
     //$this->_msg->setErro("Você não tem permissão para alterar ou inserir neste formulário");
     //}
 }