package br.com.ec.controller;
import java.io.Serializable;
import java.util.List;
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.VerificadorUtil;
import br.com.ec.domain.dto.AnaliseComprasProdutosDTO;
import br.com.ec.domain.dto.CompraDTO;
import br.com.ec.domain.dto.CompraProdutoDTO;
import br.com.ec.domain.dto.FornecedorDTO;
import br.com.ec.domain.model.tipos.TipoPeriodoConsulta;
import br.com.ec.domain.service.CompraService;
import br.com.ec.domain.service.FornecedorService;
import br.com.ec.domain.service.TransferenciaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
@Named
@Scope
("view")
public class ComprasBean
extends AbstractBean
<CompraDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private FornecedorDTO fornecedorSelecionado
;
private List<FornecedorDTO
> fornecedoresAtivos
;
private AnaliseComprasProdutosDTO analiseParaCompra
;
private CompraService compraService
;
private FornecedorService fornecedorService
;
@Inject
public ComprasBean
(CompraService compraService, FornecedorService fornecedorService
) {
this.
compraService = compraService
;
this.
fornecedorService = fornecedorService
;
}
@
Override
public GenericService
<CompraDTO
> getService
() {
return null;
}
@
Override
public CompraDTO getId
() {
return null;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new CompraDTO
());
}
/**************************************************/
public TipoPeriodoConsulta
[] getTiposPeriodoConsulta
() {
return TipoPeriodoConsulta.
values();
}
public FornecedorDTO getFornecedorSelecionado
() {
return fornecedorSelecionado
;
}
public void setFornecedorSelecionado
(FornecedorDTO fornecedorSelecionado
) {
this.
fornecedorSelecionado = fornecedorSelecionado
;
}
public List<FornecedorDTO
> getFornecedoresAtivos
() {
if (VerificadorUtil.
estaNuloOuVazio(fornecedoresAtivos
)) {
fornecedoresAtivos = fornecedorService.
consultarFornecedoresAtivos();
}
return fornecedoresAtivos
;
}
public void setFornecedoresAtivos
(List<FornecedorDTO
> fornecedoresAtivos
) {
this.
fornecedoresAtivos = fornecedoresAtivos
;
}
public void setAnaliseParaCompra
(AnaliseComprasProdutosDTO analiseParaCompra
) {
this.
analiseParaCompra = analiseParaCompra
;
}
public AnaliseComprasProdutosDTO getAnaliseParaCompra
() {
return analiseParaCompra
;
}
/**************************************************/
public void gerarCompras
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setAnaliseParaCompra
(compraService.
gerarComprasAutomaticamente(getFornecedorSelecionado
()));
// transferenciaService.gerarTransferenciasAutomaticamente(getEntidade());
// LancadorMensagem.lancarSucesso("TRANSFERÊNCIAS DE " + TipoProduto.parse(getEntidade().getTipoProduto()).getDescricao() + " GERADAS COM SUCESSO");
LancadorMensagem.
lancarSucesso("SUGESTÕES DE COMPRAS REALIZADAS");
}
});
}
public void efetivarCompras
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// transferenciaService.efetivarTransferencias(getEntidade());
// LancadorMensagem.lancarSucesso("TRANSFERÊNCIAS DE " + TipoProduto.parse(getEntidade().getTipoProduto()).getDescricao() + " EFETIVADAS COM SUCESSO");
LancadorMensagem.
lancarSucesso("SUGESTÕES DE COMPRAS EFETIVADAS");
}
});
}
}