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.controller.consultademanda.AvaliacaoConsultaPorDemanda;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.model.Avaliacao;
import br.com.ec.domain.model.AvaliacaoProduto;
import br.com.ec.domain.service.AvaliacaoService;
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;
import br.com.ec.web.util.TipoOperacao;
@Named
@Scope
("view")
public class FolhaPagamentoBean
extends AbstractBean
<Avaliacao
> implements Serializable {
private static final long serialVersionUID = 1L
;
private AvaliacaoService avaliacaoService
;
private AvaliacaoConsultaPorDemanda lazy
;
private ParametrosConsulta
<Avaliacao
> parametrosConsultaAvaliacao
;
private List<AvaliacaoProduto
> produtosPromocaoInterna
;
private String codigoProdutoParaVincular
;
@Inject
public FolhaPagamentoBean
(AvaliacaoConsultaPorDemanda lazy, AvaliacaoService avaliacaoService
) {
this.
lazy = lazy
;
this.
avaliacaoService = avaliacaoService
;
}
@
Override
public void preCarregamento
() {
parametrosConsultaAvaliacao =
new ParametrosConsulta
<Avaliacao
>();
parametrosConsultaAvaliacao.
setEntidade(new Avaliacao
());
prepararConsultaDemanda
();
limparEntidade
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new Avaliacao
());
}
@
Override
public GenericService
<Avaliacao
> getService
() {
return avaliacaoService
;
}
@
Override
public Avaliacao getEntidade
() {
return entidade
;
}
@
Override
public void preConsultar
() {
setTipoOperacao
(TipoOperacao.
CONSULTAR);
}
@
Override
public Avaliacao getId
() {
return getEntidade
();
}
public AvaliacaoConsultaPorDemanda getLazy
() {
return lazy
;
}
public void setLazy
(AvaliacaoConsultaPorDemanda lazy
) {
this.
lazy = lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsultaAvaliacao
());
}
public ParametrosConsulta
<Avaliacao
> getParametrosConsultaAvaliacao
() {
return parametrosConsultaAvaliacao
;
}
public void setParametrosConsultaAvaliacao
(ParametrosConsulta
<Avaliacao
> parametrosConsultaAvaliacao
) {
this.
parametrosConsultaAvaliacao = parametrosConsultaAvaliacao
;
}
public List<AvaliacaoProduto
> getProdutosPromocaoInterna
() {
return produtosPromocaoInterna
;
}
public void setProdutosPromocaoInterna
(List<AvaliacaoProduto
> produtosPromocaoInterna
) {
this.
produtosPromocaoInterna = produtosPromocaoInterna
;
}
public String getCodigoProdutoParaVincular
() {
return codigoProdutoParaVincular
;
}
public void setCodigoProdutoParaVincular
(String codigoProdutoParaVincular
) {
this.
codigoProdutoParaVincular = codigoProdutoParaVincular
;
}
/**************************************************/
public void consultarProdutosPromocaoInterna
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setProdutosPromocaoInterna
(avaliacaoService.
consultarProdutosPromocaoInterna(getEntidade
().
getSequencial()));
/*
List<AvaliacaoProduto> produtosPromocaoInterna = new ArrayList<AvaliacaoProduto>();
AvaliacaoProduto avaliacaoProduto = new AvaliacaoProduto();
Produto produto = new Produto();
produto.setDescricao("TESTE");
avaliacaoProduto.setProduto(produto);
produtosPromocaoInterna.add(avaliacaoProduto);
setProdutosPromocaoInterna(produtosPromocaoInterna);
*/
}
});
}
public void vincularProdutoPromocaoInterna
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
avaliacaoService.
cadastrarProdutoPromocaoInterna(getEntidade
(), getCodigoProdutoParaVincular
());
setProdutosPromocaoInterna
(avaliacaoService.
consultarProdutosPromocaoInterna(getEntidade
().
getSequencial()));
LancadorMensagem.
lancarSucesso("PRODUTO " + getCodigoProdutoParaVincular
() +
" VINCULADO COM SUCESSO");
setCodigoProdutoParaVincular
(null);
}
});
}
public void desvincularProdutoPromocaoInterna
(final AvaliacaoProduto avaliacaoProduto
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
avaliacaoService.
excluirProdutoPromocaoInterna(avaliacaoProduto
);
setProdutosPromocaoInterna
(avaliacaoService.
consultarProdutosPromocaoInterna(getEntidade
().
getSequencial()));
LancadorMensagem.
lancarSucesso("PRODUTO DESVINCULADO COM SUCESSO");
}
});
}
/*
public void desvincularVenda() {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
// pessoaPapelService.adicionarPapel(getEntidade().getPessoa(), new Papel(getPessoaPapelDTO().getCodigoPapel()));
// getEntidadeDTO().setPapeisDTO(pessoaPapelService.consultarPapeisDaPessoa(getPessoaPapelDTO().getSequencialPessoa()));
LancadorMensagem.lancarSucesso("VENDA DESVINCULADA COM SUCESSO");
}
});
}
public void vincularVenda() {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
// pessoaPapelService.adicionarPapel(getEntidade().getPessoa(), new Papel(getPessoaPapelDTO().getCodigoPapel()));
// getEntidadeDTO().setPapeisDTO(pessoaPapelService.consultarPapeisDaPessoa(getPessoaPapelDTO().getSequencialPessoa()));
LancadorMensagem.lancarSucesso("VENDA VINCULADA COM SUCESSO");
}
});
}
*/
}