/**
  * 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();
 }
 /**
  * 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&nbsp;<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>&nbsp;</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();
 }
 /**
  * Método inicial do controle
  */
 public function inicial()
 {
     $this->gerarMenuprincipal();
     $this->gerarMenuPrograma();
     global $definicoes;
     $arAmbiente = array('3' => $this->inter->pegarTexto('ambiente3'), '2' => $this->inter->pegarTexto('ambiente2'), '1' => $this->inter->pegarTexto('ambiente1'));
     $arTiposBancosDisponiveis = array('sqlite' => 'Sqlite', 'postgres' => 'PostgreSQL', 'mysql' => 'MySql', 'oracle' => 'Oracle');
     $arBooleano = array('sim' => $this->inter->pegarTexto('sim'), 'nao' => $this->inter->pegarTexto('nao'));
     $paginaInicial = ($paginaInicial = strval($definicoes->sistema['paginaInicial'])) ? $paginaInicial : 'CControleAcesso_verPrincipal';
     $paginaErro = ($paginaErro = strval($definicoes->sistema['paginaErro'])) ? $paginaErro : 'CControleAcesso_erroAcesso';
     $liberadoCA = ($liberadoCA = strval($definicoes->controleDeAcesso['liberado'])) ? $liberadoCA : 'sim';
     $classeCA = ($classeCA = strval($definicoes->controleDeAcesso['classe'])) ? $classeCA : 'NControleAcesso';
     $metodoCA = ($metodoCA = strval($definicoes->controleDeAcesso['metodoLiberacao'])) ? $metodoCA : 'validarAcesso';
     $classeMenu = ($classeMenu = strval($definicoes->controleDeMenu['classe'])) ? $classeMenu : 'NControleMenu';
     $metodoMenu1 = ($metodoMenu1 = strval($definicoes->controleDeMenu['metodoMenuSite'])) ? $metodoMenu1 : 'menuPrincipal';
     $metodoMenu2 = ($metodoMenu2 = strval($definicoes->controleDeMenu['metodoMenuSistema'])) ? $metodoMenu2 : 'menuMenuSistema';
     $this->sessao->limpar();
     $this->registrarInternacionalizacao($this, $this->visualizacao);
     //Páginas do sistema
     $this->visualizacao->paginaInicial = VComponente::montar('input', 'sistema[paginaInicial]', $paginaInicial);
     $this->visualizacao->paginaErro = VComponente::montar('input', 'sistema[paginaErro]', $paginaErro);
     $this->visualizacao->ambiente = VComponente::montar('select', 'sistema[ambiente]', $paginaErro, null, $arAmbiente);
     //Controle de acesso do sistema
     $this->visualizacao->liberadoCA = VComponente::montar('combobox', 'controleDeAcesso[liberado]', $liberadoCA, null, $arBooleano);
     $this->visualizacao->classeCA = VComponente::montar('input', 'controleDeAcesso[classe]', $classeCA);
     $this->visualizacao->metodoCA = VComponente::montar('input', 'controleDeAcesso[metodoLiberacao]', $metodoCA);
     //Controle de menu do sistema
     $this->visualizacao->classeMenu = VComponente::montar('input', 'controleDeMenu[classe]', $classeMenu);
     $this->visualizacao->metodoMenuPrincipal = VComponente::montar('input', 'controleDeMenu[metodoMenuSite]', $metodoMenu1);
     $this->visualizacao->metodoMenuSistema = VComponente::montar('input', 'controleDeMenu[metodoMenuSistema]', $metodoMenu2);
     //Bancos
     $conexao = $tipo = $porta = $nome = $usuario = $senha = array();
     $arInputConfig = array('size' => '10', 'style' => 'margin-right: 2px;');
     $arSelectConfig = array('style' => 'margin-right: 2px;');
     foreach ($definicoes->xpath('/definicoes/bancos/banco') as $banco) {
         $conexao[] = VComponente::montar('input', 'banco[id][]', $banco['id'], $arInputConfig);
         $tipo[] = VComponente::montar('select', 'banco[tipo][]', $banco['tipo'], $arSelectConfig, $arTiposBancosDisponiveis);
         $servidor[] = VComponente::montar('input', 'banco[servidor][]', $banco['servidor'], $arInputConfig);
         $porta[] = VComponente::montar('input', 'banco[porta][]', $banco['porta'], array('size' => '2'));
         $nome[] = VComponente::montar('input', 'banco[nome][]', $banco['nome'], $arInputConfig);
         $usuario[] = VComponente::montar('input', 'banco[usuario][]', $banco['usuario'], $arInputConfig);
         $senha[] = VComponente::montar('palavra chave', 'banco[senha][]', $banco['senha'], $arInputConfig);
         $multipla[] = VComponente::montar('combobox', 'banco[conexaoMultipla][]', $banco['conexaoMultipla'] == 'sim' ? 'sim' : 'nao', null, $arBooleano);
     }
     $this->visualizacao->conexao = $conexao;
     $this->visualizacao->tipo = $tipo;
     $this->visualizacao->servidor = $servidor;
     $this->visualizacao->porta = $porta;
     $this->visualizacao->nome = $nome;
     $this->visualizacao->usuario = $usuario;
     $this->visualizacao->senha = $senha;
     $this->visualizacao->multipla = $multipla;
     //Diretorios
     foreach ($definicoes->xpath('/definicoes/diretorios/diretorio') as $diretorio) {
         $dirId[] = VComponente::montar('VHidden', 'diretorios[id][]', $diretorio['id']);
         $dir[] = VComponente::montar('input', 'diretorios[dir][]', $diretorio['dir'], array('size' => '60px'));
         $entidade[] = VComponente::montar('combobox', 'diretorios[entidade][]', $diretorio['entidade'] == 'sim' ? 'sim' : 'nao', array('style' => 'width: 80px'), $arBooleano);
     }
     $this->visualizacao->dirId = $dirId;
     $this->visualizacao->dirCaminho = $dir;
     $this->visualizacao->dirEntidade = $entidade;
     //Arquivos
     foreach ($definicoes->xpath('/definicoes/arquivos/arquivo') as $arquivo) {
         $arqId[] = VComponente::montar('VHidden', 'arquivos[tipo][]', $arquivo['tipo']);
         $arq[] = VComponente::montar('input', 'arquivos[nome][]', $arquivo['nome'], array('size' => '60px'));
     }
     $this->visualizacao->arqId = $arqId;
     $this->visualizacao->arquivo = $arq;
     $this->visualizacao->action = '?c=CUtilitario_definirSistema';
     $this->visualizacao->mostrar();
 }
 /**
  * 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';
 }
 /**
  * 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;
 }