/**
  * 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 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;
     }
 }
 public function inicial()
 {
     try {
         $_GET['ajax'] = 1;
         if (!isset($_GET['negocio'])) {
             throw new erroNegocio('Não foi definido a entidade de negócio a ser validada!');
         }
         $conexao = conexao::criar();
         $conexao->iniciarTransacao();
         $negocio = new $_GET['negocio']($conexao);
         if (isset($_GET['controle'])) {
             eval("{$_GET['controle']}::montarNegocio(\$negocio);");
         } else {
             parent::montarNegocio($negocio);
         }
         $negocio = new NPessoa();
         if ($negocio->valorChave()) {
             $negocioAnterior = new $_GET['negocio']($conexao);
             $negocioAnterior->ler($negocio->valorChave());
             $negocio->verificarAntesAlterar($negocioAnterior);
         } else {
             $negocio->verificarAntesInserir();
         }
         $conexao->desfazerTransacao();
     } catch (Exception $e) {
         $conexao->desfazerTransacao();
         throw $e;
     }
 }
 public static function gerarFonte(visualizacao $visualizacao, $dadosGerador)
 {
     CUtilitario_geradorGerarFonte::$entidade = $dadosGerador;
     CUtilitario_geradorGerarFonte::$entidade['ng_nome'] = array_map('caracteres::RetiraAcentos', CUtilitario_geradorGerarFonte::$entidade['ng_nome']);
     CUtilitario_geradorGerarFonte::$entidade['bd_campo'] = array_map('caracteres::RetiraAcentos', CUtilitario_geradorGerarFonte::$entidade['bd_campo']);
     $arNome = explode(' ', strtolower(caracteres::RetiraAcentos(CUtilitario_geradorGerarFonte::$entidade['entidade'])));
     $nome = array_shift($arNome);
     $arNome = array_map("ucFirst", $arNome);
     array_unshift($arNome, $nome);
     CUtilitario_geradorGerarFonte::$nomeEntidade = implode('', $arNome);
     CUtilitario_geradorGerarFonte::$nomeNegocio = 'N' . ucFirst(CUtilitario_geradorGerarFonte::$nomeEntidade);
     CUtilitario_geradorGerarFonte::$nomeTabela = caracteres::RetiraAcentos(CUtilitario_geradorGerarFonte::$entidade['nomeTabela']);
     CUtilitario_geradorGerarFonte::$nomeSequence = caracteres::RetiraAcentos(CUtilitario_geradorGerarFonte::$entidade['nomeSequence'] ? CUtilitario_geradorGerarFonte::$entidade['nomeSequence'] : "sq_{CUtilitario_geradorGerarFonte::{$nomeTabela}}");
     if (!is_dir(CUtilitario_geradorGerarFonte::$nomeEntidade)) {
         mkdir(CUtilitario_geradorGerarFonte::$nomeEntidade, 0777);
     }
     chmod(CUtilitario_geradorGerarFonte::$nomeEntidade, 2777);
     if (!is_dir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/classes")) {
         mkdir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/classes", 0777);
     }
     chmod(CUtilitario_geradorGerarFonte::$nomeEntidade . "/classes", 2777);
     if (!is_dir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/xml")) {
         mkdir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/xml", 0777);
     }
     chmod(CUtilitario_geradorGerarFonte::$nomeEntidade . "/xml", 2777);
     if (!is_dir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/html")) {
         mkdir(CUtilitario_geradorGerarFonte::$nomeEntidade . "/html", 0777);
     }
     chmod(CUtilitario_geradorGerarFonte::$nomeEntidade . "/html", 2777);
     umask(0111);
     $visualizacao->entidade = CUtilitario_geradorGerarFonte::$entidade['entidade'];
     $visualizacao->pacote = CUtilitario_geradorGerarFonte::$entidade['entidade'];
     $visualizacao->classe = 'class';
     CUtilitario_geradorGerarFonte::montarArquivoDefinicaoXML($visualizacao);
     CUtilitario_geradorGerarFonte::montarArquivoInternacionalizacaoXML($visualizacao);
     CUtilitario_geradorGerarFonte::montarPersistente($visualizacao);
     CUtilitario_geradorGerarFonte::montarNegocio($visualizacao);
     CUtilitario_geradorGerarFonte::montarInternacionalizacao($visualizacao);
     CUtilitario_geradorGerarFonte::montarControleExcluir($visualizacao);
     CUtilitario_geradorGerarFonte::montarControleGravar($visualizacao);
     //CUtilitario_geradorGerarFonte::montarControleMudarPagina($visualizacao);
     //CUtilitario_geradorGerarFonte::montarControlePesquisar($visualizacao);
     CUtilitario_geradorGerarFonte::montarControleVerEdicao($visualizacao);
     CUtilitario_geradorGerarFonte::montarControleVerPesquisa($visualizacao);
     CUtilitario_geradorGerarFonte::montarTemplateVerEdicao($visualizacao);
     CUtilitario_geradorGerarFonte::montarTemplateVerPesquisa($visualizacao);
     exec("chmod -R 777 " . CUtilitario_geradorGerarFonte::$nomeEntidade);
     if (CUtilitario_geradorGerarFonte::$debug) {
         die;
     }
     if (isset(CUtilitario_geradorGerarFonte::$entidade['recriarBase'])) {
         $persistente = definicaoEntidade::persistente(CUtilitario_geradorGerarFonte::$nomeNegocio);
         $conexao = conexao::criar();
         $obPersistente = new $persistente($conexao);
         $obPersistente->recriar();
     }
 }
 /**
  * Método inicial do controle
  */
 function inicial()
 {
     $this->criarVisualizacaoPadrao();
     $this->registrarInternacionalizacao($this, $this->visualizacao);
     $this->gerarMenus();
     $conexao = conexao::criar();
     $persistente = new PUtilitario($conexao);
     $this->visualizacao->listagem = $persistente->lerTabelas();
     $this->visualizacao->action = '';
     parent::inicial();
 }
 /**
  * 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
  */
 function inicial()
 {
     $this->visualizacao = new visualizacaoPadrao($this);
     $this->inter = new IUtilitario();
     $this->criarVisualizacaoPadrao();
     $d = dir(".");
     $pUtilitario = new PUtilitario(conexao::criar());
     $negocios = new colecao();
     $controles = new colecao();
     $tabelas = new colecao();
     $sequencias = new colecao();
     $classesNegocio = new colecao();
     $camposDefinidos = new colecao();
     $camposExistentes = new colecao();
     $diferencas = 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) {
                     $negocios->{$arquivo} = $obNegocio->pegarInter()->pegarNome();
                     $tabelas->{$arquivo} = $obNegocio->pegarPersistente()->pegarNomeTabela();
                     $sequencias->{$arquivo} = $obNegocio->pegarPersistente()->pegarNomeSequencia();
                     $classesNegocio->{$arquivo} = 'N' . ucfirst($arquivo);
                     $camposDefinidos->{$arquivo} = count($obNegocio->pegarMapeamento());
                     $camposExistentes->{$arquivo} = count($pUtilitario->lerCampos($obNegocio->pegarPersistente()->pegarNomeTabela()));
                     $diferencas->{$arquivo} = $camposDefinidos->{$arquivo} - $camposExistentes->{$arquivo} ? 'difereça' : '';
                     $controles->{$arquivo} = 'C' . ucfirst($arquivo) . '_verPesquisa';
                 }
             }
         }
     }
     $d->close();
     asort($negocios->itens);
     $this->gerarMenus();
     $this->registrarInternacionalizacao($this, $this->visualizacao);
     $this->visualizacao->listagem = $negocios->itens;
     $this->visualizacao->controles = $controles->itens;
     $this->visualizacao->tabelas = $tabelas->itens;
     $this->visualizacao->sequencias = $sequencias->itens;
     $this->visualizacao->negocios = $classesNegocio->itens;
     $this->visualizacao->camposDefinidos = $camposDefinidos->itens;
     $this->visualizacao->camposExistentes = $camposExistentes->itens;
     $this->visualizacao->diferencas = $diferencas->itens;
     $this->visualizacao->action = '';
     parent::inicial();
 }
 /**
  * Método de montagem da tabela
  */
 function montarTabela()
 {
     $json = new json();
     $conexao = conexao::criar();
     $persistente = new PUtilitario($conexao);
     $desc = $persistente->lerTabela($_GET['tabela']);
     $sequences = $persistente->lerSequenciasDoBanco($_GET['tabela']);
     $sequences = array_merge(array('' => '&nbsp;'), $sequences);
     if ($sequences) {
         $this->visualizacao->nomeSequence = VComponente::montar('select', 'nomeSequence', null, null, $sequences);
     }
     $mapNegocio['bd']['nomeTabela'] = $_GET['tabela'];
     $mapNegocio['bd']['nomeSequencia'] = '«Nome da sequência???»';
     $mapNegocio['bd']['chavePrimaria'] = '';
     $mapNegocio['bd']['ordem'] = array('1' => '');
     $mapNegocio['inter']['nome'] = '«Nome da entidade??»';
     $mapNegocio['inter']['titulo'] = '';
     $mapNegocio['inter']['tituloSistema'] = '';
     $mapNegocio['inter']['subtituloSistema'] = '';
     foreach ($desc as $indice => $campo) {
         $tipoDeDado = $campo['tipo_de_dado'];
         switch ($campo['tipo_de_dado']) {
             case 'numerico':
                 $campo['tamanho'] = $campo['tamanho'] > 30 ? 20 : $campo['tamanho'];
                 $componente = 'numerico';
                 break;
             case 'data':
                 $campo['tamanho'] = '';
                 $componente = 'data';
                 break;
             default:
                 $componente = 'caixa de entrada';
         }
         switch (true) {
             case $campo['campo_pk']:
                 $mapNegocio['bd']['chavePrimaria'] = $campo['campo_pk'];
                 $componente = 'oculto';
                 $chaveEstrangeira = false;
                 break;
             case $campo['campo_fk']:
                 $componente = 'caixa de combinacao';
                 $chaveEstrangeira = array('tabela' => $campo['esquema_fk'] . '.' . $campo['tabela_fk'], 'campo' => $campo['campo_fk']);
                 break;
             default:
                 $tipoDeDado = $campo['tipo_de_dado'] == 'numerico' ? 'tnumerico' : $campo['tipo_de_dado'];
                 $chaveEstrangeira = false;
         }
         $mapNegocio['entidade'][$indice]['negocio']['propriedade'] = str_replace(' ', '', ucwords(str_replace('_', ' ', $campo['campo'])));
         $mapNegocio['entidade'][$indice]['negocio']['propriedade'][0] = strtolower($mapNegocio['entidade'][$indice]['negocio']['propriedade'][0]);
         $mapNegocio['entidade'][$indice]['negocio']['tipo'] = $tipoDeDado;
         $mapNegocio['entidade'][$indice]['negocio']['campo'] = $campo['campo'];
         $mapNegocio['entidade'][$indice]['negocio']['obrigatorio'] = $campo['obrigatorio'] ? 'sim' : '';
         $mapNegocio['entidade'][$indice]['negocio']['indiceUnico'] = '';
         $mapNegocio['entidade'][$indice]['negocio']['dominio'] = '';
         $mapNegocio['entidade'][$indice]['negocio']['descritivo'] = '';
         $mapNegocio['entidade'][$indice]['negocio']['classeAssociativa'] = $chaveEstrangeira ? '«Classe de Negocio ???»' : '';
         $mapNegocio['entidade'][$indice]['negocio']['metodoLeitura'] = $chaveEstrangeira ? 'lerTodos' : '';
         $mapNegocio['entidade'][$indice]['controle']['componente'] = $componente;
         $mapNegocio['entidade'][$indice]['controle']['tamanho'] = '';
         $mapNegocio['entidade'][$indice]['controle']['tipo'] = $campo['tipo_de_dado'];
         $mapNegocio['entidade'][$indice]['controle']['obrigatorio'] = $campo['obrigatorio'] ? 'sim' : '';
         $mapNegocio['entidade'][$indice]['controle']['pesquisa'] = '';
         $mapNegocio['entidade'][$indice]['controle']['valores'] = array();
         $mapNegocio['entidade'][$indice]['controle']['classeAssociativa'] = $chaveEstrangeira ? 'Classe de Negocio ???' : '';
         $mapNegocio['entidade'][$indice]['controle']['metodoLeitura'] = $chaveEstrangeira ? 'lerTodos' : '';
         $mapNegocio['entidade'][$indice]['controle']['listagem'] = $campo['campo_pk'] ? '1' : '';
         $mapNegocio['entidade'][$indice]['controle']['hyperlink'] = $campo['campo_pk'] ? 'sim' : '';
         $mapNegocio['entidade'][$indice]['controle']['largura'] = $campo['campo_pk'] ? '10%' : '';
         $mapNegocio['entidade'][$indice]['controle']['ordem'] = $campo['campo_pk'] ? 1 : '';
         $mapNegocio['entidade'][$indice]['controle']['campoPersonalizado'] = '';
         $mapNegocio['entidade'][$indice]['persistente']['nome'] = $campo['campo'];
         $mapNegocio['entidade'][$indice]['persistente']['tipo'] = $tipoDeDado;
         $mapNegocio['entidade'][$indice]['persistente']['tamanho'] = $campo['tamanho'];
         $mapNegocio['entidade'][$indice]['persistente']['obrigatorio'] = '';
         $mapNegocio['entidade'][$indice]['persistente']['operadorDeBusca'] = 'igual';
         $mapNegocio['entidade'][$indice]['persistente']['chaveEstrangeira'] = $chaveEstrangeira;
         $mapNegocio['entidade'][$indice]['persistente']['ordem'] = $campo['campo_pk'] ? '1' : '';
         $mapNegocio['entidade'][$indice]['inter']['nome'] = ucfirst(str_replace('_', ' ', $campo['campo']));
         $mapNegocio['entidade'][$indice]['inter']['abreviacao'] = ucwords(str_replace('_', ' ', $campo['campo']));
         $mapNegocio['entidade'][$indice]['inter']['descricao'] = $campo['descricao'];
         $mapNegocio['entidade'][$indice]['inter']['dominio'] = '';
     }
     $this->visualizacao->dados = $json->pegarJson(array($mapNegocio));
     $this->visualizacao->campos = $mapNegocio;
     $this->visualizacao->acesso = 'Carga de tabela do banco';
     $this->visualizacao->travarSugestaoDeNomesPersistente = 'true';
 }
 /**
  * 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');
         }
     }
 }