/** * Método inicial do controle */ public function inicial() { try { $this->passarProximoControle(definicaoEntidade::controle($this, 'verSelecionarAcessos')); $negocio = definicaoEntidade::negocio($this); $conexao = conexao::criar(); $conexao->iniciarTransacao(); $negocio = new $negocio($conexao); $negocio->passarIdUsuario($_POST['idUsuario']); $negocio->carregarAcessos(); $negocio->coAcessos->excluir(); $negocio = new $negocio($conexao); foreach ($_POST['controle'] as $index => $controle) { $nAcesso = new NAcesso($conexao); $nAcesso->passarIdUsuario($_POST['idUsuario']); $nAcesso->passarNmAcesso($controle); $negocio->coAcessos->{$index} = $nAcesso; } $negocio->coAcessos->gravar(); $this->sessao->registrar('negocio', $negocio); $this->registrarComunicacao($this->inter->pegarMensagem('gravarSucesso')); $conexao->validarTransacao(); $this->passarProximoControle(definicaoEntidade::controle($this, 'verPesquisa')); } catch (erro $e) { $conexao->desfazerTransacao(); throw $e; } }
/** * Método inicial do controle */ function inicial() { $this->passarProximoControle(definicaoEntidade::controle('CControleAcesso', 'verPrincipal')); $imprimir = false; $c = conexao::criar(); $persistentes = $this->classes(); if ($imprimir) { echo '<pre>'; foreach ($persistentes as $nomePersistente) { $persistente = new $nomePersistente($c); $nome = str_pad($nomePersistente, 40, "--", STR_PAD_LEFT); echo "\n\n" . str_pad($nome, 80, "--", STR_PAD_RIGHT) . "\n"; echo $persistente->comandoDestruicaoCompleto(); echo $persistente->comandoCriacaoCompleto(); } if ($persistente instanceof persistentePadraoPG) { echo persistentePadraoPG::gerarComandoAccentRemove(); } } else { foreach ($persistentes as $nomePersistente) { $persistente = new $nomePersistente($c); $persistente->recriar(); } if ($persistente instanceof persistentePadraoPG) { $persistente->plAccentRemove(); } CUtilitario_importadorXML::importarXml(file_get_contents('dados.xml')); } if ($imprimir) { die; } $this->registrarComunicacao("Base de dados recriada."); }
/** * Método que monta o array de mapeamento do sistema * @return array */ public static function mapear() { $d = dir("."); $res = array(); while (false !== ($arquivo = $d->read())) { if (is_dir($diretorio = "./{$arquivo}/classes/") && $arquivo[0] !== '.') { $entidade = ucfirst($arquivo); $diretorio = dir($diretorio); $entidadeInternacionalizacao = definicaoEntidade::internacionalizacao("C{$entidade}"); if (!is_file($diretorio->path . $entidadeInternacionalizacao . '.php')) { continue; } $inter = new $entidadeInternacionalizacao(); while (false !== ($classe = $diretorio->read())) { if ($classe[0] == 'C') { $classe = str_replace('.php', '', $classe); $arAcao = explode('_', $classe); if (isset($arAcao[1])) { $nomeAcao = $inter->pegarTexto($arAcao[1]); if ($nomeAcao) { $res[$classe] = "{$inter->pegarNome()},{$nomeAcao}"; } else { $res[$classe] = "{$inter->pegarNome()},{$arAcao[1]}"; } } else { $res[$classe] = "{$inter->pegarNome()},???????????????"; } } } $diretorio->close(); } } $d->close(); return $res; }
/** * Função que define qual diretório se encontra a classe não definida * @param string Nome da classe */ function definirDiretorio($stClasse) { $definicoes = definicao::pegarDefinicao(); $stEntidade = definicaoEntidade::entidade($stClasse); foreach ($definicoes->xpath('//classes/classe') as $index => $classe) { if (isset($classe['id'])) { $id = strval($classe['id']); $slice = substr($stClasse, 0, strlen($id)); if ($id == $slice) { if (strval($classe['entidade']) == 'sim') { $dir = "{$stEntidade}/" . strval($classe['dir']) . '/'; $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null; } else { $dir = strval($classe['dir']) . '/'; $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null; } } } else { $dirPadrao = $classe['dir']; $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null; } } $stDiretorio = isset($dir) ? $dir : $dirPadrao; if ($tipoBanco) { $stArquivo = "{$stDiretorio}{$stClasse}.{$tipoBanco}.php"; } else { $stArquivo = "{$stDiretorio}{$stClasse}.php"; } return array('stDiretorio' => $stDiretorio, 'stArquivo' => $stArquivo); }
/** * Método inicial do controle */ function inicial() { $this->passarProximoControle(definicaoEntidade::controle($this, 'verImportador')); if (isset($_POST['xml'])) { self::importarXml($_POST['xml']); } $this->registrarComunicacao($this->inter->pegarMensagem('importarSucesso')); }
/** * Metodo especialista */ public static function apresentarAcesso(NUsuario $negocio) { $negocio->carregarAcessos(); $numeroAcessos = $negocio->coAcessos->contarItens(); $controle = definicaoEntidade::controle($negocio, 'verSelecionarAcessos'); $link = sprintf("?c=%s&chave=%s", $controle, $negocio->valorChave()); return "\t\t<a href='{$link}' >" . $numeroAcessos . "</a>\n"; }
/** * Método inicial do controle */ public function inicial() { $this->passarProximoControle(definicaoEntidade::controle($this, 'listarEntidade')); $conexao = conexao::criar(); $persistente = new PUtilitario($conexao); $this->tabelas = $persistente->lerTabelas(); foreach ($this->tabelas as $tabela) { $arTabela = $persistente->lerTabela($tabela); $arDadosGerador = $this->prepararDados($tabela, $arTabela); CUtilitario_geradorGerarFonte::gerarFonte($this->visualizacao, $arDadosGerador); } }
/** * Método inicial do controle */ public function inicial() { $this->registrarInternacionalizacao($this, $this->visualizacao); $this->gerarMenus(); $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'importadorXML')); $this->visualizacao->xml = VComponente::montar('textArea', 'xml', null); $this->visualizacao->xml->passarRows(20); $this->visualizacao->xml->passarCols(70); $this->visualizacao->xml->passarTitle('Preencher o campo de texto com xml para a importação'); $this->visualizacao->xml->passarLimite(1000000); $this->visualizacao->xml->obrigatorio(true); parent::inicial(); }
/** * Método inicial do controle */ function inicial() { try { $this->passarProximoControle(definicaoEntidade::controle($this, 'verLogin')); $controleAcesso = new NControleAcesso(); $controleAcesso->passarNmLogin($_POST['nmLogin']); $controleAcesso->passarNmSenha(md5($_POST['nmSenha'])); $controleAcesso->validarLogin(); $this->registrarComunicacao($this->inter->pegarMensagem('usuarioLogado')); $this->passarProximoControle(definicaoEntidade::controle($this, 'verPrincipal')); } catch (erro $e) { throw $e; } }
/** * metodo de apresentação do negocio * @param negocio objeto para a apresentação * @param string tipo de visualização a ser utilizada 'edicao' ou 'visual' */ public function montarApresentacao(negocio $negocio, $tipo = 'edicao') { if ($negocio->valorChave()) { $negocio->carregarAcessos(); } $controlesUsuario = array_flip($negocio->coAcessos->gerarVetorDeAtributo('nmAcesso')); $sistema = dir("."); while (false !== ($diretorio = $sistema->read())) { if (preg_match('/^[^\\.].*/', $diretorio, $res) && is_dir($diretorio = "{$diretorio}/classes")) { $classes = dir($diretorio); while (false !== ($classe = $classes->read())) { if (preg_match('/^[C].*/', $classe, $res) && is_file($classe = "{$diretorio}/{$classe}")) { $controlesSistema[] = $classe; } } } } $sistema->close(); $entidadeControle = ''; $listagem = ''; foreach ($controlesSistema as $controle) { if ($controle) { $controle = substr(basename($controle), 0, -4); $arControle = explode('_', $controle); if ($arControle[0] != $entidadeControle) { $entidadeControle = $arControle[0]; $entidade = definicaoEntidade::entidade($controle) . '<br/>'; $listagem .= "\t\t\t<tr><td colspan='3' >\n\t\t\t\t\t<img alt='marcar' src='usuario/imagens/marcar.png' onclick='javascript:marcar(true,\"{$arControle[0]}\");' />\n\t\t\t\t\t<img alt='desmarcar' src='usuario/imagens/desmarcar.png' onclick='javascript:marcar(false,\"{$arControle[0]}\");' />\n\t\t\t\t\t <b>{$entidade}</b></td></tr>\n"; } $vCheckBox = VComponente::montar('checkbox', 'controle[]', $controle); $vCheckBox->passarChecked(isset($controlesUsuario[$controle])); $vCheckBox = $vCheckBox->__toString(); $vDtInicio = null; #VComponente::montar('data e hora','dtInicio[]',null); $vDtFim = null; VComponente::montar('data e hora', 'dtFim[]', null); $listagem .= "\t\t\t<tr><td></td><td>{$vCheckBox}</td><td>{$arControle[1]}</td><!--<td>{$vDtInicio}</td><td> </td><td>{$vDtFim}</td>--></tr>\n"; } } if ($negocio->pegarIdUsuario()) { $nUsuario = new NUsuario(); $nUsuario->ler($negocio->pegarIdUsuario()); $this->visualizacao->usuario = $nUsuario->pegarNmLogin(); } $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'selecionarAcessos')); $this->visualizacao->idUsuario = VComponente::montar('oculto', 'idUsuario', $negocio->pegarIdUsuario()); $this->visualizacao->login = $negocio->pegarNmLogin(); $this->visualizacao->listagem = $listagem; }
/** * Método inicial do controle */ public function inicial() { sessaoSistema::encerrar(); $this->gerarMenuPrincipal(); $this->registrarInternacionalizacao($this, $this->visualizacao); $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'validar')); $this->visualizacao->nmLogin = VComponente::montar('caixa de entrada', 'nmLogin', null); $this->visualizacao->nmLogin->passarSize(15); $this->visualizacao->nmLogin->obrigatorio(true); $this->visualizacao->nmLogin->passarTitle('Digite o login do usuário'); $this->visualizacao->nmSenha = VComponente::montar('senha', 'nmSenha', null); $this->visualizacao->nmSenha->passarSize(15); $this->visualizacao->nmSenha->obrigatorio(true); $this->visualizacao->nmSenha->passarTitle('Digite a senha de acesso'); $this->visualizacao->btEnviar = VComponente::montar('confirmar', 'btEnviar', $this->inter->pegarTexto('enviar')); $this->visualizacao->mostrar(); }
/** * Varre o sistema e registra as listagens de respostas no template * @return array */ protected function entidades() { for ($i = 1; $i < 6; $i++) { $niveis[$i] = "nivel de busca {$i}"; } $this->visualizacao->nivel = VComponente::montar(VComponente::caixaCombinacao, 'nivel', isset($_POST['nivel']) ? $_POST['nivel'] : 1, null, $niveis); $this->visualizacao->filtro = VComponente::montar(VComponente::caixaEntrada, 'filtro', isset($_POST['filtro']) ? $_POST['filtro'] : null); $this->visualizacao->pesquisar = VComponente::montar(VComponente::confirmar, 'Pesquisar', 'Pesquisar'); if (!$this->pegarFiltro()) { return $this->visualizacao->listagens = array(); } $d = dir("."); $negocios = new colecao(); $controles = new colecao(); while (false !== ($arquivo = $d->read())) { if (is_dir($arquivo) && $arquivo[0] !== '.') { if (is_file($arquivo . '/classes/N' . ucfirst($arquivo) . '.php')) { $negocio = 'N' . ucfirst($arquivo); $obNegocio = new $negocio(); if ($obNegocio instanceof negocioPadrao) { $ordem[$arquivo] = array('nome' => $obNegocio->pegarInter()->pegarNome(), 'caminho' => $arquivo . '/classes/N' . ucfirst($arquivo) . '.php'); $negocios->{$arquivo} = $obNegocio; } } } } $d->close(); asort($ordem); $this->visualizacao->ordem = $ordem; $listagens = array(); foreach ($ordem as $idx => $arquivo) { $obNegocio = $negocios->pegar($idx); $nome['controle'] = definicaoEntidade::controle($obNegocio, 'verPesquisa'); if ($this->exibirListagem($arquivo)) { $colecao = $obNegocio->pesquisaGeral($this->pegarFiltro(), $this->pegarPagina(), isset($_POST['nivel']) ? $_POST['nivel'] : 1); call_user_func_array("{$nome['controle']}::montarListagem", array($this->visualizacao, $colecao, $this->pegarPagina(), $nome['controle'])); $this->visualizacao->listagem->passarControle($nome['controle']); if ($colecao->contarItens()) { $listagens[$idx]['listagem'] = $this->visualizacao->listagem; $listagens[$idx]['ocorrencias'] = $colecao->contarItens(); $listagens[$idx]['nome'] = $arquivo['nome']; $listagens[$idx]['controlePesquisa'] = $nome['controle']; } } } unset($this->visualizacao->listagem); $this->visualizacao->listagens = $listagens; }
/** * Montar listagem * @return string retorno da listagem */ function montarListagem(controlePadraoPDF $controlePDF) { if ($this->colecao->possuiItens() && is_array($this->campos)) { $conexao = conexao::criar(); $chaves = array_keys($this->campos); sort($chaves); foreach ($chaves as $chave) { $campo = $this->campos[$chave]; $tamanho = $campo['tamanho'] ? self::calcularLargura($campo['tamanho']) : '30'; $controlePDF->celula($tamanho, 4, $campo['titulo'], 1, 0, $campo['alinhamento']); } $controlePDF->ln(4); $x = 0; if ($this->colecao->possuiItens()) { $item = $this->colecao->retornarItem(); $mapeador = controlePadrao::pegarEstrutura($item); while ($item = $this->colecao->avancar()) { $corFundo = $this->definirCorFundo($controlePDF, ++$x); foreach ($chaves as $chave) { $campo = $this->campos[$chave]; $tamanho = $campo['tamanho'] ? self::calcularLargura($campo['tamanho']) : '30'; switch (true) { case isset($campo['campoPersonalizado']): $controlePDF->celula($tamanho, 4, call_user_func($campo['campoPersonalizado'], $item), 1, 0, $campo['alinhamento'], 1); break; case isset($campo['campoLink']): $controle = definicaoEntidade::controle($item, 'verEdicao'); $pegar = 'pegar' . ucfirst($campo['campoLink']); $link = sprintf("?c=%s&chave=%s", $controle, $item->valorChave()); switch (true) { case $mapeador['campos'][$campo['campoLink']]['classeAssociativa']: $classeAssociativa = new $mapeador['campos'][$campo['campoLink']]['classeAssociativa']($conexao); $classeAssociativa->ler($item->{$pegar}()); $valorDoCampo = $classeAssociativa->valorDescricao(); break; case $mapeador['campos'][$campo['campoLink']]['valores']: $valorDoCampo = $mapeador['campos'][$campo['campoLink']]['valores'][$item->{$pegar}()]; break; default: $valorDoCampo = $item->{$pegar}(); if (is_object($valorDoCampo)) { $valorDoCampo = $valorDoCampo->__toString(); } } $controlePDF->celula($tamanho, 4, $valorDoCampo, 1, 0, $campo['alinhamento'], 1, $link); break; default: $pegar = 'pegar' . ucfirst($campo['campo']); switch (true) { case $mapeador['campos'][$campo['campo']]['classeAssociativa']: $classeAssociativa = new $mapeador['campos'][$campo['campo']]['classeAssociativa']($conexao); $classeAssociativa->ler($item->{$pegar}()); $valorDoCampo = $classeAssociativa->valorDescricao(); break; case $mapeador['campos'][$campo['campo']]['valores']: $valorDoCampo = $mapeador['campos'][$campo['campo']]['valores'][$item->{$pegar}()]; break; default: $valorDoCampo = $item->{$pegar}(); if (is_object($valorDoCampo)) { $valorDoCampo = $valorDoCampo->__toString(); } } $controlePDF->celula($tamanho, 4, $valorDoCampo, 1, 0, $campo['alinhamento'], 1); break; } } $controlePDF->ln(4); } } else { $mensagem = $this->inter->pegarMensagem('registrosNaoEncontrados'); $controlePDF->celula(190, 4, $mensagem, 1, 0, 'C'); } } }
/** * Monta o template de verPesquisa */ public static function montarTemplateVerPesquisa(visualizacao $visualizacao) { $camposControle = array(); foreach (CUtilitario_geradorGerarFonte::$entidade['ng_nome'] as $chave => $valor) { if (CUtilitario_geradorGerarFonte::$entidade['ng_chave_pk'] != $chave) { $camposControle['nome' . ucFirst($valor)] = $valor; } } $visualizacao->nomes = $camposControle; $controle = definicaoEntidade::controle(CUtilitario_geradorGerarFonte::$nomeNegocio); $arNomeTema = explode('/', definicaoPasta::tema()); if (!($nomeTema = array_pop($arNomeTema))) { $nomeTema = array_pop($arNomeTema); } $nomeTema = $nomeTema ? $nomeTema . '_' : null; if (!is_file($visualizacao->template_dir . "{$nomeTema}templateVerPesquisa.html")) { $nomeTema = null; } CUtilitario_geradorGerarFonte::escreverArquivo(CUtilitario_geradorGerarFonte::$nomeEntidade . "/html/{$nomeTema}{$controle}_verPesquisa.html", $visualizacao->pegar("{$nomeTema}templateVerPesquisa.html")); }