From dde1aa09b6d6eb25d5cc47b87258ccede1a409df Mon Sep 17 00:00:00 2001 From: bruno Date: Tue, 23 Jul 2013 20:17:06 +0000 Subject: [PATCH] =?UTF-8?q?-=20Ajustes=20nos=20filtros=20do=20RDA=20-=20Te?= =?UTF-8?q?la=20de=20cadastramento=20de=20comiss=C3=A3o=20-=20Calculo=20de?= =?UTF-8?q?=20comiss=C3=A3o=20-=20Melhoria,=20padroniza=C3=A7=C3=A3o=20do?= =?UTF-8?q?=20percentual=20-=20Outros=20ajustes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@29372 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioReceitaDiariaAgencia.java | 833 +++++++++++---- .../impl/RelatorioResumoLinhas.java | 35 + .../impl/RelatorioResumoLinhasAnalitico.java | 35 + ...orioResumoLinhasAnalitico_pt_BR.properties | 10 + .../RelatorioResumoLinhas_pt_BR.properties | 10 + .../RelatorioReceitaDiariaAgencia.jasper | Bin 69768 -> 73682 bytes .../RelatorioReceitaDiariaAgencia.jrxml | 478 +++++---- .../templates/RelatorioResumoLinhas.jasper | Bin 0 -> 87459 bytes .../templates/RelatorioResumoLinhas.jrxml | 954 ++++++++++++++++++ .../RelatorioResumoLinhasAnalitico.jrxml | 319 ++++++ .../utilitarios/ArrayDataSource.java | 88 ++ .../utilitarios/ProcessadorParametros.java | 2 - .../relatorios/utilitarios/Relatorio.java | 23 +- .../BusquedaGrupoRutaController.java | 131 +++ .../catalogos/EditarGrupoRutaController.java | 143 +++ .../EditarPuntoVentaComissaoController.java | 164 +++ .../catalogos/EditarPuntoVentaController.java | 364 ++----- .../relatorios/RelatorioController.java | 73 +- ...latorioReceitaDiariaAgenciaController.java | 90 +- .../RelatorioResumoLinhasController.java | 136 +++ .../StringPercentToDecimalConverter.java | 4 +- .../item/catalogos/ItemMenuGrupoRuta.java | 26 + .../ItemMenuImportarClientes.java | 24 + .../ItemMenuRelatorioResumoLinhas.java | 25 + .../utilerias/menu/menu_original.properties | 84 +- .../web/utilerias/render/RenderGrupoRuta.java | 30 + .../render/RenderPtovtaComissao.java | 29 + .../render/RenderPuntoVentaSimple.java | 26 + src/java/spring-config.xml | 1 + web/WEB-INF/i3-label_pt_BR.label | 48 +- web/component/reportView.zul | 4 +- web/gui/catalogos/busquedaGrupoRuta.zul | 61 ++ web/gui/catalogos/editarGrupoRuta.zul | 45 + web/gui/catalogos/editarPuntoVenta.zul | 262 +---- .../catalogos/editarPuntoVentaComissao.zul | 295 ++++++ .../filtroRelatorioReceitaDiariaAgencia.zul | 65 +- .../filtroRelatorioResumoLinhas.zul | 66 ++ 37 files changed, 3920 insertions(+), 1063 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhas.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnalitico.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhasAnalitico_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhas_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhas.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhas.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnalitico.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaGrupoRutaController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarGrupoRutaController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaComissaoController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioResumoLinhasController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuGrupoRuta.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/confcomerciales/ItemMenuImportarClientes.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioResumoLinhas.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGrupoRuta.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaComissao.java create mode 100644 web/gui/catalogos/busquedaGrupoRuta.zul create mode 100644 web/gui/catalogos/editarGrupoRuta.zul create mode 100644 web/gui/catalogos/editarPuntoVentaComissao.zul create mode 100644 web/gui/relatorios/filtroRelatorioResumoLinhas.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java index b82686402..5b09b01e7 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java @@ -5,13 +5,16 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.math.BigDecimal; import java.sql.Connection; +import java.sql.Date; +import java.sql.ResultSet; import java.sql.SQLException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; @@ -21,31 +24,43 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; */ public class RelatorioReceitaDiariaAgencia extends Relatorio { - private HashMap cacheImposto; + private Map> mapCacheConfigImposto; + private Map> mapCacheConfigComissao; public RelatorioReceitaDiariaAgencia(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); - this.cacheImposto = new HashMap(); + this.mapCacheConfigImposto = new HashMap>(); + this.mapCacheConfigComissao = new HashMap>(); - this.setCustomDataSource(new DataSource(this) { + this.setCustomDataSource(new ArrayDataSource(this) { + + protected HashMap> mapDados; @Override public Object valueCustomFields(String fieldName) throws Exception { - if (fieldName.equals("IMPOSTOS")) { - return getValorImposto(this.rowNum, this.resultSet.getInt("puntoventa_id"), this.resultSet.getBigDecimal("receita_tarifa"), this.resultSet.getBigDecimal("receita_seguro"), BigDecimal.ZERO, BigDecimal.ZERO); + if (fieldName.equals("RECEITA_BAGAGEM")) { + if (!(Boolean) this.relatorio.getParametros().get("B_EXCLUI_BAGAGEM")) + return getValorReceitaBagagem((Integer) this.getByName("PUNTOVENTA_ID")); + else + return BigDecimal.ZERO; + } + else if (fieldName.equals("RECEITA_TOTAL")) { + return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL")); } else if (fieldName.equals("RECEITA_LIQUIDA")) { - return this.resultSet.getBigDecimal("receita_tarifa").subtract(getValorImposto(this.rowNum, this.resultSet.getInt("puntoventa_id"), this.resultSet.getBigDecimal("receita_tarifa"), this.resultSet.getBigDecimal("receita_seguro"), BigDecimal.ZERO, BigDecimal.ZERO)); + return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL")).subtract((BigDecimal) this.getByName("IMPOSTOS")); + } + else if (fieldName.equals("DIFERENCA_COMISSAO")) { + return ((BigDecimal) this.getByName("VALOR_COMISSAO")).subtract((BigDecimal) this.getByName("ANTECIPACAO")); } return null; } - @Override - public void initDados() throws SQLException { + protected void prepareQuery() throws SQLException { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); @@ -53,26 +68,227 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); if (parametros.get("NUMPUNTOVENTA") != null) { - StringBuilder strNumPuntoVenta = new StringBuilder(); - for (PuntoVenta s : ((ArrayList) parametros.get("NUMPUNTOVENTA"))) { + for (PuntoVenta s : (ArrayList) parametros.get("NUMPUNTOVENTA")) { strNumPuntoVenta.append("," + s.getNumPuntoVenta() + ","); } - stmt.setString("NUMPUNTOVENTA", strNumPuntoVenta.toString()); } else stmt.setString("NUMPUNTOVENTA", null); - stmt.setBoolean("B_EXCLUI_BAGAGEM", (Boolean) parametros.get("B_EXCLUI_BAGAGEM")); - stmt.setNull("ESTADO_ID", java.sql.Types.INTEGER); + if (parametros.get("ESTADO_ID") != null) + stmt.setInt("ESTADO_ID", (Integer) parametros.get("ESTADO_ID")); + else + stmt.setNull("ESTADO_ID", java.sql.Types.INTEGER); + if (parametros.get("EMPRESA_ID") != null) + stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); + else + stmt.setNull("EMPRESA_ID", java.sql.Types.INTEGER); + if (parametros.get("TIPOPTOVTA_ID") != null) + stmt.setInt("TIPOPTOVTA_ID", (Integer) parametros.get("TIPOPTOVTA_ID")); + else + stmt.setNull("TIPOPTOVTA_ID", java.sql.Types.INTEGER); + stmt.setDate("DATA_INICIO", (java.sql.Date) parametros.get("DATA_INICIO")); stmt.setDate("DATA_FINAL", (java.sql.Date) parametros.get("DATA_FINAL")); stmt.setString("ISNUMPUNTOVENTATODOS", (String) parametros.get("ISNUMPUNTOVENTATODOS")); this.resultSet = stmt.executeQuery(); + } + public void setRowComissao(Map rowOrigem) throws Exception { + Map rowDestino = rowOrigem; + + // Busca as configurações de comissão + HashMap configComissao = getConfigComissao((Integer) rowOrigem.get("PUNTOVENTA_ID"), (Integer) rowOrigem.get("EMPRESAPUNTOVENTA_ID")); + if (configComissao == null) { + return; + } + + // Verifica se existe agência de destino da comissão e atualiza a row se necessario + if ((Integer) configComissao.get("PUNTOVENTA_ID") != 0 && !((Integer) configComissao.get("PUNTOVENTA_ID")).equals(this.resultSet.getInt("PUNTOVENTA_ID"))) + rowDestino = this.getRow((Integer) configComissao.get("PUNTOVENTA_ID"), null); + + Integer puntoVentaId = (Integer) rowDestino.get("PUNTOVENTA_ID"); + BigDecimal motivoCancelacionId = this.resultSet.getBigDecimal("MOTIVOCANCELACION_ID"); + Integer tipoVentaId = this.resultSet.getInt("TIPOVENTA_ID"); + + HashMap configImposto = getConfigImposto(puntoVentaId); + if (configImposto == null) { + return; + } + + BigDecimal baseCalculo = BigDecimal.ZERO; + BigDecimal valorComissao, percComissao; + BigDecimal issComissao = (BigDecimal) configComissao.get("ISSRETIDO"); + BigDecimal royatilesComissao = (BigDecimal) configComissao.get("ROYALTIES"); + + // Defini a base de calculo da comissão + if (motivoCancelacionId == null) { + if ((Boolean) configComissao.get("TARIFARECEITA")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("PRECIOPAGADO")); + if ((Boolean) configComissao.get("SEGURORECEITA")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); + if ((Boolean) configComissao.get("TAXARECEITA")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE")); + if ((Boolean) configComissao.get("PEDAGIORECEITA")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO")); + + // Caso esteje setado na configuração de comissão que o calculo deve ser sobre o liquido, deduz o imposto. + if (((String) configComissao.get("RECEITA")).equals("RL") && + (!tipoVentaId.equals(18) || (tipoVentaId.equals(18) && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")))) + baseCalculo = baseCalculo.subtract((BigDecimal) rowOrigem.get("IMPOSTO")); + + } + else { + if ((Boolean) configComissao.get("TARIFADEV")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("PRECIOPAGADO")); + if ((Boolean) configComissao.get("SEGURO_DEV")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); + if ((Boolean) configComissao.get("TAXADEV")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE")); + if ((Boolean) configComissao.get("PEDAGIODEV")) + baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO")); + } + + // Verifica se na tabela de impostos por empresa, o mes da corrida esta marcado como alta ou baixa temporada + + Date fecCorrida = this.resultSet.getDate("FECCORRIDA"); + String mes = new SimpleDateFormat("M").format(fecCorrida); + Boolean isAltaTemporada = ((mes.equals("1") && (Boolean) configImposto.get("INDJANEIRO")) || (mes.equals("2") && (Boolean) configImposto.get("INDFEVEREIRO")) + || (mes.equals("3") && (Boolean) configImposto.get("INDMARCO")) || (mes.equals("4") && (Boolean) configImposto.get("INDJABRIL")) + || (mes.equals("5") && (Boolean) configImposto.get("INDMAIO")) || (mes.equals("6") && (Boolean) configImposto.get("INDJUNHO")) + || (mes.equals("7") && (Boolean) configImposto.get("INDJULHO")) || (mes.equals("8") && (Boolean) configImposto.get("INDAGOSTO")) + || (mes.equals("9") && (Boolean) configImposto.get("INDSETEMBRO")) || (mes.equals("10") && (Boolean) configImposto.get("INDOUTUBRO")) + || (mes.equals("11") && (Boolean) configImposto.get("INDNOVEMBRO")) || (mes.equals("12") && (Boolean) configImposto.get("INDDEZEMBRO"))) ? true : false; + + percComissao = isAltaTemporada ? (BigDecimal) configComissao.get("PASSAGEMALTA") : (BigDecimal) configComissao.get("PASSAGEMBAIXA"); + + // VALOR COMISSAO = BASE DE CALCULO * (PERCENTUAL COMISSAO / 100) + valorComissao = baseCalculo.multiply(percComissao.divide(BigDecimal.valueOf(100))); + + // Deduz o ISS: VALOR COMISSAO = VALOR COMISSAO * (PERCENTUAL ISS / 100) - 1 + if (issComissao != null && !issComissao.equals(BigDecimal.ZERO)) { + BigDecimal fator = BigDecimal.ONE.subtract(issComissao.divide(BigDecimal.valueOf(100))); + valorComissao = valorComissao.multiply(fator); + } + + // Deduz os royatiles + if (royatilesComissao != null && !royatilesComissao.equals(BigDecimal.ZERO)) { + BigDecimal fator = BigDecimal.ONE.subtract(royatilesComissao.divide(BigDecimal.valueOf(100))); + valorComissao = valorComissao.multiply(fator); + } + + rowDestino.put("VALOR_COMISSAO", ((BigDecimal) rowDestino.get("VALOR_COMISSAO")).add(!tipoVentaId.equals(18) ? valorComissao : BigDecimal.ZERO)); + + // Se a agencia de destino não estiver na listagem, finaliza o preenchimento do map e adiciona na listagem + if (!mapDados.containsKey(puntoVentaId)) { + + rowDestino.put("PUNTOVENTA_ID", configComissao.get("PUNTOVENTA_ID")); + rowDestino.put("CVEESTADO", configComissao.get("CVEESTADO")); + rowDestino.put("NUMPUNTOVENTA", configComissao.get("NUMPUNTOVENTA")); + rowDestino.put("NOMBPUNTOVENTA", configComissao.get("NOMBPUNTOVENTA")); + rowDestino.put("EMPRESAPUNTOVENTA_ID", rowOrigem.get("EMPRESAPUNTOVENTA_ID")); + rowDestino.put("ESTADO_ID", configComissao.get("ESTADO_ID")); + rowDestino.put("TIPO_AGENCIA", configComissao.get("TIPO_AGENCIA")); + + mapDados.put(puntoVentaId, (HashMap) rowDestino); + } + } + + protected Map getRow(Integer puntoVentaId, ResultSet rs) throws SQLException { + + Map row; + if (mapDados.containsKey(puntoVentaId)) { + row = mapDados.get(puntoVentaId); + } + else + { + row = new HashMap(); + row.put("TOTAL_BILHETES", BigDecimal.ZERO); + row.put("TOTAL_BILHETES_CANC", BigDecimal.ZERO); + row.put("TOTAL_BILHETES_GAP", BigDecimal.ZERO); + row.put("RECEITA_TARIFA", BigDecimal.ZERO); + row.put("RECEITA_TARIFA_GAP", BigDecimal.ZERO); + row.put("RECEITA_SEGURO", BigDecimal.ZERO); + row.put("RECEITA_SEGURO_GAP", BigDecimal.ZERO); + row.put("RECEITA_EMBARQUE", BigDecimal.ZERO); + row.put("RECEITA_EMBARQUE_GAP", BigDecimal.ZERO); + row.put("RECEITA_OUTROS", BigDecimal.ZERO); + row.put("RECEITA_OUTROS_GAP", BigDecimal.ZERO); + row.put("RECEITA_PEDAGIO", BigDecimal.ZERO); + row.put("RECEITA_PEDAGIO_GAP", BigDecimal.ZERO); + row.put("RECEITA_BAGAGEM", BigDecimal.ZERO); + row.put("TOTAL_DEVOL", BigDecimal.ZERO); + row.put("TOTAL_DEVOL_GAP", BigDecimal.ZERO); + row.put("IMPOSTOS", BigDecimal.ZERO); + row.put("VALOR_COMISSAO", BigDecimal.ZERO); + + row.put("ANTECIPACAO", getValorAntecipacaoComissao(puntoVentaId)); + + if (rs != null) { + row.put("PUNTOVENTA_ID", rs.getInt("PUNTOVENTA_ID")); + row.put("CVEESTADO", rs.getString("CVEESTADO")); + row.put("NUMPUNTOVENTA", rs.getString("NUMPUNTOVENTA")); + row.put("NOMBPUNTOVENTA", rs.getString("NOMBPUNTOVENTA")); + row.put("EMPRESAPUNTOVENTA_ID", rs.getInt("EMPRESAPUNTOVENTA_ID")); + row.put("ESTADO_ID", rs.getBigDecimal("ESTADO_ID")); + row.put("TIPO_AGENCIA", rs.getString("TIPO_AGENCIA")); + } + + } + return row; + } + + @Override + public void initDados() throws Exception { + + this.prepareQuery(); + this.mapDados = new HashMap>(); + + while (this.resultSet.next()) { + + Integer puntoVentaId = this.resultSet.getInt("PUNTOVENTA_ID"); + BigDecimal motivoCancelacionId = this.resultSet.getBigDecimal("MOTIVOCANCELACION_ID"); + Integer tipoVentaId = this.resultSet.getInt("TIPOVENTA_ID"); + + // Inicializa a row atual + Map row = this.getRow(puntoVentaId, this.resultSet); + this.mapDados.put((Integer) row.get("PUNTOVENTA_ID"), (HashMap) row); + + row.put("TOTAL_BILHETES", ((BigDecimal) row.get("TOTAL_BILHETES")).add(motivoCancelacionId == null && !tipoVentaId.equals(18) ? BigDecimal.ONE : BigDecimal.ZERO)); + row.put("TOTAL_BILHETES_GAP", ((BigDecimal) row.get("TOTAL_BILHETES_GAP")).add(motivoCancelacionId == null && tipoVentaId.equals(18) ? BigDecimal.ONE : BigDecimal.ZERO)); + row.put("TOTAL_BILHETES_CANC", ((BigDecimal) row.get("TOTAL_BILHETES_CANC")).add(motivoCancelacionId != null ? BigDecimal.ONE : BigDecimal.ZERO)); + + if (motivoCancelacionId == null) { + + row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).add(!tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); + row.put("RECEITA_TARIFA_GAP", ((BigDecimal) row.get("RECEITA_TARIFA_GAP")).add(tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); + row.put("RECEITA_SEGURO", ((BigDecimal) row.get("RECEITA_SEGURO")).add(!tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO)); + row.put("RECEITA_SEGURO_GAP", ((BigDecimal) row.get("RECEITA_SEGURO_GAP")).add(tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO)); + row.put("RECEITA_EMBARQUE", ((BigDecimal) row.get("RECEITA_EMBARQUE")).add(!tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO)); + row.put("RECEITA_EMBARQUE_GAP", ((BigDecimal) row.get("RECEITA_EMBARQUE_GAP")).add(tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO)); + row.put("RECEITA_OUTROS", ((BigDecimal) row.get("RECEITA_OUTROS")).add(!tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO)); + row.put("RECEITA_OUTROS_GAP", ((BigDecimal) row.get("RECEITA_OUTROS_GAP")).add(tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO)); + row.put("RECEITA_PEDAGIO", ((BigDecimal) row.get("RECEITA_PEDAGIO")).add(!tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); + row.put("RECEITA_PEDAGIO_GAP", ((BigDecimal) row.get("RECEITA_PEDAGIO_GAP")).add(tipoVentaId.equals(18) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); + row.put("IMPOSTOS", ((BigDecimal) row.get("IMPOSTOS")).add(!tipoVentaId.equals(18) || (tipoVentaId.equals(18) && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")) ? getValorImposto(puntoVentaId, this.resultSet.getString("INTERESTADUAL"), this.resultSet.getBigDecimal("PRECIOPAGADO"), this.resultSet.getBigDecimal("IMPORTESEGURO"), this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), this.resultSet.getBigDecimal("IMPORTEPEDAGIO")) : BigDecimal.ZERO)); + // Realiza os calculos de comissão se o tipo de venda não for "EM ABERTO" e se for venda normal, ou se for GAP e o check estiver marcado + if (!tipoVentaId.equals(9) && (!tipoVentaId.equals(18) || (tipoVentaId.equals(18) && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")))) + this.setRowComissao(row); + } + else { + // Verificia se a devolução é pra ser contabilizada na agência de destino ou de origem da venda + if (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO")).equals(1) || (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO")).equals(0) && this.resultSet.getInt("POSSUI_CANC") == 1)) { + row.put("TOTAL_DEVOL", ((BigDecimal) row.get("TOTAL_DEVOL")).add((motivoCancelacionId.equals(31) || motivoCancelacionId.equals(32)) && !tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); + row.put("TOTAL_DEVOL_GAP", ((BigDecimal) row.get("TOTAL_DEVOL_GAP")).add((motivoCancelacionId.equals(31) || motivoCancelacionId.equals(32)) && tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); + } + } + + } + this.dados = new ArrayList>(this.mapDados.values()); } }); @@ -87,19 +303,336 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { public void processaParametros() throws Exception { } - public BigDecimal getValorImposto(Integer puntoVentaId, BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) { + public HashMap getConfigComissao(Integer puntoVentaId, Integer empresaId) throws Exception { - return tarifa.add(seguro).multiply(BigDecimal.valueOf(0.10)); + HashMap cacheConfig = null; + + // Verifica se já existe configuração na memoria, caso não exista, realiza busca no banco + if (!mapCacheConfigComissao.containsKey(puntoVentaId.toString() + "_" + empresaId.toString())) { + StringBuilder sql = new StringBuilder(); + + sql.append(" SELECT PC.ISSRETIDO, PC.ROYALTIES, PC.ENVIARRECIBO, PC.RECEITA, PC.CODAG, PC.PASSAGEMALTA, PC.PASSAGEMBAIXA, "); + sql.append(" PC.SEGUROALTA, PC.SEGUROBAIXA, PC.OUTROSBAIXA, PC.OUTROSALTA, PC.EXCESSOALTA, PC.EXCESSOBAIXA, "); + sql.append(" PC.TARIFARECEITA, PC.SEGURORECEITA, PC.TAXARECEITA, PC.PEDAGIORECEITA, TP.CVEPTOVTA TIPO_AGENCIA, "); + sql.append(" PC.TARIFADEV, PC.SEGURO_DEV, PC.TAXADEV, PC.PEDAGIODEV, PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, "); + sql.append(" ES.CVEESTADO, ES.ESTADO_ID "); + sql.append(" FROM PTOVTA_COMISSAO PC, "); + sql.append(" PUNTO_VENTA PV, "); + sql.append(" PARADA PR, "); + sql.append(" CIUDAD CD, "); + sql.append(" ESTADO ES, "); + sql.append(" TIPO_PTOVTA TP "); + sql.append(" WHERE PC.EMPRESA_ID = :EMPRESA_ID "); + sql.append(" AND PC.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + sql.append(" AND PC.PTOVTADESCOMISSAO_ID = PV.PUNTOVENTA_ID(+) "); + sql.append(" AND PV.PARADA_ID = PR.PARADA_ID(+) "); + sql.append(" AND PR.CIUDAD_ID = CD.CIUDAD_ID(+) "); + sql.append(" AND CD.ESTADO_ID = ES.ESTADO_ID(+) "); + sql.append(" AND PV.TIPOPTOVTA_ID = TP.TIPOPTOVTA_ID(+) "); + + NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString()); + stmt.setInt("PUNTOVENTA_ID", puntoVentaId); + stmt.setInt("EMPRESA_ID", empresaId); + + ResultSet rs = stmt.executeQuery(); + + if (rs.next()) { + cacheConfig = new HashMap(); + + cacheConfig.put("ISSRETIDO", rs.getBigDecimal("ISSRETIDO")); + cacheConfig.put("ROYALTIES", rs.getBigDecimal("ROYALTIES")); + cacheConfig.put("PASSAGEMALTA", rs.getBigDecimal("PASSAGEMALTA")); + cacheConfig.put("PASSAGEMBAIXA", rs.getBigDecimal("PASSAGEMBAIXA")); + cacheConfig.put("SEGUROALTA", rs.getBigDecimal("SEGUROALTA")); + cacheConfig.put("SEGUROBAIXA", rs.getBigDecimal("SEGUROBAIXA")); + cacheConfig.put("OUTROSALTA", rs.getBigDecimal("OUTROSALTA")); + cacheConfig.put("OUTROSBAIXA", rs.getBigDecimal("OUTROSBAIXA")); + cacheConfig.put("EXCESSOALTA", rs.getBigDecimal("EXCESSOALTA")); + cacheConfig.put("EXCESSOBAIXA", rs.getBigDecimal("EXCESSOBAIXA")); + + cacheConfig.put("TARIFARECEITA", rs.getBoolean("TARIFARECEITA")); + cacheConfig.put("SEGURORECEITA", rs.getBoolean("SEGURORECEITA")); + cacheConfig.put("TAXARECEITA", rs.getBoolean("TAXARECEITA")); + cacheConfig.put("PEDAGIORECEITA", rs.getBoolean("PEDAGIORECEITA")); + cacheConfig.put("TARIFADEV", rs.getBoolean("TARIFADEV")); + cacheConfig.put("SEGURO_DEV", rs.getBoolean("SEGURO_DEV")); + cacheConfig.put("TAXADEV", rs.getBoolean("TAXADEV")); + cacheConfig.put("PEDAGIODEV", rs.getBoolean("PEDAGIODEV")); + + cacheConfig.put("RECEITA", rs.getString("RECEITA")); + cacheConfig.put("TIPO_AGENCIA", rs.getString("TIPO_AGENCIA")); + cacheConfig.put("NUMPUNTOVENTA", rs.getString("NUMPUNTOVENTA")); + cacheConfig.put("NOMBPUNTOVENTA", rs.getString("NOMBPUNTOVENTA")); + cacheConfig.put("CVEESTADO", rs.getString("CVEESTADO")); + + cacheConfig.put("ESTADO_ID", rs.getInt("ESTADO_ID")); + cacheConfig.put("PUNTOVENTA_ID", rs.getInt("PUNTOVENTA_ID")); + + mapCacheConfigComissao.put(puntoVentaId.toString() + "_" + empresaId.toString(), cacheConfig); + + rs.close(); + stmt.close(); + + } + else { + StringBuilder sqlParam = new StringBuilder(); + + sqlParam.append(" SELECT EM.NOMBEMPRESA, PV.NOMBPUNTOVENTA "); + sqlParam.append(" FROM EMPRESA EM, "); + sqlParam.append(" PUNTO_VENTA PV "); + sqlParam.append(" WHERE EM.EMPRESA_ID = :EMPRESA_ID "); + sqlParam.append(" AND PV.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + + NamedParameterStatement stmtParam = new NamedParameterStatement(this.getConexao(), sqlParam.toString()); + stmtParam.setInt("PUNTOVENTA_ID", puntoVentaId); + stmtParam.setInt("EMPRESA_ID", empresaId); + + ResultSet rsParam = stmtParam.executeQuery(); + + if (rsParam.next()) + this.addInfoMsg("Não foi possivel obter a configuração de comissão do ponto de venda: " + rsParam.getString("NOMBPUNTOVENTA") + " empresa: " + rsParam.getString("NOMBEMPRESA") + " ."); + + rsParam.close(); + stmtParam.close(); + } + + } + else + cacheConfig = mapCacheConfigComissao.get(puntoVentaId.toString() + "_" + empresaId.toString()); + + return cacheConfig; } - public BigDecimal getValorImposto(Integer rowResultSet, Integer puntoVentaId, BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) { + public HashMap getConfigImposto(Integer puntoVentaId) throws Exception { + HashMap cacheConfig = null; - if (this.cacheImposto.containsKey(rowResultSet)) - return (BigDecimal) this.cacheImposto.get(rowResultSet); + // Verifica se já existe configuração na memoria, caso não exista, realiza busca no banco + if (!mapCacheConfigImposto.containsKey(puntoVentaId.toString())) { + + StringBuilder sql = new StringBuilder(); + + sql.append("SELECT EI.*, ES.NOMBESTADO, EM.NOMBEMPRESA "); + sql.append(" FROM PUNTO_VENTA PV, PARADA PR, CIUDAD CD, EMPRESA_IMPOSTO EI, ESTADO ES, EMPRESA EM "); + sql.append("WHERE PV.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + sql.append(" AND PV.PARADA_ID = PR.PARADA_ID "); + sql.append(" AND PR.CIUDAD_ID = CD.CIUDAD_ID "); + sql.append(" AND CD.ESTADO_ID = EI.ESTADO_ID (+) "); + sql.append(" AND PV.EMPRESA_ID = NVL(EI.EMPRESA_ID, PV.EMPRESA_ID) "); + sql.append(" AND CD.ESTADO_ID = ES.ESTADO_ID "); + sql.append(" AND PV.EMPRESA_ID = EM.EMPRESA_ID "); + sql.append(" AND NVL(EI.ACTIVO, 1) = 1 "); + + + NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString()); + stmt.setInt("PUNTOVENTA_ID", puntoVentaId); + + ResultSet rs = stmt.executeQuery(); + + if (rs.next()) { + + if (rs.getBigDecimal("ICMS") != null) { + cacheConfig = new HashMap(); + + cacheConfig.put("PORCREDBASEICMS", rs.getBigDecimal("PORCREDBASEICMS")); + cacheConfig.put("PORCREDESTADUAL", rs.getBigDecimal("PORCREDESTADUAL")); + cacheConfig.put("INDTARIFAESTADUAL", rs.getBoolean("INDTARIFAESTADUAL")); + cacheConfig.put("INDSEGUROESTADUAL", rs.getBoolean("INDSEGUROESTADUAL")); + cacheConfig.put("INDTXEMBARQUEESTADUAL", rs.getBoolean("INDTXEMBARQUEESTADUAL")); + cacheConfig.put("INDPEDAGIOESTDUAL", rs.getBoolean("INDPEDAGIOESTDUAL")); + cacheConfig.put("PORCREDMUNICIPAL", rs.getBigDecimal("PORCREDMUNICIPAL")); + cacheConfig.put("INDTARIFAMUNICIPAL", rs.getBoolean("INDTARIFAMUNICIPAL")); + cacheConfig.put("INDSEGUROMUNICIPAL", rs.getBoolean("INDSEGUROMUNICIPAL")); + cacheConfig.put("INDTXEMBARQUEMUNICIPAL", rs.getBoolean("INDTXEMBARQUEMUNICIPAL")); + cacheConfig.put("INDPEDAGIOMUNICIPAL", rs.getBoolean("INDPEDAGIOMUNICIPAL")); + + cacheConfig.put("INDJANEIRO", rs.getBoolean("INDJANEIRO")); + cacheConfig.put("INDFEVEREIRO", rs.getBoolean("INDFEVEREIRO")); + cacheConfig.put("INDMARCO", rs.getBoolean("INDMARCO")); + cacheConfig.put("INDABRIL", rs.getBoolean("INDABRIL")); + cacheConfig.put("INDMAIO", rs.getBoolean("INDMAIO")); + cacheConfig.put("INDJUNHO", rs.getBoolean("INDJUNHO")); + cacheConfig.put("INDJULHO", rs.getBoolean("INDJULHO")); + cacheConfig.put("INDAGOSTO", rs.getBoolean("INDAGOSTO")); + cacheConfig.put("INDSETEMBRO", rs.getBoolean("INDSETEMBRO")); + cacheConfig.put("INDOUTUBRO", rs.getBoolean("INDOUTUBRO")); + cacheConfig.put("INDNOVEMBRO", rs.getBoolean("INDNOVEMBRO")); + cacheConfig.put("INDDEZEMBRO", rs.getBoolean("INDDEZEMBRO")); + + cacheConfig.put("ICMS", rs.getBigDecimal("ICMS")); + cacheConfig.put("PORCREDBASEICMS", rs.getBigDecimal("PORCREDBASEICMS")); + + this.mapCacheConfigImposto.put(puntoVentaId.toString(), cacheConfig); + } + else + { + this.addInfoMsg("Não foi possivel obter a configuração de imposto para o estado: " + rs.getString("NOMBESTADO") + " empresa: " + rs.getString("NOMBEMPRESA")); + + } + + rs.close(); + stmt.close(); + + } + else { + } + } + else + cacheConfig = mapCacheConfigImposto.get(puntoVentaId.toString()); + + return cacheConfig; + } + + public BigDecimal getValorImposto(Integer puntoVentaId, String indInterestadual, BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) throws Exception { + + HashMap configImposto = new HashMap(); + + BigDecimal baseCalculo = BigDecimal.ZERO; + BigDecimal icms; + BigDecimal porcRedEstadual; + BigDecimal porcRedMunicipal; + BigDecimal porcRedBaseIcms; + + BigDecimal valorIcms = BigDecimal.ZERO; + + Boolean indTarifaMunicipal; + Boolean indSeguroMunicipal; + Boolean indTxEmbarqueMunicipal; + Boolean indPedagioMunicipal; + Boolean indTarifaEstadual; + Boolean indSeguroEstadual; + Boolean indTxEmbarqueEstadual; + Boolean indPedagioEstadual; + + configImposto = this.getConfigImposto(puntoVentaId); + + if (configImposto == null) + return BigDecimal.ZERO; + + icms = (BigDecimal) configImposto.get("ICMS"); + porcRedBaseIcms = (BigDecimal) configImposto.get("PORCREDBASEICMS"); + + if (indInterestadual.equals("S")) { + porcRedEstadual = (BigDecimal) configImposto.get("PORCREDESTADUAL"); + + indTarifaEstadual = (Boolean) configImposto.get("INDTARIFAESTADUAL"); + indSeguroEstadual = (Boolean) configImposto.get("INDSEGUROESTADUAL"); + indTxEmbarqueEstadual = (Boolean) configImposto.get("INDTXEMBARQUEESTADUAL"); + indPedagioEstadual = (Boolean) configImposto.get("INDPEDAGIOESTDUAL"); + + // System.out.println(" Tarifa: "+ tarifa +" seguro: "+ seguro +" embarque: "+ embarque +" pedagio: "+ pedagio); + + // Criação da base de calculo + baseCalculo = indTarifaEstadual && tarifa != null ? baseCalculo.add(tarifa) : BigDecimal.ZERO; + baseCalculo = indSeguroEstadual && seguro != null ? baseCalculo.add(seguro) : BigDecimal.ZERO; + baseCalculo = indTxEmbarqueEstadual && embarque != null ? baseCalculo.add(embarque) : BigDecimal.ZERO; + baseCalculo = indPedagioEstadual && pedagio != null ? baseCalculo.add(pedagio) : BigDecimal.ZERO; + + // Redução da base de calculo + if (porcRedBaseIcms != null && porcRedBaseIcms.equals(BigDecimal.ZERO)) + // BASE DE CALCULO = BASE DE CALCULO - ((PERCENTUAL DE REDUÇÃO / 100) * BASE DE CALCULO )) + baseCalculo = baseCalculo.subtract(porcRedBaseIcms.divide(BigDecimal.valueOf(100)).multiply(baseCalculo)); + + // Calcula o valor do ICMS + valorIcms = baseCalculo.multiply(icms.divide(BigDecimal.valueOf(100))); + + // Redução estadual + if (porcRedEstadual != null && porcRedEstadual.equals(BigDecimal.ZERO)) + valorIcms = valorIcms.subtract(porcRedEstadual.divide(BigDecimal.valueOf(100)).multiply(valorIcms)); + + // System.out.println("INTER BASE DE CALCULO: "+baseCalculo+" VALOR ICMS: "+ valorIcms); + + } else { - this.cacheImposto.put(rowResultSet, this.getValorImposto(puntoVentaId, tarifa, seguro, embarque, pedagio)); - return this.cacheImposto.get(rowResultSet); + porcRedMunicipal = (BigDecimal) configImposto.get("PORCREDMUNICIPAL"); + + indTarifaMunicipal = (Boolean) configImposto.get("INDTARIFAMUNICIPAL"); + indSeguroMunicipal = (Boolean) configImposto.get("INDSEGUROMUNICIPAL"); + indTxEmbarqueMunicipal = (Boolean) configImposto.get("INDTXEMBARQUEMUNICIPAL"); + indPedagioMunicipal = (Boolean) configImposto.get("INDPEDAGIOMUNICIPAL"); + + baseCalculo = indTarifaMunicipal && tarifa != null ? baseCalculo.add(tarifa) : BigDecimal.ZERO; + baseCalculo = indSeguroMunicipal && seguro != null ? baseCalculo.add(seguro) : BigDecimal.ZERO; + baseCalculo = indTxEmbarqueMunicipal && embarque != null ? baseCalculo.add(embarque) : BigDecimal.ZERO; + baseCalculo = indPedagioMunicipal && pedagio != null ? baseCalculo.add(pedagio) : BigDecimal.ZERO; + + // Redução da base de calculo + if (porcRedBaseIcms != null && porcRedBaseIcms.equals(BigDecimal.ZERO)) + // BASE DE CALCULO = BASE DE CALCULO - ((PERCENTUAL DE REDUÇÃO / 100) * BASE DE CALCULO )) + baseCalculo = baseCalculo.subtract(porcRedBaseIcms.divide(BigDecimal.valueOf(100)).multiply(baseCalculo)); + + // Calcula o valor do ICMS + valorIcms = baseCalculo.multiply(icms.divide(BigDecimal.valueOf(100))); + + // Redução estadual + if (porcRedMunicipal != null && porcRedMunicipal.equals(BigDecimal.ZERO)) + valorIcms = valorIcms.subtract(porcRedMunicipal.divide(BigDecimal.valueOf(100)).multiply(valorIcms)); + + // System.out.println("MUN BASE DE CALCULO: "+baseCalculo+" VALOR ICMS: "+ valorIcms); + + } + + return valorIcms; + + } + + public BigDecimal getValorReceitaBagagem(Integer puntoVentaId) throws SQLException { + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT SUM(CASE "); + sql.append(" WHEN EE.TIPOEVENTOEXTRA_ID = 1 AND EE.ACTIVO = 1 THEN "); + sql.append(" EE.IMPINGRESO "); + sql.append(" END) RECEITA_BAGAGEM "); + sql.append(" FROM EVENTO_EXTRA EE "); + sql.append(" WHERE TRUNC(EE.FECHORINGRESO) BETWEEN :DATA_INICIO AND "); + sql.append(" :DATA_FINAL "); + sql.append(" AND EE.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + + NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString()); + stmt.setInt("PUNTOVENTA_ID", puntoVentaId); + stmt.setDate("DATA_INICIO", (java.sql.Date) this.getParametros().get("DATA_INICIO")); + stmt.setDate("DATA_FINAL", (java.sql.Date) this.getParametros().get("DATA_FINAL")); + + ResultSet rs = stmt.executeQuery(); + if (rs.next()) { + BigDecimal receitaBagagem = rs.getBigDecimal("RECEITA_BAGAGEM"); + rs.close(); + stmt.close(); + return receitaBagagem; + } + else { + rs.close(); + stmt.close(); + return BigDecimal.ZERO; + } + + } + + public BigDecimal getValorAntecipacaoComissao(Integer puntoVentaId) throws SQLException { + StringBuilder sql = new StringBuilder(); + + sql.append(" SELECT SUM(PA.RETEM) TOTAL_ANTECIPACAO "); + sql.append(" FROM PTOVTA_ANTECIPACOMISSAO PA "); + sql.append(" WHERE PA.ACTIVO = 1 "); + sql.append(" AND PA.DATA BETWEEN :DATA_INICIO AND "); + sql.append(" :DATA_FINAL "); + sql.append(" AND PA.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + + NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString()); + stmt.setInt("PUNTOVENTA_ID", puntoVentaId); + stmt.setDate("DATA_INICIO", (java.sql.Date) this.getParametros().get("DATA_INICIO")); + stmt.setDate("DATA_FINAL", (java.sql.Date) this.getParametros().get("DATA_FINAL")); + + ResultSet rs = stmt.executeQuery(); + if (rs.next()) { + BigDecimal antecipacaoComissao = rs.getBigDecimal("TOTAL_ANTECIPACAO"); + rs.close(); + stmt.close(); + return (antecipacaoComissao == null) ? BigDecimal.ZERO : antecipacaoComissao; + } + else { + rs.close(); + stmt.close(); + return BigDecimal.ZERO; } } @@ -108,200 +641,70 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { StringBuilder sql = new StringBuilder(); - sql.append(" select tab1.*, "); - sql.append(" (tab1.receita_tarifa + tab1.receita_bagagem + tab1.receita_seguro + "); - sql.append(" tab1.receita_tarifa_gap + tab1.receita_seguro_gap - "); - sql.append(" tab1.total_devol - tab1.total_devol_gap) receita_total, "); - sql.append(" 0 impostos, "); - sql.append(" ((tab1.receita_tarifa + tab1.receita_bagagem + tab1.receita_seguro + "); - sql.append(" tab1.receita_tarifa_gap + tab1.receita_seguro_gap - "); - sql.append(" tab1.total_devol - tab1.total_devol_gap) - 0) receita_liquida, "); - sql.append(" 0 percentual_comissao, "); - sql.append(" 0 valor_comissao, "); - sql.append(" 0 diferenca_comissao, "); - sql.append(" '' tipo_agencia "); - sql.append(" from (select tab.cveestado, "); - sql.append(" tab.puntoventa_id, "); - sql.append(" tab.empresapuntoventa_id, "); - sql.append(" tab.estado_id, "); - sql.append(" tab.numpuntoventa, "); - sql.append(" tab.nombpuntoventa, "); - sql.append(" tab.total_bilhetes, "); - sql.append(" tab.total_bilhetes_gap, "); - sql.append(" tab.receita_tarifa receita_tarifa, "); - sql.append(" tab.receita_seguro receita_seguro, "); - sql.append(" decode( :B_EXCLUI_BAGAGEM , "); - sql.append(" 0, "); - sql.append(" nvl(sum(case "); - sql.append(" when ee.tipoeventoextra_id = 1 and ee.activo = 1 then "); - sql.append(" ee.impingreso "); - sql.append(" end), "); - sql.append(" 0), "); - sql.append(" 0) receita_bagagem, "); - sql.append(" tab.total_devol total_devol, "); - sql.append(" tab.receita_tarifa_gap receita_tarifa_gap, "); - sql.append(" tab.receita_seguro_gap receita_seguro_gap, "); - sql.append(" tab.total_devol_gap total_devol_gap, "); - sql.append(" tab.total_bilhetes_canc total_bilhetes_canc "); - sql.append(" "); - sql.append(" from (select es.cveestado, "); - sql.append(" pv.puntoventa_id, "); - sql.append(" pv.numpuntoventa, "); - sql.append(" pv.nombpuntoventa, "); - sql.append(" cj.empresapuntoventa_id, "); - sql.append(" ce.estado_id, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" 1 "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) total_bilhetes, "); - sql.append(" "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is not null THEN "); - sql.append(" 1 "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) total_bilhetes_canc, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" 1 "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) total_bilhetes_gap, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.preciopagado "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_tarifa, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.preciopagado "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_tarifa_gap, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.importeseguro "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_seguro, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.importeseguro "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_seguro_gap, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.importetaxaembarque "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_embarque, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.importetaxaembarque "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_embarque_gap, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.importeoutros "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_outros, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.importeoutros "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_outros_gap, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.importepedagio "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_pedagio, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id is null and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.importepedagio "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) receita_pedagio_gap, "); - sql.append(" "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id in (31, 32) and "); - sql.append(" cj.tipoventa_id <> 18 THEN "); - sql.append(" cj.preciopagado "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) total_devol, "); - sql.append(" sum(CASE "); - sql.append(" WHEN cj.motivocancelacion_id in (31, 32) and "); - sql.append(" cj.tipoventa_id = 18 THEN "); - sql.append(" cj.preciopagado "); - sql.append(" ELSE "); - sql.append(" 0 "); - sql.append(" END) total_devol_gap "); - sql.append(" from caja cj, "); - sql.append(" punto_venta pv, "); - sql.append(" empresa em, "); - sql.append(" parada pr, "); - sql.append(" ciudad cd, "); - sql.append(" ciudad ce, "); - sql.append(" estado es "); - sql.append(" where cj.puntoventa_id = pv.puntoventa_id "); - sql.append(" and trunc(cj.fechorventa) between :DATA_INICIO and "); - sql.append(" :DATA_FINAL "); - sql.append(" and pr.parada_id = pv.parada_id "); - sql.append(" and cj.empresapuntoventa_id = em.empresa_id "); - sql.append(" and em.ciudad_id = ce.ciudad_id "); - sql.append(" and cd.ciudad_id = pr.ciudad_id "); - sql.append(" and cd.estado_id = es.estado_id "); - sql.append(" and es.estado_id = nvl( :ESTADO_ID , es.estado_id) "); - sql.append(" and (( instr( :NUMPUNTOVENTA , ','||trim(numpuntoventa)||',') > 0 "); - sql.append(" and :ISNUMPUNTOVENTATODOS = 'N') or "); - sql.append(" ( :ISNUMPUNTOVENTATODOS = 'S')) "); - sql.append(" group by es.cveestado, "); - sql.append(" pv.puntoventa_id, "); - sql.append(" pv.numpuntoventa, "); - sql.append(" cj.empresapuntoventa_id, "); - sql.append(" ce.estado_id, "); - sql.append(" pv.nombpuntoventa) tab, "); - sql.append(" vtabol.evento_extra ee "); - sql.append(" where trunc(ee.fechoringreso(+)) between :DATA_INICIO and "); - sql.append(" :DATA_FINAL "); - sql.append(" and ee.puntoventa_id(+) = tab.puntoventa_id "); - sql.append(" "); - sql.append(" group by tab.cveestado, "); - sql.append(" tab.puntoventa_id, "); - - sql.append(" tab.numpuntoventa, "); - sql.append(" tab.nombpuntoventa, "); - sql.append(" tab.total_bilhetes, "); - sql.append(" tab.total_bilhetes_gap, "); - sql.append(" tab.receita_tarifa, "); - sql.append(" tab.receita_seguro, "); - sql.append(" tab.total_devol, "); - sql.append(" tab.receita_tarifa_gap, "); - sql.append(" tab.receita_seguro_gap, "); - sql.append(" tab.total_devol_gap, "); - sql.append(" tab.empresapuntoventa_id, "); - sql.append(" tab.estado_id, "); - sql.append(" tab.total_bilhetes_canc) tab1 "); + sql.append(" SELECT ES.CVEESTADO, "); + sql.append(" PV.PUNTOVENTA_ID, "); + sql.append(" PV.NUMPUNTOVENTA, "); + sql.append(" PV.NOMBPUNTOVENTA, "); + sql.append(" CJ.EMPRESAPUNTOVENTA_ID, "); + sql.append(" CE.ESTADO_ID, "); + sql.append(" CASE "); + sql.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN "); + sql.append(" 'S' "); + sql.append(" ELSE "); + sql.append(" 'N' "); + sql.append(" END INTERESTADUAL, "); + sql.append(" CJ.PRECIOPAGADO, "); + sql.append(" CJ.MOTIVOCANCELACION_ID, "); + sql.append(" CJ.TIPOVENTA_ID, "); + sql.append(" CJ.IMPORTESEGURO, "); + sql.append(" CJ.IMPORTETAXAEMBARQUE, "); + sql.append(" CJ.IMPORTEOUTROS, "); + sql.append(" CJ.IMPORTEPEDAGIO, "); + sql.append(" CJ.FECCORRIDA, "); + sql.append(" (SELECT 1 "); + sql.append(" FROM CAJA CJD "); + sql.append(" WHERE CJD.MOTIVOCANCELACION_ID IN (31, 32) "); + sql.append(" AND CJD.FECCORRIDA = CJ.FECCORRIDA "); + sql.append(" AND CJD.CORRIDA_ID = CJ.CORRIDA_ID "); + sql.append(" AND CJD.NUMFOLIOSISTEMA = CJ.NUMFOLIOSISTEMA "); + sql.append(" AND CJD.NUMASIENTO = CJ.NUMASIENTO "); + sql.append(" AND CJD.CAJA_ID <> CJ.CAJA_ID "); + sql.append(" AND CJD.INDSTATUSOPERACION = 'F' "); + sql.append(" AND CJD.INDREIMPRESION = 0 "); + sql.append(" AND ROWNUM = 1) POSSUI_CANC, "); + sql.append(" TP.CVEPTOVTA TIPO_AGENCIA "); + sql.append(" FROM CAJA CJ, "); + sql.append(" PUNTO_VENTA PV, "); + sql.append(" EMPRESA EM, "); + sql.append(" PARADA PR, "); + sql.append(" CIUDAD CX, "); + sql.append(" CIUDAD CE, "); + sql.append(" ESTADO ES, "); + sql.append(" PARADA PO, "); + sql.append(" PARADA PD, "); + sql.append(" CIUDAD CO, "); + sql.append(" CIUDAD CD, "); + sql.append(" TIPO_PTOVTA TP "); + sql.append(" WHERE CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID "); + sql.append(" AND TRUNC(CJ.FECHORVENTA) BETWEEN :DATA_INICIO AND "); + sql.append(" :DATA_FINAL "); + sql.append(" AND PR.PARADA_ID = PV.PARADA_ID "); + sql.append(" AND CJ.EMPRESAPUNTOVENTA_ID = EM.EMPRESA_ID "); + sql.append(" AND EM.CIUDAD_ID = CE.CIUDAD_ID "); + sql.append(" AND CX.CIUDAD_ID = PR.CIUDAD_ID "); + sql.append(" AND CX.ESTADO_ID = ES.ESTADO_ID "); + sql.append(" AND CJ.ORIGEN_ID = PO.PARADA_ID "); + sql.append(" AND CJ.DESTINO_ID = PD.PARADA_ID "); + sql.append(" AND PO.CIUDAD_ID = CO.CIUDAD_ID "); + sql.append(" AND PD.CIUDAD_ID = CD.CIUDAD_ID "); + sql.append(" AND CJ.INDSTATUSOPERACION = 'F' "); + sql.append(" AND CJ.INDREIMPRESION = 0 "); + sql.append(" AND PV.TIPOPTOVTA_ID = NVL(:TIPOPTOVTA_ID, PV.TIPOPTOVTA_ID) "); + sql.append(" AND TP.TIPOPTOVTA_ID = PV.TIPOPTOVTA_ID "); + sql.append(" AND CJ.EMPRESAPUNTOVENTA_ID = NVL(:EMPRESA_ID, CJ.EMPRESAPUNTOVENTA_ID) "); + sql.append(" AND ES.ESTADO_ID = NVL(:ESTADO_ID, ES.ESTADO_ID) "); + sql.append(" AND ((INSTR(:NUMPUNTOVENTA, ',' || TRIM(PV.NUMPUNTOVENTA) || ',') > 0 AND "); + sql.append(" :ISNUMPUNTOVENTATODOS = 'N') OR (:ISNUMPUNTOVENTATODOS = 'S')) "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhas.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhas.java new file mode 100644 index 000000000..318501c2f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhas.java @@ -0,0 +1,35 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; + +/** + * @author Bruno H. G. Gouvêa + * + */ +public class RelatorioResumoLinhas extends Relatorio { + + /** + * @param parametros + * @param conexao + */ + public RelatorioResumoLinhas(Map parametros, Connection conexao) { + super(parametros, conexao); + // TODO Auto-generated constructor stub + } + + /* + * (non-Javadoc) + * + * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros() + */ + @Override + public void processaParametros() throws Exception { + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnalitico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnalitico.java new file mode 100644 index 000000000..a0cd08365 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnalitico.java @@ -0,0 +1,35 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; + +/** + * @author Bruno H. G. Gouvêa + * + */ +public class RelatorioResumoLinhasAnalitico extends Relatorio { + + /** + * @param parametros + * @param conexao + */ + public RelatorioResumoLinhasAnalitico(Map parametros, Connection conexao) { + super(parametros, conexao); + // TODO Auto-generated constructor stub + } + + /* + * (non-Javadoc) + * + * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros() + */ + @Override + public void processaParametros() throws Exception { + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhasAnalitico_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhasAnalitico_pt_BR.properties new file mode 100644 index 000000000..45f4f75b6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhasAnalitico_pt_BR.properties @@ -0,0 +1,10 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +cabecalho.periodo=Período: +cabecalho.periodoA=à + +rodape.pagina=Página +rodape.de=de \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhas_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhas_pt_BR.properties new file mode 100644 index 000000000..45f4f75b6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioResumoLinhas_pt_BR.properties @@ -0,0 +1,10 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +cabecalho.periodo=Período: +cabecalho.periodoA=à + +rodape.pagina=Página +rodape.de=de \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jasper index bb182020f48292fb6e6b139ce5a4b70e3d9afb43..9f196f34f17ac42fb6fa6b8d47600768fa009b94 100644 GIT binary patch literal 73682 zcmeHw2YejG_5aN7o_)5@z0w5)+$9+os=+EJTegakWPxo!oTZa}AnD}O$=D7MgQ*4_ zdN3F;B|uCG)tD9_4$Yy2011ImLMVYG^!%KJ0RQisncbVYTb<69Nq)b4{<3d&XWo>z z-}k2Oo7vm`$^sn;Hl{6_%HTV2mm!%oj}%LKS2@PN9~i0x4XFwIB7|=ttw6utXt6@ ztzdl@MH)|BoB#|>N%p-8U|-PDTwv%$fz*ovg1xN?avLboDvc$gjl@=xP0pGyiINIx zI@`Pi;kM3J(vxZMq(|Bo&M5S>ptk{?sAb4kTIyE7yDoz_} zrOLTin@|MxsDm^`tBLAfVEB5bBD_r6B?vT|}u(6Q!Nk&`STOvuyqoBJyWP4MmQb16FB-L8=L_^Jr zrJibP_fK_{Q6a^XEpKOROC4I?Vfb;`1l#+_s|>Vi8M9|o2t^sj(4>#gvDu_LEVH6k zy?6FTv)7U+wImA|+Nj$0mRPc=r6qn+w5fs(6%r)o!^_(f(T)z$4vfqCyt8Xkae-g| z_Cy@LPcjzmsEo8H*~D%V&()(NeV-2Eh?=n^8>ICw#VeB34Gr+fN*IM%^B3AIo{@5t za!9brIiebFiMFDZo{5GO!lOSz*FtS>ToP+(N`U6_D5`oztV6U>Q7v7PO~}e2;L~Cs zy1X4yA4+|2K4qC-lt@HYP`=Ag`}H2{o{C&;GhWV|j@Zg5DHLNTIdJ-V%Efqld;6&g zmY?kr36*>U70QYJhA@WCdVnaOTC9A6Op+uK675}ER}-!)nT1j&bz4e$2chRhm28hB z#vpYyVw^BoxVs_>mru1F6`%rR9GSNm)?}*y#jH=0+sQ$pynCfkQ?iOnC=?ZDc6$JA zYBnsi5zfp+qKm{p~;2h4b~-LgGdIrEyMk+BZZ8et*CC8&v_XuU3b}>!hJ#=qMY6^qRWLvS;~|n0qbukZ&5+X?ZxUS<=>*;9 zt`n7rt#qPadxTmt(VJ4ny(`!#ErlRaH4x!k?ORN<>c;$396UUQlWrBn&v1F zau{1-qU5TZ!ocb5gwna{C3=#1nBAZ+P$LGOIbLX|=NUxKzG(1eo8NtFoGt*L)_6o& z`OytE;fkWV^7?Q?U3EiobzNO`r7EH@TO%jC74z|YO6XgKxt#1m(7?;SM)Y;`&=0S( zw_VYCW&yg{*(}r&#VENpwzxQ!?3m5^wZ=W)^7h+jSN_j#U!K%7Z@{&WTwPo;5MANN z?bLgY%f_SDPN9WMwZ6TwwNa>D)NYDOPmrS)iU6<5p#BY@7$QKaLJk8HYM4Y4r3fNZ zG4)Hb!P?kIOiHPJKxu)qU)v6V7;fTI!17th0gJaYA*A5QMHSfGsc zYL2wDFNvTTTt;(+3T8E;cI+lup>|I+M6&gxX?65a47ZyTix-LLNoFl9!vMZn_z0*H zIY#+*-MV!`Nm2a3)Yw8i)@y%#=K9wU`}8js<7KK?^fiN0v8p;-7ey0i-FDd?{Vsj` zJPQMq_9GxS%6_t}AQ*@okWJ=7F9~a-&-T&GU|sdxhSKVzs=S&Pq~R15wP)H0#a1H} zqV3mZH656$rgH=U!atR6Dd9mP(?d1~F0|K;es#^Z3HQD=xqensX)?t)jItK7iiqD7 zkVFi-I8;g;D6CvW9wA&BNevTxjsWmkTL-OL)Y7U%V_g*MJK~SVQyhIw5+PIqt>$Ef zTg!`b$rujom%Xa>S`?@C4k`-Os-N`fRZp$?6zkCj%XJ_brbq5C33DS&O;`g;vY}eF zDsM|h7e}cZ4>qG#QAZ~pQ2A>y#wLF~=0!^|jb2GLucfF3>qayyPz;XpA*mK%TGk;J zX=TAIGhfvX^on&9$6L@P=-d{^F&v7}pez{cClq%RU4a z%+>383J#akla5o(=|FeXL$gxx$5YLzoH5Eq5j5GjqLrJFts~G{CQ%7wuA>KA?2v42 z(gM~e)}e;%==r@F0WpiAz<1eTQ4#eEY4N?SNz7RyErN6O%9FYqv!d@e(m-u}rz=#( zgsvu-L>$w71DP>P*^w5L$~vloq2&@YHL-@)DJQ*XLA3(gqT@^HbAq@{Y}| zwWFvD@YF`@uB zfi}KZBGMG=6oVCX9N%ekNhKbGW%>>@V$t$ewGs~=2Btz()0M-jb*-0+YFYJF1od$A zhUVYW*iw1Nsv)av2+2*dKDCjy4tkB(jD~S=YDBHZJwx8vaO1Yq&OQjkJ9oe@+TSuX ziy>{y+1%XhHLqGOYCQ5>USicN>;L&Na#`Sx-`i=_EdEe%uFFPhFreCG3_AN^WMhop z=sBS#eN-T=Vr5_bqV}F%aK)EnDum__Bgf_5jHvth6ViFHsn7Qt>d@#%E|Hy>F}QG* z9~A%YomSyfsWW@sUeph(+?R{FZLTZVV7*wp8Ab9GqO`V~>x)A`>j@vWGUR zK+bhSWI5z3p2PsKQB;{E>yNP*-dpD_5$}`<%UsL%hN!9X`=W(wrsY(sU*#C)%b5%6 zkr?9}A?c%V^gjc&QMfxHIvnpoy>YWwL%Mshs12aKG*qj^z}H|S)FI#47d4~5QI)>G z3M-D%dZ-EvB_oS!QAfm*i3$sO>1$tD51`0IR&({s z`rmZtDQ7?a_U3)hxp&W|>ML9oMeU?m^bVr8x?iG3rOJDPjDhNyQtHzwjc|^W)TNnJ zAC;HMBmuMZ^!y}YnGXTaBG_E%KGkt_WBg$eXI`0zR7V-$c~ax>z2F;+Uw7khda6c& z+9{N`2H#!Ze`)llaW^NH?f%M1hpny}{iiNtFbn zsn7`qZaTrhO%cG5iQ5{NMemCDVkKMdX^Jh5cLClW0IsG-;NAD>z|to+{A$jNiO4=< zqNQh~gNJpnDcPn!Vjaw9#Q{u-KYIB`z~Y@;uaa<8UATsP-Am&tiYA=Pe54_%KGM($ zhBS17Aq_>ykj7=66xwXS6>1mqpv5!l8+Tlp?|o|dWru9u|K$Z!nj;H8 ztN0{C9)!ykNfxLnpE;{8H!N?VXu`R{2TMuy!BQs}Sn31=OGU`Q@&*?|@0w)&YNCz# zd36ztBqLp*SqLO=>k*n4zV<|P>7MWHe}CW^XV!5u4o*jtfVn9*5bvRA!nxB2L`n4l zQ70H6>I4HsMaTg0P7gfy#s#r9y0|mZRTEJF0AKGBh#Q8tesKL0!GrqTxBJBxpF8LM z9)S2W0#P^*`G6>?J|OA@14Nx*fT#!=AU@<`=UtO5Bs8%&vKaHX)(+yZjvf)1rFyCF zp-%Vd5sK?ei*IWDxNVm|{5APX)3KG~dw}9I#G`PY^g&TleNfa128uetKv5AgP<+xu z&%H^qzV(Uxywd2hc$baiXka*@M;NZ2e%FJ)9{%8!do^sjXu?m62lW8MmkC4Ryy%0W zr21f}6ATP>f`OqTWMKHB3!QfbhBJ%iW^WS50>hql`0MU@`-R<`uDfHzGymAvI;!G? z9$@$uVJMv6`(P-kJ{al*14Er)V5kTg82;YF&b?6>W^ED20K=6%(!ln zoL4+_bN%d}^Z>(;2t(m~;De#0`e3LN3=DOGfuSN~VEBOxop)6jX06L%V0c}RFuZ7X zNA;}E^0Lof?7PR%uPQe50K>l#hQj&W2SZ8q!B8g{80rKALq*8I@N*A4_XZfs@eSUU zv~k)=G-*e$>PhY&{wKKw%iNb4(j@@w#IlcQ94*NP2Lq*NR&>-j-8U!6f zmym(s*DiG4HOYeIuz&7I#-+)B9X%fKO7+U6j9J5agy5x#2UiR~?}{dZM2tnZleGrsX9|U!RfuK$>5LAS81bNUy&b@KRHWjg@umlLk02Ct~N%cWdCm1N|1Or7y$Ut$Z3!Zny z%yqxKl6Y%ZlfFFQhcbIG>AU{&S$|l*JodsDug<<~zm762hsfm@cLjr>%Way%_a^*= zv!@S!lInw>PB8G(2?l+SX>XJA9 za@r+ZMt+K2JUb5I1cFdFV|^f$R38X+f&rmUFd$Tf3<$@%$az;(k7&8Yq?!OCoKJU3Di|YGAZz zv*T-s4?I7xy!PF?=bRTFyRo`;_HWWPP%NHz-xVKC_z7p84}OyBgP%??@Y4wfeu|KR z-#iyK?}{N|(c&!|+Ztn$<)ndggdY0aN{a1J;!y{Qs4^3}O}CX?b=KCyPU&ntamBoI zzyHQr6&O_tt6z$mldU8_UbB_-%sdBilt_6{kGLK0tkn)eXaN3%q2xjqScEMLWTxJo zeU8|7xxBqIp`v!ZbysfDyzGrr|8oA;Gp7m@Sd_;Fps7tWDO1l}Ul)=MU|B5M(j@p7 z4=_BNAr!XME{exbB$Jei=(1=_F&hwF218-7jkPY;iro|gm%yx%ED2AKSY)$qF-Nn@=*qR)B%2VuW=+1sA|9GZjpwEAx#Uw&#Tn zu9XQ#U+kz-d)`#ByLhY@3EndJ8tFx#t(<9OY&Ouy2|O2GXXdimV3rFZz0MV>@Sb#c zFE4L1Mp}6lY*#N%9gIbjvG$A@DTd8WelE`brdNGa@}!8c{t1c@@TvT1#zBLXtx#I| zq8*q=O&k<1H8ph2`()z39?9r7yiB@8uBtw2J1kOCS}Sv+hTSP=R;&q|8yc5%ww;JtT-aUn zp30?!lAsC?pjIa;HjQhx=0j4UHPJ|mM-f{mCZTtbC1vRy(o1Tc|H7NGIXBEpbrcCU zE!&G>&4MK@uM_}QF}47p!W%mQ+HIOJ)`!Ejbw#Dst{BCYWX)SL>bh$}kY3j*w(Nq_ zRsEj!)~9b+^T8!QI^^5oFP%FBZzjwMcdFDbRsBNBT{vrfR9#YiR9z<+s;(0ZRaXSC zWUBhw6qD-CRCVI-41w5LK>UDC@}G-4(Z%!gfO7w;d6jeLRn=A3*J&MPJN}|CmmJQ=}-ekCbvw{BXp_Q8wqaV z+~Nbbr24?E6AZX@f&sT8xV(66_$|bq@s|zmDSmL*RoCHEm*Vn@S>d{Ht&vw3n(bO{ z#<|+>+`8w@xtN)(HmOiU5uT zFCN_Yc|5u|+2Ee)2X{@lBwSus)KFJcQ(mSwB$%)5J7M2_3-b#LMX5fGH{OB>BahsH zzinmbB`-D*?>RL2l#=m#updOESeb>JDHUfb3h)ws4ynU9r@Gme4+fd z3s}vvRbP!e^W8ab>>%=gAmoMfmXFFyst@uy!9ZRo7|1I^2J&xts_x!oL;fHiJCVoPw3+Jys zs7tC3>N>$dT_+f*D*`wYym&4AUp*e(n{22b?1TCcSKnm|-vB!mH!ECo0Dml0p6pg~ z2mgnsk8M5aicP=WXXEl)R)4ST-5pf6MRL@1m7U& z;2Q)Te3y_8zSU>Dz(3Rn{DE3~v;D}sW-_@We`(V}e`jNp%U=9w;mA)unYD4p)ZW^K zkQdHKALJ#~2YH=fAg>b)i?)zy#$=htr&2%5!gXNWT zt8443^=VTMkeA}s->~g!;jj7N@$)O6JLC_yAMnY9OU4v=E1QPZgZDUHb+6V`f?PP0 zeIS=qAINor0l7{vAXkJ8$R~R|x;NP%KfDwCrY*#H!^w*BBXM5McFv$&`<>jC{hXSy zv+jQQ@uwzl`Rx6Xoh8`uZZ67z!yHx$tP(A6*Cm6^pLI(0WP!juW z$RFW@{Ls1K8rqgJ56cB5)s^M7wME-Gjmm@G<0-adWOLt$7j}Q}y6djnR#o`Q$OC5| z>4$#z3kTMbguZa9ebARwAM|yCfxb>K&{u>E^mU-RM}LM7`UC2VDynOG06bZ{U<%#xLI~_8r)CzdC8P68OS7 z(Fc4<^#NZe7~ty!1AIlu0RKb{c6pl({9+&QLv`hIs~fOvP*qaywP1KG7Nh*ApYvHJ zb1iFf2mGQFo?u&_-tC?_|2+Mz*iFB!oe}3#HId9PZC!804|eBf&sWr zFaTEs1p#wsua?|yE1{NdHo!}K03T{D2RD=yRh8)Zb%nWWmB_?%qnE^CS@=Uz!eI~z z>I98MO%eU!9pl(+Z^pzsM)#~l%9Q@JH;eu1YKp3A=N6%UVy8M4mHztbmgB}wX9@|? zUexwU2TVOc_)tvN0}Mnl`k_ZYWjIyURbk2vnPol5Ok|dENRdyDHui~YiVoER|Jn<^ zQXfU{SA-3=CFOIAN>Za3q$0CxeFX2BC=KM`m?FSL3EhbmVM%^*Y;kF{G1iI$Lq!Bi zH!NH^wCm!G}tclmP zJCIN=MCYE+Ti;Nx%W_YtzwXIBmCx&n9Y~y7ZqGe&`f_pZDg6eixu-T4OLI@>E%xP} z#1p1ktjay5-(pMdsnZqh0k9%??C8f@fX-YvgV<3i$|&?g3&#wTos zXhF)9pZd@sh6IA5eXj^dUTHyQ2_L<{I5jFhtb&2KmR7-}xC7 zh*%rWRE@|lX{1d`%pqW3ft~(DH0qaVs;9}}xOY+Y2mtjY+iwqi(#Lo=&vKe;rwL0b zq`r0$D5-`)DYbf>tWNu+Pf~f3jcSXYl$RPOs)HlPOrl+nInACk1n9$unvZ*o^v#`- zLNJ2Q(9NuwhgCW?dK6EEhq8A8hglDwOhOd-hEROC3(Tyko;Mfg@n^sw#=Qc%UDG*E zGm8cz-CMF}Hd;R1^s1_^sl*#r0ajELy9CkFw*n1Or@mA5t5Yizsr?rC%#{42T$tZl znSH26LR^|Lh&7pW{TI1b&AP95bKz^dE!sb{^qA5a{oOSt2q$$2DHXP={ZzW(P%Nh+ zTvkW-+B%o;iZ&zLVwYWtc+#0JfH0Oh6;%@S#V&)OFLoIOeX+|W;3>?-E|hOwPJG(a z1v2Iu6;ZEr0lOLpKh@E}5_wILJaw>ME_>kYLq*O4jPyNlKmOaLn?Cuhl+C>A;o3(( znbCWD_rTdzV!}<)O_Liyw_4xABoCjl3++wCm0e{ge(%3Z@99x zKiMR@yPrhO6^8~tiRNx7zSAUo?|y}Aet1*Mb!XS@UH`j}X6Ao4l3h)8RXC?gIq9!a zBw@9WWMwiR$?60{vWk#JvZwZ_uI`advTCtpha~G+qVF`xuKVi1J4W}}uw?$?jn)5H zSvK>#k?iFpS>asdBUwrHk*rQI>a0#MB&!HnBzsYhB)g}NWQV$SR;}6XSf%w$-FKR3 zADH;s@-2Mywin-e`Qqd5o6+#yi1sHWTH)O2BU(xI5v@)zM5_}F(JDd~(cai2(eC9V zT4RxNhia^6&b`ybx_YmrOMbS``8Rxh+sx`I7nY??YRw$&(;#36d)bFctirk9N34?S zBUYVYh*c*TVpW7JV!gjdV$JgrtGDW%TDTTvz#+)eUILTke8x}SE{UBc*@vFrb=60m z-}~&nKF^+i<45H%M*j|s73>#CvclQwBUwrHk*rQIB&!n)$tpq?$!_hDWcSV{+05-1 zxl7jD1+dd3yQc2Q{fEEt>Fe#E-2P19$f6g&8_B*yk`>MyK9ZGGAIa(jL$W%-kgOtP zk?b2ilI%V{k~NxQZC6e1V)eEd>@=}HI=Za$ANTz2?i=Pm^1=Pz%<+b+049Cmh1lG| zruc6pR^fc=BUVZE5vxux#Htevu_{6qv3}YkvF_W6C(#YMF@+uM4xZ#xc8B`dLM*|( zM{8<3O|VzZtWAt){BZeMm$sF{K_2)bYmf-YE>(6wM4 zyGMfko{wNd?&gRc8xDJ$BzBriA87sFWyjoo(#QXt_2k))|FWq0yOHT`Bvavx@R6yc z`p8r#7&6rfhD;S9i%duKNT&Pw$kdzZs2AEhCfYoAAHYr%?W$S#FT3eCdq27RqQw(_ zu&v^Z??$xwBwFG4oOUS*`97kR$t1xLtxhmRs|Z;{OK*T^aZfkS1b5oPH$gy6BK?U` zt!5CpzmI5#m>UdsOtPNo^-h!Q=~e3w`t#B!o_T52m**GXJ7;Y-lHIXIVyB2CE1bi8 zDy^jYNLD8plGO=@WECNcWDo0+WJmi*c4XQjG1+wch!+sp(ze-Wu9JrF_Zhjt^_9UD41wIo>KRQU*2Qhfxg6AZ!X1VgZjkVUXnJre8~ zAHfdG+?vubNt6Ny51!*ZwtL(C?R~Rz@ajfrZM?2H`%Hj!_-L|$TVGEmSKm&7;rf74dvjx^oIK?f)T%;Q#;sI^2 zxyDzwVRE1us`wh9Z?9Ph$IgHxgQe))>Y6(25yQTMqw9ovDXZPAJ6vEZ24ivhA|DO| z6{(yRGRNU6N9=AXs>In$HMI?uMRWCx`wN?h&Llpv1;b(^asSyxwb-xOAoI`@jmc&Z zH9OLQ<3lA+Mt+#3xsO*BE~zW8md&Yp!l8nZj-@U6c#yVeBiTe5$p@+Al|@GbA(*|S zI6_^uCmE5kI48;~Ey6iTwbk>m>ogS|Hf>oSpoVr@)QSxOMy4(YwIwy>bL%R?8VAYj zMq;yTiWYSw6OqQGw;{mD8TO=t-HPgxB5a+ZmPo-O4IhPkD&jEtlG}A$`HoQOV6iQp zv7vZgRjHZ5sFZ+VC!_6hFc@$jt**Q>+^~Q)*JwNpNo7H2v@UQr4Y^#nT2@AeEp-iL zMJ09BHS_fxvfA*7heOSUO}a7$Gg!lXL8?tfQEhEQMRieWxJJ)=xZtiO(zZBX?9-@- zN1CDuBa2;C7V~N<8fFy{LN$I|N;4@^4Md~^ZX>O;a1d~dXQXCiI!t9+R$dWC9jUFZ zs5cqQy30vEbgU&xLTSMl*p0kBaljhCqKM8^)5IYyTSW%2_H6N~D*bAy87V6dSCkql z2c!f^n+=R2d*M0IKdbJAEM*%@hxtxSVt zSb1$j`ApbOg&XD;%`C4fN^d|k>n`1!YT;+Bu<%Kzk@D) zTC8pfgE#O=umD!$SjxKUQXEC0X`8?0wF}Om;)d|iB^C3^8{DJ0w4@sIei8|(ttJg5 zneK}OhLktMUT9_u<2ab;g<=WO`Q@*S$6K*r>Ux)J_bZlTXd!tKm1b6?V+s1YK=0Qc z-!kI(7j0&h;X}G;HDv2k&iW*mB%&Ql;w??f+mDzb#u)ZVL0lawng)g+B^fWIn?EI) zeL%jr{Sdd)rXEa%<+_ha>^~Fvi!qF)olQHwyRBU!t$QqOkd(I*=Gz1iw(w#oCNsz~ z6w@-8aV@*W4YlD4j12PXii#)YkDJgpPyUS&es7IeY@^8=FJrl(O8wG<<-57O@orW=Iniz& z|73zP(MT$%!Qwcyyor(nEr=3~&2w221n(gV^W3#eFKEpFu?L%&SD1P_wR-10OktkS z*&Z6zTpH2{nG;ZtIC^xRzIh*#D66Ti%o~$ZlYH;wVlRgrK|Chm@&;mogRPTc*a7Xb#i-S<<-20gLk=)Uz338uUiB4%cR>)vl7vt?#CC zYZ0?oPCa7wI_kzOnVp|gv*E=L=X={?GXQfVJ^$W&DqUDAlp6hGb{VWUBJUOrA6$Z}I_Szw6b5fB#rqTeA92wXw$-ZpR?< z-#j7IAS7M%(L}L=S5h>)$Q_cG%(Rnp<|fzkWTLQ77mszins6TJy7$39xon-jZs`N1SlF(s znO9XZ1{suvOJ-Hq2(ZTH6^HAN3S&{cuDStln8Rc8Mi)*hD4bGoK;fjxqw^-@jV>)M zsH`lQkH67bYjP@s$%S2J&=qfUYw{)NsYenrfVZn8co4rOQ>@yDD_u&KKZ@xs3`Cyqt%WcJ2o?t zI2R|ccs@O9*Dumso^egr-fYi_xW z%>-HNZm?VMC$g{3dNHBjQf_Ts{+kfU5(W#zwQ?@^;lgmGNpJEul~DY%q%V! z#9$cBj~EQfM2_O11fFt(QFpIyJ8 z`2*d+Bv)f!FPD^kNg(@qih+0n7JzBTzlpHi4|=0gt0^0G(3|*ha+2k6;GM^>cTAiz zuZBsISK)Fx*UaESKD}|$dY__Nd`zVjtx!$}xn(fslVv~{4GKG}L)M+Oq4v^g=e+*J zzixSO{hX?i5V<^XI*U<}dj#U4i{4*-@)Z;AFLfn8obt3`yQR**Bi~-wdsI8WwvImN zNdD2v@|=#cgZN zPYe2`mkrCt0cJ0UCYN#ps%V3Kj_e{LeH_j%fK8_`^YuI8+f{!?2ge1bdklp97%+P? zlL3=PJHdL!K>utE$WGFq0o8%_n1KO440uN`ySA;m47_cuir8}u2Kum|AINP0V4P&o zDD|EO|p<<@St~Q9i8roat_G;=7BqXKd`^!-js;yHUQm)3N)4FKy2zu-@%PN&OPB#Y@br2Wdfi-XRfgX5J?mZ#VcF;05SO`yy0ND44++65`~FQEol6 z_fevh$85_3v!8wTS?C2ZKL}3XXF{Ml2}%Qkbq*$yFusFdU$p-@2rFFQJ7ZGi|RD`MpCCy!y{@OqjI|yzvwtk86B%G^$VM5tof3PI~DNJo?;Q zpS9(^x%Rfh2Cr-`e#56t=qvd?O)v&W6yVn;JWDtT=V_ldK~jC%1f5{C2|B@O6BNPa z#r^tV;Axjd_bLRi9s;N=FU7u1vuz+EU+qov1;n&?5cXOLON5<=#e-h^A;Hc5EfM@}-CBp7ni35J{$LBZmEB{Cq7X47CJhF&tIgCMQtF7sp(kTO8a z-9Hg;ir@hM_Q>K`Tf`GpU_4|s-d9q-agb9Vl~Yqx9Q2U>|T!lL$C?w3n>+&50+FPIqC#Mjyl1RqatL;@e2bkc)FG2 zOizxYDdkkRhI!wZ5F0FMJM0*Fx{%BsC$u#+(Tm9y_{&?8-`biNX{T?PkvN%8L)6Ox zK{$cOGl5amOkfOx4vaz2fpH0vPjAGq3ym0vH?ex74d$2}%y|)^LMkGLlv%$MBZic7 z@sYOFvNE+M^rww3g4jb|SB^sfu-Mw|cZzD0D_Ww5zPx_R;NJxjQ{9zTQN7slqAtqE zA{XC~qrLkbdH6<9UQN6;(k8H{;fMGvCp~P;jozhLXsxi9a0dE_MN)mlq7w|U=mbM7 zk|6l-K2%R-4-_mWS)eY44>QW5+|EN0<l1?yC(g_Ail8}kg?t({rgS57DksnZ!?mdWpLwe8% zhf4-^n4prA#IEEl>;E{rqX{46iMK^sq;^&rA{zJ zDG8aPoTxYz6i?G-DDkE@v))5dWPTQXJlSik)j$XXAL9*xh)GR&pS=C@4#=B6J+IKq zMY|ED`{6U4co2@yadwiRKJcPXA`OCpkIYXZYTzRYf)ArX5YG=LtaGuZUK2k_CiQ^w zg-1S^$SXB{>$+u^S*BtJ)r3Cx^NMgWj~lcJGpxG+UomePrLTW#H`i5|5$mZH&BAg z)uI!sjV5BvB1;0N5AkOg)5FEcIW6S~1ZYGhBKzqgeTt};aD2{blLUEU4>NR8CX?A3 zx~LNjT~vgO1r3xhzbVwKXXmty^J=XcVp*BTmk8V?j8gZil|^8Wz zBDjj-)%=J;D0NY_3rJ+1W;s3`a?B})HbxdjapcmHcz(h?_bip0D$twKdzDChjf?Q! zU#lrSt3;cwetyA4|J-6v|8maP{rb;XWJD4=d_*Rb z`G`y>7$Q@IEcK^N;EYMT_T6}Jm*df-6MTd@I3-M+P8N$d#a&S%Uz%|faI#hL5$RNj zliJ0dC(^TjfBY94Ctp-LaqW4VSASTw+jk?#9IP$ktzs5-$As!lM3st8$xdP$Fjn(rf2{p742kSRV}C|;-Ryo&mx ze?3|J&~u;vv-!>bBRAeL=c(^Trnizzg>#dSOeNJvraHlpsZKCtst8$RdQ*>NT97VN zbfiNv+TJ21S}`K=Z+ufrY(AXHrJAMq+K0 zRR)#unzs7;@iF$`S)JIy0_KB$-#|Vzj^RyNSDul z$=Lx}58`c@H2J_OQwygaFy+7lr%r8{a^RFH2Ord%aV`#~E9hu0I6<7zDv!?VD2TRU z`8`_D9BXMQm|YWIhQo2`l;7UW=9n}@=q+V3nrJYNg9Q&+zYDH1!|{+U-f6vua<*$K zJ7tLIoj7WgW!RK+wr55%{Zz+1$Ck4ZsYJ@mUL0A;Szd~um`OW`m$Sjmv1m(EgLV=(XZg9-oH9y_ zS~E&!l4f)XOEl=NB$>vdP#PI*K#-A7%4QCr%LIPg2)uM=A+){0E68K5x~{0g+uXF|@$D9=tWFVq86CmCs3l6r z;<^U#oK4DA$2^OD=((4bVbhMXJ%U%~u&ogYd*La2Z9TSbA&si*#nw-imuGqF)HGCJ z+^SPu0F+f~7gVL%g1Wm`uA5df*@bd@WKBe5&6}lEq57%kar4zHlz+A&;jUhZZbDhI zC^Ln%TOA}XnNOivKkBTSl}0Ac^GZwu*ZqzMdOI&lrouN&(v?GN%ZSkHuvl9xc{peG zn6dSoIVJI?Xb9#KNA|^exwRn{V7>Ynrb$4Y7Xm zt|7!i@-7l${pDR_hz*c;C}W_!TO4A8LwKtyN^1?Vq4F*sV#DO!(hwUi z?>a&-1Q78$Lu{nHJ1N9Q$-5OHwu`*`ehB9di+HDm*lzOf2O+k*ygMz#_Kv~CGXA-u{?QqZiwy8_8~OR3$cCW-31}`J$d)T5Zh1QT@+&b%ezZLY_z<)ECgF2 zk@iO+HdfxP3$bzX?y3+QFYm4nu?h0-+7O#4@2(56e0g_6h!x1YABR|>yt_HXCds>> zgxCS{?$!{SEbnd)u_^NIry({~-rW^q)8ySfA$Fj=yD!8Jl6Uuq*unDdfe<@{9ZJvp zP>3BS?;Z)U>GJN;5IbDnJsx65$h$2eHbdS$5yDhYqq=^6t41 z3(LC~Laa>Qy%=IM<=smmHcQ^U5@O}@?zbT}Ti*RH#OBDm*F&sA-n|iGmGbVb5UY}R ze+aQ^dG|+j6crdOS9P{7iYDr)-9`7+*x3Q2JRDixRF0~^S>YIYz%f}v6yT`oL$iCS z+VrJLG?&Jq9q32W(~qqWu|Kg7`vS?2RNOKe8$f;kB7^_RS&*`*k0cQIi46RdGxH-3 zLH0R<#No>>Z@t-msdeI4ZYjx;Y?WkrI6k`9ww)JCwV}Hk!V$#*! zgu<8u^k)CWC`@%D-q=6L{sq2_(MphggU(GwG)DVDj(1}2HwVmNevn%bhu2Ao&u9d> z1ISVX`ylUyp39A+jp&0MIlG6~YeV@U?~Cz~O5ihw5AqN=^&7kg`2fyR2fGLPpwzQ_ z!}TB^k_z?4=|MgWq3HwkARmF}Ge_n@K8hP_p+UYYz*PLov3QX0o_aKG5FX@vBCR(1 z4)VMdGv2T}$oIiG#)ZrqZwLAJ#Dg1h69era-ya==9AO9fn3TB8p>>dtPv5afWV<7T#oO8q&Bt$`4r%4_KiV4O^ciA+JpQc zJhk6IImiz|3NsfPB?tLoLLjPC8X^ZdI!q|443e1#`3$r!ZkX!bgS;3u+Z_r7c`1^a zJ$#UtL7#ob#6dm_+UE_3gM2o)Fh;{cjoF%z`du|7}5rL6WWT@U^d8`5knuw2Kf@8lR1D5@)I&;j{#kfw;G+lN_i$Q)Wsz9cSG)xNeRX|y*qZD*HG&m|(mC#!bA5-qrsQ~uy@ zr@Rnf%YWFHPv#dQg2v-uz;;gsIZxcM5v*OZ)N&zpyX+ic?$w2GYUB(1{xAf&d=08E>9cgcmwxKpm(4+bc3S??o z#GxU6E5D6$xE&Hm#w9IX0^U>ql;25l?}Ek{hQL974`;neVWQQje+G(Oa)7e$K5SB4~m8xp=%-j zbE#BYNJ+Lpnr_r^M-obfuZJNF2|TY#_7o+H@TXCj{O%NbtSIIRmiXkzEL<^*!s4$* zb0~4e3`$%ve-c;Bp2QV%CvnBhNn9~+5?9Qc#1(TUam9>DTrpn~SIm~g6>}wV#Y{HvnBXPydNL(>55?9QM#1(TQam9>CTrnRKSImaQ z6>}kR#Y{+CF%J?~%!0%fb0BfW3`krt{}ETre#8}XA92OZM_e)Q5m(H5#1(TMam9>B zTruAfSIl}YN#Y{(BG0zcK%yPsPa~yHS3`blszY$l=Zp0OH8*#ATrr;!SIlO_6>}MJ#Y{$AF^>^f%woh9a~N^O3`Sfre-T&AUc?o17jebR zMO-m&!8OP@&B)=xioyB`^oYZ-taaS|tZp2?kJXcNG&u{%Ifk6$$T^;zMdUP*(@f41 za!w$pg`75W+Q~_flO$&uIm^jeNzTdSoJ!6ra!x1b406sQ=Nxj@kaIpcYstBgoQui1 zl$^`Sxq_T4$yra%HRNm{=X!E(B2RV0=b2mBnlCz1N&Ez~t&co#V zjGV{F`8heiAm>SPo+f82InR>wJUPE2=hx)COwMn}d6k^k$oV}vZ<6yiIq#73?p+WA zXYauohv_F7eLGlO=!0d20a#ENilu~6SVY(Z%Ln^l;b1hD3?`rfAT^zarGi7TNH7D- z17R!-%m%d@ive|52AGcpfa5UrZ$#`RnC`b?q7OrKb`mD{CnNP~n9!evsr-4E#9xT% z`(?=ON=(_W#bo_POw)gY3Hlw#{T@uuH)CS{2&Uve$7K8|l=dtuVlQIq{TocWU&nO& zZIu2Vrq~~0a{URW)n8&l{SR>S4V%MlR>6a;lJ{p-d!;fai@?+U?d=YEli`nt8*cbxD-e(`c zCF7eZsyQ4qZv6f1&*LWC&psYE@qYH1hpfPqu@*FztyoTK!vawpX)tk?IasS1KK29& zd^>LZkS`u!|FGC&>?{1I8Zdsy*G9I3sSuk$=P|l5@V<^Zrf{vr0fDv>&1@$(9 z7Ew?iBdCdj`WZpZ6x81cT0%hsji3`KXs{8~LP0}~pf(B`ZUnVc&`2XFK|#A1K}ibQ z%?MgXL3$6M>m*bmq(Y!!P5mFane z{DG~8>Yu@Tvoraw>?}T!oy}*kbD+ZK@@BS%uVCl#^V#|QT6O`yo2}(fupjbQ*@gVi z>>~aRyBG?HB^#xXGn7I;OBZ45p)d&g^i#M6g1Nax}Ji{ji4JTXpRwd69rWo zLAOv)wGp(Df|SOq$G(k%jx=K3K|!@f(47=C&j`Akf{rqR?xmplM$je-T4)4qrl4bu zpa)Z$)r`iSp{X6pu0oT&9!>4lSZllnjrFy#tK7iOVAru9vFq7Jb^{vS8`-bekJ%sD zO;}pHnfGD0pz-_(FJK#aF}sz|W4G}o>~{Wrb_ZX}e#)<7ck+ALUHmC_H?#?BeNvnF zzmzsXDTeX}#aZMr9-%G{L5)Vx&nPHr1U*JUi;bY4Q&7wZ`UM4@Xaqe;L9IrRQ0cf4 zw3T8lHG-a{pbjJGc?#+@f__CoZe5TM^lJ)o)m#R>OhK-q$e`a)&`CyKuTszoBj_~> z`o0nLdkQ+m2zrx(eqaQ>O+lv_LGMt|Y9lDs^|J+H+u?)Iiie;T4?`;+!MgL$SOa?$ z-S%VbO!hdt0v+(JYzsnvf$sMS_AYypZDUXIzU*nf2YUwH=vH3Be#z_EvpmM0<0rG{ z`48C(Fz+~npNUE2St{ymGgVxRTK${mnu*I0?UL_!Z+U zm$eGNwfL>a4?I|#@p}@#m+^ZCzfbY|247YT;fEd5Hugl@;L9$>56@s9k6#;pEATr5 zzl-tPfZwh7J%Ar<^6Xde`y+mz;rA^7fFYo>8-6$pkBR_#X6p3*fug^HspN*7F?> z-=&_f5WbC`Zy)%s^nAnM+u-?n!FP@8v;Gd>^`7q|_%?aI-@|u@=X)N$^F7~V@ZBVQ zmsQ?u-3{NcMg2dd%l(M{mS#T!1uD}I}W~Id%n5w{l@bZ z!}qG^n*!f!o^OBne((84!S|-;>kHr8u8;o;q#P+t%L7w_lekf@OkRRPJz!;C>DQ+|9JjTe)Ii& zBf=jRf>^VOBdfbBZ)Qgl6_Db&uHMWyBNC!+;tv^7RnSoW2x5UKla6?ZUpN1L{xjs# z4>>$WLYZ(ULz71nIID(Tiu>Q9@BJO0!rnj|`X)b^y@Pi2k37siKwJ7JekA(~+S9*c zLh~8g)X&jU{}0;LZM+i;ho|Cg*J)UbTf;fOfCu>Hcq6rr_r=;>KdeFx3;R=m)84sU8+<$Lkh`M&&pym$E!Z&kkJWBE2d(Xx2H72pS0gZN|%14L_2 zevq{{Kg^oIr&|TQ$U1}|I}{dciKz&z4i)zpM5faz&?XNXrIl0W?#%7wJ+ma><#=E z_6_`L`&RypeFuNeeta9Lb z#OmubSp%H7HPA^|L!DEsVa_URlyjc7i?i0+!&ztT>8!W*ac;Kubv9a~o%^gY&Sq~)FK~^|0!>UAo{rLayz5nZa z?_U_bxALjpTlrM)t$eEYRzB5xE1&AUl~48F%BOm7b;du_1?;-dT-@Zy|?nI-dp)p@2z~Q z_f|gDdrP0&dn=#ny_N5~?!6^&Zttyps`pkt)qBH-A)niOE1&AUl~48F%BOm7Wcn!jpY!(X?q=kHrL@DHt<`Ipu$e4BNfWm&gd0qZVnkaf2;)Y@e2Y29z_Z9Qa7 zupYJwtjDZFtjDeC))Uq&>q%>lwbiP(ere6OUa*?1Us;Q-m#u{Liq&cT&RS)?X05i~ zwANa0Sr=JDqJ+O%o2`$L>*vVj3+owc8&dw=`mOaZ>mBQB>ph!W zpW2r7h26{g#_nx%yPqAxzk&83dslm~y@x&A9%GNN$HO9<8KHR>{F19z=CH4(Sd8<9k zzQeAtAFwO!hwUTnr;yWDyWW1qKFWU8UTFW(KE{3@xqfCx>@V%8{jJ^XSoR4{fBQsd zkR5k+v)i3L?W8l-?sO*DE1U!EmChmdsZQAbfiufq?bO<5IQ8~9PQ*UfX|gYH;`Ul6 zVPEW=VqfB{vVY{9XJ6s0wbwiA?5myi_I1w9_Vvz2`zGf;`(|geeXFy@zRh{kzSDWp zzRP*pzR&r@-sF64KNuKiKNOf~KN^^7KNdL1{zYJh{VaO#C;xx%{a@F6|F_S*pD}uG zh?*8-mES_f}DNy!XaxpJo4+PqAO;)9l~#gYCC@vHb@gw%_Ab znDHHHf5aEqf9A*9pYUe;Qy#VC&yu%s5?{bFlhn=DPQD-FI>Wt#gIlJ>$ojv&L&fffeXCMBdvp@gR8O^sj<1NdX zfLUUpHOQHSnc-B-1gBYhJBMKQcc@k19AO>e%&?|ArPeIWD(5)mR=qRZn(tIuO-{A7 z7&FX-Q)hKLM_a3$`PORZSZl3woOO}2$Xf3-TGu*@t&PqS>vpHb+U&Gi4>?P%Couzk z##v^)?3`r%*7?5mj&rj09%iGTI;UA*IA>blIA_`1S!0LLzYTPLXz%J=Xz$@%YL9U) zv&W;ao90|;AM9LXmpa$lGo2gk8s|oPo^y+Ryz>*g(Yf7jbMCO0I(MT#y~jS;xgUM# zX8UaCVf34i*q1qv+Z&vp+c%(Jyw!QizQg&Y{ebhV{jl>Z`ziF3Tb)U ze{^2A-*?`!KXcx;zjWTUzjfYoEayX~zw?nZ$obgW&H2RH)A_;~>wM`rWb sYT$^#L4lIMjKCc9-dNSfY7UM;8t%JyGRY3eX>;l9$g)VI+8~D!C*}>E~yNT53!x+)s`(N zt!}6-s|giVG%PHusSQx$;;n5s6d8&f2cFws3r9 zRb)A$N9tLD7j#54(L!OfBjKhh zkuOLcB8BLZ7I58{Jc7q!5CCeTI*z2lew-q>MeUo2b-1YwSl$w8uZocb>sEF|Dp=m) zaO2V?alp`&V0%>n`^lZnlZ|>YS=Nim1bcfEp-|@mENFrP?a6a93-hHnFlb zl3;uH@Suo>$8wt@iEy-4vD07rYTbg4=_wT%5$OzRj>X%;iSlq`A{Jkntl@w>+9ujt zZ6uLk17*YLN<>@Hj)?C7HIgn!Ry2qTHUNzyK^4cqsb5<-+O7(lU_G&wM8#=Gt5hlH zwu_3OiaJQEXbZ!wUBGNw#?lJ0RwrwxlB%ep2Cu5pQngok4NTTnmDSXqvzq7CaFNp@ zmfK09MXlJUr&{3(w@;^Ro`Q`U$&wn9_j29{lNH)<(*TLj0^nwcf?~D zeG<_~XJxn}!6x|OV2__3gOWop=+TvH?~Auo8q9kJc_1X5$zOxR786&!6s(p5b$ZS4_eUy zspr!eTu4b47RBS?m6Yy^lV90w!!zNlY{o;(>5Q(5P=#V_xdSK9t6YqCbab2)XN8%H zNT?JVs8CAuH-s?^)&oTT)MFJAWRfI_kZ7OUx|*`OlG(^*YLB_34iI`;)W~*AU=C7O zBjyQ%g}V!)a9OHtXaE(MJBev13Yf7`kKVo%L)N6;3@?sTkp_mqp^u=*>XHLp71M*s=(Ti((X`MlUU9!H!sGlx8^8 zC15JnnTSUcjV71jnr2d%(O@d=HudoG#AM76V{za!RG*HZD_a)D zaF}43>k#HM+9bw(3aJJ4j)P#|iDZpQs$hTuCO{-hBP;0^-H_83YZ5~h)d{-KzD`sk zwyG2TI>OYGiP4l2?o+{b(t>EhUlVDLAWow@#~7?bs4~rBwm44%US;k#;t&%c z7D{e)Qy4g1U8rZLgT3{# zw$mnKn4QCdtr5(UYokkwqlwNrtY2Hq^R4K(V@~D&?)v5OrUe78dF-mTOs2mgcX5k~CO5_~n zpBpx85S0|!4@}N2M6urd@7EZj}6V*+4K6nU+cBqFxf##+dC>GXr(i^BPL4kErrm-UymbQC7RB%usAKLm}GU z-8R#K$!0oN03iG`>6RYcUnF|qgE{Bh8^*l8ZtKMR-kH8|c0$!;ig7R{En*cBzeym8 zSmxqTDRH2%kcd27xHOX*D)<}@;4}6PTC=F7U5UoJ2=;fxAI+yY#+n2|Cxu6}8QxB$s#AcO&@IczWO2@Y!1uJyvS%4+x zn8h*FpPn`_s7)dwiqwztRvUGc3?x5D3sQh)F}hNcDjgS0?A$Hw673CBram3ACMaI9 z*%l8kp&5CCjms!5%!u8n#BT=xZ*PoIrJ|&eG6j{J)kyBx888kKn|SFs21U3DWFQ`s zJA?|6{;praF*zf{qJGt=6x;y@n}!BE1H1se(c~f2WMwd>)#w${tN-vcf?_W76j(5~ zP)}2ExPnSLUUjDf-B}MCEPEoXZHYdJ9JykYog%2Rb44#VG1EYx^-Q7>s19zh#SYBW zC)KmQ(M~mG$H?!k2#60%1-{P?i?Ud_h&JEbo5Y$W+$uQ7s64f&IV;9~;~7+2-{lJB zF|oS^CK1Q>+(D+TQnshZq`Z!(VCcETN=@vcb;(69dO6i8QY85PL;67C_Ne5to4n() z>+L9NJxXo#Uj7R{iaH4b)HZ>;?dB-%BI>NRdCi9;6L=pYwgXgm*K-f(?H|zORa^ZL z8|dS6`Bhz`YjP;cJswUC}(ENT;I?-^=UV&ZGC5$u$2?2DQ)-l#_3 zUxgJ%Xg^d11{2}MwP+(^%S43*RG5Hw1X>OLh$O)k-ZbYViZBDqt<=3Q><3U}BCECf zCH-%@>xZX5`R;>zo^jvqP1TpVRTQn0V$nN@KI*Lmmj>QYA2UR8ELh=oa{0r*zm*c97<9+>tulp+$2>J zjIKf_7`W*K12;tgLndzPTo%16-iwuNzPBm5B-RahBLQ4ZufV(i^MR#LUHi+qFUP~9 z$3{v|O$878U^6l;f5bkR&yE9_5`XmakATHHx!jVns=Bfo^7Sl@D=3<9F7c6ur20rh zCm7Pu35GNjAx#>Wcv5h0F!`CEXeuly#w*lr2o+F@-UUjI~J|GxK+yzs&^ z=YG%&5FaNHh4Y9Hh?439qE0YC)CmTNijW54BQAE{HNk?SCKiX6VExwCNgUQu5rJ89 zl!8tTAJ8iluPiOTsqxeHoqzvH;@3^bR8Hsxiq8^{!g<;UMM?ERQ70HE>I4HtMMy*O zX%9X3Cc*L+#tREdBgc1!zsPOaLpliKm5wDhcDlwVdDi8e_A}K7a0DEFci+q zJ{U@>4~9Cyz)&X`7%D;!ua2y_ z_HWKv#rY2|ob!`jVE8d%D4Y*{FqBju40VEmp-wO`RD?7PKXjqe*eP@-JS_+b#c_ifem;;a7yAaQ@z* z5OfS(LK=qOy3l#o1Pg?q|J<2~NtORPDjx7kj>^;!%KT@6Ez1Z(A|{;1e#JdyXH98>o@?xbEY_2}R-L`=BVPJ}Bx014W%+pr{CGDCWE1 zc~`7l_bw=jwRN}XLoKwhvgpO4@A~z#f4^cy^rgSPKIf9XJIk>hBDY`M9SnjlyJZR= zMfeG4cOU#D)dxSFVBn_{4Ez)!4Zqzz+}s{<`9uUZA)ip(vagJ}6464~ja$Kv5?cC@Ml4 ziZeX)+#3warBR`Dy7}hrIzz(n!Cql_Vc!9djb4A!)RUk5`B&dfD7XDE%(62qCJcph zm=A`M>Vu(9Ffh~!28N1|hT&l@blx?=oVq9mWpL)ROor}+^=_}wyX_CR$B+2=r+?V| zx8aX|J*c!dLrEo}C!9Gx=t-&%dOE>CPbV1YDMA{0b3D}C8>nE4EyR*A^qyNYHs(D6 zBf7<2j4BUp85pX4ukJX~Tw>NVkZbNQek0CYdo1kyIZ0BG>Wfq)L1){P6x%4+M1N~>KliYv*Qx2Cmq(j*Y=J*BNv zY&is{R`q*3+J14vx(_e9^uT`(d-cr2u`z6}yOX(gTh-5})P-}dPgR#xpQ^4CjH<2^ zjH<2(V9BiN=O&p{cV<;5{!SH$tpz@ly2yVf?!*w!&jQN*s}@wwTToS3y%6u`i;U#D zL7L{Kh4>}sRkBy@9_hP}8nAxfT`vB7r{kKoCYDui-43L$qSS?Rg%8q_>VvdSFp$;> z2GWXDnhpv`&NQmIJfw~EvY_m>jVRConXMN2re&PAASq5XZ&S?d$J$gb=7q+?ou48 zm|a#^R%@iyP0c0+4skZUgJ2p&7>M}--T3z*KRx7*R}LFk9$k0psHqc%S9bcreUq1U zw{Sl|ISA)|AGjse2X38Uz^xMuxD^2$30^$7@Ar6gZ!*C>#SiY9vXZh;T~R|_QB9~^ z??|v-+jHWcdrm2wGDYO-(|I2R;4j{$dVc$=u8UrNuCQih%c})HI=Oh$L9^aB)sYaynIX&4B&Nw0lXrl0iXT`J`?cM ze1IS5*7)M0Sw*wT#DQid#Vn9_bxN`yMNhfwrO@r?u$pD7zZrkpdvkxgoyh;5kQdH7 zK2=^)eUR4)2J$+=Kwc5jkblRk>h4V@s2-3nhEhZ@K1* z`*t2U?8T`cuD+tOV~+o(xW_~%Re!%_;%9`qa6a)tT~d8e*9ivdI>A6)5x|k)#p~fe z@pyD^GNC@h2lXLteV09a1JqUAq;Smwe0pKKaGN@t^G+Gpw*0b+*6|;Xsn|~NEqY-soxbVdD{4CU20;hkAn4$`gjDdYzS{);zCPd&)cTuk zM}99Xu@a*p z=-y<4{D3a-o3at(O(!ct^I^7T8&^=S8c+6>{fwG%v+sHI$!Df-{^ElXT_t#Vn?8~6 zd8fcCA>@TqJ2CqN- zl$(Cne$U40N!tm00|76bV|;*@R3G4Vf&sivFo0KtG~kbsXlrh!ihr;V@Iy*N%7fRQcI1%{`hc$!4DfY= z0lp%nfxlFPUEXE_{}3PWgLR>K)eYD=Uv19<@Kpr3a9~fAxYS?jNx~{0z~y6-U;wTY48RpZLBQPgt0m9f zN~ooq3GhRG0M9o!gd0kVs!H_qIy|k7fgIsfNN8<9<%#SZY>V=SvZ74wLMm?z&ZPTL zPj*NuVSufejaUwwk~NXeSXaC;QVE?&*aE7^&1ZvEFBFCCk=0r^3D}>@>x6Aifn!!rx{<-3 zu)9b=PlFY^WjNhPrtXo*xSo(&sNy1xk=;}RrG#>5&nB8k1H-2lNqb1*wH0T0{VS_d zhS$HcDp?1=^GwzFzjU}SeTU(NceXZ>L<-4vkb}edO%W*RK&2e4JoI#WOGs-%?l{T~ZopjJCm)qKF`#Gv3>J z&(ZUjC1a($bL=*n*)BnC;4R$6>!2Q^$!)FfqIqj0wbkBTJbh!h zyEs1Em_0^KZn||BHFb-qyLf(sP)C+x~zj#8GG!lK(Lg6+{w6hr^4f(?(h!}MTS8k|p=p_=o7Jb|5FBANn9G*xM`u!=029s!_A zvhDhE%Rj}=CWGQ&Mh)l$vM5Xuma35AI|w8cXbt9+R72s4`Z!KnS$$L2Dm=k2Oe1#);De=);FoRb5r4mYT#!UiOSk0VDWY)2x~WSi?#sJ!~PMR4A17 z7C6jkqfOvs2*roHoLM#13+Ca>L>dfYLL#8sDV5_CwZW`3J<~faA8vB1s%t9o20}5kv{Y63K}uDgBweQ#s6o%_C>iS!f0PQtS|0Y7@dufbpY)BaZ#5FgAPIqw%hZ_( zI9>DmB7HcT>79OcHAPjm^NO(31LJ3uRjMlF>e=`AX`b@tu8a2xo^W*O;r+c$f>fpG z)g33%^DsfzC-uq{gB^Df-(izkF*{ZmHL_YxFU5@IeR?i03php6u* z7*FVX2`&LO)oG8lM`W7VQOK$tSD^RS?Ed=Tnp+#HnpIIo1x88ekIWo(Or17!n(!f; zjJEM)Gtlhm`sAV7XqK%$&Hk-ViZ)D;!FEg?olP%j3KuBbT-ltTvAz}M5)w{5Kl9_S zF5dXr7o}|06_3_F@!8>hw)OmsJyI%EQf-nZ$Ghh!C^#5IxM$$#;kxUloIT-*j&skP z+_CJ0>a(_)qfsdwdHZqwycSIgn$)UgKah2crs{0_H^o!>9s8#<150k(Y4kI-Z#EQ_ zxGey6D`|a`Kw2$8*g&`2-UKHQ2g2FMrwK}`PZQJ$MibNtMiW$ov?fUT51|s+`-nPa zwj2r{PT_QeS6kv-hp5XUNK-n%j-i8hQ94he$v&ENK*@*~ z(>mfT`eNTt@ci5Ac1o6ByxGE$(+^|oT@vQ|NLD^335H~Kf+1N&$RJs%fw8@9 zb=ORiRa-3EC0SRCb;tF>8@}1^&M|$jZ8>Vmt<`^9RX*$ckt}^#!4^(~Pn(rgAIa(j zL$W%-kgOtPkZeP*+U!Ul$>zIlR_)nsU!!%^WOtlsADZ;$ip_k?)|cP;)rH62e|W?9 zBiiL8TH(ZfL@TL2qSXn8Xmx@iT1Chp+IX)-yPJ<_jm^$&XtBvrmK22+qCehoVqLSx z2`!J0KKq7mZ=Y2?))v(@il6_>$E~`K8+Utw=`@V4YjUR_lb-oYDUPY1>j(mM$ zj#mn>$+(sJGon?J3qo4?Pn-+um9 z$7gpun=`-YI6fwI>C^vB4m*4ZM~9gfsbU3u2|E^?@6r5 zuGm#i-f<1~i819}f4ldqdu}-Du@4{kZmzex17Q4?u-iE;-b`W@&f`8}l~fI6fq zI>8XDB4iNj_w(vaW|Yp$zjKd|hk*G4@(a`BRhKiXPx>h~kse~@T}v(-nmlIkN`onVMo zCm5ntgbbqH+AGoSvE-8=2q3+h!k$?_bx~>A=%&V`Di+Ag3Z{~YY z-W$*kT}ONe6mP*bod93O&ux7J&!Lfh??4lN*rsYE?6bpU%Y-6Uz3JHpYd@2IYqTNI)ZOo z6Ic2}V>7+3ofGbaB{RvBksc;}Zt<$hO6o$@ReGBFf|1S>S_@H-_DCbCpBRr1Qjb>_ z9Vy?%C!eO`{MCqzwZ6!!vmm#QX_?`1|pKJy>Q!X*d%QA^nr{-hpI%&LltFcBem5P z3r)r{z8sf@j?8yJ+H&nzJGSDAu+5G?jj})Qyyf$|_2Y zC$&$g{uS$Vr zXsEU!Gz)4fWexL+W`(MXQacb$kw$%K(d7ziCg@yYo`~cGIIC+y@-Ug|1O3&PQM<*1 z{X`!UstT2uPibHR3$I;@XY#}|<=|4j(^45_dZe#XGYXaJBG3w@l%$M8rC7JpDv6er zE^6`GSLhajPl5%o8k*L1)ulKUt0j~foI%A6Wk;4&EC@BYRzkE#HRg4R01S%6=xgip ztME{33P$5%6f0a6i?v}R#r5K&*xvoh6__K)L`ChN9qw$wpq10-%_lbxKkj9lS>^af zADX}HMnbG_q9q>bY{8eoS9Bb9I87ChVF0c}ci_P}7hi8XU|+gB8|Ln&6;7esa}xNL z3+0vVIRJ5fgHo4s5lb_7H=(Da5#m|b(p`YMu`X!55gbVF#4IW6Qu)xFOo)F{8(5?`lg%@{bW~TiinwSp^nHTU%gqwsT^^ zB(KuwS(&k@uK4EXRUcW;O>f30RAqOcklwT>nj(#{rpQ=19&E613dgrEb~f+t@}N5pr9O3qsnJj&v17B84Pm*f)l(un>uptO^b(m|B226j3qz zjV_Cc5UBgN_n0a@gSLjH96Iq>578s-P2;*N3-LRpTdLL;ROgeH4pl*|dnnNEedD^4 zlU5mapo9XpIU2G4qzWAEENJg) zZKX<_ITev0QlUoRc2xxjA6hVV|AIPX(8I%1GttQr~x z1v?0}SVAKAf3ozVvZpl)7ls{#!1mW0besQ2tBvn?_kRYrtlJwJDvZ{nk#}Ii+0?`6 zvO`**IRgCWSG|8Xg8w}gkrotjOgP0FCsQw8P_RR5VmA}Z|1*s_+fEQQ@!t#Ke_d5f zgja+kZHvS46S{hs{qN8U>1O#~(K)Ir`EQ2uzpiS=x)S&t_`k51lo|dvRmp!7g#UF_ zu_MwHUK0IR&K*^b|4o(g-v*+rj@@-6J7NXcUNCn0)QJVtr;Yo*cMtycb8&5Z>3gk> zy~c1GCXxT*1)&BZ)kUA0C^p-cVfQiC+R)h;D{KrOA9iQwjmLM3yY__G@NN*>Q3V~# zvU&m*(3(^(9r0|QXpD9>g_|T_jp@7dF2fpEa;IMsB0gg|_LJig+L24{*UP=+)V)L> z%*1YUBHq>BI2H*sN9fylqWt3u7Dp1xBiN}J^xhAzMP9<@@-96ISR4B1kg^wq_86J_~%15w4>v_9-M2~~bdD{3-mNDh6v?$`Z zi3R#I&N^g>z`E=Sa#BmmvN9~aU01Y%>V#*8b7#kzpJ+vW3fLiq|}{nW{HEV<(KuzO4@RYpY4|`L$7NdXkRH>S|lvdxsBiJW*zAS(D&sLI$-PK3@(HfpZ5p3zL}gu>Go);E9X zc2s1rEn78LFO{T5Mowm&?a|$CgX^iFA*3nm$$p4Yjxh6AJJXM=Jv%M_Xx`94iSp$Z%Vkp{)uczm0ZEL>$OR6gtR92<~NMcY&;{&~q|o)D(6H70ocuxB3oWS@sGkAdu;S4b+sOD??{CqpH_ zjueTF@^wZ%pI{m`4}Tv!)e38+ptg8MD2cJ*M$@3Tp z`Z3_0PISNZr!ipC=txEH80epg0eMp0M8IVrX;Gwi3=HsLz_Y39YIW)|@Xmv2mM?n8 z!ayGubX&Iu0LGEvUc*1gCu`48fN`9>`#OMg$-OK8;7m*y)(U)>NYZ=9#1J1Q46Nnx z>m&!M#NK6}?~}c0A=sz|=_iPLm;F$m>^;-NM$X0&*WP71%qLT?=_S9DlZ4!BdfHLU z-mx&;hlLdD$42RWP7L;rfe}6o_*s!QxajV5ThFXuzIbqt^TiAn=6z<4PSt{n3gqnU zPNNDNEL>7<=fYa19BbS!dJlDN>shd1$>>|vLuq&u)-iLUD5NZBnhDEu-~YJo>>pgc z?8KM8nKOOs>~Y?aNU_#s5hT=4bkg$s8kCIS!^c2n4q2v`j?dRc6jeU08>lo0`oTwo zpdWm62^hCc1C@f&oQ&TX!SMuesae7+POT?736|H^xumc?Mn_Soz}}x{E_oWx)n#c9 zvpOCn{bD+HMoSmqDgHD&qkSuIbf~tZXkJ-2a?bw1KskM7LS{gR7YA3c+{I#iC9~)9&NB5rbq5C3G>2DP1sbS6c$#nKx0d^wJ9DEA0~it z|Gd^nbHYe(U@}Bctse!OY4vG^`OxCn3QGE@3f8B?$f;jEx}?QSdXN^RryUgGX5xJl zu?~Z;0bYRqXdXiK2L&_ZsbK)wo!oY2kCr$awwPXc;RVzSVtx>uoF58-O7oVIgh~T~ zjXk^E>Ul-;7r>4%#ZEOWd&gh$JO2J@$>q;{S@-fg7gg^eYM|Ht)!`QMdzKiz_RnDJ zz{02E8Bg-DTH~X$QGLCI@@@3Z{h=pbeCLbyg5RBc`@w@(H5Y4N%oXWS1;fE&dj4d= z7#ul4mGv>f4_E+ctnO+3O`K7E3GOcIPfK_?h}f+D!QxF5jDIo)N^y$S*B1OZfr zN^xRO$yEqbN{6rUmbn6AT09@-^%9l{I}3~F+|dQ2aWF*su@`Num)+dxDq^H{)NCFE zbu;C=-GaL9^_f>~`NQ)!e7VcG&sN#h? zFQe^Y84OY7On|H=NNFi?6+@Q9Du)^;uS14`1pg6KC?4;tZc$)FAss^nC0 zk~PB)IP5kw;ky^H_He7LomKS*|Mf>-%&c*1C%yaFFVo^nGx3p{80sqiXtK;JSbn3M zRf-J{F$FwMRDVr;pMLtOUd)vHZbkViiBdR!_7SC|`iN2|7^2h(hA1T=U6g-ToC=Cp z(`6{}_CF~l5nhVS*V1e*s_AZ!KaL6GAQ@TsgcPc^#i*khX zKR)XW{dnBC))SvP{F0HMZyi-yk@__NdXkdBfWl23=*m-w^$P~oEFoSbw70SxtDLOpZaP? z$X^BDkLD{@YrlvCV7WG~u^6(z0wUpj9qK#K=slVXwo9#os zocnFR{)eygWTH1BDIU1n+kU1|3c{Hr1z@xvN%aw#PB28K6AY0lLWcG;N#MM_?Psiy zFb5}v3EKwISX0auB}z?uBLrNxO=u>n4E2jUPNb*5ecWGfoqj>-q;t=DaLq?myM8|+ zEhUi(=P)0UN~(`Yb%G&MonVMm5i*GMuwIFDT&hUXB^rvGN}5WT*cNVTnp{~qS*$dv z9s0CW`d9|7WOtlUA6$L?PVdischk=I6fm zI>8XCB4iM1O|OJH-bbjqvfg&c6rc5CC+<+0Uiy!xiywLMFMn_TUH=ic-Z}S~??B;0SLqBjK>TStD+8;l8>A&bX?GCo(0wzdjE^`+m$Vno zsc|hU!U{=igkCerq-he5?a!Pm0 zGf!ybWoUA9eAV9L!p}q>XM3bYFzsVX=3^IV(s$r1DHL&I#O_qmkAo*di<`3&A{TQp5Ym2Hm8z^a>DzV3!@r`+p2U(WVvW3+ZvLFig(olIBz7<+h zq$RCjbW0;e!r2g+V_gWJfrVCURY|Cbv%xBmaA*+8du*q`M@E;ulA?(eCmHp)bhA{- zbcnu;Y$`8qjgXy7SFabHc(ygeQ$*%$xR;cns*Aimg4Zsf6bn4P@T3~59$Q!ZMDy}u z>t>>*abBI8f(mr@bgB!0Y6jgWwd19yeX1h4>~b zTF5RQ$$e1fEb>fZ?N)wL8bybf_K>F3r2}L(5&3X|_izfhuAOhrau24@P#?;fJ$Bqe z&YTihiwm+jY;GRRUseWL4$JM!ELI(4edOKzAPdO5+92yI?-m4Ep1eCE$ok2!=IFxY5|v3AHDf18xeTI&(H< ztTZ}G@0%yX`s+cNy;Sw{s3FXwXS$> z5(~p|1pZbA{*E)#Kze|^iy$&aJ=x{05Bmd}-;xN}-bZCihZrYUFFqb`1r8dgnNL+g zLG~VdzaRS}`v4`y5~Zj4w=rez!~O@87S*GBQ{@2r7*UqG)2+RQh=zQ!C*h5Jl-1MKhM z)NigEVE^DOc|0}1zDt(fo81ODUT=7axYODIw-A~-pAB#a!d;;zr+@*De%lLAPW}S? zNYTN_ilI&W0=zy&RwDJIMcdM97EPZ5{8+Hf02 zJNF9kW>m_E+#10cHf(Ijr>h5&Wh)x-l@(}AU|bU4znCnBhq{({Y&i{oefU!FFNPFB zP$uB}@HWinkSIp3IXsrf+j$2v#5f~Pd7|GK>yuxQ$9ZQS--9O*L8OTfF0@Q8jxH&M z9mKY9YahN0{ZleGdDOlSUy;W{Jdwvfq9^@cj0O0K80ITQQ9(g|68{lK zT)rCROWPp~@KaFrlOriUEI1{-3omAp`zhN)U_bLNmiqVtpa5SY3!K))wN5m4&!s zT_LVmRfsFr6yk~%g}7opA+A_Wh%43-;)<1oxMCe4u2@BgE7lO=iWP*oV*MblSUrd< z)(+x|m4moq-5{=5HHa(L4C0CvgScY7Ag)*~h%43#;)<1mxMH0ku2?0AE7l0&iWP#m zVtpX4SRLRRV4T*jaG}~_b)sHysK-=~e}Gku=l8RDkaIjat>m?j+|fa_%ALK5{ma z^B_47lk+G!kCU^BoS%{Nb8?<0=NIHWN6ri6Y$4~DfadH~I76_EqZ9WI7TSHW z#2$dfbv~BWJ7Gb+8;1waX#&Yp{g95sTNK zVA*;nQok2V)d#UieGJRfpJ8G8403yc6|tAmUA%?`=v(0VUF7~gmYW}Aq4^n>m|tRX z`8RO$9h=K-R>1@4-ukmDl&_kPVDtD$HlL4THGCgd%O|ipK7}pdGuc9ZAUlE|#*XBr z>?j^$^}GsLaP}+qYq+R@;8b>0gT_yIfW0w(;sfmM@sl24?|29b>= z@f4I}1hrC7A0w!pg8CXk9Te2h2#QlseCvmdfQf$|;u5g*J}^S#)~d_Q&ypTpMhW7w&@gPq3Lu(f(Fb0|e#x%JM$t9wf7!LXFS`zX+4X!f zyMY(88~FnEW8T7U;y++F^K;oPs0i4$QWar~stBU(%~ITiHt`UREnsl25p)*?RT@F} zP*AlIbRPxHH-a`&P^}U4AO$Tjf*z)zBaEO&Dd;F8=y3{KWCU%Zpks`npHYxovt@yP zPC;&^l|fHakXsXE&@U*c!AR>l3JM!RFHlgU5wwMZB1X_JDQJlilpI%C4Ys-&y9+YD z8#2BJquae0Pwrz44ATv^k)6gKfV3ZEx3P!V?!lUU{><@e$sBl=A>T0r$6R_g8E87t*~gml+dW?{d^fp1>udN<^?V=0x6bpu4d2zCZwq|q zdcIBYUF`Ypf$u`kcO!i3J>PoxZt;9)z<0Uut*pG+S_R+38~G|x2CEgmM?K%M@ICJN z=E1kg^A*GQGtV~zzNbCkKJfkA^X&xRFFao!e9yT){tx(G@O+=bx5e|l3*Rq2-z)IF z;`x3KU;9S>gH0S|;2X#1^B->HC*$@u+^&(g*CI}bh;teU7s7Y6=Q|bAPM6VEg5bfy zm%?|33l2X9zFR$CHGH19c@cb`xcPMWJaO~A;q%1JN5JQaoA-s!6F2(?K2O~26ZkxF zvv=V0#LZrY&l5M>44)@%c0YWVxdLW4!{-T~ZGi7uk9HP(H@YQaKZMV#7%cV(Kl7-3 ze%1s0T!h~#zy`?3W_{(&Y(7x|8}d2%L4GA7A?ikcjS*D^<@4(h3q<+o@JIM*M?Ju= zM=Jf00`fn(a^hX+$;3(p{mvPf4M!)t7AH`ln-}W0miM@sX?QMPlUdvVpMbs<02x`Z#buH}u^4Sb1pCvUOt=B?JFyv=%opI|-5 z)>eL+ZSl2s4qs;v;%C|U{5*Sie!e}5Uu=)# zm)H~e273m-+}@90Z5Q)v>@t3XJ&)gL*YaEJMf@lBvHT7@%I~yW`91b>ey_cXKVYB6 zAG9&)v@hb1+3Wd}_I3Pc_Ko~$`=|UF`yT$h{TP42-o$@tKhIybxA0%vZ}8XbxA~j) zhx{%3WB!i)6@Skch*{ioyV;q&Xd+~=UHon^MbXj^DApljEO(~ z|0Cpo>_F+wVz8X=WWjgZQxMo8&%M@Z#UBc$@F5mNco2&sH(gj7B?LMopcA(c;! zkjkeSuseEdLR6aFA!iNcwJ3=a-8X=WWjgZQxMo8sTBc$}XBc$@F5mNco z2&sH(gj7B?LMopcA(c;!kjkeoF!BW6k5u)_fkd7GPXi z$h$B;on$S-Skl1PS;z5ntR}wRitr6ql;3C_&u_Nc`8`&Q-*0vDO;&<$wpQ>h7{6Y& ze#qapPU7!ar|^%hHT)BdWnWuo@NcZMtz7FItFLu|HPpJ$8ey%sMq8I!ds|mnQ>-hk z>DIN@q1JU)k@aJ%!n(<-wr;iRt=p_)te;vf)?L<8>pp9lb-%UJddND}de}PMdK{@d zVO?Tv#*;s{Zm@n~-Dy2*-EF;SJ!)+Ms9!EW4(@lZ&`0!A6UP&KC*sqeQEu{ z+G>4ZTh@nmj`b&dko9Lf-}>C%-TJ~FWqoCjv;NnfX#L%uVSQuoXZ_PIwwYaKJN7&~ z$F8;e+KcQw`&fH`9kmDAt#-b>+#YJLvUjpivv;=7uy?aBvUj)F+oSF4>^7$o@zgDPqVk!``T~V``K^X2iYIm2iqUphudG-MfTTrnPc1KPOd%2 z8EnsWhT7H69`-zEv|Z;+vKKg0?4z86?0V-=`&cJrH#ik`qjQAa;E4i|6@nU|AsZ>9mWW$d}@SLJ~cur zpBf>RPmPeur$$KSQzNAEsS#58+!0dw)Cj43YJ^liH9{)ijvpZ*L|Tsi|23qxh6LEz zj*u$q_K%SEIn1)p<0G+>+1S;n6SX(;IJSto>__-X_M`k{ta{ejPx5o@r}%pNX{@ZC!%FITezW}& zR!_g=_uIeXo9tin%~%m_vERh%=y&{W`yH%^{>VSJ-{YUy|HHqwKjPompIEu}r&eG4 zFV;}|uhs~At2NsG+S=Rxhc(6i)|&2c>rltCikw`l!s%mGJN>MBCukkx46<6B!PZh| zn6=CqZmo27u}*b%wN7{Tur728tV^7|tZSXUts9(i)}79H>u#sedeoV0J>g8Zo^xhc zFFN~MuR8}=Z#jopA2^3vA34R=mrjYb)tO~m&TKmeW6U6@($070+q*k8_9$neJq}~e zL}!sb!#UdC&pFO6cET99A{eKd?ONw}dy%sg<5LXdQHR~?Brpbb*{htD_G!*4`wZtK z`y%H@_Iiv{*Ey%!H#%q7KXuNu?{UttA9K#NH#ryD&pQ{{TbxVnH=N7tx1B5P51p&* zkDcr6ubk`cubrD5+qv1vb#8M8JGVPSox7YpoV%UT&i&3LXQMO4dDuC~dBi!?dBO=f zo16;g=gtw%Q%=3}tP^pbb6T7&&Kl<>XRY(9^SJXX=Sk;vP~LD}aDEHl`xqgybBSFB b*vlB|cVsG&*$%mPq-+ipL>twyu=xK28~qE; diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jrxml index 97407aa62..068405b07 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioReceitaDiariaAgencia.jrxml @@ -1,8 +1,8 @@ - - + + + + + + + + + + + + + + + CD.ESTADO_ID THEN + 'S' + ELSE + 'N' + END INTERESTADUAL, + NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA, + (SELECT SUM(TR.CANTKMREAL) + FROM RUTA_SECUENCIA RS, TRAMO TR + WHERE RS.RUTA_ID = RT.RUTA_ID + AND RS.TRAMO_ID = TR.TRAMO_ID) EXTENSAO_KM, + NVL(SUM(BL.IMPORTESEGURO),0) RECEITA_SEGURO, + 0 RECEITA_BAGAGEM, + 0 RECEITA_SEGURO_OUTROS, + SUM(BL.PRECIOPAGADO) RECEITA_TARIFA, + COUNT(1) PASSAGEIROS, + COUNT(DISTINCT CASE + WHEN CR.TIPOSERVICIO_ID = 2 THEN + CR.FECCORRIDA || CR.CORRIDA_ID + ELSE + NULL + END) VIAGENS_EXTRA, + COUNT(DISTINCT CASE + WHEN CR.TIPOSERVICIO_ID <> 2 THEN + CR.FECCORRIDA || CR.CORRIDA_ID + ELSE + NULL + END) VIAGENS + FROM RUTA RT, + BOLETO BL, + CORRIDA CR, + TRAMO TR, + ROL_OPERATIVO RO, + DIAGRAMA_AUTOBUS DA, + TARIFA TF, + VIGENCIA_TARIFA VT, + GRUPO_RUTA GR, + PARADA PO, + PARADA PD, + CIUDAD CO, + CIUDAD CD + WHERE RT.RUTA_ID = CR.RUTA_ID + AND CR.FECCORRIDA = BL.FECCORRIDA + AND CR.RUTA_ID = NVL( $P{RUTA_ID} , CR.RUTA_ID) + AND CR.CORRIDA_ID = BL.CORRIDA_ID + AND CR.EMPRESACORRIDA_ID = $P{EMPRESA_ID} + AND CR.ORIGEN_ID = PO.PARADA_ID + AND CR.DESTINO_ID = PD.PARADA_ID + AND PO.CIUDAD_ID = CO.CIUDAD_ID + AND PD.CIUDAD_ID = CD.CIUDAD_ID + AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+) + AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID + AND RO.DIAGRAMAAUTOBUS_ID = DA.DIAGRAMAAUTOBUS_ID + AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID + AND TR.ORIGEN_ID = CR.ORIGEN_ID + AND TR.DESTINO_ID = CR.DESTINO_ID + AND TF.MARCA_ID = CR.MARCA_ID + AND TF.RUTA_ID = CR.RUTA_ID + AND TF.TRAMO_ID = TR.TRAMO_ID + AND TF.STATUSTARIFA = 'A' + AND TF.ACTIVO = 1 + AND BL.MOTIVOCANCELACION_ID IS NULL + AND BL.INDREIMPRESION = 0 + AND BL.INDSTATUSOPERACION = 'F' + AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID + AND VT.ACTIVO = 1 + AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND + VT.FECFINVIGENCIA + AND CR.FECCORRIDA BETWEEN + $P{DATA_INICIAL} AND + $P{DATA_FINAL} + GROUP BY RT.RUTA_ID, + RT.NUMRUTA, + RT.DESCRUTA, + TF.PRECIO, + DA.CANTASIENTOS, + RO.ROLOPERATIVO_ID, + GR.DESCGRUPO, + CO.ESTADO_ID, + CD.ESTADO_ID) TAB1) TAB]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <textField> + <reportElement uuid="9e87eb2d-1887-4b55-8185-532290be371a" x="0" y="24" width="114" height="15"/> + <textElement> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="13cd1307-cc98-498c-8bac-618957350b22" x="0" y="40" width="114" height="20"/> + <textElement> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="e9d8adae-c169-4fc4-9a35-fd1461933161" mode="Transparent" x="119" y="60" width="13" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$R{cabecalho.periodoA}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="false"> + <reportElement uuid="4408d1db-05db-4538-944d-5561074f2706" mode="Transparent" x="66" y="60" width="53" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$P{DATA_INICIAL}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="false"> + <reportElement uuid="06b0102b-f339-4eed-aad7-f6b84267c237" mode="Transparent" x="132" y="60" width="59" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$P{DATA_FINAL}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="c714d8a2-a41a-4fc8-848c-9cb455c3a0c7" mode="Transparent" x="1" y="60" width="65" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$R{cabecalho.periodo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="e5254cd0-647f-4b22-be4c-cce9afc5a10f" x="669" y="40" width="100" height="20"/> + <textElement textAlignment="Right"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA["Página: "+$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy"> + <reportElement uuid="55b08ff2-e470-4b59-8c56-58e6fa05ccd5" x="669" y="25" width="100" height="15"/> + <textElement textAlignment="Right"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="afaaa1cf-1a3e-4a42-9fa3-e634a66fc3d3" x="1" y="76" width="797" height="1"/> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnalitico.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnalitico.jrxml new file mode 100644 index 000000000..657d131e8 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnalitico.jrxml @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <textField> + <reportElement uuid="9e87eb2d-1887-4b55-8185-532290be371a" x="0" y="24" width="114" height="15"/> + <textElement> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="13cd1307-cc98-498c-8bac-618957350b22" x="0" y="40" width="114" height="20"/> + <textElement> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="e9d8adae-c169-4fc4-9a35-fd1461933161" mode="Transparent" x="119" y="60" width="13" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$R{cabecalho.periodoA}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="false"> + <reportElement uuid="4408d1db-05db-4538-944d-5561074f2706" mode="Transparent" x="66" y="60" width="53" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$P{DATA_INICIAL}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="false"> + <reportElement uuid="06b0102b-f339-4eed-aad7-f6b84267c237" mode="Transparent" x="132" y="60" width="59" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$P{DATA_FINAL}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="c714d8a2-a41a-4fc8-848c-9cb455c3a0c7" mode="Transparent" x="1" y="60" width="65" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <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[$R{cabecalho.periodo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="e5254cd0-647f-4b22-be4c-cce9afc5a10f" x="455" y="39" width="100" height="20"/> + <textElement textAlignment="Right"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA["Página: "+$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy"> + <reportElement uuid="55b08ff2-e470-4b59-8c56-58e6fa05ccd5" x="455" y="24" width="100" height="15"/> + <textElement textAlignment="Right"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java new file mode 100644 index 000000000..30b478e48 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java @@ -0,0 +1,88 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JRField; + +/** + * @author Bruno H. G. Gouvêa + * + */ +public class ArrayDataSource implements IDataSource { + + protected Relatorio relatorio; + protected ResultSet resultSet; + private Integer rowNum; + + protected List> dados; + + public ArrayDataSource(Relatorio relatorio) throws Exception { + this.relatorio = relatorio; + + this.initDados(); + this.rowNum = -1; + } + + @Override + public Object getFieldValue(JRField field) throws JRException { + try { + + Object valueCustomField = this.valueCustomFields(field.getName()); + + return (valueCustomField != null) ? valueCustomField : getByName(field.getName()); + + } catch (Exception e) { + e.printStackTrace(); + throw new JRException(e); + + } + } + + protected Object getByName(String name){ + return this.dados.get(this.rowNum).get(name); + } + + /* + * (non-Javadoc) + * + * @see net.sf.jasperreports.engine.JRDataSource#next() + */ + @Override + public boolean next() { + + this.rowNum++; + if ( this.dados != null && this.rowNum < this.dados.size()) { + return true; + } + + return false; + + } + + @Override + public void initDados() throws Exception { + + } + + /* + * (non-Javadoc) + * + * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.IDataSource#valueCustomFields(java.lang.String) + */ + @Override + public Object valueCustomFields(String fieldName) throws Exception { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ProcessadorParametros.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ProcessadorParametros.java index e3f47fdf8..3ff8099aa 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ProcessadorParametros.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ProcessadorParametros.java @@ -3,8 +3,6 @@ */ package com.rjconsultores.ventaboletos.relatorios.utilitarios; -import java.sql.Connection; -import java.util.Map; /** * @author Bruno H. G. Gouvêa diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java index 9a5d71c86..7fd5c685e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java @@ -1,7 +1,11 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; import java.sql.Connection; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; import java.util.Map; +import java.util.Set; import com.rjconsultores.ventaboletos.relatorios.render.RenderRelatorioJasper; @@ -27,11 +31,13 @@ public abstract class Relatorio { protected RenderRelatorioJasper render; private IDataSource customDataSource; private IParametros processadorParametros; + private Set infoMsg; protected Relatorio(Map parametros, Connection conexao) { this.parametros = parametros; this.conexao = conexao; + this.infoMsg = new HashSet(); } public Connection getConexao() { @@ -80,8 +86,6 @@ public abstract class Relatorio { protected abstract void processaParametros() throws Exception; - - /* * (non-Javadoc) * @@ -89,13 +93,20 @@ public abstract class Relatorio { */ public byte[] getConteudo(SaidaRelatorio saida) throws Exception { this.processaParametros(); - - if(this.render == null) + + if (this.render == null) this.render = new RenderRelatorioJasper(this); - return this.render.render(saida); - + return this.render.render(saida); } + public Set getInfoMsg() { + return infoMsg; + } + + public void addInfoMsg(String msg) { + this.infoMsg.add(msg); + } + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaGrupoRutaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaGrupoRutaController.java new file mode 100644 index 000000000..f38cd471d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaGrupoRutaController.java @@ -0,0 +1,131 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; + +import com.rjconsultores.ventaboletos.entidad.GrupoRuta; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderGrupoRuta; +import java.util.HashMap; +import java.util.Map; +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.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Textbox; + +/** + * + * @author Administrador + */ +@Controller("busquedaGrupoRutaController") +@Scope("prototype") +public class BusquedaGrupoRutaController extends MyGenericForwardComposer { + + @Autowired + private transient PagedListWrapper plwGrupoRuta; + private MyListbox grupoRutaList; + private Paging pagingGrupoRuta; + private Textbox txtNome; + + public MyListbox getGrupoRutaList() { + return grupoRutaList; + } + + public void setGrupoRutaList(MyListbox grupoRutaList) { + this.grupoRutaList = grupoRutaList; + } + + public Paging getPagingGrupoRuta() { + return pagingGrupoRuta; + } + + public void setPagingGrupoRuta(Paging pagingGrupoRuta) { + this.pagingGrupoRuta = pagingGrupoRuta; + } + + public Textbox getTxtNome() { + return txtNome; + } + + public void setTxtNome(Textbox txtNome) { + this.txtNome = txtNome; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + grupoRutaList.setItemRenderer(new RenderGrupoRuta()); + grupoRutaList.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + GrupoRuta c = (GrupoRuta) grupoRutaList.getSelected(); + verGrupoRuta(c); + } + }); + + refreshLista(); + + txtNome.focus(); + } + + private void verGrupoRuta(GrupoRuta c) { + if (c == null) { + return; + } + + Map args = new HashMap(); + args.put("grupoRuta", c); + args.put("grupoRutaList", grupoRutaList); + + openWindow("/gui/catalogos/editarGrupoRuta.zul", + Labels.getLabel("editarGrupoRutaController.window.title"), args, MODAL); + } + + private void refreshLista() { + HibernateSearchObject grupoRutaBusqueda = + new HibernateSearchObject(GrupoRuta.class, + pagingGrupoRuta.getPageSize()); + + grupoRutaBusqueda.addFilterLike("descgrupo", + "%" + txtNome.getText().trim().concat("%")); + grupoRutaBusqueda.addFilterNotEqual("grupoRutaId", -1); + + grupoRutaBusqueda.addSortAsc("descgrupo"); + grupoRutaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwGrupoRuta.init(grupoRutaBusqueda, grupoRutaList, pagingGrupoRuta); + + if (grupoRutaList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("busquedaGrupoRutaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisa(Event ev) { + refreshLista(); + } + + public void onClick$btnRefresh(Event ev) { + refreshLista(); + } + + public void onClick$btnNovo(Event ev) { + verGrupoRuta(new GrupoRuta()); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarGrupoRutaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarGrupoRutaController.java new file mode 100644 index 000000000..dc13772ac --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarGrupoRutaController.java @@ -0,0 +1,143 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; + +import com.rjconsultores.ventaboletos.entidad.GrupoRuta; +import com.rjconsultores.ventaboletos.service.GrupoRutaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; +import java.util.Calendar; +import java.util.List; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.util.resource.Labels; +import org.zkoss.zul.Button; +/** + * + * @author Administrador + */ +@Controller("editarGrupoRutaController") +@Scope("prototype") +public class EditarGrupoRutaController extends MyGenericForwardComposer { + + @Autowired + private GrupoRutaService grupoRutaService; + private GrupoRuta grupoRuta; + private MyListbox grupoRutaList; + private MyTextbox txtNome; + private Button btnApagar; + private static Logger log = Logger.getLogger(EditarGrupoRutaController.class); + + public GrupoRuta getGrupoRuta() { + return grupoRuta; + } + + public void setGrupoRuta(GrupoRuta grupoRuta) { + this.grupoRuta = grupoRuta; + } + + public MyTextbox getTxtNome() { + return txtNome; + } + + public void setTxtNome(MyTextbox txtNome) { + this.txtNome = txtNome; + } + + public Button getBtnApagar() { + return btnApagar; + } + + public void setBtnApagar(Button btnApagar) { + this.btnApagar = btnApagar; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + grupoRuta = (GrupoRuta) Executions.getCurrent().getArg().get("grupoRuta"); + grupoRutaList = (MyListbox) Executions.getCurrent().getArg().get("grupoRutaList"); + + if (grupoRuta.getGrupoRutaId() == null) { + btnApagar.setVisible(Boolean.FALSE); + } + + txtNome.focus(); + } + + public void onClick$btnSalvar(Event ev) throws InterruptedException { + txtNome.getText(); + + try { + String nomeGrupoRuta = grupoRuta.getDescGrupo(); + List lsGrupoRuta = grupoRutaService.buscarPorNome(nomeGrupoRuta); + + if (lsGrupoRuta.isEmpty()) { + grupoRuta.setActivo(Boolean.TRUE); + grupoRuta.setFecmodif(Calendar.getInstance().getTime()); + grupoRuta.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + if (grupoRuta.getGrupoRutaId() == null) { + grupoRutaService.suscribir(grupoRuta); + grupoRutaList.addItem(grupoRuta); + } else { + grupoRutaService.actualizacion(grupoRuta); + grupoRutaList.updateItem(grupoRuta); + } + + Messagebox.show( + Labels.getLabel("editarGrupoRutaController.MSG.suscribirOK"), + Labels.getLabel("editarGrupoRutaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + closeWindow(); + } else { + Messagebox.show( + Labels.getLabel("MSG.Registro.Existe"), + Labels.getLabel("editarGrupoRutaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } + } catch (Exception ex) { + log.error("editarGrupoRutaController: " + ex); + Messagebox.show( + Labels.getLabel("MSG.Error"), + Labels.getLabel("editarGrupoRutaController.window.title"), + Messagebox.OK, Messagebox.ERROR); + } + } + + public void onClick$btnApagar(Event ev) { + try { + int resp = Messagebox.show( + Labels.getLabel("editarGrupoRutaController.MSG.borrarPergunta"), + Labels.getLabel("editarGrupoRutaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + grupoRutaService.borrar(grupoRuta); + + Messagebox.show( + Labels.getLabel("editarGrupoRutaController.MSG.borrarOK"), + Labels.getLabel("editarGrupoRutaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + grupoRutaList.removeItem(grupoRuta); + + closeWindow(); + } + } catch (Exception ex) { + log.error(ex); + } + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaComissaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaComissaoController.java new file mode 100644 index 000000000..f7c6c19d0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaComissaoController.java @@ -0,0 +1,164 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; + +import java.util.List; + +import org.apache.log4j.Logger; +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.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Messagebox; + +import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; +import com.rjconsultores.ventaboletos.service.PuntoVentaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; + +/** + * + * @author Bruno H. G. Gouvêa + * + */ +@Controller("editarPuntoVentaComissaoController") +@Scope("prototype") +public class EditarPuntoVentaComissaoController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + @Autowired + private PtovtaComissaoService ptovtaComissaoService; + + @Autowired + private PuntoVentaService puntoVentaService; + + private MyListbox ptovtaComissaoList; + private static Logger log = Logger.getLogger(EditarPuntoVentaComissaoController.class); + + private List lsDestino; + private MyComboboxEstandar cmbReceita; + private MyComboboxEstandar cmbDestino; + + private PtovtaComissao ptovtaComissao; + + @Override + public void doAfterCompose(Component comp) throws Exception { + PtovtaComissao ptovtaComissao = (PtovtaComissao) Executions.getCurrent().getArg().get("ptovtaComissao"); + this.ptovtaComissaoList = (MyListbox) Executions.getCurrent().getArg().get("ptovtaComissaoList"); + this.ptovtaComissao = ptovtaComissaoService.obtenerID(ptovtaComissao.getPtovtaComissaoId()); + this.lsDestino = puntoVentaService.obtenerTodos(); + + + super.doAfterCompose(comp); + + for (PtovtaComissao.enumReceita p : PtovtaComissao.enumReceita.values()) { + Comboitem comboItem = new Comboitem(p.descricao()); + comboItem.setValue(p.valor()); + comboItem.setParent(cmbReceita); + + } + + if (this.ptovtaComissao.getReceita() != null) + if (this.ptovtaComissao.getReceita().equals("RB")) { + cmbReceita.setSelectedIndex(0); + } else if (this.ptovtaComissao.getReceita().equals("RL")) { + cmbReceita.setSelectedIndex(1); + } + + } + + public void onClick$btnSalvarPtovtaComissao(Event ev) throws InterruptedException { + + if (cmbReceita.getSelectedItem() != null) { + this.ptovtaComissao.setReceita((String) cmbReceita.getSelectedItem().getValue()); + } + /*if (cmbDestino.getSelectedItem() != null) { + this.ptovtaComissao.setReceita((String) cmbReceita.getSelectedItem().getValue()); + }*/ + ptovtaComissaoService.actualizacion(this.ptovtaComissao); + + Messagebox.show( + Labels.getLabel("editarPuntoVentaComissaoController.MSG.suscribirOK"), + Labels.getLabel("editarPuntoVentaComissaoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + closeWindow(); + + } + + public void onClick$btnApagarPtovtaComissao(Event ev) { + try { + int resp = Messagebox.show( + Labels.getLabel("editarPuntoVentaComissaoController.MSG.borrarPergunta"), + Labels.getLabel("editarPuntoVentaComissaoController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + + ptovtaComissaoService.borrar(this.ptovtaComissao); + + Messagebox.show( + Labels.getLabel("editarPuntoVentaComissaoController.MSG.borrarOK"), + Labels.getLabel("editarPuntoVentaComissaoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + ptovtaComissaoList.removeItem(this.ptovtaComissao); + + closeWindow(); + } + } catch (Exception ex) { + log.error(ex); + } + } + + public PuntoVentaService getPuntoVentaService() { + return puntoVentaService; + } + + public void setPuntoVentaService(PuntoVentaService puntoVentaService) { + this.puntoVentaService = puntoVentaService; + } + + public List getLsDestino() { + return lsDestino; + } + + public void setLsDestino(List lsDestino) { + this.lsDestino = lsDestino; + } + + public PtovtaComissao getPtovtaComissao() { + return ptovtaComissao; + } + + public void setPtovtaComissao(PtovtaComissao ptovtaComissao) { + this.ptovtaComissao = ptovtaComissao; + } + + /** + * @return the cmbReceita + */ + public MyComboboxEstandar getCmbReceita() { + return cmbReceita; + } + + /** + * @param cmbReceita + * the cmbReceita to set + */ + public void setCmbReceita(MyComboboxEstandar cmbReceita) { + this.cmbReceita = cmbReceita; + } + + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java index 362ebc9e3..c40ca8548 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java @@ -8,7 +8,9 @@ import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; @@ -21,6 +23,7 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.UiException; import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.UploadEvent; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zkplus.databind.BindingListModel; @@ -66,6 +69,7 @@ import com.rjconsultores.ventaboletos.service.InstiFinanceiraService; import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.NodoService; import com.rjconsultores.ventaboletos.service.PtoVtaUsuarioBancarioService; +import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; import com.rjconsultores.ventaboletos.service.PtovtaEmpresaService; import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; @@ -82,6 +86,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.PtovtaEmpresaRender; import com.rjconsultores.ventaboletos.web.utilerias.render.PtovtaEstoqueRender; import com.rjconsultores.ventaboletos.web.utilerias.render.PtovtaHorarioRender; import com.rjconsultores.ventaboletos.web.utilerias.render.PtovtaUsuarioBancarioRender; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtovtaComissao; /** * @@ -114,6 +119,9 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private PtoVtaUsuarioBancarioService ptoVtaUsuarioBancarioService; @Autowired private UsuarioBancarioService usuarioBancarioService; + @Autowired + private PtovtaComissaoService ptovtaComissaoService; + private PuntoVenta puntoVenta; private Textbox txtCP; private MyListbox puntoVentaList; @@ -124,7 +132,9 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private MyListbox ptovtaAntecipaList; private MyListbox ptovtaHorarioList; private MyListbox ptovtaEstoqueList; + private MyListbox ptovtaComissaoList; private static Logger log = Logger.getLogger(EditarPuntoVentaController.class); + private List lsEmpresas; private List lsBanco; private List lsTipoPuntoVenta; @@ -139,12 +149,15 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private List lsPtovtaUsuarioBancario; private List lsAntecipacomissao; private List lsHorario; + private List lsEmpresaComissao; private List lsEstoque; private List lsDestino; + private List lsPtovtaComissao; private Radio radDatosTarjetaSi; private Radio radDatosTarjetaNo; private Radio radAprobacionAutorizado; private Radio radAprobacionLatente; + private Button btnAdicionarEmpresaComissao; private Combobox cmbPuntoVentaPadre; private Combobox cmbFormaPago; private Combobox cmbEmpresa; @@ -166,6 +179,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private Combobox cmbUsuarioBancarioPtoVtaUsuarioBancario; private Combobox cmbPosicao; private Combobox cmbReceita; + private Combobox cmbEmpresaComissao; private Button btnSalvarFormaPago; private Button btnApagar; private Doublebox txtCargosExtras; @@ -190,16 +204,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private Datebox dateAntecipData; private MyTextboxDecimal txtAntecipRetem; private MyTextboxDecimal txtAntecipPercentual; - private MyTextboxDecimal txtPassagemBaixa; - private MyTextboxDecimal txtPassagemAlta; - private MyTextboxDecimal txtExcessoBaixa; - private MyTextboxDecimal txtExcessoAlta; - private MyTextboxDecimal txtSeguroBaixa; - private MyTextboxDecimal txtSeguroAlta; - private MyTextboxDecimal txtOutrosBaixa; - private MyTextboxDecimal txtOutrosAlta; - private MyTextboxDecimal txtIss; - private MyTextboxDecimal txtRoyaties; + private Image img; private Timebox timeboxInicio; private Timebox timeboxFim; @@ -210,15 +215,6 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private Textbox txtNomeBanco; private Textbox numtelefonodos; private Textbox numtelefonouno; - private Checkbox checkRecibo; - private Checkbox checkTarifaReceita; - private Checkbox checkTaxaReceita; - private Checkbox checkSeguroReceita; - private Checkbox checkPedagioReceita; - private Checkbox checkTarifaDev; - private Checkbox checkTaxaDev; - private Checkbox checkSeguroDev; - private Checkbox checkPedagioDev; private Checkbox checkInformatizada; private Checkbox checkBilheteInfo; private Checkbox checkVendaInternet; @@ -261,12 +257,30 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { lsTipoPuntoVenta = tipoPuntoVentaService.obtenerTodos(); lsUsuarioBancario = usuarioBancarioService.obtenerTodos(); + ptovtaComissaoList.setItemRenderer(new RenderPtovtaComissao()); + ptovtaComissaoList.addEventListener("onDoubleClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + PtovtaComissao ptovtaComissao = (PtovtaComissao) ptovtaComissaoList.getSelected(); + abrirPtovtaComissao(ptovtaComissao); + } + }); + try { txtCP.setDisabled(true); puntoVenta = (PuntoVenta) Executions.getCurrent().getArg().get("puntoVenta"); if (puntoVenta.getPuntoventaId() != null) { + puntoVenta = puntoVentaService.obtenerID(puntoVenta.getPuntoventaId()); + lsEmpresaComissao = empresaService.buscarNotInPuntoVtaComissao(puntoVenta); + + lsPtovtaComissao = ptovtaComissaoService.buscarByPuntaVenta(puntoVenta); + + + btnAdicionarEmpresaComissao.setDisabled(false); + ptovtaComissaoList.setData(lsPtovtaComissao); + if (puntoVenta.getColonia() != null) { cmbCiudad.setText(puntoVenta.getColonia().getCiudad().getNombciudad()); cmbColonia.setText(puntoVenta.getColonia().getDesccolonia()); @@ -301,125 +315,6 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } } - if (puntoVenta.getPuntoventaId() != null) { - if (puntoVenta.getComissaoId() != null) { - - if (puntoVenta.getComissaoId().getExcessoAlta() != null) { - txtExcessoAlta.setText(puntoVenta.getComissaoId().getExcessoAlta().toString()); - - } - if (puntoVenta.getComissaoId().getExcessoBaixa() != null) { - txtExcessoBaixa.setText(puntoVenta.getComissaoId().getExcessoBaixa().toString()); - } - - if (puntoVenta.getComissaoId().getPassagemBaixa() != null) { - txtPassagemBaixa.setText(puntoVenta.getComissaoId().getPassagemBaixa().toString()); - } - - if (puntoVenta.getComissaoId().getPassagemAlta() != null) { - txtPassagemAlta.setText(puntoVenta.getComissaoId().getPassagemAlta().toString()); - } - - if (puntoVenta.getComissaoId().getSeguroBaixa() != null) { - txtSeguroBaixa.setText(puntoVenta.getComissaoId().getSeguroBaixa().toString()); - } - - if (puntoVenta.getComissaoId().getSeguroAlta() != null) { - txtSeguroAlta.setText(puntoVenta.getComissaoId().getSeguroAlta().toString()); - } - - if (puntoVenta.getComissaoId().getOutrosBaixa() != null) { - txtOutrosBaixa.setText(puntoVenta.getComissaoId().getOutrosBaixa().toString()); - } - - if (puntoVenta.getComissaoId().getOutrosAlta() != null) { - txtOutrosAlta.setText(puntoVenta.getComissaoId().getOutrosAlta().toString()); - } - - if (puntoVenta.getComissaoId().getIssretido() != null) { - txtIss.setText(puntoVenta.getComissaoId().getIssretido().toString()); - } - - if (puntoVenta.getComissaoId().getRoyalties() != null) { - txtRoyaties.setText(puntoVenta.getComissaoId().getRoyalties().toString()); - } - - if (puntoVenta.getComissaoId().getTarifaDev() != null) { - if (puntoVenta.getComissaoId().getTarifaDev()) { - checkTarifaDev.setChecked(true); - } else { - checkTarifaDev.setChecked(false); - } - } - - if (puntoVenta.getComissaoId().getTaxaDev() != null) { - if (puntoVenta.getComissaoId().getTaxaDev()) { - checkTaxaDev.setChecked(true); - } else { - checkTaxaDev.setChecked(false); - } - } - - if (puntoVenta.getComissaoId().getPegagioDev() != null) { - if (puntoVenta.getComissaoId().getPegagioDev()) { - checkPedagioDev.setChecked(true); - } else { - checkPedagioDev.setChecked(false); - } - - } - - if (puntoVenta.getComissaoId().getSeguroDev() != null) { - if (puntoVenta.getComissaoId().getSeguroDev()) { - checkSeguroDev.setChecked(true); - } else { - checkSeguroDev.setChecked(false); - } - } - - if (puntoVenta.getComissaoId().getTarifaReceita() != null) { - if (puntoVenta.getComissaoId().getTarifaReceita()) { - checkTarifaReceita.setChecked(true); - } else { - checkTarifaReceita.setChecked(false); - } - } - - if (puntoVenta.getComissaoId().getTaxaReceita() != null) { - if (puntoVenta.getComissaoId().getTaxaReceita()) { - checkTaxaReceita.setChecked(true); - } else { - checkTaxaReceita.setChecked(false); - } - } - if (puntoVenta.getComissaoId().getReceita() != null) { - if (puntoVenta.getComissaoId().getReceita().equals("RB")) { - cmbReceita.setSelectedIndex(0); - } else if (puntoVenta.getComissaoId().getReceita().equals("RL")) { - cmbReceita.setSelectedIndex(1); - } - } - - if (puntoVenta.getComissaoId().getPedagioReceita() != null) { - if (puntoVenta.getComissaoId().getPedagioReceita()) { - checkPedagioReceita.setChecked(true); - } else { - checkPedagioReceita.setChecked(false); - } - } - - if (puntoVenta.getComissaoId().getSeguroReceita() != null) { - if (puntoVenta.getComissaoId().getSeguroReceita()) { - checkSeguroReceita.setChecked(true); - } else { - checkSeguroReceita.setChecked(false); - } - } - } else { - puntoVenta.setComissaoId(new PtovtaComissao()); - } - } - if (puntoVenta.getPuntoventaId() != null) { if (puntoVenta.getAgenciaId() != null) { @@ -722,17 +617,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { txtTitularEmissor.getValue(); txtAntecipRetem.getValue(); txtAntecipPercentual.getValue(); - txtPassagemBaixa.getValue(); - txtPassagemAlta.getValue(); - txtExcessoBaixa.getValue(); - txtExcessoAlta.getValue(); - txtSeguroBaixa.getValue(); - txtSeguroAlta.getValue(); - txtOutrosBaixa.getValue(); - txtOutrosAlta.getValue(); - txtIss.getValue(); - txtRoyaties.getValue(); - txtcodAg.getValue(); + txtResponAluguel.getValue(); txtResponTel.getValue(); txtResponEnergia.getValue(); @@ -750,8 +635,8 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { cmbTipoConta.getValue(); cmbPosicao.getValue(); - //checar uma forma onde o proprio componente coloque como null o atributo - if (cmbPuntoVentaPadre.getSelectedItem() == null){ + // checar uma forma onde o proprio componente coloque como null o atributo + if (cmbPuntoVentaPadre.getSelectedItem() == null) { puntoVenta.setPuntoVentaPadre(null); } List lsPuntoVenta = puntoVentaService.buscaPuntoVenta(txtNumPtoVta.getValue()); @@ -871,37 +756,6 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { puntoVenta.getTitularId().setFecmodif(Calendar.getInstance().getTime()); } - if ((txtIss.getValue().equals("")) && (txtRoyaties.getValue().equals("")) && (txtExcessoAlta.getValue().equals("")) - && (txtExcessoBaixa.getValue().equals("")) && (txtPassagemBaixa.getValue().equals("")) - && (txtPassagemAlta.getValue().equals("")) && (txtSeguroBaixa.getValue().equals(""))) { - puntoVenta.setComissaoId(null); - } else { - if (cmbReceita.getSelectedItem() != null) { - puntoVenta.getComissaoId().setReceita((String) cmbReceita.getSelectedItem().getValue()); - } - puntoVenta.getComissaoId().setEnviarrecibo(checkRecibo.isChecked()); - puntoVenta.getComissaoId().setTarifaReceita(checkTarifaReceita.isChecked()); - puntoVenta.getComissaoId().setTaxaReceita(checkTaxaReceita.isChecked()); - puntoVenta.getComissaoId().setSeguroReceita(checkSeguroReceita.isChecked()); - puntoVenta.getComissaoId().setPedagioReceita(checkPedagioReceita.isChecked()); - puntoVenta.getComissaoId().setTarifaDev(checkTarifaDev.isChecked()); - puntoVenta.getComissaoId().setTaxaDev(checkTaxaDev.isChecked()); - puntoVenta.getComissaoId().setSeguroDev(checkSeguroDev.isChecked()); - puntoVenta.getComissaoId().setPegagioDev(checkPedagioDev.isChecked()); - puntoVenta.getComissaoId().setExcessoAlta(txtExcessoAlta.getValueDecimal()); - puntoVenta.getComissaoId().setExcessoBaixa(txtExcessoBaixa.getValueDecimal()); - puntoVenta.getComissaoId().setPassagemBaixa(txtPassagemBaixa.getValueDecimal()); - puntoVenta.getComissaoId().setPassagemAlta(txtPassagemAlta.getValueDecimal()); - puntoVenta.getComissaoId().setSeguroBaixa(txtSeguroBaixa.getValueDecimal()); - puntoVenta.getComissaoId().setSeguroAlta(txtSeguroAlta.getValueDecimal()); - puntoVenta.getComissaoId().setOutrosBaixa(txtOutrosBaixa.getValueDecimal()); - puntoVenta.getComissaoId().setOutrosAlta(txtOutrosAlta.getValueDecimal()); - puntoVenta.getComissaoId().setIssretido(txtIss.getValueDecimal()); - puntoVenta.getComissaoId().setRoyalties(txtRoyaties.getValueDecimal()); - puntoVenta.getComissaoId().setActivo(Boolean.TRUE); - puntoVenta.getComissaoId().setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); - puntoVenta.getComissaoId().setFecmodif(Calendar.getInstance().getTime()); - } if ((txtResponAluguel.getValue().equals("") && (txtResponTel.getValue().equals("")))) { puntoVenta.setDiversosId(null); @@ -1431,6 +1285,39 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } } + public void onClick$btnAdicionarEmpresaComissao(Event ev) throws InterruptedException { + if (cmbEmpresaComissao.getSelectedItem() == null) { + Messagebox.show( + Labels.getLabel("MSG.Error.combobox"), + Labels.getLabel("editarPricingController.windowMarca.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + Empresa empresa = (Empresa) cmbEmpresaComissao.getSelectedItem().getValue(); + + PtovtaComissao ptovtaComissao = new PtovtaComissao(); + + ptovtaComissao.setEmpresaId(empresa); + ptovtaComissao.setPuntoventaId(this.puntoVenta); + + ptovtaComissaoService.suscribir(ptovtaComissao); + + lsPtovtaComissao.add(ptovtaComissao); + + List lsPtovtaComissaoAtivo = new ArrayList(); + for (PtovtaComissao rc : lsPtovtaComissao) { + if (rc.getActivo()) { + lsPtovtaComissaoAtivo.add(rc); + } + } + ptovtaComissaoList.setData(lsPtovtaComissaoAtivo); + + cmbEmpresaComissao.getSelectedItem().setVisible(false); + + abrirPtovtaComissao(ptovtaComissao); + + } + public PuntoVenta getPuntoVenta() { return puntoVenta; } @@ -1828,85 +1715,6 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { this.lsParamRecoleccion = lsParamRecoleccion; } - public MyTextboxDecimal getTxtPassagemBaixa() { - return txtPassagemBaixa; - } - - public void setTxtPassagemBaixa(MyTextboxDecimal txtPassagemBaixa) { - this.txtPassagemBaixa = txtPassagemBaixa; - } - - public MyTextboxDecimal getTxtPassagemAlta() { - return txtPassagemAlta; - } - - public void setTxtPassagemAlta(MyTextboxDecimal txtPassagemAlta) { - this.txtPassagemAlta = txtPassagemAlta; - } - - public MyTextboxDecimal getTxtExcessoBaixa() { - return txtExcessoBaixa; - } - - public void setTxtExcessoBaixa(MyTextboxDecimal txtExcessoBaixa) { - this.txtExcessoBaixa = txtExcessoBaixa; - } - - public MyTextboxDecimal getTxtExcessoAlta() { - return txtExcessoAlta; - } - - public void setTxtExcessoAlta(MyTextboxDecimal txtExcessoAlta) { - this.txtExcessoAlta = txtExcessoAlta; - } - - public MyTextboxDecimal getTxtSeguroBaixa() { - return txtSeguroBaixa; - } - - public void setTxtSeguroBaixa(MyTextboxDecimal txtSeguroBaixa) { - this.txtSeguroBaixa = txtSeguroBaixa; - } - - public MyTextboxDecimal getTxtSeguroAlta() { - return txtSeguroAlta; - } - - public void setTxtSeguroAlta(MyTextboxDecimal txtSeguroAlta) { - this.txtSeguroAlta = txtSeguroAlta; - } - - public MyTextboxDecimal getTxtOutrosBaixa() { - return txtOutrosBaixa; - } - - public void setTxtOutrosBaixa(MyTextboxDecimal txtOutrosBaixa) { - this.txtOutrosBaixa = txtOutrosBaixa; - } - - public MyTextboxDecimal getTxtOutrosAlta() { - return txtOutrosAlta; - } - - public void setTxtOutrosAlta(MyTextboxDecimal txtOutrosAlta) { - this.txtOutrosAlta = txtOutrosAlta; - } - - public MyTextboxDecimal getTxtIss() { - return txtIss; - } - - public void setTxtIss(MyTextboxDecimal txtIss) { - this.txtIss = txtIss; - } - - public MyTextboxDecimal getTxtRoyaties() { - return txtRoyaties; - } - - public void setTxtRoyaties(MyTextboxDecimal txtRoyaties) { - this.txtRoyaties = txtRoyaties; - } public Intbox getTxtQuant() { return txtQuant; @@ -2068,6 +1876,30 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { this.ptovtaUsuarioBancarioList = ptovtaUsuarioBancarioList; } + public List getLsEmpresaComissao() { + return lsEmpresaComissao; + } + + public void setLsEmpresaComissao(List lsEmpresaComissao) { + this.lsEmpresaComissao = lsEmpresaComissao; + } + + public Combobox getCmbEmpresaComissao() { + return cmbEmpresaComissao; + } + + public void setCmbEmpresaComissao(Combobox cmbEmpresaComissao) { + this.cmbEmpresaComissao = cmbEmpresaComissao; + } + + public Button getBtnAdicionarEmpresaComissao() { + return btnAdicionarEmpresaComissao; + } + + public void setBtnAdicionarEmpresaComissao(Button btnAdicionarEmpresaComissao) { + this.btnAdicionarEmpresaComissao = btnAdicionarEmpresaComissao; + } + public void onChange$cmbPuntoVentaPadre(Event ev) throws InterruptedException { if (puntoVenta.getPuntoventaId() != null) { List lsPuntosSubordinados = puntoVentaService.buscarPuntoVentaSubordinados(puntoVenta); @@ -2088,4 +1920,14 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } } } + + public void abrirPtovtaComissao(PtovtaComissao ptovtaComissao) { + Map args = new HashMap(); + args.put("ptovtaComissao", ptovtaComissao); + args.put("ptovtaComissaoList", ptovtaComissaoList); + + openWindow("/gui/catalogos/editarPuntoVentaComissao.zul", + Labels.getLabel("ededitarPuntoVentaComissaoController.window.title"), args, MODAL); + + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioController.java index a6f33e897..bd05f1c74 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioController.java @@ -4,7 +4,6 @@ */ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; - import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -17,6 +16,7 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Div; import org.zkoss.zul.Filedownload; import org.zkoss.zul.Iframe; +import org.zkoss.zul.Messagebox; import org.zkoss.zul.Toolbarbutton; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.SaidaRelatorio; @@ -30,32 +30,29 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; @Scope("prototype") public class RelatorioController extends MyGenericForwardComposer { - private Div divResultadoRelatorio; - private Iframe iframeRelatorio; - private Toolbarbutton btnSalvarPDF; - private Toolbarbutton btnSalvarXLS; - private AMedia conteudoRelatorioPDF; - private AMedia conteudoRelatorioXLS; - private Relatorio relatorio; - - - /** + private Iframe iframeRelatorio; + private Toolbarbutton btnSalvarPDF; + private Toolbarbutton btnSalvarXLS; + private AMedia conteudoRelatorioPDF; + private AMedia conteudoRelatorioXLS; + private Relatorio relatorio; + + /** * @return the btnSalvarPDF */ public Toolbarbutton getBtnSalvarPDF() { return btnSalvarPDF; } - /** - * @param btnSalvarPDF the btnSalvarPDF to set + * @param btnSalvarPDF + * the btnSalvarPDF to set */ public void setBtnSalvarPDF(Toolbarbutton btnSalvarPDF) { this.btnSalvarPDF = btnSalvarPDF; } - /** * @return the btnSalvarXLS */ @@ -63,70 +60,58 @@ public class RelatorioController extends MyGenericForwardComposer { return btnSalvarXLS; } - /** - * @param btnSalvarXLS the btnSalvarXLS to set + * @param btnSalvarXLS + * the btnSalvarXLS to set */ public void setBtnSalvarXLS(Toolbarbutton btnSalvarXLS) { this.btnSalvarXLS = btnSalvarXLS; } - - public Iframe getIframeRelatorio() { return iframeRelatorio; } - public void setIframeRelatorio(Iframe iframeRelatorio) { this.iframeRelatorio = iframeRelatorio; } - public Div getDivResultadoRelatorio() { return divResultadoRelatorio; } - public void setDivResultadoRelatorio(Div divResultadoRelatorio) { this.divResultadoRelatorio = divResultadoRelatorio; } - - @Override public void doAfterCompose(Component comp) throws Exception { - super.doAfterCompose(comp); - this.relatorio = (Relatorio) Executions.getCurrent().getArg().get("relatorio"); - + if (relatorio.getInfoMsg().size() > 0) + { + String msg = ""; + for (String msgItem : relatorio.getInfoMsg()) + msg = msg.concat(msgItem+"\n"); + Messagebox.show( + msg, "", + Messagebox.OK, Messagebox.INFORMATION); + } + super.doAfterCompose(comp); final InputStream mediais = new ByteArrayInputStream(this.relatorio.getConteudo(SaidaRelatorio.PDF)); - conteudoRelatorioPDF = new AMedia("relatorio.pdf", "pdf", null, mediais); - - - iframeRelatorio.setContent(conteudoRelatorioPDF); - - + } - - public void onClick$btnSalvarPDF(Event ev) { - Filedownload.save(conteudoRelatorioPDF.getStreamData(), "application/pdf", "relatorio.pdf"); + public void onClick$btnSalvarPDF(Event ev) { + Filedownload.save(conteudoRelatorioPDF.getStreamData(), "application/pdf", "relatorio.pdf"); } - - public void onClick$btnSalvarXLS(Event ev) throws Exception { + + public void onClick$btnSalvarXLS(Event ev) throws Exception { final InputStream mediais = new ByteArrayInputStream(this.relatorio.getConteudo(SaidaRelatorio.XLS)); conteudoRelatorioXLS = new AMedia("relatorio.xls", "xls", null, mediais); - Filedownload.save(conteudoRelatorioXLS.getStreamData(), "application/xls", "relatorio.xls"); + Filedownload.save(conteudoRelatorioXLS.getStreamData(), "application/xls", "relatorio.xls"); } - - - - - - } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java index cb877efc3..9eba0d2a8 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java @@ -5,6 +5,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -16,19 +17,28 @@ import org.zkoss.util.resource.Labels; import org.zkoss.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Button; import org.zkoss.zul.Checkbox; import org.zkoss.zul.Combobox; import org.zkoss.zul.Comboitem; import org.zkoss.zul.Datebox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; import org.zkoss.zul.Paging; +import org.zkoss.zul.Radio; import org.zkoss.zul.Textbox; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioReceitaDiariaAgencia; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EstadoService; import com.rjconsultores.ventaboletos.service.PuntoVentaService; +import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; @@ -47,12 +57,19 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom @Autowired private EstadoService estadoService; @Autowired + private EmpresaService empresaService; + @Autowired private PuntoVentaService puntoVentaService; @Autowired + private TipoPuntoVentaService tipoPuntoVentaService; + @Autowired private DataSource dataSource; - private List lsEstado; - private ArrayList lsNumPuntoVenta = new ArrayList(); + private List lsEstado; + private List lsEmpresa; + private List lsTipoPuntoVenta; + + private List lsNumPuntoVenta; @Autowired private transient PagedListWrapper plwPuntoVenta; @@ -64,10 +81,15 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom private Textbox txtPalavraPesquisa; private Combobox cmbEstado; + private Combobox cmbEmpresa; private Combobox cmbPuntoVenta; + private Combobox cmbTipoPuntoVenta; private Datebox datInicial; private Datebox datFinal; private Checkbox chkExcessoBagagem; + private Checkbox chkContemplarGap; + private Radio rd1; + public Datebox getDatInicial() { return datInicial; @@ -157,31 +179,44 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom this.puntoVentaSelList = puntoVentaSelList; } + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public List getLsTipoPuntoVenta() { + return lsTipoPuntoVenta; + } + + public void setLsTipoPuntoVenta(List lsTipoPuntoVenta) { + this.lsTipoPuntoVenta = lsTipoPuntoVenta; + } + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { executarRelatorio(); } public void onDoubleClick$puntoVentaList(Event ev) { - + PuntoVenta puntoVentaSel = (PuntoVenta) puntoVentaList.getSelected(); - Boolean bExiste = false; + puntoVentaSelList.addItemNovo(puntoVentaSel); + + + } - for (PuntoVenta objPuntoVenta : lsNumPuntoVenta) { - if (objPuntoVenta.equals(puntoVentaSel)) - bExiste = true; - } + public void onDoubleClick$puntoVentaSelList(Event ev) { + + PuntoVenta puntoVentaSel = (PuntoVenta) puntoVentaSelList.getSelected(); + puntoVentaSelList.removeItem(puntoVentaSel); - if (!bExiste) { - lsNumPuntoVenta.add(puntoVentaSel); - puntoVentaSelList.setData(lsNumPuntoVenta); - } } public void onSelect$puntoVentaList(Event ev) { - - } public void onClick$btnLimpar(Event ev) { @@ -196,8 +231,7 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom * */ private void limparPesquisaAgencia() { - lsNumPuntoVenta.clear(); - puntoVentaSelList.setData(lsNumPuntoVenta); + puntoVentaSelList.setData(new ArrayList()); } @@ -238,8 +272,14 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom parametros.put("DATA_INICIO", new java.sql.Date(((java.util.Date) this.datInicial.getValue()).getTime())); parametros.put("DATA_FINAL", new java.sql.Date(((java.util.Date) this.datFinal.getValue()).getTime())); parametros.put("B_EXCLUI_BAGAGEM", chkExcessoBagagem.isChecked()); + parametros.put("B_CONTEMPLAR_GAP", chkExcessoBagagem.isChecked()); parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioReceitaDiariaAgenciaController.window.title")); + parametros.put("ISDEVOLUCAODESTINO", rd1.isChecked() ? 0 : 1); + + lsNumPuntoVenta = new ArrayList(Arrays.asList(puntoVentaSelList.getData())); + + if (lsNumPuntoVenta.size() > 0) { parametros.put("NUMPUNTOVENTA", lsNumPuntoVenta); parametros.put("ISNUMPUNTOVENTATODOS", "N"); @@ -253,6 +293,19 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom parametros.put("ESTADO_ID", estado.getEstadoId()); } + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + parametros.put("EMPRESA_NOME", empresa.getNombempresa()); + } + + Comboitem itemTipoPunto = cmbTipoPuntoVenta.getSelectedItem(); + if (itemTipoPunto != null) { + TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) itemTipoPunto.getValue(); + parametros.put("TIPOPTOVTA_ID", tipoPuntoVenta.getTipoptovtaId().intValue()); + } + Relatorio relatorio = new RelatorioReceitaDiariaAgencia(parametros, dataSource.getConnection()); Map args = new HashMap(); @@ -266,11 +319,16 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom @Override public void doAfterCompose(Component comp) throws Exception { lsEstado = estadoService.obtenerTodos(); + lsEmpresa = empresaService.obtenerTodos(); + setLsTipoPuntoVenta(tipoPuntoVentaService.obtenerTodos()); super.doAfterCompose(comp); puntoVentaList.setItemRenderer(new RenderPuntoVentaSimple()); puntoVentaSelList.setItemRenderer(new RenderPuntoVentaSimple()); + } + + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioResumoLinhasController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioResumoLinhasController.java new file mode 100644 index 000000000..bd2d814df --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioResumoLinhasController.java @@ -0,0 +1,136 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +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.Comboitem; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Radio; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhas; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhasAnalitico; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.PuntoVentaService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +/** + * + * @author Administrador + */ +@Controller("relatorioResumoLinhasController") +@Scope("prototype") +public class RelatorioResumoLinhasController extends MyGenericForwardComposer { + + @Autowired + private DataSource dataSource; + @Autowired + private EmpresaService empresaService; + @Autowired + private RutaService rutaService; + + private List lsRuta; + private List lsEmpresa; + + private Datebox fecCorridaIni; + private Datebox fecCorridaFin; + private MyComboboxEstandar cmbRuta; + private MyComboboxEstandar cmbEmpresa; + + private Radio rd1; + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + /** + * @throws Exception + * + */ + private void executarRelatorio() throws Exception { + + Relatorio relatorio; + Map parametros = new HashMap(); + + parametros.put("DATA_INICIAL", (java.util.Date) this.fecCorridaIni.getValue()); + parametros.put("DATA_FINAL", (java.util.Date) this.fecCorridaFin.getValue()); + parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioResumoLinhasController.window.title")); + + Comboitem itemRuta = cmbRuta.getSelectedItem(); + if (itemRuta != null) { + Ruta ruta = (Ruta) itemRuta.getValue(); + parametros.put("RUTA_ID", ruta.getRutaId()); + } + + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + parametros.put("EMPRESA", empresa.getNombempresa()); + } + + if (rd1.isChecked()) + relatorio = new RelatorioResumoLinhas(parametros, dataSource.getConnection()); + else + relatorio = new RelatorioResumoLinhasAnalitico(parametros, dataSource.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioResumoLinhasController.window.title"), args, MODAL); + + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + setLsRuta(rutaService.obtenerTodos()); + lsEmpresa = empresaService.obtenerTodos(); + + super.doAfterCompose(comp); + } + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + + public MyComboboxEstandar getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(MyComboboxEstandar cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/StringPercentToDecimalConverter.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/StringPercentToDecimalConverter.java index a23b25a13..61e4edd21 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/StringPercentToDecimalConverter.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/StringPercentToDecimalConverter.java @@ -26,7 +26,7 @@ public class StringPercentToDecimalConverter implements TypeConverter { if (format == null) { format = FORMAT; } - DecimalFormat df = new DecimalFormat(format, new java.text.DecimalFormatSymbols(new Locale("us"))); + DecimalFormat df = new DecimalFormat(format, new java.text.DecimalFormatSymbols(new Locale("pt", "BR"))); return df.format(val); } return null; @@ -39,7 +39,7 @@ public class StringPercentToDecimalConverter implements TypeConverter { if (val instanceof String) { - return (val.toString().trim().isEmpty()) ? (BigDecimal) null : new BigDecimal(val.toString().replace(",", "")); + return (val.toString().trim().isEmpty()) ? (BigDecimal) null : new BigDecimal(val.toString().replace(".", "").replace(",", ".")); } return null; } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuGrupoRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuGrupoRuta.java new file mode 100644 index 000000000..3972466d5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuGrupoRuta.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuGrupoRuta extends DefaultItemMenuSistema { + + public ItemMenuGrupoRuta() { + super("indexController.mniGrupoRuta.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.CATALOGO.MENU.GRUPORUTA"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/catalogos/busquedaGrupoRuta.zul", + Labels.getLabel("busquedaGrupoRutaController.window.title"), null,desktop); + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/confcomerciales/ItemMenuImportarClientes.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/confcomerciales/ItemMenuImportarClientes.java new file mode 100644 index 000000000..bb180cfbc --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/confcomerciales/ItemMenuImportarClientes.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuImportarClientes extends DefaultItemMenuSistema { + + public ItemMenuImportarClientes() { + super("indexController.mniImportarClientes.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.CONFIGURACIONECCOMERCIALES.MENU.IMPORTARCLIENTES"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/configuraciones_comerciales/importarClientes.zul", + Labels.getLabel("importarClientesController.window.title"), null, desktop); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioResumoLinhas.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioResumoLinhas.java new file mode 100644 index 000000000..9e966f524 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioResumoLinhas.java @@ -0,0 +1,25 @@ +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 ItemMenuRelatorioResumoLinhas extends DefaultItemMenuSistema { + + public ItemMenuRelatorioResumoLinhas() { + super("indexController.mniRelatorioResumoLinhas.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIORESUMOLINHAS"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioResumoLinhas.zul", + Labels.getLabel("relatorioResumoLinhasController.window.title"), null,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 4539dace0..831260e86 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 @@ -1,76 +1,66 @@ catalogos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.MenuCatalogos -catalogos.articulos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuArticulo -catalogos.tipoCorte=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTipoCorte catalogos.claseServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuClaseServicio catalogos.categoria=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuCategoria catalogos.estado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuEstado catalogos.ciudad=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuCiudad -catalogos.colonia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuColonia catalogos.cuponConvenio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuCuponConvenio catalogos.empresa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuEmpresa catalogos.formaPago=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuFormaPago +catalogos.grupoRuta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuGrupoRuta catalogos.marcas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuMarcas catalogos.monedas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuMoneda catalogos.pais=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuPais catalogos.plaza=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuPlaza -catalogos.productoServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuProductoServicio catalogos.tipoConvenio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTipoConvenio catalogos.tipoPuntoVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTipoPuntoVenta catalogos.tipoServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTipoServicio catalogos.associacioClaseServicioMarca=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuAssociacionClaseServicioMarca -catalogos.tipoVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTipoVenta +catalogos.orgaoConcedente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuOrgaoConcedente catalogos.puntoVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuPuntoVenta +catalogos.coeficientetarifa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuCoeficienteTarifa catalogos.turno=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuTurno confComerciales=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.MenuConfiguracionesComerciales confComerciales.secretaria=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuSecretaria confComerciales.convenio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConvenio confComerciales.tipoCambioCiudad=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuTipoCambioCiudad -confComerciales.comisionistaExterno=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuComisionistaExterno +confComerciales.motivoCancelacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuMotivoCancelacion confComerciales.configuracionCancelacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionCancelacion confComerciales.configuracionCategorias=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionCategorias -confComerciales.configuracionGeneral=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionGeneral confComerciales.configuracionReservacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionReservacion confComerciales.restriccionFormaPago=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuRestriccionFormaPago -confComerciales.configuracionServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionServicio confComerciales.configuracionAlerta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionAlerta -confComerciales.motivoCancelacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuMotivoCancelacion -confComerciales.motivoReimpresion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuMotivoReimpresion -confComerciales.periodoVacacional=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuPeriodoVacacional +confComerciales.configlayoutimpressaoboleto=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfigLayoutImpressaoBoleto confComerciales.excepcionRedondeo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuExcepcionRedondeo -cortesias=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.MenuCortesias -cortesias.grupoCortesia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuGrupoCortesia -cortesias.tipoCortesia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuTipoCortesia -cortesias.tipoCortesiaDescuento=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuTipoCortesiaDescuento -cortesias.cortesiaDireccion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuCortesiaDireccion -cortesias.altaCortesiaRH=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuAltaCortesiaRH +confComerciales.configuracionGeneral=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionGeneral +confComerciales.configuracionFeriado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuConfiguracionFeriado +confComerciales.tarjetacredito=com.rjconsultores.ventaboletos.web.utilerias.menu.item.confcomerciales.ItemMenuTarjetaCredito esquemaOperacional=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.MenuEsquemaOperacional esquemaOperacional.tipoParadas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuTipoParadas esquemaOperacional.paradas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuEsquemaOperacionalParadas +esquemaOperacional.aliasservico=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuAliasServico esquemaOperacional.autobus=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuAutobus esquemaOperacional.diagramaAutobus=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuDiagramaAutobus -esquemaOperacional.via=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuVia +esquemaOperacional.rolOperativo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuRolOperativo esquemaOperacional.generacionAutomaticaTramoRuta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuGeneracionAutomaticaTramoRuta +esquemaOperacional.via=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuVia esquemaOperacional.tramo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuTramo -esquemaOperacional.tramoKmServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuTramoKmServicio esquemaOperacional.ruta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuEsquemaOperacionalRuta esquemaOperacional.corrida=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuCorrida -esquemaOperacional.rolOperativo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuRolOperativo +esquemaOperacional.paramConexion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuParamConexion +esquemaOperacional.conexion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuConexion esquemaOperacional.generacionCorrida=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuGeneracionCorrida -pricing=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.MenuPricing -pricing.general=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.ItemMenuPricing -pricing.especifico=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.ItemMenuPricingEspecifico +esquemaOperacional.confrestricaocanalventa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuConfRestricaoCanalVenta +esquemaOperacional.selecionarservicosgerar=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemSelecionarServicosGerar tarifasOficial=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.MenuTarifasOficial tarifasOficial.seguroKm=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuSeguroKm tarifasOficial.seguroTarifa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuSeguroTarifa tarifasOficial.taxaEmbarqueKm=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuTarifasTaxaEmbarqueKm tarifasOficial.taxaEmbarqueParada=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuTarifasTaxaEmbarqueParada tarifasOficial.generarTarifasOrgao=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuGenerarTarifasOrgao -tarifasOficial.copiarTarifaOficial=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuCopiarTarifaOficial tarifasOficial.tarifaOficialExcel=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuTarifaOficialExcel tarifasOficial.tarifaOficial=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuTarifasOficial tarifas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.MenuTarifas tarifas.copiarTarifaOficial=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuCopiarTarifaOficial -tarifas.redondeo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuRedondeo tarifas.vigenciaTarifa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuVigenciaTarifa tarifas.tarifasMinimas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuTarifasMinimas tarifas.cambioVigencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuCambioVigencia @@ -78,37 +68,27 @@ tarifas.mercadoCompetido=com.rjconsultores.ventaboletos.web.utilerias.menu.item. tarifas.modificacionMasiva=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuModificacionMasiva tarifas.tarifas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuTarifas tarifas.tarifaEscala=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas.ItemMenuTarifaEscala -pasajeroFrecuente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.MenuPasajeroFrecuente -pasajeroFrecuente.tipoDomicilio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuTipoDomicilio -pasajeroFrecuente.tipoOcupacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuTipoOcupacion -pasajeroFrecuente.tipoMovimiento=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuTipoMovimiento -pasajeroFrecuente.paramAcumulacionMasivo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuParamAcumulacionMasivo -pasajeroFrecuente.acumulacionPorVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuAcumulacionPorVenta -pasajeroFrecuente.canjePuntos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuCanjePuntos -pasajeroFrecuente.paramCompraPuntos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuParamCompraPuntos -pasajeroFrecuente.paramCostoTarjeta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuParamCostoTarjeta -pasajeroFrecuente.generacionTarjeta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuGeneracionTarjeta +pricing=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.MenuPricing +pricing.general=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.ItemMenuPricing +pricing.especifico=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pricing.ItemMenuPricingEspecifico +cortesias=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.MenuCortesias +cortesias.grupoCortesia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuGrupoCortesia +cortesias.tipoCortesia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuTipoCortesia +cortesias.tipoCortesiaDescuento=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuTipoCortesiaDescuento +cortesias.cortesiaDireccion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.cortesias.ItemMenuCortesiaDireccion +ingresosExtras=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ingreso.MenuIngreso +ingresosExtras.ingreso=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ingreso.ItemMenuIngreso seguridad=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.MenuSeguridad -seguridad.companiaBancaria=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuCompaniaBancaria seguridad.estacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuEstacion seguridad.autorizacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuAutorizacion seguridad.perfil=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuPerfil seguridad.autorizacionPerfil=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuAutorizacionPerfil seguridad.usuario=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuUsuario -equivalencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.equivalencia.MenuEquivalencia -equivalencia.parada=com.rjconsultores.ventaboletos.web.utilerias.menu.item.equivalencia.ItemMenuParadaEquivalencia -equivalencia.empresa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.equivalencia.ItemMenuEmpresaEquivalencia -equivalencia.claseServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.equivalencia.ItemMenuClaseServicioEquivalencia -equivalencia.motivoCancelacion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.equivalencia.ItemMenuMotivoCancelacionEquivalencia -ingresosExtras=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ingreso.MenuIngreso -ingresosExtras.bancos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ingreso.ItemMenuBancos -ingresosExtras.ingreso=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ingreso.ItemMenuIngreso -informes=com.rjconsultores.ventaboletos.web.utilerias.menu.item.informes.MenuInformes -informes.pasajeroServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.informes.ItemMenuPasajeroServicio -informes.servicioDiario=com.rjconsultores.ventaboletos.web.utilerias.menu.item.informes.ItemMenuServicioDiario -informes.categoriaVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.informes.ItemMenuCategoriaVenta -informes.ventasPuntoVenta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.informes.ItemMenuVentasPuntoVenta -ayuda=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ayuda.MenuAyuda -ayuda.version=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ayuda.ItemMenuVersion -relatorios=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.MenuRelatorios +pasajerofrecuente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.MenuPasajeroFrecuente +pasajerofrecuente.cliente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuCliente +pasatorios=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.MenuRelatorios relatorios.relatorioAproveitamento=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAproveitamento +relatorios.relatorioReceitaDiariaAgencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioReceitaDiariaAgencia +relatorios.relatorioResumoLinhas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioResumoLinhas +ayuda=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ayuda.MenuAyuda +ayuda.version=com.rjconsultores.ventaboletos.web.utilerias.menu.item.ayuda.ItemMenuVersion \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGrupoRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGrupoRuta.java new file mode 100644 index 000000000..d83d6af88 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGrupoRuta.java @@ -0,0 +1,30 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import com.rjconsultores.ventaboletos.entidad.GrupoRuta; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +/** + * + * @author Bruno H. G. Gouvêa + * + */ +public class RenderGrupoRuta implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + GrupoRuta grupoRuta = (GrupoRuta) o; + + Listcell lc = new Listcell(grupoRuta.getGrupoRutaId().toString()); + lc.setParent(lstm); + + lc = new Listcell(grupoRuta.getDescGrupo()); + lc.setParent(lstm); + + lstm.setAttribute("data", grupoRuta); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaComissao.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaComissao.java new file mode 100644 index 000000000..0b4437da6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaComissao.java @@ -0,0 +1,29 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; +import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; + +/** + * + * @author Bruno H. G. Gouvêa + * + */ +public class RenderPtovtaComissao implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + PtovtaComissao ptovtaComissao = (PtovtaComissao) o; + + Listcell lc = new Listcell(ptovtaComissao.getEmpresaId().getNombempresa()); + lc.setParent(lstm); + + lstm.setAttribute("data", ptovtaComissao); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPuntoVentaSimple.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPuntoVentaSimple.java index 2b033c782..dce7eb695 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPuntoVentaSimple.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPuntoVentaSimple.java @@ -4,12 +4,17 @@ */ package com.rjconsultores.ventaboletos.web.utilerias.render; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Button; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; /** * @@ -27,7 +32,28 @@ public class RenderPuntoVentaSimple implements ListitemRenderer { lc = new Listcell(puntoVenta.getNombpuntoventa()); lc.setParent(lstm); + + + Button btn = new Button(); + + lc = new Listcell(); + lc.setParent(lstm); + + btn.setWidth("16"); + btn.setHeight("16"); + btn.setImage("/gui/img/remove.png"); + + btn.addEventListener("onClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + MyListbox listBox = (MyListbox)event.getTarget().getParent().getParent().getParent(); + Listitem listItem = (Listitem)event.getTarget().getParent().getParent(); + listBox.removeItem((PuntoVenta) listItem.getAttribute("data")); + } + }); + + lc.appendChild(btn); lstm.setAttribute("data", puntoVenta); } } diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 9372980f6..3841d3dce 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -119,6 +119,7 @@ com.rjconsultores.ventaboletos.entidad.FormaPago com.rjconsultores.ventaboletos.entidad.FormaPagoDet com.rjconsultores.ventaboletos.entidad.GrupoCortesia + com.rjconsultores.ventaboletos.entidad.GrupoRuta com.rjconsultores.ventaboletos.entidad.FuncionSistema com.rjconsultores.ventaboletos.entidad.Marca com.rjconsultores.ventaboletos.entidad.MercadoCompetido diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 960884399..a83ae45dc 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -95,6 +95,7 @@ indexController.mniMarcas.label = Marcas indexController.mniMoneda.label = Moeda indexController.mniPlaza.label = Praça indexController.mniClaseServicio.label = Tipo de Classe +indexController.mniGrupoRuta.label = Grupo de Linha indexController.mniCorrida.label = Configuração de Serviços indexController.mniConexion.label = Conexões indexController.mniParamConexion.label = Parâmetros de Conexão @@ -216,6 +217,7 @@ indexController.mniRelatorioReceitaDiariaAgencia.label = Relatório de Receita D indexController.mniRelatorioLinhaOperacional.label = Relatório de Linha Operacional indexController.mniRelatorioTrechoVendido.label = Relatório de Trecho Vendido Por Agência indexController.mniRelatorioPassageirosViajar.label = Passageiros a Viajar +indexController.mniRelatorioResumoLinhas.label = Relatório Resumo de Linhas #PARTE REALIZADA POR MANUEL indexController.mnCortesias.label = Cortesias Para Funcionários @@ -239,8 +241,37 @@ busquedaClaseServicioController.btnPesquisa.label = Pesquisa busquedaClaseServicioController.lhDesc.label = Descrição busquedaClaseServicioController.lhId.label = ID + +# Grupo Ruta +busquedaGrupoRutaController.window.title = Grupo de Linha +busquedaGrupoRutaController.btnRefresh.tooltiptext = Atualizar +busquedaGrupoRutaController.btnNovo.tooltiptext = Incluir +busquedaGrupoRutaController.btnCerrar.tooltiptext = Fechar +busquedaGrupoRutaController.btnPesquisa.label = Pesquisa +busquedaGrupoRutaController.lhDesc.label = Descrição +busquedaGrupoRutaController.lhId.label = ID + + +editarGrupoRutaController.window.title = Grupo de Linha +editarGrupoRutaController.btnApagar.tooltiptext = Eliminar +editarGrupoRutaController.btnSalvar.tooltiptext = Salvar +editarGrupoRutaController.btnFechar.tooltiptext = Fechar +editarGrupoRutaController.lbNome.value = Grupo de Linha +editarGrupoRutaController.MSG.suscribirOK = Grupo de linha registrado com sucesso. +editarGrupoRutaController.MSG.borrarPergunta = Deseja eliminar grupo de linha? +editarGrupoRutaController.MSG.borrarOK = Grupo de linha excluido com sucesso. + #Relatórios +#Resumo de linhas +relatorioResumoLinhasController.window.title = Relatório Resumo de Linhas +relatorioResumoLinhasController.lbRuta.value = Linha +relatorioResumoLinhasController.lbFecCorrida.value = Período de Viagem +relatorioResumoLinhasController.lbEmpresa.value = Empresa +relatorioResumoLinhasController.lbConexao.value = Conexão +relatorioResumoLinhasController.lbLote.value = Lote + + #Aproveitamento relatorioAproveitamentoController.window.title = Relatório de Aproveitamento relatorioAproveitamentoController.lbFecCorrida.value = Data Serviço @@ -274,7 +305,15 @@ relatorioReceitaDiariaAgenciaController.lbEstado.value = Estado relatorioReceitaDiariaAgenciaController.lbPuntoVenta.value = Agência relatorioReceitaDiariaAgenciaController.btnPesquisa.label = Pesquisar relatorioReceitaDiariaAgenciaController.btnLimpar.label = Limpar Seleção - +relatorioReceitaDiariaAgenciaController.puntoVentaSelList.codigo = Código +relatorioReceitaDiariaAgenciaController.puntoVentaSelList.nome = Nome +relatorioReceitaDiariaAgenciaController.chkExcessoBagagem.label = Excluso Excesso de Bagagem +relatorioReceitaDiariaAgenciaController.chkContemplarGap.label = Contemplar GAP +relatorioReceitaDiariaAgenciaController.lbEmpresa.value = Empresa +relatorioReceitaDiariaAgenciaController.lbTipoPuntoVenta.value = Tipo Agência +relatorioReceitaDiariaAgenciaController.lbDevolucao.value = Devolução baseadas na ag. de +relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.rd1.label = Origem +relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.rd2.label = Destino # Pantalla Editar Classe editarClaseServicioController.window.title = Tipo de Classe @@ -645,6 +684,12 @@ editarPuntoVentaController.registroNumPtoVtaExiste = Já existe uma agência com editarPuntoVentaController.lbStock.value = Estoque editarPuntoVentaController.lbCheckStock.value = Validar Estoque +# Editar comissão ponto de venda +editarPuntoVentaComissaoController.window.title = Comissão Empresa/Ponto de Venda +editarPuntoVentaComissaoController.MSG.suscribirOK = Comissão da Empresa/Ponto de Venda registrada com cucesso. +editarPuntoVentaComissaoController.MSG.borrarPergunta = Deseja eliminar esta Comissão da Empresa/Ponto de Venda? +editarPuntoVentaComissaoController.MSG.borrarOK = Comissão da Empresa/Ponto de Venda excluida com sucesso. + # Muestra o TipoVenta Pesquisa busquedaTipoVentaController.window.title = Modalidade de Venda busquedaTipoVentaController.btnRefresh.tooltiptext = Atualizar @@ -4217,6 +4262,7 @@ editarClienteController.lbTipoDomicilio.value = Tipo Domícílio editarClienteController.lbCP.value = CEP editarClienteController.msg.clienteimportacao = Cliente inserido por importação de arquivo poderá somente ser visualizado. + # BusquedaConfigFeriado busquedaConfigFeriadoController.window.title = Configuração de Feriado busquedaConfigFeriadoController.btnRefresh.tooltiptext = Atualizar diff --git a/web/component/reportView.zul b/web/component/reportView.zul index 341334c61..c4df5e6d8 100644 --- a/web/component/reportView.zul +++ b/web/component/reportView.zul @@ -6,7 +6,7 @@ + contentStyle="overflow:auto" height="768px" width="980px" border="normal" maximizable="true" >
@@ -20,7 +20,7 @@ -