/** * @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; } } }
/** * @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"); //} }