package br.com.ec.controller.managedbean;
import java.io.Serializable;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.AcompanhamentoDTO;
import br.com.ec.domain.model.tipos.TipoSituacaoPedido;
import br.com.ec.domain.service.acompanhamento.AcompanhamentoService;
import br.com.ec.domain.service.pedido.PedidoService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class AcompanhamentoBean
extends AbstractBean
<AcompanhamentoDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private AcompanhamentoService acompanhamentoService
;
private PedidoService pedidoService
;
private AcompanhamentoDTO acompanhamentoDia
;
@Inject
public AcompanhamentoBean
(AcompanhamentoService acompanhamentoService, PedidoService pedidoService
) {
this.
acompanhamentoService = acompanhamentoService
;
this.
pedidoService = pedidoService
;
}
@PostConstruct
private void iniciarConsolidacoes
() {
setAcompanhamentoDia
(acompanhamentoService.
consultarConsolidacaoDoDia());
getAcompanhamentoDia
().
setQuantidadePedidosEntrarEmContato(pedidoService.
obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.
ENTRAR_EM_CONTATO.
getValor()));
getAcompanhamentoDia
().
setQuantidadePedidosNovos(pedidoService.
obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.
NOVO.
getValor()));
preencherInformacoesPedidos
();
}
private void preencherInformacoesPedidos
() {
Date diaSeteDiasAntes = DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
7);
Integer pedidosFinalizados = pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
FINALIZADO.
getValor(), diaSeteDiasAntes, DataUtils.
getDataAtual());
Integer pedidosFinalizadosComVendas = pedidoService.
obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.
FINALIZADO_COM_VENDAS.
getValor(), diaSeteDiasAntes, DataUtils.
getDataAtual());
getAcompanhamentoDia
().
setQuantidadePedidosAtendidosUltimosSeteDias(pedidosFinalizados + pedidosFinalizadosComVendas
);
}
@
Override
public void preCarregamento
() {
entidade =
new AcompanhamentoDTO
();
parametrosConsulta =
new ParametrosConsulta
<AcompanhamentoDTO
>();
parametrosConsulta.
setEntidade(entidade
);
}
@
Override
public void limparEntidade
() {
AcompanhamentoDTO consolidado =
new AcompanhamentoDTO
();
setEntidade
(consolidado
);
}
@
Override
public GenericService
<AcompanhamentoDTO
> getService
() {
return null;
}
@
Override
public AcompanhamentoDTO getEntidade
() {
return entidade
;
}
@
Override
public AcompanhamentoDTO getId
() {
return getEntidade
();
}
public AcompanhamentoDTO getAcompanhamentoDia
() {
return acompanhamentoDia
;
}
public void setAcompanhamentoDia
(AcompanhamentoDTO consolidadoDia
) {
this.
acompanhamentoDia = consolidadoDia
;
}
}