Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.gov.al.saude.rhd.web.managebean.servidor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.faces.bean.ManagedBean;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.gov.al.saude.framework.core.generic.GenericFacade;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.framework.web.generic.AbstractBean;
import br.gov.al.saude.framework.web.generic.GenericConsultaDemanda;
import br.gov.al.saude.rhd.core.application.servidor.ServidorFacade;
import br.gov.al.saude.rhd.core.application.unidade.UnidadeFacade;
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
import br.gov.al.saude.rhd.model.view.ServidorView;
import br.gov.al.saude.rhd.model.view.UnidadeView;
import br.gov.al.saude.sca.model.usuario.view.UsuarioView;
import br.gov.al.saude.scg.model.view.PessoaDocumentoView;
import br.gov.al.saude.scg.model.view.PessoaTelefoneView;

@Component
@ManagedBean
@Scope("view")
public class ServidorBean extends AbstractBean<ServidorView> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private ServidorFacade servidorFacade;
        private UnidadeFacade unidadeFacade;
       
        private List<ServidorDadoFuncionalView> dadosFuncionais;
        private ServidorDadoFuncionalView dadoFuncional;
       
        private List<PessoaDocumentoView> documentos;
        private List<PessoaTelefoneView> telefones;
       
        @Autowired
        public ServidorBean(ServidorFacade servidorFacade, UnidadeFacade unidadeFacade) {
                this.servidorFacade = servidorFacade;
                this.unidadeFacade = unidadeFacade;
        }

        @Override
        public ServidorView getEntidade() {
                if (VerificadorUtil.estaNulo(entidade)) {
                        entidade = servidorFacade.consultarDadosPessoais(getSequencialPessoaUsuarioLogado());
                }
                return entidade;
        }

        @Override
        public GenericFacade<ServidorView> getFacade() {
                return servidorFacade;
        }

        @Override
        public Object getId() {
                return getEntidade().getId();
        }

        @Override
        public String getTelaCrud() {
                return "/paginas/dados_gerais.xhtml";
        }

        @Override
        public void limparEntidade() {
                entidade = new ServidorView();
        }
       
        @Override
        public GenericConsultaDemanda<ServidorView> getLazy() {
                return null;
        }
       
        public List<ServidorDadoFuncionalView> getDadosFuncionais() {
                if (dadosFuncionais == null) {
                        dadosFuncionais = new ArrayList<ServidorDadoFuncionalView>();
                        if (VerificadorUtil.naoEstaNulo(getEntidade())) {
                                dadosFuncionais.addAll(getEntidade().getListaDadosFuncionaisView());
                        }
                }
                return dadosFuncionais;
        }
        public void setListaDadosFuncionais(List<ServidorDadoFuncionalView> dadosFuncionais) {
                this.dadosFuncionais = dadosFuncionais;
        }
       
        public void setDadoFuncional(ServidorDadoFuncionalView dadoFuncional) {
                this.dadoFuncional = dadoFuncional;
        }
        public ServidorDadoFuncionalView getDadoFuncional() {
                return dadoFuncional;
        }
       
        public List<PessoaDocumentoView> getDocumentos() {
                if (documentos == null) {
                        documentos = new ArrayList<PessoaDocumentoView>();
                        if (VerificadorUtil.naoEstaNulo(getEntidade())) {
                                documentos.addAll(getEntidade().getPessoa().getDocumentos());
                        }
                }
                return documentos;
        }
        public void setDocumentos(List<PessoaDocumentoView> documentos) {
                this.documentos = documentos;
        }
       
        public List<PessoaTelefoneView> getTelefones() {
                if (telefones == null) {
                        telefones = new ArrayList<PessoaTelefoneView>();
                        if (VerificadorUtil.naoEstaNulo(getEntidade())) {
                                telefones.addAll(getEntidade().getPessoa().getTelefones());
                        }
                }
                return telefones;
        }
        public void setTelefones(List<PessoaTelefoneView> telefones) {
                this.telefones = telefones;
        }
       
        private Long getSequencialPessoaUsuarioLogado() {
                return ((UsuarioView) getUsuario().getPrincipal()).getSequencialPessoa();
        }
       
        public void setarEntidadeServidorDadoFuncionalView(ServidorDadoFuncionalView servidorDadoFuncionalView) {
                setDadoFuncional(servidorDadoFuncionalView);
        }
       
        public Set<UnidadeView> getUnidadesDeExercicioDoUsuario() {
                Set<UnidadeView> unidades = new HashSet<UnidadeView>();
                unidades.addAll(unidadeFacade.listarUnidadeExercicioPorPapelUsuario((UsuarioView) getUsuario().getPrincipal()));
                return unidades;
        }

}