package br.com.ec.controller;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.AlertasLogisticaComprasDTO;
import br.com.ec.domain.dto.RankingComprasTransferenciasDTO;
import br.com.ec.domain.dto.RankingModeloDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaModelosMaisVendidosDTO;
import br.com.ec.domain.service.VendaService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class AlertasComprasCapaBean
extends AbstractBean
<AlertasLogisticaComprasDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private Boolean adicionarModelosFavoritosSemVendas
;
private Integer quantidadeDiasVendas =
0;
private Integer quantidadeDiasParaAlerta =
0;
private VendaService vendaService
;
@Inject
public AlertasComprasCapaBean
(VendaService vendaService
) {
this.
vendaService = vendaService
;
}
@
Override
public GenericService
<AlertasLogisticaComprasDTO
> getService
() {
return null;
}
@
Override
public AlertasLogisticaComprasDTO getId
() {
return null;
}
@
Override
public void limparEntidade
() {
setEntidade
(new AlertasLogisticaComprasDTO
());
setQuantidadeDiasVendas
(90);
setQuantidadeDiasParaAlerta
(30);
setAdicionarModelosFavoritosSemVendas
(false);
}
@PostConstruct
private void iniciarConsolidacoes
() {
limparEntidade
();
}
public Boolean getAdicionarModelosFavoritosSemVendas
() {
return adicionarModelosFavoritosSemVendas
;
}
public void setAdicionarModelosFavoritosSemVendas
(Boolean adicionarModelosFavoritosSemVendas
) {
this.
adicionarModelosFavoritosSemVendas = adicionarModelosFavoritosSemVendas
;
}
public Integer getQuantidadeDiasVendas
() {
return quantidadeDiasVendas
;
}
public void setQuantidadeDiasVendas
(Integer quantidadeDiasVendas
) {
this.
quantidadeDiasVendas = quantidadeDiasVendas
;
}
public Integer getQuantidadeDiasParaAlerta
() {
return quantidadeDiasParaAlerta
;
}
public void setQuantidadeDiasParaAlerta
(Integer quantidadeDiasParaAlerta
) {
this.
quantidadeDiasParaAlerta = quantidadeDiasParaAlerta
;
}
public void verificarAlertas
() {
limparEntidade
();
// CONSULTAR MODELOS MAIS VENDIDOS
List<RankingModeloDTO
> modelosMaisVendidos =
new ArrayList<RankingModeloDTO
>();
ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta =
new ParametrosConsultaModelosMaisVendidosDTO
();
parametrosConsulta.
setDataFinal(DataUtils.
getDataAtual());
parametrosConsulta.
setDataInicial(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), quantidadeDiasVendas
*-
1));
modelosMaisVendidos.
addAll(vendaService.
consultarRankingModelos(parametrosConsulta, adicionarModelosFavoritosSemVendas
));
List<RankingComprasTransferenciasDTO
> rankingComprasTransferencias =
new ArrayList<RankingComprasTransferenciasDTO
>();
rankingComprasTransferencias.
addAll(vendaService.
consultarRankingComprasTransferencias(getQuantidadeDiasVendas
(), getQuantidadeDiasParaAlerta
(), modelosMaisVendidos,
false));
getEntidade
().
setQuantidadeAlertasModelosPossiveis(modelosMaisVendidos.
size());
getEntidade
().
setRankingsComprasTransferenciasDTO(rankingComprasTransferencias
);
}
}