com.sisrni.managedbean.ProyectoReportMB.java Source code

Java tutorial

Introduction

Here is the source code for com.sisrni.managedbean.ProyectoReportMB.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.sisrni.managedbean;

import com.sisrni.jasper.Reporte;
import com.sisrni.model.Facultad;
import com.sisrni.model.Organismo;
import com.sisrni.model.PersonaProyecto;
import com.sisrni.model.Proyecto;
import com.sisrni.pojo.rpt.RptProyectoPojo;
import com.sisrni.pojo.rpt.RptProyectosFinanciadosPojo;
import com.sisrni.pojo.rpt.RptProyectosPorPaisPojo;
import com.sisrni.service.PersonaService;
import com.sisrni.service.ProyectoService;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.primefaces.context.RequestContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.web.context.WebApplicationContext;

/**
 *
 * @author Lillian
 */
@Named("proyectoReportMB")
@Scope(WebApplicationContext.SCOPE_SESSION)
public class ProyectoReportMB {

    private String reportName;
    @Autowired
    ProyectoService proyectoService;
    @Autowired
    PersonaService personaService;

    private static final String tipoPersona = "REFERENTE EXTERNO";
    private String anioDesde;
    private String anioHasta;
    private int yearActual;

    @PostConstruct
    public void init() {
        yearActual = getYearOfDate(new Date());
    }

    public void llenarReporte(String formato) {
        List<RptProyectoPojo> list = new ArrayList<RptProyectoPojo>();
        Integer desdeYear = Integer.parseInt(anioDesde.trim());
        Integer hastaYear = Integer.parseInt(anioHasta.trim());
        List<Proyecto> comparativoReparacionesDos = proyectoService.getProyectosDesdeHasta(desdeYear, hastaYear);
        RptProyectoPojo prueba = new RptProyectoPojo();

        for (Proyecto item : comparativoReparacionesDos) {
            prueba = new RptProyectoPojo();
            prueba.setNombre(item.getNombreProyecto());
            prueba.setObjetivo(item.getObjetivo());
            prueba.setAnioGestion(item.getAnioGestion());
            prueba.setOrgamismo(obtenerOrganismos(item.getOrganismoList()));
            prueba.setPaisCooperante(item.getIdPaisCooperante().getNombrePais());
            prueba.setContraparteExterna(obtenerPersonaExterna(item.getPersonaProyectoList(), tipoPersona));
            prueba.setBeneficiadoUES(obtenerFacultades(item.getFacultadList()));
            prueba.setMonto(item.getMontoProyecto());
            list.add(prueba);
        }

        print(list, formato);
    }

    public String obtenerOrganismos(List<Organismo> listOrganismos) {
        List<String> nombreOrganismo = new ArrayList<String>();
        for (Organismo organismo : listOrganismos) {
            nombreOrganismo.add(organismo.getNombreOrganismo());
        }
        return String.join(",", nombreOrganismo);
    }

    public String obtenerPersonaExterna(List<PersonaProyecto> listPersonas, String tipoPersona) {
        String nombrecompleto = "";
        for (PersonaProyecto personaExterna : listPersonas) {
            if (personaExterna.getIdTipoPersona().getNombreTipoPersona().equalsIgnoreCase(tipoPersona)) {
                nombrecompleto = personaExterna.getPersona().getNombrePersona() + " "
                        + personaExterna.getPersona().getApellidoPersona();
            }
        }
        return nombrecompleto;
    }

    public String obtenerFacultades(List<Facultad> listFacultades) {
        List<String> nombreFacultad = new ArrayList<String>();
        for (Facultad facultad : listFacultades) {
            nombreFacultad.add(facultad.getNombreFacultad());
        }
        return String.join(",", nombreFacultad);
    }

    public void print(List<RptProyectoPojo> list, String formato) {
        try {
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest) context.getRequest();
            HttpServletResponse response = (HttpServletResponse) context.getResponse();
            Reporte reporte = new Reporte("proyectos", "rpt_proyectos_gestionados", request);
            reporte.setDataSource(new JRBeanCollectionDataSource(new HashSet<RptProyectoPojo>(list)));
            reporte.addParameter("uesImageUrl", getBaseDir("ues.png"));
            reporte.addParameter("srniImageUrl", getBaseDir("srni.jpg"));
            reporte.addParameter("Desde", anioDesde.trim());
            reporte.addParameter("Hasta", anioHasta.trim());
            if (!formato.equalsIgnoreCase("pdf")) {
                reporte.setTipoMime(formato);
            }
            reporte.setReportInSession(request, response);
            reportName = reporte.getNombreLogico();
            RequestContext.getCurrentInstance().addCallbackParam("reportName", reportName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void printReportesFinanciados(String formato) {
        try {
            Integer desdeYear = Integer.parseInt(anioDesde.trim());
            Integer hastaYear = Integer.parseInt(anioHasta.trim());
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest) context.getRequest();
            HttpServletResponse response = (HttpServletResponse) context.getResponse();
            Reporte reporte = new Reporte("proyectos", "rpt_proyectos_gestionados_por_anio", request);
            List<RptProyectosFinanciadosPojo> dataProyectosFinanciadosReportes = proyectoService
                    .getDataProyectosFinanciadosReportes(desdeYear, hastaYear);
            reporte.setDataSource(new JRBeanCollectionDataSource(
                    new HashSet<RptProyectosFinanciadosPojo>(dataProyectosFinanciadosReportes)));
            reporte.addParameter("uesImageUrl", getBaseDir("ues.png"));
            reporte.addParameter("srniImageUrl", getBaseDir("srni.jpg"));
            reporte.addParameter("desde", anioDesde.trim());
            reporte.addParameter("hasta", anioHasta.trim());
            //reporte.addParameter("ItemDataSource", new JRBeanCollectionDataSource(new HashSet<BecasGestionadasPojo>(dataBecasGestionadasReportes)));
            if (!formato.equalsIgnoreCase("pdf")) {
                reporte.setTipoMime(formato);
            }
            reporte.setReportInSession(request, response);
            reportName = reporte.getNombreLogico();
            RequestContext.getCurrentInstance().addCallbackParam("reportName", reportName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void printReportesProyectosPais(String formato) {
        try {
            Integer desdeYear = Integer.parseInt(anioDesde.trim());
            Integer hastaYear = Integer.parseInt(anioHasta.trim());
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest) context.getRequest();
            HttpServletResponse response = (HttpServletResponse) context.getResponse();
            Reporte reporte = new Reporte("proyectos", "rpt_proyectos_gestionados_por_pais", request);
            List<RptProyectosPorPaisPojo> dataProyectosPorPais = proyectoService.getDataProyectosPorPais(desdeYear,
                    hastaYear);
            reporte.setDataSource(
                    new JRBeanCollectionDataSource(new HashSet<RptProyectosPorPaisPojo>(dataProyectosPorPais)));
            reporte.addParameter("uesImageUrl", getBaseDir("ues.png"));
            reporte.addParameter("srniImageUrl", getBaseDir("srni.jpg"));
            reporte.addParameter("desde", anioDesde.trim());
            reporte.addParameter("hasta", anioHasta.trim());
            //reporte.addParameter("ItemDataSource", new JRBeanCollectionDataSource(new HashSet<BecasGestionadasPojo>(dataBecasGestionadasReportes)));
            if (!formato.equalsIgnoreCase("pdf")) {
                reporte.setTipoMime(formato);
            }
            reporte.setReportInSession(request, response);
            reportName = reporte.getNombreLogico();
            RequestContext.getCurrentInstance().addCallbackParam("reportName", reportName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void printReportesProyectosTotales(String formato) {
        try {
            Integer desdeYear = Integer.parseInt(anioDesde.trim());
            Integer hastaYear = Integer.parseInt(anioHasta.trim());
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest) context.getRequest();
            HttpServletResponse response = (HttpServletResponse) context.getResponse();
            Reporte reporte = new Reporte("proyectos", "rpt_proyectos_totales", request);
            List<RptProyectosFinanciadosPojo> dataProyectosTotales = proyectoService
                    .getDataProyectosTotales(desdeYear, hastaYear);
            reporte.setDataSource(
                    new JRBeanCollectionDataSource(new HashSet<RptProyectosFinanciadosPojo>(dataProyectosTotales)));
            reporte.addParameter("uesImageUrl", getBaseDir("ues.png"));
            reporte.addParameter("srniImageUrl", getBaseDir("srni.jpg"));
            reporte.addParameter("desde", anioDesde.trim());
            reporte.addParameter("hasta", anioHasta.trim());
            //reporte.addParameter("ItemDataSource", new JRBeanCollectionDataSource(new HashSet<BecasGestionadasPojo>(dataBecasGestionadasReportes)));
            if (!formato.equalsIgnoreCase("pdf")) {
                reporte.setTipoMime(formato);
            }
            reporte.setReportInSession(request, response);
            reportName = reporte.getNombreLogico();
            RequestContext.getCurrentInstance().addCallbackParam("reportName", reportName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public String getBaseDir(String imagen) {
        String baseDir = "/img/" + imagen;
        try {
            return FacesContext.getCurrentInstance().getExternalContext().getResource(baseDir).getPath();
        } catch (MalformedURLException mue) {

            return null;
        }
    }

    private Integer getYearOfDate(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        Integer year = cal.get(Calendar.YEAR);
        return year;
    }

    public String getReportName() {
        return reportName;
    }

    public void setReportName(String reportName) {
        this.reportName = reportName;
    }

    public String getAnioDesde() {
        return anioDesde;
    }

    public void setAnioDesde(String anioDesde) {
        this.anioDesde = anioDesde;
    }

    public String getAnioHasta() {
        return anioHasta;
    }

    public void setAnioHasta(String anioHasta) {
        this.anioHasta = anioHasta;
    }

    public int getYearActual() {
        return yearActual;
    }

    public void setYearActual(int yearActual) {
        this.yearActual = yearActual;
    }

}