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