I have the following query and am wanting to put this list with products and the summation in a datamodel list.
public List<Filtro> listarProdutosDoGerenteRegional() {
try {
return manager.createQuery(
"select new br.com.previsao.model.vo.Filtro(p, sum(p.quantidadeRecente)) from Produto p where p.gerenteFilial.chefe.codigo =:codigo group by p",
Filtro.class).setParameter("codigo", usuario.getCodigo()).getResultList();
} catch (NoResultException e) {
return null;
}
}
The bean is as follows:
@Named
@ViewScoped
public class PrevisaoGerenteRegionalBean implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private Produtos previsoes;
@Inject
@UsuarioLogado
private Usuario usuario;
private BigDecimal quantidadesRecentes;
public BigDecimal getQuantidadesRecentes() {
return quantidadesRecentes;
}
public void setQuantidadesRecentes(BigDecimal quantidadesRecentes) {
this.quantidadesRecentes = quantidadesRecentes;
}
private List<Filtro> listaDePrevisoes = new ArrayList<>();
private Produto previsaoSelecionada;
public List<Filtro> getPrevisoes() {
return listaDePrevisoes;
}
public void inicializar() {
if (FacesUtil.isNotPostback()) {
listaDePrevisoes = previsoes.listarProdutosDoGerenteRegional();
}
}
public void excluir() {
previsoes.remover(previsaoSelecionada);
this.listaDePrevisoes.remove(previsaoSelecionada);
FacesUtil.addInfoMessage("Provisão " + " excluída com sucesso.");
}
And the HTML list is as follows:
<p:dataTable id="previsaosTable"
value="#{previsaoGerenteRegionalBean.previsoes}" var="produto"
style="margin-top: 20px" emptyMessage="#{msg.nenhum_tecnico}"
paginatorPosition="bottom" rows="5" paginator="true"
paginatorTemplate="{RowsPerPageDropdown} {PreviousPageLink} {CurrentPageReport} {NextPageLink}"
currentPageReportTemplate="(#{msg.pagina} {currentPage} #{msg.de} {totalPages}) - (#{msg.registro} {startRecord} #{msg.a} {endRecord}) - Total ({totalRecords} #{msg.registros})"
styleClass="mystyle" paginatorAlwaysVisible="true"
rowsPerPageTemplate="10, 20, 30">
<f:facet id="header" name="header">
lista de Historicos
</f:facet>
<p:column headerText=" Codigo do Produto"
sortBy="#{produto.codigoProduto}"
style="text-align: center; width: 140px">
<h:outputText value="#{produto.produto.codigoProduto}">
</h:outputText>
</p:column>
</p:dataTable>
The vo.filter template has the following fields:
public class Filtro {
private Produto produto;
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
private Long total;
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
}