package br.com.ec.controller.managedbean;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.controller.managedbean.consultademanda.FuncionarioConsultaPorDemanda;
import br.com.ec.controller.managedbean.consultademanda.FuncionarioDesativosConsultaPorDemanda;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.tipos.TipoComissionamento;
import br.com.ec.domain.service.funcionario.FuncionarioService;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.util.TipoOperacao;
@Named
@Scope
("view")
public class FuncionarioBean
extends AbstractBean
<Funcionario
> implements Serializable {
private static final long serialVersionUID = 1L
;
private FuncionarioConsultaPorDemanda lazy
;
private FuncionarioDesativosConsultaPorDemanda lazyDesativos
;
private ParametrosConsulta
<Funcionario
> parametrosConsultaDesativos
;
private FuncionarioService funcionarioService
;
private Funcionario funcionarioSelecionado
;
@Inject
public FuncionarioBean
(FuncionarioConsultaPorDemanda lazy, FuncionarioDesativosConsultaPorDemanda lazyDesativos, FuncionarioService funcionarioService
) {
this.
lazy = lazy
;
this.
lazyDesativos = lazyDesativos
;
this.
funcionarioService = funcionarioService
;
}
@
Override
public void preCarregamento
() {
parametrosConsulta =
new ParametrosConsulta
<Funcionario
>();
parametrosConsulta.
setEntidade(new Funcionario
(true));
parametrosConsultaDesativos =
new ParametrosConsulta
<Funcionario
>();
parametrosConsultaDesativos.
setEntidade(new Funcionario
(false));
prepararConsultaDemanda
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new Funcionario
());
}
@
Override
public GenericService
<Funcionario
> getService
() {
return funcionarioService
;
}
@
Override
public Funcionario getEntidade
() {
return entidade
;
}
@
Override
public Funcionario getId
() {
return getEntidade
();
}
public Funcionario getFuncionarioSelecionado
() {
return funcionarioSelecionado
;
}
public void setFuncionarioSelecionado
(Funcionario funcionarioSelecionado
) {
this.
funcionarioSelecionado = funcionarioSelecionado
;
}
public FuncionarioConsultaPorDemanda getLazy
() {
return lazy
;
}
public void setLazy
(FuncionarioConsultaPorDemanda lazy
) {
this.
lazy = lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsulta
());
lazyDesativos.
setarParametrosConsulta(parametrosConsultaDesativos
);
}
public FuncionarioDesativosConsultaPorDemanda getLazyDesativos
() {
return lazyDesativos
;
}
public void setLazyDesativos
(FuncionarioDesativosConsultaPorDemanda lazyDesativos
) {
this.
lazyDesativos = lazyDesativos
;
}
public TipoComissionamento
[] getTiposComissionamento
() {
return TipoComissionamento.
values();
}
/***************************************************************/
@
Override
public void preDetalhar
(Funcionario funcionario
) {
detalhar
(funcionario
);
setTipoOperacao
(TipoOperacao.
DETALHAR);
}
@
Override
public void preAlterar
(Funcionario funcionario
) {
detalhar
(funcionario
);
setTipoOperacao
(TipoOperacao.
ALTERAR);
}
public void detalhar
(Funcionario funcionario
) {
setEntidade
(funcionarioService.
detalhar(funcionario
));
}
public void selecionarPessoa
(Pessoa pessoa
) {
getEntidade
().
setPessoa(pessoa
);
}
public void retirarPessoa
() {
getEntidade
().
setPessoa(null);
}
public static Double retornarValorComissao
(String tipoComissionamento,
Double valorTotalVendas,
Double valorMetaMensal
) {
return 0.0;
}
}