/**
  * 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&amp;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&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();
 }
 /**
  * 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"));
 }