/**
  * 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";
 }
 /**
  * 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 criado para efetuar a validação de login no sistema
  */
 public function validarLogin()
 {
     try {
         switch (true) {
             case !$this->pegarNmLogin():
                 throw new erroLogin('Login não informado!');
             case !$this->pegarNmSenha():
                 throw new erroLogin('Senha não informada!');
             default:
                 $nUsuario = new NUsuario();
                 $nUsuario->passarNmLogin(operador::igual($this->pegarNmLogin()));
                 $nUsuario->passarNmSenha(operador::igual($this->pegarNmSenha()));
                 $colecao = $nUsuario->pesquisar(new pagina());
                 if (!$colecao->possuiItens()) {
                     throw new erroAcesso('Usuário não autorizado!');
                 }
                 sessaoSistema::registrar('usuario', $colecao->avancar());
         }
     } catch (erro $e) {
         throw $e;
     }
 }
 /**
  * Método que define a coleção oposta a ser apresentada na listagem de dados
  */
 public function definirColecaoOposta()
 {
     $negocio = new NUsuario();
     $this->colecaoOposta = $negocio->lerTodos();
 }