package br.com.ec.controller;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
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.domain.dto.AlertasComprasGeralDTO;
import br.com.ec.domain.dto.AlertasComprasProdutoDTO;
import br.com.ec.domain.dto.AlertasGeralDTO;
import br.com.ec.domain.dto.ProdutoDTO;
import br.com.ec.domain.model.tipos.TipoProduto;
import br.com.ec.domain.service.AlertasService;
import br.com.ec.domain.service.VendaService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class AlertasComprasBean
extends AbstractBean
<AlertasGeralDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private AlertasService alertasService
;
private VendaService vendaService
;
private Integer tempoDeEstoqueParaAlerta =
30;
@Inject
public AlertasComprasBean
(AlertasService alertasService, VendaService vendaService
) {
this.
alertasService = alertasService
;
this.
vendaService = vendaService
;
}
@
Override
public GenericService
<AlertasGeralDTO
> getService
() {
return null;
}
@
Override
public AlertasGeralDTO getId
() {
return null;
}
@
Override
public void limparEntidade
() {
setEntidade
(new AlertasGeralDTO
());
getEntidade
().
setQuantidadeDiasVendas(90);
getEntidade
().
setTempoDeEstoqueParaAlerta(30);
getEntidade
().
setAdicionarModelosFavoritosSemVendas(true);
getEntidade
().
setTiposProdutoSelecionados(new ArrayList<TipoProduto
>());
}
@PostConstruct
private void iniciarConsolidacoes
() {
limparEntidade
();
}
public Integer getTempoDeEstoqueParaAlerta
() {
return tempoDeEstoqueParaAlerta
;
}
public void setTempoDeEstoqueParaAlerta
(Integer tempoDeEstoqueParaAlerta
) {
this.
tempoDeEstoqueParaAlerta = tempoDeEstoqueParaAlerta
;
}
public void verificarAlertas
() {
limparEntidade
();
getEntidade
().
setTempoDeEstoqueParaAlerta(getTempoDeEstoqueParaAlerta
());
// LISTA DE TODOS OS TIPOS, EXCETO CAPAS
List<TipoProduto
> tiposProduto =
new ArrayList<TipoProduto
>();
tiposProduto.
addAll(Arrays.
asList(TipoProduto.
values()));
for (TipoProduto tipoProduto : tiposProduto
) {
if (!tipoProduto.
getValor().
equals(TipoProduto.
CAPA.
getValor())) {
getEntidade
().
getTiposProdutoSelecionados().
add(tipoProduto
);
}
}
setEntidade
(alertasService.
consultarAlertasComprasGeral(getEntidade
()));
}
}