/** pesquisa no banco de Dados por um carro de acordo com a placa */
  public void pesquisarPorPlaca() {

    setEhCadastrado(false);
    setJaPesquisei(true);

    // Retorna um estado completo de acordo com um ID
    ICommand command = mapCommands.get("CONSULTAR");
    Resultado resultado = new Resultado();
    resultado = command.execute(revisao.getCarro());

    // CArro foi encontrado
    if (resultado.getEntidades().get(0) != null) {
      revisao.setCarro((Carro) resultado.getEntidades().get(0));
      setEhCadastrado(true);
      setJaPesquisei(false);
      return;
    } else {
      revisao.setCarro(new Carro());
      return;
    }
  }
  @Override
  public void carregarListagem() {

    // escolhe o Command corretamente de acordo com a operacao
    ICommand command = mapConducaoCommands.get("LISTAR");
    Resultado resultado = new Resultado();

    resultado = command.execute(new Revisao());
    if (resultado != null) {
      listaRevisao = resultado.getEntidades();
    }
    totaoRevisaoRealizada = listaRevisao.size();

    command = mapConducaoCommands.get("CONSULTAR");
    resultado = new Resultado();

    resultado = command.execute(new Devolucao());
    if (resultado != null) {
      listaDevolucaoAguardandoRevisao = resultado.getEntidades();
    }

    totalRevisaoNaFila = listaDevolucaoAguardandoRevisao.size();

    // se nao for vazio limpa para nao ocorrer duplicação
    if (!produtosCadastrados.isEmpty()) {
      produtosCadastrados.clear();
    }

    carregarProdutosCadastrados();

    /*
     * verifica se ja ja tem uma Devolução preenchida Se tiver significa que
     * foi clicado para Revisar na View Devolucao.xhtml
     */
    if (revisao.getDevolucao().getId() > 0) {
      revisao.setCarro(revisao.getDevolucao().getRetirada().getCarro());
      revisao.setQuilometragem(Long.valueOf(revisao.getDevolucao().getQuilometragem()));
      pesquisarPorPlaca();
    }
  }
  /** Carrega a lista com todos os produtos cadastrados para exibicao no SelectOneMenu */
  private void carregarProdutosCadastrados() {

    // escolhe o Command corretamente de acordo com a operacao
    ICommand command = mapCommands.get("LISTAR");
    Resultado resultado = new Resultado();

    resultado = command.execute(new Amortecedor());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new CorreiaDentada());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new br.com.dealercar.domain.produtosrevisao.Embreagem());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new Farol());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new FiltroDeAr());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new FiltroDeOleoMotor());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new FluidoDeFreio());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new PastilhaFreio());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new br.com.dealercar.domain.produtosrevisao.Pneu());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }

    resultado = command.execute(new VelasIgnicao());
    for (EntidadeDominio p : resultado.getEntidades()) {
      if (((ProdutoRevisao) p).getQuantidade() >= 1) {
        produtosCadastrados.add(p);
      }
    }
  }