Bom dia,
trabalho com Delphi mas no momento estamos sem programador Java na empresa. Então, estou tentando cuidar do portal de vendas em Java.
Na faculdade aprendi um pouco de Java SE mas estou meio perdido nesse projeto Web.
Então, peço desculpas se acaso não for tão claro ou não fornecer todas as informações necessárias.
Peço um pouco de paciência :oops:
Bem, indo direto ao assunto…
- Tenho um inputText no qual seleciono um cliente (clico em um botão e é aberto uma janelinha para selecionar o cliente). O inputText recebe o cliente selecionado.
- Tenho um selectOneMenu que lista todas as tabelas de preço cadastradas.
O que necessito é que, o selectOneMenu, além de listar as tabelas cadastradas, selecione a tabela default do cliente selecionado.
Procurei pela internet e não encontrei nada que atribuisse um valor padrão.
Tentei na minha classe que busca as tabelas de preço, após adicionar todas, procurar a tabela default do cliente, remove-la e depois adicioná-la novamente no índice 0.
Não deu certo. Acho que a minha dinâmica estava errada (além de achar que isso é uma POG)
Esse é o meu selectOneMenu:
<h:selectOneMenu id="tabela" value="#{infoPedido.tabelaPreco}"
styleClass="tamanho2" style="margin: 5px 0 0 0;">
<a4j:support event="onchange" reRender="d1, d2, d3" />
<s:selectItems value="#{listaCliente.tabelaOrdenada}" var="c"
label="#{c.nome}" />
<s:convertEntity />
</h:selectOneMenu>
Essa é minha classe:
public List<TabelaPreco> getTodasTabelas() {
String textoSql;
textoSql = "select t.id.tabelaPreco from TabelaPreco_Filial t "
+ "where t.id.filial.id = :cFilial and t.id.tabelaPreco.status = 'ATIVO'";
return entityManager.createQuery(textoSql).setParameter("cFilial",
webUsuarioFilial.getFilial().getId()).getResultList();
}
public List<TabelaPreco> getTodasTabelasdoVendedor() {
String textoSql;
textoSql = "select t.id.tabelaPreco from TabelaPreco_Vendedor t "
+ "where t.id.vendedor.id = :cVendedor and t.id.tabelaPreco.status = 'ATIVO'";
return entityManager.createQuery(textoSql).setParameter("cVendedor",
infoPedido.getVendedor().getId()).getResultList();
}
public List<TabelaPreco> getTabelaFiltrada() {
try {
System.out.println("chamou getTabelaFiltrada");
Integer tabelaPadrao = paramVendas.getTabelaPadrao();
List<TabelaPreco> todasTabelas = new ArrayList<TabelaPreco>();
if (webUsuarioFilial.getFilial().getEmpresa()
.getFiltraTabelaporVendedor().equals("NAO")) {
todasTabelas = getTodasTabelas();
} else {
todasTabelas = getTodasTabelasdoVendedor();
}
List<TabelaPreco> tabelasOrdenadas = new ArrayList<TabelaPreco>();
for (TabelaPreco t : todasTabelas) {
if (t.getId() == tabelaPadrao) {
tabelasOrdenadas.add(t);
}
}
for (TabelaPreco t : todasTabelas) {
if (!tabelasOrdenadas.contains(t)) {
tabelasOrdenadas.add(t);
}
}
return tabelasOrdenadas;
} catch (Exception e) {
e.printStackTrace();
return new ArrayList();
}
}
public List<TabelaPreco> getTabelaOrdenada() {
System.out.println("chamou getTabelaOrdenada");
List<TabelaPreco> todas = getTabelaFiltrada();
List<TabelaPreco> ordenada = new ArrayList<TabelaPreco>();
if (webUsuarioFilial.getFilial().getEmpresa()
.getFiltraTabelaporVendedor().equals("NAO")) {
if (infoPedido.getTabelaPreco() != null) {
ordenada.add(infoPedido.getTabelaPreco());
}
}
for (TabelaPreco t : todas) {
if (!ordenada.contains(t)) {
ordenada.add(t);
}
}
return ordenada;
}
Desde já obrigado