diff --git a/pom.xml b/pom.xml index 5733c4bf1..7173d9628 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.158.1 + 1.159.0 war 1.119.0 - 1.100.1 + 1.101.0 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java new file mode 100644 index 000000000..04cd0b394 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java @@ -0,0 +1,234 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioMovimentoMensalPassageiroCeturb extends Relatorio { + + public RelatorioMovimentoMensalPassageiroCeturb(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + @SuppressWarnings("rawtypes") + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + String dataDe = (String) parametros.get("DATA_DE"), dataAte = (String) parametros.get("DATA_ATE"), linhasIds = null; + Boolean isLinhas = false; + Integer empresaId = null; + List> dadosOrdenados = new ArrayList>(); + + if (parametros.get("LINHAS") != null) { + linhasIds = (String) parametros.get("LINHAS"); + isLinhas = true; + } + if (parametros.get("EMPRESA_IDS") != null) { + empresaId = Integer.parseInt((String) parametros.get("EMPRESA_IDS")); + } + String sql = getSql(isLinhas); + + NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString()); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + ps.setInt("empresa_id", empresaId); + if (isLinhas) { + ps.setString("linhas_id", linhasIds); + } + ps.setTimestamp("dataIni", new java.sql.Timestamp(sdf.parse(dataDe).getTime())); + ps.setTimestamp("dataFim", new java.sql.Timestamp(sdf.parse(dataAte).getTime())); + ResultSet rset = ps.executeQuery(); + BigDecimal valorTotalKMLinha = BigDecimal.ZERO; + long qtdViagens = 0; + + + while (rset.next()) { + boolean agrupar = false; + Map dataResult = new HashMap(); + + dataResult.put("tarifa", rset.getBigDecimal("tarifa")); + dataResult.put("origem", rset.getString("origem")); + dataResult.put("destino", rset.getString("destino")); + dataResult.put("km", rset.getFloat("km")); + dataResult.put("totalida", rset.getLong("totalida")); + dataResult.put("totalvolta", rset.getLong("totalvolta")); + dataResult.put("totalReceita", rset.getBigDecimal("totalReceita")); + dataResult.put("numRuta", rset.getString("numRuta")); + qtdViagens = qtdViagens + (Long)dataResult.get("totalida") + (Long)dataResult.get("totalvolta"); + + for (Iterator iterator = dadosOrdenados.iterator(); iterator.hasNext();) { + + @SuppressWarnings("unchecked") + Map map = (Map) iterator.next(); + String origem = map.get("origem").toString(); + String destino = map.get("destino").toString(); + String numRuta = map.get("numRuta").toString(); + BigDecimal tarifa = (BigDecimal) map.get("tarifa"); + + Long ida = (Long) map.get("totalida"); + Long volta = (Long) map.get("totalvolta"); + BigDecimal total = (BigDecimal) map.get("totalReceita"); + + if (origem.equals(rset.getString("destino")) + && destino.equals(rset.getString("origem")) + && numRuta.equals(rset.getString("numRuta")) && (tarifa != null && MoneyHelper.isIgual(tarifa, rset.getBigDecimal("tarifa")))) { + agrupar = true; + if (ida == 0) { + map.put("totalida", rset.getLong("totalida")); + total = total.add(limpaNulo(rset.getBigDecimal("totalReceita"))); + map.put("totalReceita", total); + } + else { + map.put("totalvolta", rset.getLong("totalvolta") + volta); + total = total.add(limpaNulo(rset.getBigDecimal("totalReceita"))); + map.put("totalReceita", total); + } + + } + } + + if (!agrupar) { + dadosOrdenados.add(dataResult); + } + valorTotalKMLinha = valorTotalKMLinha.add(limpaNulo(rset.getBigDecimal("km"))); + } + parametros.put("KM_TOTAL", valorTotalKMLinha); + parametros.put("QTD_VIAGENS", qtdViagens); + this.dados.addAll(ordenaListMap(dadosOrdenados)); + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Boolean linhasIds) { + StringBuilder sql = new StringBuilder(); + + sql.append(" SELECT DISTINCT "); + sql.append(" sum(b.preciopagado + b.importepedagio) AS totalReceita, "); + sql.append(" tar.precio AS tarifa, "); + sql.append(" e.nombempresa AS empresa, "); + sql.append(" r.descruta AS linha, "); + sql.append(" r.NUMRUTA, "); + sql.append(" ori.descparada AS origem, "); + sql.append(" des.descparada AS destino, "); + sql.append(" MAX(tr.CANTKMREAL) AS km, "); + sql.append(" COUNT( DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 1) THEN b.boleto_id "); + sql.append(" ELSE NULL "); + sql.append(" END "); + sql.append(" ) AS totalida, "); + sql.append(" COUNT( DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 0) THEN b.boleto_id "); + sql.append(" ELSE NULL "); + sql.append(" END "); + sql.append(" ) AS totalvolta, "); + sql.append(" rc.rutacombinacion_id AS rutaCombinacionId, "); + sql.append(" tri.numsecuencia, "); + sql.append(" r.indsentidoida "); + + sql.append(" FROM "); + sql.append(" boleto b "); + sql.append(" JOIN empresa e ON ( e.empresa_id = b.empresacorrida_id ) "); + sql.append(" JOIN marca m ON ( m.empresa_id = b.empresacorrida_id ) "); + sql.append(" JOIN categoria ca ON ( b.categoria_id = ca.categoria_id ) "); + sql.append(" JOIN parada ori ON ( ori.parada_id = b.origen_id ) "); + sql.append(" JOIN parada des ON ( des.parada_id = b.destino_id ) "); + sql.append(" JOIN ruta r ON (r.ruta_id = b.ruta_id ) "); + sql.append(" JOIN RUTA_COMBINACION rc ON ( rc.ruta_id = r.ruta_id and rc.activo = 1 ) "); + sql.append(" INNER JOIN tramo tr ON ( tr.TRAMO_ID = rc.TRAMO_ID "); + sql.append(" AND tr.ORIGEN_ID = ori.PARADA_ID "); + sql.append(" AND tr.DESTINO_ID = des.PARADA_ID "); + sql.append(" AND tr.ACTIVO = 1 ) "); + sql.append(" JOIN clase_servicio cs ON ( b.claseservicio_id = cs.claseservicio_id ) "); + sql.append(" INNER JOIN vigencia_tarifa vt ON ( b.fechorventa BETWEEN vt.feciniciovigencia "); + sql.append(" AND vt.fecfinvigencia "); + sql.append(" AND vt.activo = 1 ) "); + sql.append(" INNER JOIN tarifa tar ON ( tar.ruta_id = b.ruta_id "); + sql.append(" AND tar.marca_id = m.marca_id "); + sql.append(" AND tar.claseservicio_id = b.claseservicio_id "); + sql.append(" AND tar.vigenciatarifa_id = vt.vigenciatarifa_id "); + sql.append(" AND tar.origen_id = b.origen_id "); + sql.append(" AND tar.destino_id = b.destino_id "); + sql.append(" AND tar.TRAMO_ID = tr.TRAMO_ID "); + sql.append(" AND tar.activo = 1 ) "); + sql.append(" LEFT JOIN corrida_tramo tri ON ( b.corrida_id = tri.corrida_id "); + sql.append(" AND tri.origen_id = b.origen_id "); + sql.append(" AND b.feccorrida = tri.feccorrida "); + sql.append(" AND tri.activo = 1 ) "); + + sql.append(" WHERE b.empresacorrida_id IN :empresa_id "); + + sql.append(" AND b.motivocancelacion_id is null "); + + if (linhasIds) { + sql.append(" AND r.NUMRUTA = :linhas_id "); + } + + sql.append(" AND b.feccorrida BETWEEN :dataIni AND :dataFim "); + + sql.append(" GROUP BY "); + sql.append(" tar.precio, "); + sql.append(" e.nombempresa, "); + sql.append(" r.descruta, "); + sql.append(" r.numruta, "); + sql.append(" ori.descparada, "); + sql.append(" des.descparada, "); + sql.append(" rc.rutacombinacion_id, "); + sql.append(" tri.numsecuencia,"); + sql.append(" r.indsentidoida "); + sql.append(" ORDER BY "); + sql.append(" r.indsentidoida DESC, "); + sql.append(" tri.numsecuencia, "); + sql.append(" r.descruta, "); + sql.append(" rc.rutacombinacion_id "); + + return sql.toString(); + } + + public List> ordenaListMap(List> dadosOrdenados) { + + List> semelhancas = new ArrayList>(); + for ( Map p : dadosOrdenados ) { + String origem = p.get("origem").toString(); + + for (Map dado : dadosOrdenados) { + @SuppressWarnings("unchecked") + Map map = (Map) dado; + + if (origem.equals(map.get("origem").toString()) && !semelhancas.contains(map) ) { + semelhancas.add(map); + } + + } + + } + return semelhancas; + } + + private BigDecimal limpaNulo( BigDecimal val ) { + if( val == null ) { + return BigDecimal.ZERO; + }else { + return val; + } + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties new file mode 100644 index 000000000..125edd53a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties @@ -0,0 +1,4 @@ +#geral +msg.noData=No se pudo obtener datos con los parámetros reportados. +msg.a=a +linhas=Linhas \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties new file mode 100644 index 000000000..5c2212a2d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties @@ -0,0 +1,4 @@ +#geral +msg.noData=No se pudo obtener datos con los parametros reportados. +msg.a=a +linhas=Linhas \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper new file mode 100644 index 000000000..dfee9b8b1 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml new file mode 100644 index 000000000..8e0cdab30 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="176" splitType="Stretch"> + <staticText> + <reportElement mode="Transparent" x="0" y="0" width="555" height="41" forecolor="#000000" backcolor="#FFFFFF" uuid="48387206-d35a-46c3-92bc-7337730b5b29"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="16" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[MOVIMENTO MENSAL DE PASSAGEIROS]]></text> + </staticText> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="654" y="0" width="95" height="25" forecolor="#000000" backcolor="#FFFFFF" uuid="08f1d92b-4dee-433a-b066-f1b568988bce"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="555" y="25" width="99" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="98b19fb9-fbbf-4a0d-972d-4984bfba62b0"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA["Página " + $V{PAGE_NUMBER}+ " de " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <line> + <reportElement x="-1" y="48" width="750" height="1" uuid="0ef26664-c3c7-4239-b964-4dd4c07dc70e"/> + </line> + <line> + <reportElement positionType="Float" x="-1" y="160" width="750" height="1" uuid="75af562f-9dac-46dc-8b06-1e50896893d0"/> + </line> + <staticText> + <reportElement x="-1" y="49" width="78" height="22" uuid="8816e3ed-08fc-44c4-9b5c-90065a97ea1f"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Empresa:]]></text> + </staticText> + <textField> + <reportElement x="77" y="49" width="229" height="22" uuid="e4dcbf34-9a95-47d4-9d85-ef9c75ed8270"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="71" width="306" height="20" uuid="bbfa56eb-b0e4-4ce8-95ec-03fa5fecdaa5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA["Período: " + $P{DATA_DE} + " a " + $P{DATA_ATE}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="133" width="50" height="20" uuid="09cdf961-cdc2-4062-94e2-241e21a728b5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Linha:]]></text> + </staticText> + <textField> + <reportElement x="150" y="133" width="405" height="20" uuid="70f366bb-2104-429a-8899-66f853c0f260"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{DESC_LINHAS_SELECIONADAS}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="91" width="77" height="20" uuid="2284285a-4769-4bc9-b48d-ea18d3a2b726"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Tipo de Classe:]]></text> + </staticText> + <staticText> + <reportElement x="0" y="111" width="77" height="20" uuid="251da91e-5f8e-452d-9ed9-4414e4d88cc5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Lugar Ofer:]]></text> + </staticText> + <textField isBlankWhenNull="true"> + <reportElement x="77" y="113" width="478" height="20" uuid="c023bf07-8aa7-4848-a922-a556dd64c576"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{CANTASIENTOS}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement x="50" y="133" width="100" height="20" uuid="379fb4cf-7160-4ed9-b230-c5613786e420"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{LINHAS}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement x="77" y="91" width="478" height="20" uuid="e73e6e9d-1589-46b9-bb5f-29ed3a57755e"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{CLASE_SERVICIO}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="306" y="49" width="108" height="22" uuid="dd6b3fe7-8afe-42ed-b0b0-f6e9a8e7ad2d"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[KM TOTAL:]]></text> + </staticText> + <textField> + <reportElement x="414" y="49" width="141" height="22" uuid="70bea6a5-b7ee-4b75-abec-6ba940a8ae1c"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{KM_TOTAL}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="306" y="69" width="108" height="22" uuid="34731b1b-fd03-450e-9bd1-17d328d65b2b"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Quantidade Viagens: TOTAL:]]></text> + </staticText> + <textField> + <reportElement x="414" y="69" width="141" height="22" uuid="d4d454d7-d5b7-4471-9ec7-7e2e0c3078e4"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{QTD_VIAGENS}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java new file mode 100644 index 000000000..95cfd5827 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java @@ -0,0 +1,188 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioMovimentoMensalPassageiroCeturb; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioQuadroDemonstrativoMovimentoPassageiros; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioMovimentoMensalPassageiroCeturbController") +@Scope("prototype") +public class RelatorioMovimentoMensalPassageiroCeturbController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + @Autowired + private DataSource dataSourceRead; + @Autowired + private EmpresaService empresaService; + @Autowired + private RutaService rutaService; + @Autowired + private OrgaoConcedenteService orgaoConcedenteService; + private List lsEmpresa; + private List lsLinhas; + private Datebox datInicial; + private Datebox datFinal; + + private MyComboboxEstandar cmbLinha; + private Combobox cmbEmpresa; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsLinhas = rutaService.buscarRutasPorEmpresaOrgaoConcedente(null, orgaoConcedenteService.obtenerID(10)); + super.doAfterCompose(comp); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws InterruptedException, Exception { + executarRelatorio(1); + } + public void onClick$btnExecutarRelatorioNovoLayout(Event ev) throws InterruptedException, Exception { + executarRelatorio(2); + } + + private void executarRelatorio(int tipo) throws SQLException, Exception { + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Date dataDe = datInicial.getValue(); + Date dataAte = datFinal.getValue(); + + Map parametros = new HashMap(); + parametros.put("DATA_DE", sdf.format(dataDe)); + parametros.put("DATA_ATE", sdf.format(dataAte)); + + if (cmbLinha.getSelectedItem() != null) { + Ruta ruta = (Ruta) cmbLinha.getSelectedItem().getValue(); + if (!ruta.getRutaId().equals(-1)) { + ruta = ((Ruta) cmbLinha.getSelectedItem().getValue()); + parametros.put("LINHAS", (ruta.getNumRuta())); + parametros.put("DESC_LINHAS_SELECIONADAS", (ruta.getDescruta())); + parametros.put("CANTASIENTOS", (ruta.getCantAsientos() != null ? ruta.getCantAsientos().toString() : "")); + parametros.put("CLASE_SERVICIO", (ruta.getClaseServicio().getDescclase())); + }else { + parametros.put("DESC_LINHAS_SELECIONADAS", "Todas"); + } + } + + Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); + String empresaId; + String empresaDesc = ""; + if (cbiEmpresa != null) { + Empresa empresa = (Empresa) cbiEmpresa.getValue(); + empresaId = empresa.getEmpresaId().toString(); + empresaDesc = empresa.getNombempresa(); + } else { + empresaId = "0"; + for (int i = 0; i < lsEmpresa.size(); i++) { + Empresa empresa = lsEmpresa.get(i); + empresaId = empresaId + "," + empresa.getEmpresaId(); + } + } + parametros.put("EMPRESA", empresaDesc); + parametros.put("EMPRESA_IDS", empresaId); + Relatorio relatorio = null; + Map args = new HashMap(); + + relatorio = new RelatorioMovimentoMensalPassageiroCeturb(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + openWindow("/component/reportView.zul", Labels.getLabel("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"), args, MODAL); + } + + public DataSource getDataSourceRead() { + return dataSourceRead; + } + + public void setDataSourceRead(DataSource dataSourceRead) { + this.dataSourceRead = dataSourceRead; + } + + public EmpresaService getEmpresaService() { + return empresaService; + } + + public void setEmpresaService(EmpresaService empresaService) { + this.empresaService = empresaService; + } + + public RutaService getRutaService() { + return rutaService; + } + + public void setRutaService(RutaService rutaService) { + this.rutaService = rutaService; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public List getLsLinhas() { + return lsLinhas; + } + + public void setLsLinhas(List lsLinhas) { + this.lsLinhas = lsLinhas; + } + + public Datebox getDatInicial() { + return datInicial; + } + + public void setDatInicial(Datebox datInicial) { + this.datInicial = datInicial; + } + + public Datebox getDatFinal() { + return datFinal; + } + + public void setDatFinal(Datebox datFinal) { + this.datFinal = datFinal; + } + + public MyComboboxEstandar getCmbLinha() { + return cmbLinha; + } + + public void setCmbLinha(MyComboboxEstandar cmbLinha) { + this.cmbLinha = cmbLinha; + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java new file mode 100644 index 000000000..c6cc8fa10 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java @@ -0,0 +1,17 @@ + +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.ceturb; + +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class SubMenuRelatorioCeturb extends DefaultItemMenuSistema { + + public SubMenuRelatorioCeturb() { + super("indexController.mniRelatorioCeturb.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS"; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java new file mode 100644 index 000000000..4b04fa3b3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioMovimentoMensalPassageiros extends DefaultItemMenuSistema { + + public ItemMenuRelatorioMovimentoMensalPassageiros() { + super("indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.MOVIMENTOMENSALPASSAGEIROCETURB"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul", + Labels.getLabel("indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label"), getArgs() ,desktop); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index 632259caf..f5c89ceb1 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -282,6 +282,8 @@ analitico.gerenciais.pacote.boletos=com.rjconsultores.ventaboletos.web.utilerias analitico.gerenciais.pacote.detalhado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesDetalhado analitico.gerenciais.pacote.resumido=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesResumido analitico.gerenciais.relatorioRemessaCNAB=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemessaCNAB +analitico.gerenciais.ceturb=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.ceturb.SubMenuRelatorioCeturb +analitico.gerenciais.ceturb.RelatorioMovimentoMensalPassageiros=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMovimentoMensalPassageiros analitico.integracion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.integracion.SubMenuIntegracion analitico.integracion.sisdap=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSisdap analitico.integracion.sie=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSie diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 2940daf92..78a061021 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -8053,6 +8053,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Senior Ticket Sales indexController.mniRelatorioPrecosPraticados.label = Price Report indexController.mniRelatorioPricingEspecifico.label = Specific Pricing Report indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Passenger Movement Demonstration Table +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Monthly Passenger Movement # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Rvhub Recharge indexController.mniRelatorioReceitaDiariaAgencia.label = Daily Revenue per Agency @@ -8127,6 +8128,7 @@ indexController.mniTarifasMinimas.label = Minimum Rates indexController.mniTarifasOficial.label = Official Price / Rate Change indexController.mniTarifasOficialExcel.label = Official Excel Rate indexController.mniTarjetaCredito.label = Credit Card +indexController.mniRelatorioCeturb.label = Report Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contingency indexController.mniTipoCambioCiudad.label = Parity Type diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b9176728d..b789b15ca 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -8060,6 +8060,8 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Reporte Posición d indexController.mniRelatorioPrecosPraticados.label = Relatório de Preços Praticados indexController.mniRelatorioPricingEspecifico.label = Relatório Pricing Específico indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Movimiento mensual de pasajeros + # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recarga Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Ingreso diário por punto de venta @@ -8135,6 +8137,7 @@ indexController.mniTarifasMinimas.label = Tarifas mínimas indexController.mniTarifasOficial.label = Cambio de precio / Tarifa oficial indexController.mniTarifasOficialExcel.label = Tarifa oficial excel indexController.mniTarjetaCredito.label = Tarjeta de crédito +indexController.mniRelatorioCeturb.label = Report Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contigência indexController.mniTipoCambioCiudad.label = Tipo paridad diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label index bc97b06ab..940a1183d 100644 --- a/web/WEB-INF/i3-label_fr_FR.label +++ b/web/WEB-INF/i3-label_fr_FR.label @@ -8052,6 +8052,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Rapport sur la posi indexController.mniRelatorioPrecosPraticados.label = Rapport de prix indexController.mniRelatorioPricingEspecifico.label = Rapport de tarification spécifique indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Tableau de démonstration des mouvements des passagers +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Mouvement mensuel des passagers # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recharge Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Revenu quotidien par agence @@ -8126,6 +8127,7 @@ indexController.mniTarifasMinimas.label = Tarifs minimaux indexController.mniTarifasOficial.label = Changement de Prix / Tarif Officiel indexController.mniTarifasOficialExcel.label = Taux Excel officiel indexController.mniTarjetaCredito.label = Carte de crédit +indexController.mniRelatorioCeturb.label = Rapport Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contingence indexController.mniTipoCambioCiudad.label = Type de parité diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index e7f7cca3f..fb13e9ae0 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -8038,6 +8038,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Relatório Posiçã indexController.mniRelatorioPrecosPraticados.label = Relatório de Preços Praticados indexController.mniRelatorioPricingEspecifico.label = Relatório Pricing Específico indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Movimento Mensal de Passageiros # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recarga Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Receita Diária por Agência @@ -8112,6 +8113,7 @@ indexController.mniTarifasMinimas.label = Tarifas Mínimas indexController.mniTarifasOficial.label = Alteração de Preço / Tarifa Oficial indexController.mniTarifasOficialExcel.label = Tarifa Oficial Excel indexController.mniTarjetaCredito.label = Cartão de Crédito +indexController.mniRelatorioCeturb.label = Relatório Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contigência indexController.mniTipoCambioCiudad.label = Tipo Paridade diff --git a/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul b/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul new file mode 100644 index 000000000..1509d21a3 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +