Subversion Repositories Integrator Subversion

Rev

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

package br.edu.cesmac.sic.controller.beans;

import java.io.Serializable;

import javax.inject.Inject;
import javax.inject.Named;

import org.primefaces.model.StreamedContent;
import org.springframework.context.annotation.Scope;

import br.edu.cesmac.relatorio.util.RelatorioUtils;
import br.edu.cesmac.sic.core.domain.model.ProjetoPesquisa;
import br.edu.cesmac.sic.core.domain.model.dto.FiltroRelatorioProcessoSeletivo;
import br.edu.cesmac.sic.core.domain.model.dto.FiltroRelatorioProjetoPesquisa;
import br.edu.cesmac.sic.core.domain.model.dto.RelatorioAvaliacaoDTO;
import br.edu.cesmac.sic.core.domain.model.tipo.TipoRelatorioSistema;
import br.edu.cesmac.sic.core.domain.service.EmissorRelatorioService;
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
import net.sf.jasperreports.engine.JasperPrint;

@Named
@Scope("view")
public class RelatorioBean implements Serializable {

        private static final long serialVersionUID = 1L;

        private EmissorRelatorioService emissorRelatorioService;
       
        private FiltroRelatorioProcessoSeletivo filtroRelatorioProcessoSeletivo = new FiltroRelatorioProcessoSeletivo();
       
        private FiltroRelatorioProjetoPesquisa filtroRelatorioProjetoPesquisa = new FiltroRelatorioProjetoPesquisa();
       
        private RelatorioAvaliacaoDTO relatorioAvaliacaoDTO;

        @Inject
        public RelatorioBean(EmissorRelatorioService emissorRelatorioService) {
                this.emissorRelatorioService = emissorRelatorioService;
        }
       
        public FiltroRelatorioProcessoSeletivo getFiltroRelatorioProcessoSeletivo() {
                return filtroRelatorioProcessoSeletivo;
        }
        public void setFiltroRelatorioProcessoSeletivo(FiltroRelatorioProcessoSeletivo filtroRelatorioProcessoSeletivo) {
                this.filtroRelatorioProcessoSeletivo = filtroRelatorioProcessoSeletivo;
        }
       
        public TipoRelatorioSistema[] getTiposRelatorioSistema() {
                return TipoRelatorioSistema.values();
        }
       
        public FiltroRelatorioProjetoPesquisa getFiltroRelatorioProjetoPesquisa() {
                return filtroRelatorioProjetoPesquisa;
        }
       
        public void setFiltroRelatorioProjetoPesquisa(FiltroRelatorioProjetoPesquisa filtroRelatorioProjetoPesquisa) {
                this.filtroRelatorioProjetoPesquisa = filtroRelatorioProjetoPesquisa;
        }
       
        public RelatorioAvaliacaoDTO getRelatorioAvaliacaoDTO() {
                return relatorioAvaliacaoDTO;
        }
        public void setRelatorioAvaliacaoDTO(RelatorioAvaliacaoDTO relatorioAvaliacaoDTO) {
                this.relatorioAvaliacaoDTO = relatorioAvaliacaoDTO;
        }
       
        public StreamedContent emitirRelatorioProcessoSeletivo() {
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
                        @Override
                        public StreamedContent execute() {
                                JasperPrint relatorio = emissorRelatorioService.emitirRelatorioProcessoSeletivo(filtroRelatorioProcessoSeletivo);
                                return RelatorioUtils.gerarPdf(relatorio, relatorio.getName());
                        }
                });
        }
       
        public StreamedContent emitirAvaliacoesDoProjetoPesquisa(final ProjetoPesquisa projetoPesquisa) {
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
                        @Override
                        public StreamedContent execute() {
                                getFiltroRelatorioProjetoPesquisa().setProjetoPesquisa(projetoPesquisa);
                                getFiltroRelatorioProjetoPesquisa().setTipoRelatorio(TipoRelatorioSistema.AVALIACAO);
                               
//                              Avaliacao avaliacao = new Avaliacao();
//                              AvaliacaoId avaliacaoId = new AvaliacaoId();
//                              avaliacaoId.setSequencialAvaliador(new Long(1));
//                              avaliacao.setAvaliacaoId(avaliacaoId);
//                              avaliacao.setIndicadorTecnicoCientificoRelevante(false);
//                              getFiltroRelatorioProjetoPesquisa().getAvaliacoes().add(avaliacao);
                                JasperPrint relatorio = emissorRelatorioService.emitirAvaliacoesDoProjetoPesquisa(getFiltroRelatorioProjetoPesquisa());
                                return RelatorioUtils.gerarPdf(relatorio, relatorio.getName());
                        }
                });
        }

}