From 8ffb8abe68ebd95d9879ef2402526dba36f1781f Mon Sep 17 00:00:00 2001 From: "celio.souza" Date: Tue, 28 Nov 2023 17:17:41 -0300 Subject: [PATCH] fixes bug#AL-2912 --- pom.xml | 6 +- .../impl/RelatorioComissaoSintetico.java | 552 ++++-------------- .../RelatorioComissaoSintetico_es.properties | 13 +- ...elatorioComissaoSintetico_pt_BR.properties | 13 +- .../RelatorioComissaoSintetico.jasper | Bin 50104 -> 58565 bytes .../RelatorioComissaoSintetico.jrxml | 521 +++++++++++------ .../RelatorioComissaoSinteticoBean.java | 161 ++--- .../RelatorioComissaoController.java | 17 +- 8 files changed, 567 insertions(+), 716 deletions(-) diff --git a/pom.xml b/pom.xml index 646fd926f..f4f17890d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.34.14 + 1.35.14 war - 1.25.1 - 1.21.1 + 1.26.1 + 1.22.1 UTF-8 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioComissaoSintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioComissaoSintetico.java index 469658e8d..c2c9ebbca 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioComissaoSintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioComissaoSintetico.java @@ -1,62 +1,36 @@ -/** - * - */ package com.rjconsultores.ventaboletos.relatorios.impl; import java.math.BigDecimal; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Timestamp; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Objects; -import java.util.Set; import org.apache.log4j.Logger; - -import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.relatorios.negocio.CalculoImposto; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.ExceptionConfiguracao; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioComissaoSinteticoBean; import com.rjconsultores.ventaboletos.utilerias.DateUtil; -import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioComissaoSintetico extends Relatorio { - -private static final Logger log = Logger.getLogger(RelatorioComissaoSintetico.class);; -private List lsDadosRelatorio; -private LinkedHashMap> mapCacheConfigComissao; -private Set pontoVendaConfiguracao; - - - + private List lsDadosRelatorio; public RelatorioComissaoSintetico(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); - - CalculoImposto.limpaCache(); - this.mapCacheConfigComissao = new LinkedHashMap>(); - this.setCustomDataSource(new DataSource(this) { @Override public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); - Map parametros = this.relatorio.getParametros(); String empresaID = parametros.get("EMPRESA_ID") != null ? parametros.get("EMPRESA_ID").toString() : ""; String puntoVentaID = parametros.get("NUMPUNTOVENTA").equals("-1") ? "" : parametros.get("NUMPUNTOVENTA").toString(); @@ -64,462 +38,142 @@ private Set pontoVendaConfiguracao; NamedParameterStatement stmt = new NamedParameterStatement(conexao, sqlTotaisVendas); - stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); if(empresaID != null && !empresaID.equals("")){ stmt.setInt("EMPRESA_ID", Integer.parseInt(empresaID)); } - pontoVendaConfiguracao = new HashSet(); + ResultSet rset = stmt.executeQuery(); lsDadosRelatorio = new ArrayList(); while (rset.next()) { - // Busca as configurações de comissão - LinkedHashMap configComissao = getConfigComissao(rset.getInt("puntoventa_id"), rset.getInt("empresa_id")); - Integer agenciaID = rset.getInt("puntoventa_id"); + + Integer comissaoID = rset.getInt("comissao_id"); + Date dataEvento = rset.getDate("data_evento"); + Integer agenciaID = rset.getInt("agencia_id"); Integer retEmpresaID = rset.getInt("empresa_id"); - Integer estadoId = rset.getInt("estado_id"); - Date fecCorrida = rset.getDate("feccorrida"); - BigDecimal totalPassgens = rset.getBigDecimal("total_passagem") == null ? BigDecimal.ZERO : rset.getBigDecimal("total_passagem"); - BigDecimal totalImpPost = rset.getBigDecimal("total_imp_posterior") == null ? BigDecimal.ZERO : rset.getBigDecimal("total_imp_posterior"); - BigDecimal totalVendaImpPost = rset.getBigDecimal("total_venda_imp_posterior") == null ? BigDecimal.ZERO : rset.getBigDecimal("total_venda_imp_posterior"); - BigDecimal totalSeguro = rset.getBigDecimal("total_seguro") == null ? BigDecimal.ZERO : rset.getBigDecimal("total_seguro"); - BigDecimal totalVenda = rset.getBigDecimal("total_venda") == null ? BigDecimal.ZERO : rset.getBigDecimal("total_venda"); - RelatorioComissaoSinteticoBean existingBean = findExistingBean(lsDadosRelatorio, agenciaID, retEmpresaID); - if (existingBean != null) { - // Registro já existe, adicionar os valores aos existentes - existingBean.setTotalTarifa(existingBean.getTotalTarifa().add(totalPassgens)); - existingBean.setTotalImpPosterior(existingBean.getTotalImpPosterior().add(totalImpPost)); - existingBean.setTotalVendaImpPosterior(existingBean.getTotalVendaImpPosterior().add(totalVendaImpPost)); - existingBean.setTotalSeguro(existingBean.getTotalSeguro().add(totalSeguro)); - existingBean.setTotalPagado(existingBean.getTotalPagado().add(totalVenda)); - //aplica comissão dos totais - if (configComissao != null) { - comissaoCalc(configComissao, retEmpresaID, estadoId, fecCorrida, totalPassgens, totalImpPost, totalVendaImpPost, totalSeguro, - null, existingBean, false); - } - } else { - // Registro não existe, criar um novo objeto e adicioná-lo à lista + String puntoVenta = rset.getString("punto_venta"); + + BigDecimal totalPassgens = trataCampoNull (rset.getBigDecimal("total_venda")) ; + BigDecimal comissaoBPR = trataCampoNull (rset.getBigDecimal("comissao_venda")); + BigDecimal totalvendaGap = trataCampoNull (rset.getBigDecimal("total_imp_posterior")); + BigDecimal comissaoGAP = trataCampoNull (rset.getBigDecimal("comissao_gap")); + BigDecimal totalImpressa = trataCampoNull (rset.getBigDecimal("total_entrega_passagems")); + BigDecimal comissaoImpressa = trataCampoNull (rset.getBigDecimal("comissao_impressao")); + BigDecimal totalExBagagem = trataCampoNull (rset.getBigDecimal("total_excesso_bagagem")); + BigDecimal comissaoExcBagem = trataCampoNull (rset.getBigDecimal("comissao_excesso_bagagem")); + BigDecimal totalOutros = trataCampoNull (rset.getBigDecimal("total_outros")); + BigDecimal comissaoOutros = trataCampoNull (rset.getBigDecimal("comissao_outros")); + BigDecimal totalSeguroOP = trataCampoNull (rset.getBigDecimal("total_seguro_opcional")); + BigDecimal comissaoSeguroOP = trataCampoNull (rset.getBigDecimal("comissao_seguro_opcional")); + BigDecimal totalRecarga = trataCampoNull (rset.getBigDecimal("total_recarga_celular")); + BigDecimal comissaoRecarga = trataCampoNull (rset.getBigDecimal("comissao_regarga_celular")); + BigDecimal totalVendaBruta = trataCampoNull (rset.getBigDecimal("total_venda_bruta")); + BigDecimal comissaoFinal = trataCampoNull (rset.getBigDecimal("comissao_registrada_CC")); + RelatorioComissaoSinteticoBean comissaoBean = new RelatorioComissaoSinteticoBean(); + comissaoBean.setComissaoID(comissaoID); + comissaoBean.setDataEvento(dataEvento); comissaoBean.setPontoVendaID(agenciaID); comissaoBean.setEmpresaID(retEmpresaID); - comissaoBean.setPontoVenda(rset.getString("nombpuntoventa")); + comissaoBean.setPontoVenda(puntoVenta); comissaoBean.setTotalTarifa(totalPassgens); - comissaoBean.setTotalImpPosterior(totalImpPost); - comissaoBean.setTotalVendaImpPosterior(totalVendaImpPost); - comissaoBean.setTotalOutros(BigDecimal.ZERO); - comissaoBean.setTotalExcBagagem(BigDecimal.ZERO); - comissaoBean.setTotalSeguro(totalSeguro); - comissaoBean.setTotalPagado(totalVenda); - comissaoBean.setComissaoTarifa(BigDecimal.ZERO); - comissaoBean.setComissaoVendaImpPosterior(BigDecimal.ZERO); - comissaoBean.setComissaoImpPosterior(BigDecimal.ZERO); - comissaoBean.setComissaoExcBagagem(BigDecimal.ZERO); - comissaoBean.setComissaoOutros(BigDecimal.ZERO); - - //aplica comissão dos totais - if (configComissao != null) { - comissaoCalc(configComissao, retEmpresaID, estadoId, fecCorrida, totalPassgens, totalImpPost, totalVendaImpPost, totalSeguro, - null, comissaoBean, false); - } + comissaoBean.setComissaoTarifa(comissaoBPR); + comissaoBean.setTotalVendaGAP(totalvendaGap); + comissaoBean.setComissaoGAP(comissaoGAP); + comissaoBean.setTotalImpGAP(totalImpressa); + comissaoBean.setComissaoImpGAP(comissaoImpressa); + comissaoBean.setTotalExcBagagem(totalExBagagem); + comissaoBean.setComissaoExcBagagem(comissaoExcBagem); + comissaoBean.setTotalOutros(totalOutros); + comissaoBean.setComissaoOutros(comissaoOutros); + comissaoBean.setTotalSegOpcional(totalSeguroOP); + comissaoBean.setComissaoSegOpcional(comissaoSeguroOP); + comissaoBean.setTotalRecargaCell(totalRecarga); + comissaoBean.setComissaoRecargaCell(comissaoRecarga); + comissaoBean.setTotalReceitaBruta(totalVendaBruta); + comissaoBean.setComissaoTotal(comissaoFinal); lsDadosRelatorio.add(comissaoBean); } - } - if (lsDadosRelatorio.size() > 0) { - String sqlTotaisEeventos = getSqlDadosTotaisEvento(empresaID,puntoVentaID); - NamedParameterStatement stmtEventos = new NamedParameterStatement(conexao, sqlTotaisEeventos); - stmtEventos.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); - stmtEventos.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); - if(empresaID != null && !empresaID.equals("")){ - stmtEventos.setInt("EMPRESA_ID", Integer.parseInt(empresaID)); - } - ResultSet rsetEventos = stmtEventos.executeQuery(); - - while(rsetEventos.next()) { - LinkedHashMap configComissao = getConfigComissao(rset.getInt("puntoventa_id"), rset.getInt("empresa_id")); - Integer agenciaID = rsetEventos.getInt("puntoventa_id"); - Integer retEmpresaID = rsetEventos.getInt("empresa_id"); - if(empresaID != null && !empresaID.equals("")){ - stmt.setInt("EMPRESA_ID", Integer.parseInt(empresaID)); - } - Integer estadoId = rsetEventos.getInt("estado_id"); - Date fecCorrida = rset.getDate("feccorrida"); - Boolean isOutros = rsetEventos.getString("desctipoevento") == "EXCESSO BAGAGEM" ? false : true; - BigDecimal totalEvento = rsetEventos.getBigDecimal("total_evento"); - - - RelatorioComissaoSinteticoBean existingBean = findExistingBean(lsDadosRelatorio, agenciaID, retEmpresaID); - if (existingBean != null) { - if(isOutros) { - existingBean.setTotalOutros(totalEvento); - } else { - existingBean.setTotalExcBagagem(totalEvento); - } - //aplica comissão dos totais - if (configComissao != null) { - comissaoCalc(configComissao, retEmpresaID, estadoId, fecCorrida, null, null, null, null, totalEvento, existingBean, isOutros); - } - } - } - caulcaComissaoTotal(lsDadosRelatorio); - - setLsDadosRelatorio(lsDadosRelatorio); + setLsDadosRelatorio(lsDadosRelatorio); } - } + }); + } + + + private String getSqlDadosTotaisdeVenda(String empresa, String agencia) { + + StringBuilder sql = new StringBuilder(3400); + + sql.append("SELECT "); + sql.append(" cm.comissao_id, "); + sql.append(" cm.datamovimento as data_evento, "); + sql.append(" cm.puntoventa_id as agencia_id, "); + sql.append(" cm.empresa_id as empresa_id, "); + sql.append(" pv.nombpuntoventa as punto_venta, "); + sql.append(" cm.receita_BPR as total_venda, "); + sql.append(" cm.comissao_BPR as comissao_venda, "); + sql.append(" cm.receita_gap as total_imp_posterior, "); + sql.append(" cm.comissao_gap as comissao_gap, "); + sql.append(" cm.tarifa_entregas_passagem as total_entrega_passagems, "); + sql.append(" cm.entregas_passagem as comissao_impressao, "); + sql.append(" cm.receita_bruta_excessobagagem as total_excesso_bagagem, "); + sql.append(" cm.receita_excessobagagem as comissao_excesso_bagagem, "); + sql.append(" cm.receita_bruta_outros as total_outros, "); + sql.append(" cm.receita_outros as comissao_outros, "); + sql.append(" cm.receita_bruta_seguroopcional as total_seguro_opcional, "); + sql.append(" cm.receita_seguroopcional as comissao_seguro_opcional, "); + sql.append(" cm.receita_bruta_recargacelular as total_recarga_celular, "); + sql.append(" cm.receita_recargacelular as comissao_regarga_celular, "); + sql.append(" cm.receita_bruta_tarifa as total_venda_bruta, "); + sql.append(" cc.importe as comissao_registrada_CC "); - private void comissaoCalc(LinkedHashMap configComissao, Integer retEmpresaID, Integer estadoId, Date fecCorrida, - BigDecimal baseCalculoTarifa, BigDecimal baseCalculoImpPost, BigDecimal baseCalculoVendaImpPost, BigDecimal baseCalculoSeguro, BigDecimal TotalEventos, - RelatorioComissaoSinteticoBean comissaoBean, Boolean isEventoOutros) throws Exception { - - BigDecimal percComissaoTarifa = BigDecimal.ZERO; - BigDecimal percComissaoSeguro = BigDecimal.ZERO; - BigDecimal percComissaoImpPost = BigDecimal.ZERO; - BigDecimal percComissaoVendaImpPost = BigDecimal.ZERO; - BigDecimal percComissaoOutros = BigDecimal.ZERO; - - BigDecimal valorComissaoSeguro = BigDecimal.ZERO; - BigDecimal valorComissaoTarifa = BigDecimal.ZERO; - BigDecimal valorComissaoImpPost = BigDecimal.ZERO; - BigDecimal valorComissaoVendaImpPost = BigDecimal.ZERO; - BigDecimal valorComissaoExcBagagem = BigDecimal.ZERO; - BigDecimal valorComissaoOutros = BigDecimal.ZERO; - Boolean isAltaTemporada = false; - - if(fecCorrida != null) { - String mes = new SimpleDateFormat("M").format(fecCorrida); - HashMap configImposto = getConfigImposto((Integer) retEmpresaID, estadoId); - 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("INDABRIL")) - || (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; - } - if (!isEventoOutros) { - percComissaoTarifa = isAltaTemporada ? (BigDecimal) configComissao.get("PASSAGEMALTA") : (BigDecimal) configComissao.get("PASSAGEMBAIXA"); - percComissaoSeguro = isAltaTemporada ? (BigDecimal) configComissao.get("SEGUROALTA") : (BigDecimal) configComissao.get("SEGUROBAIXA"); - percComissaoImpPost = isAltaTemporada ? (BigDecimal) configComissao.get("VENDAIMPGAPALTA") : (BigDecimal) configComissao.get("VENDAIMPGAPBAIXA"); - percComissaoVendaImpPost = isAltaTemporada ? (BigDecimal) configComissao.get("VENDAGAPALTA") : (BigDecimal) configComissao.get("VENDAGAPBAIXA"); - - if (percComissaoTarifa == null) { - percComissaoTarifa = BigDecimal.ZERO; - } - if (percComissaoSeguro == null) { - percComissaoSeguro = BigDecimal.ZERO; - } - - if (percComissaoImpPost == null) { - percComissaoImpPost = BigDecimal.ZERO; - } - if (percComissaoVendaImpPost == null) { - percComissaoVendaImpPost = BigDecimal.ZERO; - } - - // VALOR COMISSAO = BASE DE CALCULO * (PERCENTUAL COMISSAO / 100) - valorComissaoTarifa = baseCalculoTarifa.multiply(MoneyHelper.dividir(percComissaoTarifa, MoneyHelper.HUNDRED, 4)); - valorComissaoSeguro = baseCalculoSeguro.multiply(MoneyHelper.dividir(percComissaoSeguro, MoneyHelper.HUNDRED, 4)); - valorComissaoImpPost = baseCalculoImpPost.multiply(MoneyHelper.dividir(percComissaoImpPost, MoneyHelper.HUNDRED, 4)); - valorComissaoVendaImpPost = baseCalculoVendaImpPost.multiply(MoneyHelper.dividir(percComissaoVendaImpPost, MoneyHelper.HUNDRED, 4));; - - if(comissaoBean.getComissaoTarifa() == null) { - comissaoBean.setComissaoTarifa(valorComissaoTarifa); - } else { - comissaoBean.setComissaoTarifa(comissaoBean.getComissaoTarifa().add(valorComissaoTarifa)); - } - if(comissaoBean.getComissaoSeguro() == null) { - comissaoBean.setComissaoSeguro(valorComissaoSeguro); - } else { - comissaoBean.setComissaoSeguro(comissaoBean.getComissaoSeguro().add(valorComissaoSeguro)); - } - if(comissaoBean.getComissaoImpPosterior() == null) { - comissaoBean.setComissaoImpPosterior(valorComissaoImpPost); - } else { - comissaoBean.setComissaoImpPosterior(comissaoBean.getComissaoImpPosterior().add(valorComissaoImpPost)); - } - if(comissaoBean.getComissaoVendaImpPosterior() == null) { - comissaoBean.setComissaoVendaImpPosterior(valorComissaoVendaImpPost); - } else { - comissaoBean.setComissaoVendaImpPosterior(comissaoBean.getComissaoVendaImpPosterior().add(valorComissaoVendaImpPost)); - } - - } else { - percComissaoOutros = isEventoOutros ? (isAltaTemporada ? (BigDecimal) configComissao.get("OUTROSALTA") : (BigDecimal) configComissao.get("OUTROSBAIXA") ) - :(isAltaTemporada ? (BigDecimal) configComissao.get("EXCESSOALTA") : (BigDecimal) configComissao.get("EXCESSOBAIXA")); - if(percComissaoOutros == null) { - percComissaoOutros = BigDecimal.ZERO; - } - if(isEventoOutros) { - // VALOR COMISSAO = BASE DE CALCULO * (PERCENTUAL COMISSAO / 100) - valorComissaoOutros = comissaoBean.getTotalOutros().multiply(MoneyHelper.dividir(percComissaoSeguro, MoneyHelper.HUNDRED, 4)); - if(comissaoBean.getComissaoOutros() == null) { - comissaoBean.setComissaoOutros(valorComissaoOutros); - } else { - comissaoBean.setComissaoOutros(comissaoBean.getComissaoOutros().add(valorComissaoOutros)); - } - comissaoBean.setComissaoOutros(comissaoBean.getComissaoOutros().add(valorComissaoOutros)); - } else { - valorComissaoExcBagagem = comissaoBean.getTotalExcBagagem().multiply(MoneyHelper.dividir(percComissaoOutros, MoneyHelper.HUNDRED, 4)); - if(comissaoBean.getComissaoExcBagagem() == null) { - comissaoBean.setComissaoExcBagagem(valorComissaoExcBagagem); - } else { - comissaoBean.setComissaoExcBagagem(comissaoBean.getComissaoExcBagagem().add(valorComissaoExcBagagem)); - - } - } - } - } - }); + sql.append(" FROM "); + sql.append(" comissao cm "); + sql.append(" LEFT JOIN punto_venta pv ON ( cm.puntoventa_id = pv.puntoventa_id AND pv.activo = 1 ) "); + sql.append(" LEFT JOIN (SELECT importe, puntoventa_id, empresa_id FROM conta_corrente_ptovta "); + sql.append(" WHERE feccorte BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + if (!agencia.isEmpty()) { + sql.append(" AND puntoventa_id in ("+agencia+") "); + } + if (!empresa.isEmpty()) { + sql.append(" AND empresa_id = :EMPRESA_ID "); + } + sql.append(" AND tipooperacioncc_id = 5) cc on (cc.empresa_id = cm.empresa_id "); + sql.append(" and cc.puntoventa_id = pv.puntoventa_id "); + sql.append(" and importe is not null) "); + sql.append(" WHERE "); + sql.append(" cm.datamovimento BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + if (!agencia.isEmpty()) { + sql.append(" AND cm.puntoventa_id in ("+agencia+") "); + } + if (!empresa.isEmpty()) { + sql.append(" AND cm.empresa_id = :EMPRESA_ID "); + } + sql.append(" ORDER BY pv.nombpuntoventa, cm.datamovimento "); + + return sql.toString(); } public void setLsDadosRelatorio(List lsDadosRelatorio) { this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); this.lsDadosRelatorio = lsDadosRelatorio; } - - private void caulcaComissaoTotal(List lsDadosRelatorio) { - if(lsDadosRelatorio!=null && !lsDadosRelatorio.isEmpty()) { - for (RelatorioComissaoSinteticoBean bean : lsDadosRelatorio) { - try { - BigDecimal totalComissoes = bean.getComissaoTarifa() - .add(bean.getComissaoImpPosterior()!=null ? bean.getComissaoImpPosterior() : BigDecimal.ZERO) - .add(bean.getComissaoVendaImpPosterior()!=null ?bean.getComissaoVendaImpPosterior(): BigDecimal.ZERO) - .add(bean.getComissaoExcBagagem()!=null ? bean.getComissaoExcBagagem(): BigDecimal.ZERO) - .add(bean.getComissaoOutros()!=null ? bean.getComissaoOutros(): BigDecimal.ZERO); - bean.setComissaoTotal(totalComissoes); - }catch(ArrayIndexOutOfBoundsException | NullPointerException e) { - log.error("Erro a gerar relatorio Comissao sintetico", e); - } - } - } - } - public HashMap getConfigImposto(Integer empresaId, Integer estadoId) throws Exception { - HashMap cacheConfig = null; - - try { - cacheConfig = (HashMap) CalculoImposto.getConfigImpostoByEstadoOrigem(this.getConexao(), estadoId, empresaId); - } catch (Exception e) { - if (e instanceof ExceptionConfiguracao) - this.addInfoMsg(e.getMessage()); - else - throw e; + private BigDecimal trataCampoNull(BigDecimal campo) { + if (campo == null) { + return BigDecimal.ZERO; } - - return cacheConfig; + return campo; } - private static RelatorioComissaoSinteticoBean findExistingBean(List list, Integer agenciaID, Integer empresaID) { - for (RelatorioComissaoSinteticoBean bean : list) { - if (Objects.equals(bean.getPontoVendaID(), agenciaID) && Objects.equals(bean.getEmpresaID(), empresaID)) { - return bean; - } - } - return null; - } - @Override protected void processaParametros() throws Exception { } - private String getSqlDadosTotaisdeVenda(String empresa, String agencia) { - - StringBuilder sql = new StringBuilder(3400); - - sql.append(" SELECT pv.nombpuntoventa, "); - sql.append(" b.puntoventa_id, "); - sql.append(" ep.empresa_id, "); - sql.append(" ci.estado_id, "); - sql.append(" b.feccorrida, "); - sql.append(" Count(*), "); - sql.append(" SUM(CASE WHEN (b.indreimpresion = 1 AND b.tipoventa_id = 18 or (b.indreimpresion = 0 AND b.tipoventa_id = 18)) "); - sql.append(" THEN 0 ELSE b.preciobase END) AS total_passagem, "); - sql.append(" SUM(CASE WHEN b.indreimpresion = 1 AND b.tipoventa_id = 18 THEN b.preciobase ELSE 0 END) AS total_imp_posterior, "); - sql.append(" SUM(CASE WHEN b.indreimpresion = 0 AND b.tipoventa_id = 18 THEN b.preciobase ELSE 0 END) AS total_venda_imp_posterior, "); - sql.append(" SUM(b.importeseguro) AS total_seguro, "); - sql.append(" SUM(b.importetaxaembarque) AS total_tax_emb, "); - sql.append(" SUM(b.importepedagio) AS total_pedagio, "); - sql.append(" SUM(b.importeoutros) AS total_outros, "); - sql.append(" SUM(b.preciopagado) AS total_venda "); - sql.append(" FROM boleto b "); - sql.append(" LEFT JOIN punto_venta pv ON (b.puntoventa_id = pv.puntoventa_id) "); - sql.append(" LEFT JOIN marca mc ON (b.marca_id = mc.marca_id) "); - sql.append(" LEFT JOIN empresa ep ON (mc.empresa_id = ep.empresa_id) "); - sql.append(" LEFT JOIN ciudad ci ON (ep.ciudad_id = ci.ciudad_id) "); - sql.append(" WHERE (b.motivocancelacion_id IS NULL or (b.motivocancelacion_id = 16 and b.tipoventa_id =18 )) "); - sql.append(" AND b.motivoreimpresion_id IS NULL "); - sql.append(" AND (b.boletooriginal_id IS NULL or ( b.indreimpresion = 1 AND b.tipoventa_id =18) ) "); - sql.append(" AND b.activo = 1 "); - sql.append(" AND b.fechorventa BETWEEN :DATA_INICIAL AND :DATA_FINAL "); - if (!agencia.isEmpty()) { - sql.append(" AND b.puntoventa_id in ("+agencia+") "); - } - if (!empresa.isEmpty()) { - sql.append(" AND ep.empresa_id = :EMPRESA_ID "); - } - sql.append(" GROUP BY pv.nombpuntoventa, b.puntoventa_id, ep.empresa_id, ci.estado_id, b.feccorrida "); - sql.append(" ORDER BY pv.nombpuntoventa, b.puntoventa_id, ci.estado_id "); - - return sql.toString(); - } - - private String getSqlDadosTotaisEvento(String empresa, String agencia ) { - - StringBuilder sql = new StringBuilder(3400); - - sql.append("SELECT "); - sql.append(" tee.desctipoevento, "); - sql.append(" ee.puntoventa_id, "); - sql.append(" pv.nombpuntoventa, "); - sql.append(" ee.empresa_id, "); - sql.append(" ci.estado_id, "); - sql.append(" bo.fechorventa, "); - sql.append(" SUM(ee.impingreso) AS total_evento "); - sql.append("FROM "); - sql.append(" evento_extra ee "); - sql.append(" INNER JOIN tipo_evento_extra tee ON ee.tipoeventoextra_id = tee.tipoeventoextra_id "); - sql.append(" LEFT JOIN punto_venta pv ON ( ee.puntoventa_id = pv.puntoventa_id ) "); - sql.append(" LEFT JOIN empresa emp ON (emp.empresa_id = ee.empresa_id) "); - sql.append(" LEFT JOIN ciudad ci ON (emp.ciudad_id = ci.ciudad_id) "); - sql.append(" LEFT JOIN boleto bo ON (ee.boleto_id = bo.boleto_id) "); - sql.append("WHERE "); - sql.append(" ee.activo = 1 "); - sql.append(" AND tee.desctipoevento IN ('EXCESSO BAGAGEM', 'ANIMAL 50%' ) "); - sql.append(" AND ee.fechoringreso BETWEEN :DATA_INICIAL AND :DATA_FINAL "); - - if (!agencia.isEmpty()) { - sql.append(" AND ee.puntoventa_id IN ("+agencia+") "); - } - if (!empresa.isEmpty()) { - sql.append(" AND ee.empresa_id = :EMPRESA_ID "); - } - - sql.append("GROUP BY "); - sql.append(" tee.desctipoevento, "); - sql.append(" ee.puntoventa_id, "); - sql.append(" pv.nombpuntoventa, "); - sql.append(" ee.empresa_id, "); - sql.append(" ci.estado_id, "); - sql.append(" bo.fechorventa "); - sql.append("ORDER BY "); - sql.append(" tee.desctipoevento, "); - sql.append(" ee.puntoventa_id, "); - sql.append(" pv.nombpuntoventa, "); - sql.append(" ee.empresa_id "); - - return sql.toString(); - } - - - public LinkedHashMap getConfigComissao(Integer puntoVentaId, Integer empresaId) throws Exception { - - LinkedHashMap cacheConfig = null; - - // Verifica se existe configuração na memoria, caso não exista, realiza busca no banco - if (mapCacheConfigComissao == null || !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.DESCTIPO AS 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, PC.SEGUROOBRIGATORIOALTA, PC.SEGUROOBRIGATORIOBAIXA, "); - sql.append(" CASE WHEN pc.valor_imp_gap_alta_comp IS NULL THEN pc.valor_impressao_gap_alta ELSE pc.valor_imp_gap_alta_comp END AS VALOR_IMPRESSAO_ALTA, "); - sql.append(" CASE WHEN pc.valor_imp_gap_comp IS NULL THEN pc.valor_impressao_gap ELSE pc.valor_imp_gap_comp END AS VALOR_IMPRESSAO_BAIXA, "); - sql.append(" CASE WHEN pc.valor_venda_gap_alta_comp IS NULL THEN pc.passagemalta ELSE pc.valor_venda_gap_alta_comp END AS VALOR_VENDA_IMP_ALTA, "); - sql.append(" CASE WHEN pc.valor_venda_gap_comp IS NULL THEN pc.passagembaixa ELSE pc.valor_venda_gap_comp END AS VALOR_VENDA_IMP_BAIXA "); - sql.append(" FROM PTOVTA_COMISSAO PC "); - sql.append(" INNER JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = PC.PUNTOVENTA_ID AND PC.PTOVTADESCOMISSAO_ID = PV.PUNTOVENTA_ID "); - sql.append(" INNER JOIN PARADA PR ON PR.PARADA_ID = PV.PARADA_ID "); - sql.append(" INNER JOIN CIUDAD CD ON CD.CIUDAD_ID = PR.CIUDAD_ID "); - sql.append(" INNER JOIN ESTADO ES ON ES.ESTADO_ID = CD.ESTADO_ID "); - sql.append(" INNER JOIN TIPO_PTOVTA TP ON TP.TIPOPTOVTA_ID = PV.TIPOPTOVTA_ID"); - sql.append(" WHERE PC.EMPRESA_ID = :EMPRESA_ID "); - sql.append(" AND PC.PUNTOVENTA_ID = :PUNTOVENTA_ID "); - sql.append(" AND PC.ACTIVO = 1 "); - - NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString()); - stmt.setInt("EMPRESA_ID", empresaId); - stmt.setInt("PUNTOVENTA_ID", puntoVentaId); - ResultSet rs = stmt.executeQuery(); - - if (rs.next()) { - cacheConfig = new LinkedHashMap(); - - 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("SEGUROOBRIGATORIOBAIXA", rs.getBigDecimal("SEGUROOBRIGATORIOBAIXA")); - cacheConfig.put("SEGUROOBRIGATORIOALTA", rs.getBigDecimal("SEGUROOBRIGATORIOALTA")); - cacheConfig.put("VENDAIMPGAPALTA", rs.getBigDecimal("VALOR_IMPRESSAO_ALTA")); - cacheConfig.put("VENDAIMPGAPBAIXA", rs.getBigDecimal("VALOR_IMPRESSAO_BAIXA")); - cacheConfig.put("VENDAGAPALTA", rs.getBigDecimal("VALOR_VENDA_IMP_ALTA")); - cacheConfig.put("VENDAGAPBAIXA", rs.getBigDecimal("VALOR_VENDA_IMP_BAIXA")); - - 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); - - } else { - StringBuilder sqlParam = new StringBuilder(); - - sqlParam.append(" SELECT EM.NOMBEMPRESA, PV.NOMBPUNTOVENTA, PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA "); - 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()){ - pontoVendaConfiguracao.add(new PuntoVenta(new Integer (rsParam.getString("PUNTOVENTA_ID")), rsParam.getString("NOMBPUNTOVENTA"), rsParam.getString("NUMPUNTOVENTA"))); - } - rsParam.close(); - stmtParam.close(); - } - - rs.close(); - stmt.close(); - - } - else - cacheConfig = mapCacheConfigComissao.get(puntoVentaId.toString() + "_" + empresaId.toString()); - - return cacheConfig; - - } - } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_es.properties index c74a50d3a..a416c6771 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_es.properties @@ -17,16 +17,21 @@ header.pagina=Pagina: #Labels HEADER label.agencia=Agencia -label.total.passagem=Total Venta de Boletos -label.comissao.passagem=Comisión Venta de Boletos +label.data=Fecha de Cierre +label.total.passagem=Total Facturación de Boletos +label.comissao.passagem=Comisión Boletos label.total.venda.imp=Total Venda Imp. Posterior label.comissao.v.imp=Comisión Venda Imp. Posterior label.total.imp=Total Imp. Posterior label.comissao.imp=Comisión Imp. Posterior label.total.excesso=Total Exceso de Equipaje label.comissao.excesso=Comisión Exceso de Equipaje -label.total.outros=Total Otros (Animal 50%) +label.total.outros=Total Otros label.comissao.outros=Comisión Otros -label.faturamento.total=Facturación Total (Venta) +label.total.seguro=Total Seguro +label.comissao.seguro=Comisión Seguro +label.total.recarga=Total Recarga +label.comissao.recarga=Comisión Recarga +label.faturamento.total=Facturación Total (Venta Boletos) label.comissão.total=Valor Total de Comisión label.total.geral=Total Geral \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_pt_BR.properties index 4e86681cd..e5bdd043d 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioComissaoSintetico_pt_BR.properties @@ -17,16 +17,21 @@ header.pagina=Pagina: #Labels HEADER label.agencia=Agencia -label.total.passagem=Total Venda Passagem -label.comissao.passagem=Comissão Venda Passagem +label.data=Data Fechamento +label.total.passagem=Total Receita Passagem +label.comissao.passagem=Comissão Passagem label.total.venda.imp=Total Venda Imp. Posterior label.comissao.v.imp=Comissão Venda Imp. Posterior label.total.imp=Total Imp. Posterior label.comissao.imp=Comissão Imp. Posterior label.total.excesso=Total Excesso Bagagem label.comissao.excesso=Comissão Excesso Bagagem -label.total.outros=Total Outros (Animal 50%) +label.total.outros=Total Outros label.comissao.outros=Comissão Outros -label.faturamento.total=Faturamento Total (Venda) +label.total.seguro=Total Seguro +label.comissao.seguro=Comissão Seguro +label.total.recarga=Total Recarga +label.comissao.recarga=Comissão Recarga +label.faturamento.total=Receita Total (Venda Passagem) label.comissão.total=Valor Total Comissão label.total.geral=Total Geral \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jasper index 3c44b4ea80c9f2e946c52320ef4d09ddd27f24e2..38775f5b957d403dae24f1c24ebe0987d79af386 100644 GIT binary patch literal 58565 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 literal 50104 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 AivR!s diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jrxml index 0ac2fb16d..d90c1ac78 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioComissaoSintetico.jrxml @@ -1,7 +1,7 @@ - - - + + + @@ -15,45 +15,45 @@ + + + - - + + - - - - + + + + - + + + + + - - - - - - - - - + + - - + + - - + + - - + + @@ -67,8 +67,20 @@ + + + + + + + + + + + + - + @@ -76,7 +88,7 @@ <band height="69"> <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="7d6110a7-d2cc-43d4-85f4-748b1dfef63f" mode="Transparent" x="0" y="1" width="455" height="46" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement mode="Transparent" x="0" y="1" width="455" height="46" forecolor="#000000" backcolor="#FFFFFF" uuid="7d6110a7-d2cc-43d4-85f4-748b1dfef63f"/> <textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="16" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -84,7 +96,7 @@ <textFieldExpression><![CDATA[$R{header.titulo}]]></textFieldExpression> </textField> <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> - <reportElement uuid="af7a6042-c9c4-4d13-ae07-24c189ead5fa" mode="Transparent" x="741" y="1" width="80" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement mode="Transparent" x="848" y="1" width="80" height="15" forecolor="#000000" backcolor="#FFFFFF" uuid="af7a6042-c9c4-4d13-ae07-24c189ead5fa"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -92,14 +104,14 @@ <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> </textField> <textField> - <reportElement uuid="54e92cd2-863e-4030-819d-6708b15288d4" x="525" y="1" width="216" height="15"/> + <reportElement x="631" y="1" width="216" height="15" uuid="54e92cd2-863e-4030-819d-6708b15288d4"/> <textElement textAlignment="Right"> <font size="9" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{header.data.hora}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="b2356913-1078-4115-9eb1-3cd8f39871cf" mode="Transparent" x="525" y="16" width="270" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement mode="Transparent" x="631" y="16" width="270" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="b2356913-1078-4115-9eb1-3cd8f39871cf"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -107,7 +119,7 @@ <textFieldExpression><![CDATA[$R{header.pagina}+" "+$V{PAGE_NUMBER}+" "+$R{header.de}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="6778dcc2-1b22-4309-9b98-2c394396ec0b" stretchType="RelativeToBandHeight" mode="Transparent" x="525" y="32" width="296" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement stretchType="RelativeToBandHeight" mode="Transparent" x="633" y="32" width="296" height="15" forecolor="#000000" backcolor="#FFFFFF" uuid="6778dcc2-1b22-4309-9b98-2c394396ec0b"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -115,7 +127,7 @@ <textFieldExpression><![CDATA[$R{header.impressorPor}+" "+$P{USUARIO}+" - "+$P{USUARIO_NOME}]]></textFieldExpression> </textField> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> - <reportElement uuid="f47919d9-1e34-4ca4-990b-f0167628068e" mode="Transparent" x="795" y="16" width="26" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement mode="Transparent" x="902" y="16" width="26" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="f47919d9-1e34-4ca4-990b-f0167628068e"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -123,7 +135,7 @@ <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="99f553a0-2256-4eb5-81bf-215b7ba57fd1" x="0" y="47" width="819" height="21"/> + <reportElement x="0" y="47" width="930" height="21" uuid="99f553a0-2256-4eb5-81bf-215b7ba57fd1"/> <box leftPadding="2"> <topPen lineWidth="0.75"/> <bottomPen lineWidth="0.75"/> @@ -138,7 +150,7 @@ <columnHeader> <band height="17"> <textField isStretchWithOverflow="true"> - <reportElement uuid="a8630efd-6599-4fff-964c-32a8fa6d44be" stretchType="RelativeToBandHeight" x="0" y="0" width="93" height="15"/> + <reportElement stretchType="RelativeToBandHeight" x="0" y="0" width="69" height="15" uuid="a8630efd-6599-4fff-964c-32a8fa6d44be"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -146,12 +158,12 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="8" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.agencia}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="b7de9705-89ba-4b32-96b6-c576a8c837c9" stretchType="RelativeToBandHeight" x="93" y="0" width="68" height="15" backcolor="#FFFFFF"/> + <reportElement stretchType="RelativeToBandHeight" x="173" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="9f26b982-6b13-4453-96b1-ca4d117dd01e"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -159,25 +171,12 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.total.passagem}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="9f26b982-6b13-4453-96b1-ca4d117dd01e" stretchType="RelativeToBandHeight" x="161" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.comissao.passagem}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="3c63f463-1b5e-4669-ab70-951cfa86df61" stretchType="RelativeToBandHeight" x="341" y="0" width="60" height="15"/> + <reportElement stretchType="RelativeToBandHeight" x="323" y="0" width="55" height="15" uuid="3c63f463-1b5e-4669-ab70-951cfa86df61"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -185,12 +184,12 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.total.imp}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="e8df569a-2fae-4c3e-8e54-826f96b2a3b3" stretchType="RelativeToBandHeight" x="401" y="0" width="60" height="15" backcolor="#D0D0D0"/> + <reportElement stretchType="RelativeToBandHeight" x="378" y="0" width="54" height="15" backcolor="#D0D0D0" uuid="e8df569a-2fae-4c3e-8e54-826f96b2a3b3"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -198,77 +197,12 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.comissao.imp}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="c43f5d68-7ede-499f-b41e-7bea4c2633ba" stretchType="RelativeToBandHeight" x="461" y="0" width="60" height="15"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.total.excesso}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="f53eb468-e59a-4d52-912f-d74d6f3b5b55" stretchType="RelativeToBandHeight" x="521" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.comissao.excesso}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="f4d17e8b-9174-4eb9-a636-4cccffcc326c" stretchType="RelativeToBandHeight" x="581" y="0" width="60" height="15"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.total.outros}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="ab5e35b3-ad08-4264-b5a3-311d394cd505" stretchType="RelativeToBandHeight" x="641" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.comissao.outros}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="baa3fc3e-8161-4723-b203-53e5aec20236" stretchType="RelativeToBandHeight" x="701" y="0" width="60" height="15"/> - <box> - <topPen lineWidth="0.5"/> - <leftPen lineWidth="0.5"/> - <bottomPen lineWidth="0.5"/> - <rightPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.faturamento.total}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="702500a1-67d5-4b1f-afed-f5cf7ef46f7a" stretchType="RelativeToBandHeight" x="761" y="0" width="60" height="15" backcolor="#D0D0D0"/> + <reportElement stretchType="RelativeToBandHeight" x="882" y="0" width="47" height="15" backcolor="#D0D0D0" uuid="702500a1-67d5-4b1f-afed-f5cf7ef46f7a"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -276,12 +210,12 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Top" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.comissão.total}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="ec3f23c3-4ed8-4ed9-a444-be0d183d7b2f" stretchType="RelativeToBandHeight" x="221" y="0" width="60" height="15" backcolor="#FFFFFF"/> + <reportElement stretchType="RelativeToBandHeight" x="273" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="4011e3b5-50a3-4558-9451-dde1eaba6475"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -289,12 +223,51 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.comissao.v.imp}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="432" y="0" width="50" height="15" uuid="c43f5d68-7ede-499f-b41e-7bea4c2633ba"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.total.excesso}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="482" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="f53eb468-e59a-4d52-912f-d74d6f3b5b55"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.comissao.excesso}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="223" y="0" width="50" height="15" backcolor="#FFFFFF" uuid="ec3f23c3-4ed8-4ed9-a444-be0d183d7b2f"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$R{label.total.venda.imp}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement uuid="4011e3b5-50a3-4558-9451-dde1eaba6475" stretchType="RelativeToBandHeight" x="281" y="0" width="60" height="15" backcolor="#D0D0D0"/> + <reportElement stretchType="RelativeToBandHeight" x="123" y="0" width="50" height="15" backcolor="#FFFFFF" uuid="b7de9705-89ba-4b32-96b6-c576a8c837c9"/> <box> <topPen lineWidth="0.5"/> <leftPen lineWidth="0.5"/> @@ -302,27 +275,131 @@ <rightPen lineWidth="0.5"/> </box> <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> - <font fontName="SansSerif" size="9" isBold="true"/> + <font fontName="SansSerif" size="7" isBold="true"/> </textElement> - <textFieldExpression><![CDATA[$R{label.comissao.v.imp}]]></textFieldExpression> + <textFieldExpression><![CDATA[$R{label.total.passagem}]]></textFieldExpression> + </textField> + <textField> + <reportElement stretchType="RelativeToBandHeight" x="69" y="0" width="53" height="15" backcolor="#D0D0D0" uuid="6c254964-9d2e-4627-94d9-dfde4d1fc187"/> + <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.data}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="532" y="0" width="50" height="15" uuid="f4d17e8b-9174-4eb9-a636-4cccffcc326c"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.total.outros}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="582" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="ab5e35b3-ad08-4264-b5a3-311d394cd505"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.comissao.outros}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="632" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="f3658cab-9a95-4456-bbe5-1243edc747ca"/> + <box bottomPadding="1"> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.total.seguro}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="782" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="d08894e1-d34c-4037-b5bb-aa41c53a7576"/> + <box bottomPadding="1"> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.comissao.recarga}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="732" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="c269410a-18f2-4578-bde5-f4c9db87690c"/> + <box bottomPadding="1"> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.total.recarga}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="832" y="0" width="50" height="15" uuid="baa3fc3e-8161-4723-b203-53e5aec20236"/> + <box> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font fontName="SansSerif" size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.faturamento.total}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement stretchType="RelativeToBandHeight" x="682" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="da460832-f636-4821-99ce-b5fcb0870051"/> + <box bottomPadding="1"> + <topPen lineWidth="0.5"/> + <leftPen lineWidth="0.5"/> + <bottomPen lineWidth="0.5"/> + <rightPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"> + <font size="7" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.comissao.seguro}]]></textFieldExpression> </textField> </band> </columnHeader> <detail> <band height="17" splitType="Prevent"> <textField> - <reportElement uuid="37f5c197-8660-4330-ac3b-b157a0f8e6c1" x="0" y="0" width="93" height="15"/> + <reportElement x="0" y="0" width="69" height="15" uuid="37f5c197-8660-4330-ac3b-b157a0f8e6c1"/> <box> <leftPen lineWidth="0.5"/> <bottomPen lineWidth="0.5"/> </box> <textElement verticalAlignment="Middle"> - <font size="8"/> + <font size="7"/> </textElement> <textFieldExpression><![CDATA[$F{pontoVenda}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="d4925633-14a7-4e0a-9ba1-72c9898f01a2" x="93" y="0" width="68" height="15"/> + <reportElement x="122" y="0" width="50" height="15" uuid="d4925633-14a7-4e0a-9ba1-72c9898f01a2"/> <box> <bottomPen lineWidth="0.5"/> </box> @@ -332,8 +409,8 @@ <textFieldExpression><![CDATA[$F{totalTarifa}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="6740083a-5616-40b5-ad6e-474a9ff42a95" x="161" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="172" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="6740083a-5616-40b5-ad6e-474a9ff42a95"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> @@ -342,28 +419,28 @@ <textFieldExpression><![CDATA[$F{comissaoTarifa}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="ba43930c-8783-4551-89d4-72310c5fcc0b" x="341" y="0" width="60" height="15"/> - <box> + <reportElement x="323" y="0" width="55" height="15" uuid="ba43930c-8783-4551-89d4-72310c5fcc0b"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="7"/> </textElement> - <textFieldExpression><![CDATA[$F{totalImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{totalImpGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="70f4eefa-dc33-4308-bfd5-b6c131309473" x="401" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="378" y="0" width="54" height="15" backcolor="#D0D0D0" uuid="70f4eefa-dc33-4308-bfd5-b6c131309473"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="7"/> </textElement> - <textFieldExpression><![CDATA[$F{comissaoImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{comissaoImpGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="a4559a53-c150-40c0-87ed-c311960f5138" x="461" y="0" width="60" height="15"/> - <box> + <reportElement x="432" y="0" width="50" height="15" uuid="a4559a53-c150-40c0-87ed-c311960f5138"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> @@ -372,8 +449,8 @@ <textFieldExpression><![CDATA[$F{totalExcBagagem}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="e4dadd17-b2c3-4136-aaa3-90b26167d3ed" x="521" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="482" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="e4dadd17-b2c3-4136-aaa3-90b26167d3ed"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> @@ -382,18 +459,8 @@ <textFieldExpression><![CDATA[$F{comissaoExcBagagem}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="86df5436-569d-48f2-a94c-3175a75332a2" x="581" y="0" width="60" height="15"/> - <box> - <bottomPen lineWidth="0.5"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font size="7"/> - </textElement> - <textFieldExpression><![CDATA[$F{totalOutros}]]></textFieldExpression> - </textField> - <textField pattern="¤ #,##0.00"> - <reportElement uuid="b2c68c6a-164f-4dd9-be3e-44bbcefe8c01" x="641" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="582" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="b2c68c6a-164f-4dd9-be3e-44bbcefe8c01"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> @@ -402,18 +469,18 @@ <textFieldExpression><![CDATA[$F{comissaoOutros}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="c5274583-1165-41f6-a551-ce4afc5ebd96" x="701" y="0" width="60" height="15"/> - <box> + <reportElement x="832" y="0" width="50" height="15" uuid="c5274583-1165-41f6-a551-ce4afc5ebd96"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="7"/> </textElement> - <textFieldExpression><![CDATA[$F{totalPagado}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{totalReceitaBruta}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="964c06b9-0092-4b22-b48f-09a7e12223ea" x="761" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="882" y="0" width="46" height="15" backcolor="#D0D0D0" uuid="964c06b9-0092-4b22-b48f-09a7e12223ea"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> <rightPen lineWidth="0.5"/> </box> @@ -424,126 +491,214 @@ <textFieldExpression><![CDATA[$F{comissaoTotal}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="7ddb5de3-1cc2-4d54-b687-8d3373200d44" x="221" y="0" width="60" height="15"/> - <box> + <reportElement x="223" y="0" width="50" height="15" uuid="7ddb5de3-1cc2-4d54-b687-8d3373200d44"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="7"/> </textElement> - <textFieldExpression><![CDATA[$F{totalVendaImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{totalVendaGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00"> - <reportElement uuid="3ccff4d1-442a-4076-97d3-b0df4fc380c9" x="281" y="0" width="60" height="15" backcolor="#D0D0D0"/> - <box> + <reportElement x="273" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="3ccff4d1-442a-4076-97d3-b0df4fc380c9"/> + <box rightPadding="2"> <bottomPen lineWidth="0.5"/> </box> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="7"/> </textElement> - <textFieldExpression><![CDATA[$F{comissaoVendaImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{comissaoGAP}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00"> + <reportElement x="532" y="0" width="50" height="15" uuid="86df5436-569d-48f2-a94c-3175a75332a2"/> + <box rightPadding="2"> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{totalOutros}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00"> + <reportElement x="632" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="fecb8375-e166-4b9d-b64b-6c44f150a1e7"/> + <box rightPadding="2"> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{totalSegOpcional}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00"> + <reportElement x="682" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="f2ecfb02-0059-4a65-af6d-378706bc1575"/> + <box rightPadding="2"> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{comissaoSegOpcional}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00"> + <reportElement x="732" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="cb52762b-283d-4ddc-9b81-48ed07ce32c9"/> + <box rightPadding="2"> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{totalRecargaCell}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00"> + <reportElement x="782" y="0" width="50" height="15" backcolor="#D0D0D0" uuid="356e80c0-5d22-4c30-a6c7-f23ddafd416c"/> + <box rightPadding="2"> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{comissaoRecargaCell}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="true"> + <reportElement x="69" y="0" width="53" height="15" uuid="943835da-e8a8-401c-9abd-3c0b81767f7f"/> + <box> + <bottomPen lineWidth="0.5"/> + </box> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="7"/> + </textElement> + <textFieldExpression><![CDATA[$F{dataEvento}]]></textFieldExpression> </textField> </band> </detail> <summary> <band height="21"> <textField> - <reportElement uuid="254c9278-71b2-4ffa-926c-5b0055e02cda" x="0" y="4" width="95" height="15"/> + <reportElement x="0" y="4" width="70" height="15" uuid="254c9278-71b2-4ffa-926c-5b0055e02cda"/> <textElement verticalAlignment="Middle"> <font size="9"/> </textElement> <textFieldExpression><![CDATA[$R{label.total.geral}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="f73d0e76-f4b7-4f0d-9829-1e2e0ac136e2" x="95" y="4" width="66" height="15"/> + <reportElement x="123" y="4" width="49" height="15" uuid="f73d0e76-f4b7-4f0d-9829-1e2e0ac136e2"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalVendaPassagens}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="8d5c13c7-22b3-4d98-aa90-2f29c66b27df" x="161" y="4" width="60" height="15"/> + <reportElement x="173" y="4" width="48" height="15" uuid="8d5c13c7-22b3-4d98-aa90-2f29c66b27df"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalComissaoVenda}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="5283241a-48aa-4a14-9055-fa4556740285" x="221" y="4" width="60" height="15"/> + <reportElement x="221" y="4" width="52" height="15" uuid="5283241a-48aa-4a14-9055-fa4556740285"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> - <textFieldExpression><![CDATA[$V{totalVendaImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$V{totalVendaGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="1e757c53-6a63-4631-8cf1-1947ef2e5655" x="281" y="4" width="60" height="15"/> + <reportElement x="273" y="4" width="50" height="15" uuid="1e757c53-6a63-4631-8cf1-1947ef2e5655"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> - <textFieldExpression><![CDATA[$V{totalComissaoVendaImpPos}]]></textFieldExpression> + <textFieldExpression><![CDATA[$V{totalComissaoGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="28d68769-ee18-4e75-876f-3831440e4d6d" x="341" y="4" width="60" height="15"/> + <reportElement x="323" y="4" width="55" height="15" uuid="28d68769-ee18-4e75-876f-3831440e4d6d"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> - <textFieldExpression><![CDATA[$V{totalVendaImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$V{totalImpGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="6a225efc-3b35-4d11-88a6-b91bcc0f46c4" x="401" y="4" width="60" height="15"/> + <reportElement x="378" y="4" width="54" height="15" uuid="6a225efc-3b35-4d11-88a6-b91bcc0f46c4"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> - <textFieldExpression><![CDATA[$V{totalComissaoImpPosterior}]]></textFieldExpression> + <textFieldExpression><![CDATA[$V{totalComissaoImpGAP}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="692797f2-804c-475c-8850-3298c8929bff" x="461" y="4" width="60" height="15"/> + <reportElement x="432" y="4" width="50" height="15" uuid="692797f2-804c-475c-8850-3298c8929bff"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalExcBagagem}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="0bc22fcd-08c9-4aa6-ba57-86c622d4ab25" x="521" y="4" width="60" height="15"/> + <reportElement x="482" y="4" width="50" height="15" uuid="0bc22fcd-08c9-4aa6-ba57-86c622d4ab25"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalComissaoExcBagagem}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="f36968b3-9d63-4a93-8b83-76aa7a7efac0" x="581" y="4" width="60" height="15"/> + <reportElement x="532" y="4" width="50" height="15" uuid="f36968b3-9d63-4a93-8b83-76aa7a7efac0"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalOutros}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="13303515-a3f8-4c98-9faf-8cfc7fbf4fbb" x="641" y="4" width="60" height="15"/> + <reportElement x="582" y="4" width="49" height="15" uuid="13303515-a3f8-4c98-9faf-8cfc7fbf4fbb"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalComissaoOutros}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="d13a8054-8d65-44f0-ab07-528d86eccabd" x="702" y="4" width="60" height="15"/> + <reportElement x="832" y="4" width="50" height="15" uuid="d13a8054-8d65-44f0-ab07-528d86eccabd"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalPagado}]]></textFieldExpression> </textField> <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> - <reportElement uuid="9e75f6e6-ff85-4065-bc46-b1362f9294e1" x="762" y="4" width="60" height="15"/> + <reportElement x="882" y="4" width="46" height="15" uuid="9e75f6e6-ff85-4065-bc46-b1362f9294e1"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font size="8"/> </textElement> <textFieldExpression><![CDATA[$V{totalComissaoTotal}]]></textFieldExpression> </textField> <line> - <reportElement uuid="4a56d4c0-e2dc-4b24-bac3-fd5dd76b986c" x="0" y="1" width="822" height="1"/> + <reportElement x="0" y="1" width="930" height="1" uuid="4a56d4c0-e2dc-4b24-bac3-fd5dd76b986c"/> </line> + <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> + <reportElement x="631" y="4" width="51" height="15" uuid="c936f073-ae83-4289-a1af-e91f783587e0"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$V{totalSeguroOpcional}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> + <reportElement x="682" y="4" width="50" height="15" uuid="963b70d9-d3c5-4990-868f-d431db28c214"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$V{totalComissaoSeguroOpcional}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> + <reportElement x="732" y="4" width="50" height="15" uuid="22dd543d-6f8f-445b-9aec-85d9abb2613f"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$V{totalRecarga}]]></textFieldExpression> + </textField> + <textField pattern="¤ #,##0.00" isBlankWhenNull="true"> + <reportElement x="782" y="4" width="50" height="15" uuid="2c25e5c6-15c2-49f0-b187-59048c339b31"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$V{totalComissaoRecarga}]]></textFieldExpression> + </textField> </band> </summary> <noData> - <band height="22"/> + <band height="23"/> </noData> </jasperReport> diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioComissaoSinteticoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioComissaoSinteticoBean.java index 5e9fac826..0445f76d1 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioComissaoSinteticoBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioComissaoSinteticoBean.java @@ -1,28 +1,57 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; import java.math.BigDecimal; +import java.util.Date; import java.util.Objects; public class RelatorioComissaoSinteticoBean { + private Integer comissaoID; + private Date dataEvento; private String pontoVenda; private Integer pontoVendaID; private Integer empresaID; + private BigDecimal totalTarifa; private BigDecimal comissaoTarifa; - private BigDecimal totalImpPosterior; - private BigDecimal comissaoImpPosterior; - private BigDecimal totalVendaImpPosterior; - private BigDecimal comissaoVendaImpPosterior; + private BigDecimal totalVendaGAP; + private BigDecimal comissaoGAP; + private BigDecimal totalImpGAP; + private BigDecimal comissaoImpGAP; private BigDecimal totalExcBagagem; private BigDecimal comissaoExcBagagem; private BigDecimal totalOutros; private BigDecimal comissaoOutros; - private BigDecimal totalPagado; + private BigDecimal totalSegOpcional; + private BigDecimal comissaoSegOpcional; + private BigDecimal totalRecargaCell; + private BigDecimal comissaoRecargaCell; + private BigDecimal totalReceitaBruta; private BigDecimal comissaoTotal; - private BigDecimal totalSeguro; - private BigDecimal totalPedagio; - private BigDecimal totalTaxaEmb; - private BigDecimal comissaoSeguro; + + + public Integer getComissaoID() { + return comissaoID; + } + + public void setComissaoID(Integer comissaoID) { + this.comissaoID = comissaoID; + } + + public Date getDataEvento() { + return dataEvento; + } + + public void setDataEvento(Date dataEvento) { + this.dataEvento = dataEvento; + } + + public String getPontoVenda() { + return pontoVenda; + } + + public void setPontoVenda(String pontoVenda) { + this.pontoVenda = pontoVenda; + } public Integer getPontoVendaID() { return pontoVendaID; @@ -40,38 +69,6 @@ public class RelatorioComissaoSinteticoBean { this.empresaID = empresaID; } - public String getPontoVenda() { - return pontoVenda; - } - - public void setPontoVenda(String pontoVenda) { - this.pontoVenda = pontoVenda; - } - - public BigDecimal getTotalSeguro() { - return totalSeguro; - } - - public void setTotalSeguro(BigDecimal totalSeguro) { - this.totalSeguro = totalSeguro; - } - - public BigDecimal getTotalTaxaEmb() { - return totalTaxaEmb; - } - - public void setTotalTaxaEmb(BigDecimal totalTaxaEmb) { - this.totalTaxaEmb = totalTaxaEmb; - } - - public BigDecimal getTotalPegadio() { - return totalPedagio; - } - - public void setTotalPegadio(BigDecimal totalPegadio) { - this.totalPedagio = totalPegadio; - } - public BigDecimal getTotalTarifa() { return totalTarifa; } @@ -88,36 +85,36 @@ public class RelatorioComissaoSinteticoBean { this.comissaoTarifa = comissaoTarifa; } - public BigDecimal getTotalImpPosterior() { - return totalImpPosterior; + public BigDecimal getTotalVendaGAP() { + return totalVendaGAP; } - public void setTotalImpPosterior(BigDecimal totalImpPosterior) { - this.totalImpPosterior = totalImpPosterior; + public void setTotalVendaGAP(BigDecimal totalVendaGAP) { + this.totalVendaGAP = totalVendaGAP; } - public BigDecimal getComissaoImpPosterior() { - return comissaoImpPosterior; + public BigDecimal getComissaoGAP() { + return comissaoGAP; } - public BigDecimal getTotalVendaImpPosterior() { - return totalVendaImpPosterior; + public void setComissaoGAP(BigDecimal comissaoGAP) { + this.comissaoGAP = comissaoGAP; } - public void setTotalVendaImpPosterior(BigDecimal totalVendaImpPosterior) { - this.totalVendaImpPosterior = totalVendaImpPosterior; + public BigDecimal getTotalImpGAP() { + return totalImpGAP; } - public BigDecimal getComissaoVendaImpPosterior() { - return comissaoVendaImpPosterior; + public void setTotalImpGAP(BigDecimal totalImpGAP) { + this.totalImpGAP = totalImpGAP; } - public void setComissaoVendaImpPosterior(BigDecimal comissaoVendaImpPosterior) { - this.comissaoVendaImpPosterior = comissaoVendaImpPosterior; + public BigDecimal getComissaoImpGAP() { + return comissaoImpGAP; } - public void setComissaoImpPosterior(BigDecimal comissaoImpPosterior) { - this.comissaoImpPosterior = comissaoImpPosterior; + public void setComissaoImpGAP(BigDecimal comissaoImpGAP) { + this.comissaoImpGAP = comissaoImpGAP; } public BigDecimal getTotalExcBagagem() { @@ -152,12 +149,44 @@ public class RelatorioComissaoSinteticoBean { this.comissaoOutros = comissaoOutros; } - public BigDecimal getTotalPagado() { - return totalPagado; + public BigDecimal getTotalSegOpcional() { + return totalSegOpcional; } - public void setTotalPagado(BigDecimal totalPagado) { - this.totalPagado = totalPagado; + public void setTotalSegOpcional(BigDecimal totalSegOpcional) { + this.totalSegOpcional = totalSegOpcional; + } + + public BigDecimal getComissaoSegOpcional() { + return comissaoSegOpcional; + } + + public void setComissaoSegOpcional(BigDecimal comissaoSegOpcional) { + this.comissaoSegOpcional = comissaoSegOpcional; + } + + public BigDecimal getTotalRecargaCell() { + return totalRecargaCell; + } + + public void setTotalRecargaCell(BigDecimal totalRecargaCell) { + this.totalRecargaCell = totalRecargaCell; + } + + public BigDecimal getComissaoRecargaCell() { + return comissaoRecargaCell; + } + + public void setComissaoRecargaCell(BigDecimal comissaoRecargaCell) { + this.comissaoRecargaCell = comissaoRecargaCell; + } + + public BigDecimal getTotalReceitaBruta() { + return totalReceitaBruta; + } + + public void setTotalReceitaBruta(BigDecimal totalReceitaBruta) { + this.totalReceitaBruta = totalReceitaBruta; } public BigDecimal getComissaoTotal() { @@ -168,17 +197,9 @@ public class RelatorioComissaoSinteticoBean { this.comissaoTotal = comissaoTotal; } - public BigDecimal getComissaoSeguro() { - return comissaoSeguro; - } - - public void setComissaoSeguro(BigDecimal comissaoSeguro) { - this.comissaoSeguro = comissaoSeguro; - } - @Override public int hashCode() { - return Objects.hash(empresaID, pontoVendaID); + return Objects.hash(comissaoID); } @Override diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioComissaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioComissaoController.java index 04f00d1ef..2434467a2 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioComissaoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioComissaoController.java @@ -6,6 +6,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.sql.DataSource; @@ -21,6 +22,7 @@ import org.zkoss.zul.Comboitem; import org.zkoss.zul.Paging; import org.zkoss.zul.Radiogroup; +import com.rjconsultores.ventaboletos.dao.ComissaoDAO; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioComissaoSintetico; @@ -50,7 +52,10 @@ public class RelatorioComissaoController extends MyGenericForwardComposer { private DataSource dataSourceRead; @Autowired private EmpresaService empresaService; + @Autowired + private ComissaoDAO comissaoDAO; private List<Empresa> lsEmpresa; + private List<PuntoVenta> lsPuntoVenta; private MyDatebox datInicial; private MyDatebox datFinal; private MyTextbox txtNombrePuntoVenta; @@ -64,6 +69,7 @@ public class RelatorioComissaoController extends MyGenericForwardComposer { @Override public void doAfterCompose(Component comp) throws Exception { lsEmpresa = empresaService.obtenerTodos(); + lsPuntoVenta = comissaoDAO.buscaPuntoVentasComComissaoParametrizada(); super.doAfterCompose(comp); puntoVentaList.setItemRenderer(new RenderRelatorioTaxasLinhaPuntoVenta()); puntoVentaSelList.setItemRenderer(new RenderRelatorioTaxasLinhaPuntoVentaSelecionados()); @@ -71,16 +77,15 @@ public class RelatorioComissaoController extends MyGenericForwardComposer { private void executarPesquisa() { HibernateSearchObject<PuntoVenta> puntoVentaBusqueda = new HibernateSearchObject<PuntoVenta>(PuntoVenta.class, pagingPuntoVenta.getPageSize()); - + puntoVentaBusqueda.addFilterILike("nombpuntoventa", "%" + txtNombrePuntoVenta.getValue() + "%"); puntoVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); - puntoVentaBusqueda.addSortAsc("nombpuntoventa"); - puntoVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); plwPuntoVenta.init(puntoVentaBusqueda, puntoVentaList, pagingPuntoVenta); + if (puntoVentaList.getData().length == 0) { try { Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), @@ -88,6 +93,12 @@ public class RelatorioComissaoController extends MyGenericForwardComposer { Messagebox.OK, Messagebox.INFORMATION); } catch (InterruptedException ex) { } + } else { + for (Object item : puntoVentaList.getData()) { + if (!lsPuntoVenta.contains((PuntoVenta) item)) { + puntoVentaList.removeItem(item); + } + } } }