public function getForm($modulo, $acao) { $mp = $this->_class->getCampos(); $camposmostra = $this->_class->getFormulario($this->_form); # Verifica se foi passado um valor para o codiog if ($this->_class->getCodigo() > 0) { $this->_valores = $this->_class->getDados(); # Pega e mostra o histórico se tiver $hist = new Sistema_Historico($_SESSION['ACT_ATUAL']); $jan = new Componente_Janela(); $texto_hist = sprintf("<img src='%simagens/historico.png' align=absmiddle> Histórico", SISTEMA_URL); $act = $jan->getJanelaConteudo($hist->getHistórico($this->_valores[$this->_class->getChavePK()]), $texto_hist); $this->l->setBotoes("Histórico", "javascript:" . $act, "imagens/historico.png"); } if (is_array($mp)) { $i = 0; # Retorna os campos estrangeiros $estrangeiros = $this->_class->getEstrangeiros(); foreach ($mp as $campo => $dados) { # $dados[0]: label # $dados[1]: plugin # $dados[2]: tamanho # $dados[3]: requirido if (in_array($campo, $camposmostra)) { # Valida o plugin $plugin = sprintf("Plugin_" . ucwords(strtolower($dados[1]))); $p = new $plugin(); if (is_subclass_of($p, 'Sistema_Plugin')) { # Instacia a classe do campo $p->setClasse($this->_class->getClasse()); # Verifica se é um estrangeiros # Seta a classe para ele if (is_array($estrangeiros) && array_key_exists($campo, $estrangeiros)) { $p->setClasseEstrangeira($estrangeiros[$campo]); } # Verifica se é requerido $req = $dados[3] ? "<b style='color:red'>!</b>" : ""; # Verifica se é chave if (strtolower($dados[1]) == "chave") { if ($this->_valores[$campo] > 0) { $input[$i]['label'] = sprintf("%s<label>%s</label>", $req, $dados[0]); $input[$i]['input'] = $p->criaCampo($campo, $dados[2], $this->_valores[$campo]); } } else { $input[$i]['label'] = sprintf("%s<label>%s</label>", $req, $dados[0]); $input[$i]['input'] = $p->criaCampo($campo, $dados[2], $this->_valores[$campo]); } } $i++; } } # Verifica se ira montar um formulario do tipo Um-Para-Muitos # alexandre 01/04/2009 $dadosUPM = $this->_class->getUmParaMuitos(); if (is_array($dadosUPM)) { foreach ($dadosUPM as $classeUPM => $vt) { $_classe = new $classeUPM(); $plg_upm = new Plugin_UmParaMuitos(); $plg_upm->setUmParaMuitos($classeUPM, $vt[0], $vt[1]); $rttemp = $plg_upm->criaCampo(null, 0, $this->_valores[$vt[0]]); foreach ($rttemp as $k => $v) { $input[$i]['label'] = $v['label']; $input[$i]['input'] = $v['input']; $i++; } } } $tela = new Sistema_Layout_Tela("templates/formulario.tpl"); $tela->addVar("campos", $input); //$tela->addVar("dadoshidden",$this->_hidden); $modulo = MODULO . "=" . $modulo; $acao = ACAO . "=" . $acao; $form = sprintf('<form id="frmclss" onSubmit="formulario.enviaForm(\'frmclss\',\'%s\',\'%s\'); return false;"> %s </form> %s', $modulo, $acao, $tela->getTela(), $formUPM); return $form; } else { $this->_msg->setErro("Mapa para o Formulário não é valido"); } }
/** * @abstract Metodo que irá salvar as permissoes * @param $post * @return unknown_type */ public function salvar($post) { $arr_campos = array("prm_salvar" => 1, "prm_exibir" => 1, "prm_inativa" => 1); $dados = $this->trataDados($post); # Exclui todos os registros anteriores $del = sprintf("DELETE FROM permissoes WHERE grp_cod=%d", $dados['grp_cod']); if (Sistema_Conecta::Execute($del)) { if (is_array($dados['acoes'])) { # percorre cada acao foreach ($dados['acoes'] as $acao_cod => $vetor) { $temp_campos = $arr_campos; $obj = new Classe_Permissoes(); $ds['grp_cod'] = $dados['grp_cod']; $ds['acao_cod'] = $acao_cod; # percorre cada campo foreach ($vetor as $campo => $valor) { $ds[$campo] = $valor; unset($temp_campos[$campo]); } # cria os campos nao selecionados como false if (is_array($temp_campos)) { foreach ($temp_campos as $v => $vv) { $ds[$v] = 0; } } $obj->setDados($ds); $obj->salvar(false); unset($obj); } # Grava no Histórico $hist = new Sistema_Historico($_SESSION['ACT_ATUAL']); $hist->setHistorico(Sistema_Historico::$OP_ALTERAR, $dados['grp_cod'], 'permissoes'); } } }
/** * @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"); //} }
/** * @abstract Ação que monta o formulário com as * permissões para o grupo * @return String */ public function acaoformpermissoes() { $codigo = sprintf("%d", $_GET['grp_cod']); $per = new Modulo_Usuarios_Permissoes(); # Pega e mostra o histórico se tiver $hist = new Sistema_Historico($_SESSION['ACT_ATUAL']); $jan = new Componente_Janela(); $texto_hist = sprintf("<img src='%simagens/historico.png' align=absmiddle> Histórico", SISTEMA_URL); $act = $jan->getJanelaConteudo($hist->getHistórico($codigo), $texto_hist); $this->_layout->setBotoes("Histórico", "javascript:" . $act, "imagens/historico.png"); $this->_layout->setNomePagina("Gerênciar Permissões"); $this->_layout->setCorpo($per->getFormulario($codigo)); }