Subversion Repositories Integrator Subversion

Rev

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

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

import java.io.Serializable;

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.framework.web.message.LancadorMensagem;
import br.gov.al.saude.framework.web.util.ConstantesWebHelper;
import br.gov.al.saude.rhd.core.application.avaliacao.AvaliacaoFacade;
import br.gov.al.saude.rhd.core.application.grupoavaliacao.GrupoAvaliacaoFacade;
import br.gov.al.saude.rhd.model.Cronograma;
import br.gov.al.saude.rhd.model.RevisaoAvaliacao;
import br.gov.al.saude.rhd.model.dto.RevisaoAvaliacaoDTO;
import br.gov.al.saude.rhd.parametros.ParametrosConsultarRevisaoAvaliacaoNaoRespondida;
import br.gov.al.saude.rhd.tipo.TipoAvaliacao;
import br.gov.al.saude.rhd.tipo.TipoRevisao;
import br.gov.al.saude.rhd.web.managebean.sessao.SessaoBean;
import br.gov.al.saude.sca.model.usuario.view.UsuarioView;

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


        private static final long serialVersionUID = 1L;
        private AvaliacaoFacade avaliacaoFacade;
        private Cronograma cronogramaCorrente;
        private RevisaoAvaliacaoNaoRespondidaConsultaDemanda consultaRevisaoLazy;
        private ParametrosConsultarRevisaoAvaliacaoNaoRespondida parametrosConsultaRevisaoLazy;

        @Autowired
        public RevisaoBean(AvaliacaoFacade avaliacaoFacade, SessaoBean sessaoBean, GrupoAvaliacaoFacade grupoAvaliacaoFacade,
                                           RevisaoAvaliacaoNaoRespondidaConsultaDemanda consultaRevisaoLazy) {
                this.cronogramaCorrente = sessaoBean.getCronogramaCorrente();
                this.avaliacaoFacade = avaliacaoFacade;
                this.consultaRevisaoLazy = consultaRevisaoLazy;
        }
               
        @Override
        public GenericFacade<RevisaoAvaliacao> getFacade() {
                return null;
        }

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

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

        @Override
        public void limparEntidade() {
                setEntidade(null);
        }
       
        @Override
        public RevisaoAvaliacao getEntidade() {
                if(VerificadorUtil.estaNulo(entidade)){
                        entidade = new RevisaoAvaliacao();
                }
                return entidade;
        }

        @Override
        public GenericConsultaDemanda<RevisaoAvaliacao> getLazy() {
                return null;
        }
       
        public RevisaoAvaliacaoNaoRespondidaConsultaDemanda getConsultaRevisaoLazy() {
                return consultaRevisaoLazy;
        }
       
        @Override
        public void prepararConsultaPorDemanda() {
                getParametrosConsultaRevisaoLazy().setCronograma(getCronogramaCorrente());
                getParametrosConsultaRevisaoLazy().setUsuario(getUsuarioLogado());
                getConsultaRevisaoLazy().setarParametrosConsulta(getParametrosConsultaRevisaoLazy());
        }
       
        public void selecionarRevisaoAvaliacao(RevisaoAvaliacaoDTO revisaoAvaliacao) {
                entidade = avaliacaoFacade.consultarRevisaoAvaliacaoPorSequencial(revisaoAvaliacao.getSequencial());
        }

        public Cronograma getCronogramaCorrente() {
                return cronogramaCorrente;
        }
       
        public ParametrosConsultarRevisaoAvaliacaoNaoRespondida getParametrosConsultaRevisaoLazy() {
                if(VerificadorUtil.estaNulo(parametrosConsultaRevisaoLazy)){
                        parametrosConsultaRevisaoLazy = new ParametrosConsultarRevisaoAvaliacaoNaoRespondida();
                }
                return parametrosConsultaRevisaoLazy;
        }
       
        public String descricaoAvaliacao(RevisaoAvaliacao revisaoAvaliacao) {
                return revisaoAvaliacao.getSequencial() != null ? TipoAvaliacao.parse(revisaoAvaliacao.getTipoAvaliacao()).getDescricao() : null;
        }
       
        public String descricaoRevisao(RevisaoAvaliacao revisaoAvaliacao) {
                return revisaoAvaliacao.getSequencial() != null ? TipoRevisao.parse(revisaoAvaliacao.getTipoRevisao()).getDescricao() : null;
        }
       
        public void responderSolicitacaoRevisao(RevisaoAvaliacao entidade) {
                avaliacaoFacade.responderSolicitacaoRevisao(entidade);
                LancadorMensagem.lancarSucessoRedirecionandoTela(ConstantesWebHelper.Mensagem.REGISTRO_CADASTRADO_COM_SUCESSO, "/paginas/revisoes.xhtml");
        }
       
        private UsuarioView getUsuarioLogado() {
                UsuarioView usuario = (UsuarioView) getUsuario().getPrincipal();
                return usuario;
        }
       
}