/* * This file is part of SGEA - Sistema de Gestão de Eventos Acadêmicos - TADS IFNMG Campus Januária. * * SGEA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SGEA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SGEA. If not, see <http://www.gnu.org/licenses/>. */ package br.edu.ifnmg.GerenciamentoEventos.Apresentacao; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.AtividadeCSVExporter; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.CSVExporter; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.ControllerBase; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.InscricaoItemRespostaCSVExporter; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.InscricaoRespostaCSVExporter; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.PessoaCSVExporter; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Atividade; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.AtividadeTipo; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Evento; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Inscricao; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.InscricaoItem; import br.edu.ifnmg.DomainModel.Pessoa; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.SubmissaoCSVExporter; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.InscricaoStatus; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.InscricaoTipo; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.PessoaComparator; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.AtividadeRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.EventoRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.PessoaRepositorioLocal; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.SubmissaoRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Submissao; import java.io.IOException; import javax.inject.Named; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; /** * * @author petronio */ @Named(value = "csvExporterController") @RequestScoped public class csvExporterController extends ControllerBase implements Serializable { /** * Creates a new instance of FuncionarioBean */ public csvExporterController() { } @EJB EventoRepositorio dao; @EJB AtividadeRepositorio daoA; @EJB InscricaoRepositorio daoI; @EJB PessoaRepositorioLocal daoP; @EJB SubmissaoRepositorio daoS; Evento padrao; Atividade atividade; AtividadeTipo tipo; InscricaoStatus inscricaoStatus; public Evento getPadrao() { return padrao; } public void setPadrao(Evento padrao) { this.padrao = padrao; } public Atividade getAtividade() { return atividade; } public void setAtividade(Atividade atividade) { this.atividade = atividade; } public void exportaAtividade() { ServletOutputStream servletOutputStream = null; InscricaoItem tmp = new InscricaoItem(); CSVExporter csv = new InscricaoItemRespostaCSVExporter(); tmp.setAtividade(atividade); List<InscricaoItem> dados = daoI.Buscar(tmp); try { String arq = atividade.getNome().replace(" ", "").replace("/", "").replace("(", "").replace(")", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(dados)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public void exportaEvento() { ServletOutputStream servletOutputStream = null; Inscricao tmp = new Inscricao(); tmp.setStatus(null); CSVExporter csv = new InscricaoRespostaCSVExporter(); tmp.setEvento(padrao); List<Inscricao> dados = daoI.Buscar(tmp); try { String arq = padrao.getNome().replace(" ", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(dados)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public void exportaPessoasEvento() { ServletOutputStream servletOutputStream = null; CSVExporter csv = new PessoaCSVExporter(); List<Inscricao> insc = daoI.IgualA("evento", padrao) .IgualA("tipo", InscricaoTipo.Inscricao) .IgualA("status", getInscricaoStatus()) .Buscar(); List<Pessoa> tmp = new ArrayList<>(); for (Inscricao i : insc) { tmp.add(i.getPessoa()); } Collections.sort(tmp, new PessoaComparator()); try { String arq = padrao.getNome().replace(" ", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(tmp)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public void exportaPessoasAtividade() { ServletOutputStream servletOutputStream = null; CSVExporter csv = new PessoaCSVExporter(); List<Pessoa> dados = daoP.Buscar(atividade); try { String arq = atividade.getNome().replace(" ", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(dados)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public void exportaAtividades() { ServletOutputStream servletOutputStream = null; CSVExporter csv = new AtividadeCSVExporter(); List<Atividade> dados = daoA.IgualA("evento", padrao).IgualA("tipo", tipo).Buscar(); try { String arq = padrao.getNome().replace(" ", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(dados)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public void exportaSubmissoes() { ServletOutputStream servletOutputStream = null; CSVExporter csv = new SubmissaoCSVExporter(); List<Submissao> dados = daoS.Join("inscricao", "i").IgualA("i.evento", padrao).Buscar(); try { String arq = "Submissoes" + padrao.getNome().replace(" ", ""); HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + arq + ".csv"); servletOutputStream = httpServletResponse.getOutputStream(); servletOutputStream.print(csv.gerarCSV(dados)); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } finally { try { servletOutputStream.close(); } catch (IOException ex) { Logger.getLogger(csvExporterController.class.getName()).log(Level.SEVERE, null, ex); } } } public InscricaoStatus getInscricaoStatus() { return inscricaoStatus; } public void setInscricaoStatus(InscricaoStatus inscricaoStatus) { this.inscricaoStatus = inscricaoStatus; } public AtividadeTipo getTipo() { return tipo; } public void setTipo(AtividadeTipo tipo) { this.tipo = tipo; } }