Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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;
        }

}