Пример #1
0
    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");
        }
    }
Пример #2
0
 /**
  * @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');
         }
     }
 }
Пример #3
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");
     //}
 }
Пример #4
0
 /**
  * @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));
 }