package br.com.ec.controller.managedbean;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.controller.util.UtilBean;
import br.com.ec.domain.dto.RankingPedidoDTO;
import br.com.ec.domain.model.tipos.TipoGenero;
import br.com.ec.domain.model.tipos.TipoSituacaoPedido;
import br.com.ec.domain.service.pedido.PedidoService;
import br.edu.cesmac.core.generic.GenericService;
import br.edu.cesmac.core.util.DataUtils;
import br.edu.cesmac.web.generic.AbstractBean;
@Named
@Scope
("view")
public class RankingPedidosBean
extends AbstractBean
<RankingPedidoDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private Date dataInicial
;
private Date dataFinal
;
private List<RankingPedidoDTO
> rankingPedidosNaoAtendidosUnissex
;
private List<RankingPedidoDTO
> rankingPedidosNaoAtendidosMasculinos
;
private List<RankingPedidoDTO
> rankingPedidosNaoAtendidosFemininos
;
private List<RankingPedidoDTO
> rankingPedidosUnissex
;
private List<RankingPedidoDTO
> rankingPedidosMasculinos
;
private List<RankingPedidoDTO
> rankingPedidosFemininos
;
private Integer quantidadePedidosNovos =
0;
private Integer quantidadePedidosEntrarEmContato =
0;
private Integer quantidadePedidosAguardandoRetorno =
0;
private Integer quantidadePedidosAtendidos =
0;
private PedidoService pedidoService
;
@Inject
public RankingPedidosBean
(PedidoService pedidoService
) {
this.
pedidoService = pedidoService
;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
setDataInicial
(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
7));
setDataFinal
(DataUtils.
getDataAtual());
consultarRankings
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new RankingPedidoDTO
());
}
@
Override
public GenericService
<RankingPedidoDTO
> getService
() {
return null;
}
@
Override
public RankingPedidoDTO getEntidade
() {
return entidade
;
}
@
Override
public RankingPedidoDTO getId
() {
return getEntidade
();
}
public String estiloValor
(Double valor
) {
return UtilBean.
estiloValor(valor
);
}
public Date getDataInicial
() {
return dataInicial
;
}
public void setDataInicial
(Date dataInicial
) {
this.
dataInicial = dataInicial
;
}
public Date getDataFinal
() {
return dataFinal
;
}
public void setDataFinal
(Date dataFinal
) {
this.
dataFinal = dataFinal
;
}
public List<RankingPedidoDTO
> getRankingPedidosNaoAtendidosUnissex
() {
return rankingPedidosNaoAtendidosUnissex
;
}
public void setRankingPedidosNaoAtendidosUnissex
(List<RankingPedidoDTO
> rankingPedidosNaoAtendidosUnissex
) {
this.
rankingPedidosNaoAtendidosUnissex = rankingPedidosNaoAtendidosUnissex
;
}
public List<RankingPedidoDTO
> getRankingPedidosNaoAtendidosMasculinos
() {
return rankingPedidosNaoAtendidosMasculinos
;
}
public void setRankingPedidosNaoAtendidosMasculinos
(List<RankingPedidoDTO
> rankingPedidosNaoAtendidosMasculinos
) {
this.
rankingPedidosNaoAtendidosMasculinos = rankingPedidosNaoAtendidosMasculinos
;
}
public List<RankingPedidoDTO
> getRankingPedidosNaoAtendidosFemininos
() {
return rankingPedidosNaoAtendidosFemininos
;
}
public void setRankingPedidosNaoAtendidosFemininos
(List<RankingPedidoDTO
> rankingPedidosNaoAtendidosFemininos
) {
this.
rankingPedidosNaoAtendidosFemininos = rankingPedidosNaoAtendidosFemininos
;
}
public List<RankingPedidoDTO
> getRankingPedidosUnissex
() {
return rankingPedidosUnissex
;
}
public void setRankingPedidosUnissex
(List<RankingPedidoDTO
> rankingPedidosUnissex
) {
this.
rankingPedidosUnissex = rankingPedidosUnissex
;
}
public List<RankingPedidoDTO
> getRankingPedidosMasculinos
() {
return rankingPedidosMasculinos
;
}
public void setRankingPedidosMasculinos
(List<RankingPedidoDTO
> rankingPedidosMasculinos
) {
this.
rankingPedidosMasculinos = rankingPedidosMasculinos
;
}
public List<RankingPedidoDTO
> getRankingPedidosFemininos
() {
return rankingPedidosFemininos
;
}
public void setRankingPedidosFemininos
(List<RankingPedidoDTO
> rankingPedidosFemininos
) {
this.
rankingPedidosFemininos = rankingPedidosFemininos
;
}
public Integer getQuantidadePedidosNovos
() {
return quantidadePedidosNovos
;
}
public void setQuantidadePedidosNovos
(Integer quantidadePedidosNovos
) {
this.
quantidadePedidosNovos = quantidadePedidosNovos
;
}
public Integer getQuantidadePedidosEntrarEmContato
() {
return quantidadePedidosEntrarEmContato
;
}
public void setQuantidadePedidosEntrarEmContato
(Integer quantidadePedidosEntrarEmContato
) {
this.
quantidadePedidosEntrarEmContato = quantidadePedidosEntrarEmContato
;
}
public Integer getQuantidadePedidosAguardandoRetorno
() {
return quantidadePedidosAguardandoRetorno
;
}
public void setQuantidadePedidosAguardandoRetorno
(Integer quantidadePedidosAguardandoRetorno
) {
this.
quantidadePedidosAguardandoRetorno = quantidadePedidosAguardandoRetorno
;
}
public Integer getQuantidadePedidosAtendidos
() {
return quantidadePedidosAtendidos
;
}
public void setQuantidadePedidosAtendidos
(Integer quantidadePedidosAtendidos
) {
this.
quantidadePedidosAtendidos = quantidadePedidosAtendidos
;
}
public void consultarRankings
() {
setRankingPedidosNaoAtendidosUnissex
(pedidoService.
consultarRankingPedidosNaoAtendidos(TipoGenero.
UNISSEX.
getValor(), getDataInicial
(), getDataFinal
()));
setRankingPedidosNaoAtendidosMasculinos
(pedidoService.
consultarRankingPedidosNaoAtendidos(TipoGenero.
MASCULINO.
getValor(), getDataInicial
(), getDataFinal
()));
setRankingPedidosNaoAtendidosFemininos
(pedidoService.
consultarRankingPedidosNaoAtendidos(TipoGenero.
FEMININO.
getValor(), getDataInicial
(), getDataFinal
()));
setRankingPedidosUnissex
(pedidoService.
consultarRankingPedidos(TipoGenero.
UNISSEX.
getValor(), getDataInicial
(), getDataFinal
()));
setRankingPedidosMasculinos
(pedidoService.
consultarRankingPedidos(TipoGenero.
MASCULINO.
getValor(), getDataInicial
(), getDataFinal
()));
setRankingPedidosFemininos
(pedidoService.
consultarRankingPedidos(TipoGenero.
FEMININO.
getValor(), getDataInicial
(), getDataFinal
()));
setQuantidadePedidosNovos
(pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
NOVO.
getValor(), getDataInicial
(), getDataFinal
()));
setQuantidadePedidosEntrarEmContato
(pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
ENTRAR_EM_CONTATO.
getValor(), getDataInicial
(), getDataFinal
()));
setQuantidadePedidosAguardandoRetorno
(pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
AGUARDANDO_FINALIZACAO_CLIENTE.
getValor(), getDataInicial
(), getDataFinal
()));
Integer pedidosFinalizados = pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
FINALIZADO.
getValor(), getDataInicial
(), getDataFinal
());
Integer pedidosFinalizadosComVendas = pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
FINALIZADO_COM_VENDAS.
getValor(), getDataInicial
(), getDataFinal
());
setQuantidadePedidosAtendidos
(pedidosFinalizados + pedidosFinalizadosComVendas
);
}
}