package br.com.ec.controller;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.AvaliacaoDTO;
import br.com.ec.domain.dto.VigenciaDTO;
import br.com.ec.domain.model.Avaliacao;
import br.com.ec.domain.service.AvaliacaoService;
import br.com.ec.domain.service.VigenciaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
import br.com.ec.web.util.TipoOperacao;
@Named
@Scope
("view")
public class MetasAvaliacoesBean
extends AbstractBean
<Avaliacao
> implements Serializable {
private static final long serialVersionUID = 1L
;
private VigenciaDTO vigenciaSelecionada
;
private AvaliacaoDTO avaliacaoSelecionada
;
private VigenciaService vigenciaService
;
private AvaliacaoService avaliacaoService
;
@Inject
public MetasAvaliacoesBean
(VigenciaService vigenciaService, AvaliacaoService avaliacaoService
) {
this.
vigenciaService = vigenciaService
;
this.
avaliacaoService = avaliacaoService
;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
}
@PostConstruct
private void posCarregamento
() {
if (VerificadorUtil.
estaNulo(vigenciaSelecionada
)) {
if (VerificadorUtil.
naoEstaNulo(getParametro
("vigencia"))) {
setVigenciaSelecionada
(vigenciaService.
consultarVigencia(new Long(getParametro
("vigencia").
toString())));
}
}
AvaliacaoDTO avaliacaoDTO = avaliacaoService.
consultarAvaliacao(getVigenciaSelecionada
().
getSequencial());
if (VerificadorUtil.
naoEstaNulo(avaliacaoDTO
)) {
VigenciaDTO vigenciaDetalhada = vigenciaService.
consultarVigencia(avaliacaoDTO.
getVigenciaDTO().
getSequencial());
setVigenciaSelecionada
(vigenciaDetalhada
);
// DETALHAR AVALIAÇÃO COMPLETA
AvaliacaoDTO avaliacaoDetalhada = avaliacaoService.
consultarAvaliacaoCompleta(avaliacaoDTO.
getSequencial());
setAvaliacaoSelecionada
(avaliacaoDetalhada
);
}
}
@
Override
public void limparEntidade
() {
setEntidade
(new Avaliacao
());
}
@
Override
public GenericService
<Avaliacao
> getService
() {
return avaliacaoService
;
}
@
Override
public Avaliacao getEntidade
() {
return entidade
;
}
@
Override
public void preConsultar
() {
setTipoOperacao
(TipoOperacao.
CONSULTAR);
}
@
Override
public Avaliacao getId
() {
return getEntidade
();
}
public VigenciaDTO getVigenciaSelecionada
() {
return vigenciaSelecionada
;
}
public void setVigenciaSelecionada
(VigenciaDTO vigenciaSelecionada
) {
this.
vigenciaSelecionada = vigenciaSelecionada
;
}
public AvaliacaoDTO getAvaliacaoSelecionada
() {
return avaliacaoSelecionada
;
}
public void setAvaliacaoSelecionada
(AvaliacaoDTO avaliacaoSelecionada
) {
this.
avaliacaoSelecionada = avaliacaoSelecionada
;
}
/***************************************************************/
public void redirecionarGestaoMensal
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
try {
LancadorMensagem.
redirecionarTela("/sistema/gestao_mensal/gestao_mensal.xhtml");
} catch (IOException e
) {
e.
printStackTrace();
}
}
});
}
}