Merge pull request 'Se agrega funcionalidad básica de generación de Lista de Pasajeros#AL-4552' (!770) from AL-4552 into master

Reviewed-on: adm/VentaBoletosAdm#770
Reviewed-by: fabio <fabio.faria@rjconsultores.com.br>
master 1.152.10
fernando.mx 2024-10-09 16:41:22 +00:00
commit 2ca889c53c
3 changed files with 116 additions and 2 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId>
<version>1.152.9</version>
<version>1.152.10</version>
<packaging>war</packaging>
<properties>

View File

@ -1,18 +1,38 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.expressos;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.util.media.AMedia;
import org.zkoss.util.media.Media;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Filedownload;
import org.zkoss.zhtml.Fileupload;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Paging;
import com.rjconsultores.ventaboletos.dao.InformeVentasPuntoVentaDAO;
import com.rjconsultores.ventaboletos.dao.SolicitudExpresosDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.SolicitudExpreso;
import com.rjconsultores.ventaboletos.service.EmpresaService;
@ -24,6 +44,18 @@ import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderDocumentosExpresos;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderExpresosPorCotizar;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.HtmlExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.export.SimpleExporterInput;
@Controller("documentosExpresosController")
@Scope("prototype")
public class DocumentosExpresosController extends MyGenericForwardComposer{
@ -35,6 +67,12 @@ public class DocumentosExpresosController extends MyGenericForwardComposer{
@Autowired
private EmpresaService empresaService;
@Autowired
private DataSource dataSource;
@Autowired
private SolicitudExpresosDAO solicitudExpresosDAO;
private List<Empresa> lsEmpresa;
private Combobox cmbEmpresa;
private MyListbox expresosList;
@ -51,7 +89,47 @@ public class DocumentosExpresosController extends MyGenericForwardComposer{
lsEmpresa = empresaService.obtenerTodos();
super.doAfterCompose(comp);
expresosList.setItemRenderer(new RenderDocumentosExpresos(this));
expresosList.setItemRenderer(new RenderDocumentosExpresos(this, new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
expreso = (SolicitudExpreso)arg0.getTarget().getAttribute("data");
byte[] response = null;
List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>();
Connection conn = dataSource.getConnection();
String sql = "select * from expreso_pasajero where solicitudexpreso_id = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, expreso.getSolicitudExpresoId().intValue());
ResultSet rset = stmt.executeQuery();
JRDataSource jrDataSource = new JRResultSetDataSource(rset);
HashMap<String, Object> parametros = new HashMap<String, Object>();
parametros.put("usuario", "FAAU");
InputStream is = desktop.getWebApp().getResourceAsStream(
"/gui/expressos/listaPasajerosExpreso.jrxml");
JasperReport jr = JasperCompileManager.compileReport(is);
JasperPrint jasperPrint = JasperFillManager.fillReport(jr, parametros, jrDataSource);
jasperPrintList.add(jasperPrint);
JRPdfExporter exporter = new JRPdfExporter();
ByteArrayOutputStream out = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
exporter.exportReport();
response = out.toByteArray();
AMedia amedia = new AMedia("LISTA DE PASAJEROS - EXPRESO " + expreso.getStatusSolicitudExpresoId() + ".pdf", "pdf", null, response);
org.zkoss.util.media.Media pdf = amedia;
Filedownload.save(pdf);
}
}));
refreshLista();
}

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="listaPasajerosExpreso" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="8fcc3fc4-85f9-42a6-b331-6d1a55d24c2d">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="DESCNOMBRE" class="java.lang.String"/>
<field name="DESCAPELLIDOS" class="java.lang.String"/>
<title>
<band height="43" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="802" height="20"/>
<textElement textAlignment="Center">
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[LISTA DE PASAJEROS]]></text>
</staticText>
</band>
</title>
<detail>
<band height="21" splitType="Stretch">
<textField>
<reportElement uuid="297f8125-1310-46fd-beba-fd8ea22af291" x="0" y="0" width="48" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{DESCNOMBRE}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="0474c8e5-db4d-474c-9546-22ace8e02666" x="61" y="0" width="168" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{DESCAPELLIDOS}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>