From a5cc3fbd8f1c2daf83f246fa96d2dadfca295fbe Mon Sep 17 00:00:00 2001 From: julio Date: Mon, 8 Oct 2018 17:17:54 +0000 Subject: [PATCH] fixes bug#11600 fixes bug#10939 dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@85992 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioFinanceiroSintetico.java | 166 ++++++++++-------- .../RelatorioFinanceiroSintetico.jasper | Bin 78998 -> 77640 bytes .../RelatorioFinanceiroSintetico.jrxml | 54 ++---- ...BusquedaRelatorioFinanceiroController.java | 2 +- 4 files changed, 106 insertions(+), 116 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java index 241c96ac9..5b0f12193 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java @@ -10,6 +10,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.entidad.Empresa; @@ -51,7 +52,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { ufs = ufs + "," + estado.getEstadoId().toString(); } - String pdvs = (String)parametros.get("agencias"); + String pdvs = (String) parametros.get("agencias"); NamedParameterStatement stmt = new NamedParameterStatement(getConexao(), getSql(ufs, pdvs, tipoPuntoVenta == null ? -1 : tipoPuntoVenta.getTipoptovtaId().intValue(), isBpe)); stmt.setInt("EMPRESA_ID", empresa.getEmpresaId()); @@ -62,12 +63,12 @@ public class RelatorioFinanceiroSintetico extends Relatorio { ResultSet rset = stmt.executeQuery(); while (rset.next()) { FinanceiroSintetico fs = new FinanceiroSintetico(); - fs.setUf(rset.getString("uf")); - fs.setCodigoAgencia(rset.getString("codigo")); + fs.setUf(getString(rset, new String[] {"uf", "estadoOrigem_rec", "estadoOrigem_dev"})); + fs.setCodigoAgencia(getString(rset, new String[] {"codigo", "codigo_rec", "codigo_dev"})); fs.setGapVenda(getBigDecimal(rset, "receita_gap")); fs.setGapImpressa(getBigDecimal(rset, "entrega_gap")); - + fs.setReceitaBPR(getBigDecimal(rset, "receita_rdi_bpr")); BigDecimal totalVendaPassagens = fs.getReceitaBPR().add(fs.getGapVenda()); @@ -99,8 +100,8 @@ public class RelatorioFinanceiroSintetico extends Relatorio { fs.setDevolBPR(getBigDecimal(rset, "receita_cancel_rdi_bpr")); fs.setDevolGAP(getBigDecimal(rset, "receita_devol_gap")); fs.setDevolOCD(getBigDecimal(rset, "receita_ocd_dev")); - - BigDecimal totalDevolucao = fs.getDevolBPR().add(fs.getDevolGAP()); + BigDecimal totalDevolucao = fs.getDevolBPR().add(fs.getDevolGAP()).add(fs.getDevolOCD()); + BigDecimal receitaLiquida = receitaBruta.subtract(totalDevolucao); fs.setReceitaLiquida(receitaLiquida); @@ -111,11 +112,11 @@ public class RelatorioFinanceiroSintetico extends Relatorio { BigDecimal cartaoCredito = getBigDecimal(rset, "cartao_credito"); cartaoCredito = cartaoCredito.add(getBigDecimal(rset, "cartao_credito_ee")); fs.setCartaoCredito(cartaoCredito); - + BigDecimal cartaoDebito = getBigDecimal(rset, "cartao_debito"); cartaoDebito = cartaoDebito.add(getBigDecimal(rset, "cartao_debito_ee")); fs.setCartaoDebito(cartaoDebito); - + BigDecimal boleto = getBigDecimal(rset, "boleto_bnc"); boleto = boleto.add(getBigDecimal(rset, "boleto_bnc_ee")); fs.setBoletoBancario(boleto); @@ -145,6 +146,18 @@ public class RelatorioFinanceiroSintetico extends Relatorio { this.setCollectionDataSource(new JRBeanCollectionDataSource(listdata)); } + static public String getString(ResultSet rs, String... strColName) throws SQLException { + String nValue = null; + String[] array = strColName; + for (int i = 0; i < array.length; i++) { + if (StringUtils.isNotBlank(rs.getString(array[i]))) { + nValue = rs.getString(array[i]); + return nValue; + } + } + return nValue; + } + static public BigDecimal getBigDecimal(ResultSet rs, String strColName) throws SQLException { BigDecimal nValue = rs.getBigDecimal(strColName); return rs.wasNull() ? BigDecimal.ZERO : nValue; @@ -156,7 +169,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { private String getSql(String ufs, String pdvs, Integer tipoptovtaId, boolean isBpe) { - StringBuilder sql = new StringBuilder(20000); + StringBuilder sql = new StringBuilder(); sql.append(" SELECT * "); sql.append(" FROM "); sql.append(" (SELECT cdv.estadoOrigem AS uf, "); @@ -229,11 +242,8 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" SUM( CASE WHEN (cdc.indstatusboleto IN ('C', 'T') AND cdc.motivocancelacion_id IN (32,10,37)) THEN cdc.valorpago ELSE 0 END) AS receita_devol_bpr, "); sql.append(" SUM( CASE WHEN (cdc.indstatusboleto IN ('C', 'T') AND cdc.motivocancelacion_id IN (31)) THEN cdc.valorpago ELSE 0 END) AS receita_cancel_bpr, "); sql.append(" SUM( CASE WHEN ( (cdc.indstatusboleto = 'C' AND cdc.motivocancelacion_id IN (31,32,10,37) OR (cdc.indstatusboleto = 'T' AND cdc.motivocancelacion_id IS NULL )) AND cdc.numfoliosistema IS NULL AND cdc.tipoventa_id IN (5,12,18,49)) THEN cdc.valorpago ELSE 0 END) AS receita_devol_gap, "); - sql.append(" SUM( CASE WHEN (trunc(cdc.fecinc) = trunc(cdc.feccorte)) THEN cdc.valor_ocd ELSE 0 END) AS receita_ocd_dev, "); - // sql.append(" SUM( CASE WHEN (cdc.fecpago is not null ) THEN cdc.valor_ocd ELSE 0 END) AS receita_ocd_pg "); sql.append(" SUM( CASE WHEN (cdc.fecpago is not null and cdc.fecpago between :DATE_INICIO and :DATE_FIM) THEN cdc.valor_ocd ELSE 0 END) AS receita_ocd_pg "); - sql.append(" FROM "); sql.append(" ( SELECT DISTINCT c.caja_id AS cajaid, "); sql.append(" e.empresa_id AS empresaId, "); @@ -256,7 +266,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" c.motivocancelacion_id AS motivocancelacion_id, "); sql.append(" c.tipoventa_id AS tipoventa_id, "); sql.append(" c.indstatusoperacion, "); - + sql.append(" c.feccorte, "); sql.append(" ocd.fecinc, "); sql.append(" ocd.fecpago, "); @@ -271,7 +281,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" JOIN parada po ON po.parada_id = pv.parada_id "); sql.append(" JOIN ciudad co ON co.ciudad_id = po.ciudad_id "); sql.append(" JOIN estado eo ON eo.estado_id = co.estado_id "); - sql.append(" LEFT JOIN ocd ocd on ocd.boleto_id = c.transacao_id "); + sql.append(" LEFT JOIN ocd ocd on ocd.boleto_id = c.transacao_id "); sql.append(" WHERE (c.motivocancelacion_id IN (31,32,10,37,99,36) "); sql.append(" OR c.motivocancelacion_id IS NULL) "); sql.append(" AND c.feccorte >= :DATE_INICIO "); @@ -329,7 +339,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(ufs == null ? "" : " and eo.estado_id in ( " + ufs + " ) "); sql.append(pdvs == null ? "" : "and ccp.puntoventa_id in ( " + pdvs + " ) "); - sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); + sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); sql.append(" GROUP BY ee.empresa_id, "); sql.append(" cd.puntoventa_id, "); @@ -337,22 +347,21 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" ) eed ON agrc.empresaId = eed.empresaId "); sql.append(" AND agrc.puntoventaId = eed.puntoventaId "); sql.append(" AND agrc.estadoId = eed.estadoId "); - sql.append(" LEFT JOIN "); - - - //alterar para o BPe - sql.append(" (select empresaId, puntoventaId, estadoId, sum(tarifa) receita_rdi_bpr from ( "); + sql.append(" FULL JOIN "); + sql.append(" (select empresaId, puntoventaId, estadoId, codigo_rec, estadoOrigem_rec, sum(tarifa) receita_rdi_bpr from ( "); sql.append(" SELECT DISTINCT "); sql.append(isBpe ? " c.boleto_id as cajaId, " : " c.caja_id as cajaId, "); sql.append(" e.empresa_id AS empresaId, "); sql.append(" pv.puntoventa_id AS puntoventaId, "); + sql.append(" pv.numpuntoventa AS codigo_rec, "); sql.append(" eo.estado_id AS estadoId, "); + sql.append(" eo.cveestado AS estadoOrigem_rec, "); sql.append(" COALESCE(c.preciopagado, 0)AS tarifa, "); sql.append(" COALESCE(c.importetaxaembarque, 0) AS taxaEmbarque, "); sql.append(" COALESCE(c.importepedagio, 0) AS pedagio, "); sql.append(" COALESCE(c.importeseguro, 0) AS seguro, "); - sql.append(" COALESCE(c.importeoutros, 0) AS outros "); + sql.append(" COALESCE(c.importeoutros, 0) AS outros "); sql.append(isBpe ? " from boleto c " : " FROM caja c "); sql.append(isBpe ? " inner join bpe bpe on bpe.boleto_id = c.boleto_id " : ""); sql.append(" INNER JOIN marca m ON m.marca_id = c.marca_id AND m.activo = 1 "); @@ -366,22 +375,24 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" AND co.activo = 1 "); sql.append(" AND eo.activo = 1 "); sql.append(" AND c.serieimpfiscal IS NOT NULL "); - sql.append(isBpe ? " and bpe.bpe_id is not null " : " and c.num_bpe is null "); + sql.append(isBpe ? " and bpe.bpe_id is not null " : " and c.num_bpe is null "); sql.append(" AND ((c.indreimpresion = 0 AND c.motivocancelacion_id IS NULL "); sql.append(" AND c.numfoliosistema IS NOT NULL) OR (c.indstatusboleto = 'E' AND c.indreimpresion = 1)) "); sql.append(" AND (COALESCE(c.preciopagado,0) + COALESCE(c.importetaxaembarque,0) + COALESCE(c.importeseguro,0) + COALESCE(c.importepedagio,0) + COALESCE(c.importeoutros,0)) > 0 "); sql.append(" AND c.feccreacion >= :DATE_INICIO AND c.feccreacion <= :DATE_FIM "); sql.append(" AND e.empresa_id = :EMPRESA_ID "); - + sql.append(ufs == null ? "" : " and eo.estado_id in ( " + ufs + " ) "); sql.append(pdvs == null ? "" : "and pv.puntoventa_id in ( " + pdvs + " ) "); - sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); - + sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); + sql.append(" UNION ALL "); sql.append(" SELECT DISTINCT c.caja_id AS cajaId, "); sql.append(" e.empresa_id AS empresaId, "); sql.append(" pv.puntoventa_id AS puntoventaId, "); + sql.append(" pv.numpuntoventa AS codigo_rec, "); sql.append(" eo.estado_id AS estadoId, "); + sql.append(" eo.cveestado AS estadoOrigem_rec, "); sql.append(" COALESCE(c.preciopagado, 0) AS tarifa, "); sql.append(" COALESCE(c.importetaxaembarque, 0) AS taxaEmbarque, "); sql.append(" COALESCE(c.importepedagio, 0) AS pedagio, "); @@ -407,62 +418,73 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(isBpe ? " " : " AND c.num_bpe is null "); sql.append(" AND e.empresa_id = :EMPRESA_ID "); sql.append(" AND c.feccreacion BETWEEN :DATE_INICIO AND :DATE_FIM "); - sql.append(ufs == null ? "" : " and eo.estado_id in ( " + ufs + " ) "); sql.append(pdvs == null ? "" : "and pv.puntoventa_id in ( " + pdvs + " ) "); - sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); - + sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); sql.append(" ) rbl "); - sql.append(" GROUP BY rbl.estadoId, "); - sql.append(" rbl.puntoventaId, "); - sql.append(" rbl.empresaId "); + sql.append(" GROUP BY rbl.estadoId, rbl.puntoventaId, rbl.empresaId, rbl.codigo_rec, rbl.estadoOrigem_rec "); sql.append(" )rbpr ON agrc.empresaId = rbpr.empresaId "); - sql.append(" AND agrc.puntoventaId = rbpr.puntoventaId "); - sql.append(" AND agrc.estadoId = rbpr.estadoId "); + sql.append(" AND agrc.puntoventaId = rbpr.puntoventaId "); + sql.append(" AND agrc.estadoId = rbpr.estadoId "); - // alterar para o BPe deve ser validado pelo xml - - sql.append(" LEFT JOIN "); - sql.append(" ( select empresaId, puntoventaId, estadoId, sum(tarifa) receita_cancel_rdi_bpr from ( "); - sql.append(" SELECT DISTINCT b.boleto_id AS cajaId, "); - sql.append(" e.empresa_id AS empresaId, "); - sql.append(" pv.puntoventa_id AS puntoventaId, "); - sql.append(" eo.estado_id AS estadoId, "); - sql.append(" COALESCE(b.preciopagado, 0) AS tarifa, "); - sql.append(" COALESCE(b.importetaxaembarque, 0) AS taxaEmbarque, "); - sql.append(" COALESCE(b.importepedagio, 0) AS pedagio, "); - sql.append(" COALESCE(b.importeseguro, 0) AS seguro, "); - sql.append(" COALESCE(b.importeoutros, 0) AS outros "); - sql.append(" FROM boleto b "); - sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_id AND m.activo = 1 "); - sql.append(" INNER JOIN empresa e ON e.empresa_id = m.empresa_id "); - sql.append(" INNER JOIN punto_venta pv ON pv.puntoventa_id = b.puntoventa_id "); - sql.append(" INNER JOIN parada p ON pv.parada_id = p.parada_id "); - sql.append(" INNER JOIN ciudad co ON co.ciudad_id = p.ciudad_id "); - sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id "); - sql.append(" WHERE b.motivocancelacion_id IN (31,32,10,37,99,36) "); - sql.append(" AND b.indstatusboleto = 'C' "); - sql.append(" AND b.indcancelacion = 1 "); - sql.append(" AND b.numfoliopreimpreso IS NOT NULL "); - sql.append(isBpe ? " " : " AND b.num_bpe is null "); - sql.append(" AND e.empresa_id = :EMPRESA_ID "); - sql.append(" AND b.fechorventa >= :DATE_INICIO "); - sql.append(" AND b.fechorventa <= :DATE_FIM "); - - sql.append(ufs == null ? "" : " and eo.estado_id in ( " + ufs + " ) "); - sql.append(pdvs == null ? "" : "and pv.puntoventa_id in ( " + pdvs + " ) "); - sql.append(tipoptovtaId == -1 ? "" : "and pv.tipoptovta_id = " + tipoptovtaId); - - sql.append(" AND b.categoria_id NOT IN (SELECT valorconstante FROM constante WHERE nombconstante = 'GRATUIDADE_CRIANCA') "); - sql.append(" ) cbl "); - sql.append(" GROUP BY cbl.estadoId, "); - sql.append(" cbl.puntoventaId, "); - sql.append(" cbl.empresaId "); + sql.append(" FULL JOIN "); + sql.append(" ( select empresaId, puntoventaId, estadoId, codigo_dev, estadoOrigem_dev, sum(tarifa) receita_cancel_rdi_bpr from ( "); + sql.append(" SELECT DISTINCT b.boleto_id AS cajaId, "); + sql.append(" e.empresa_id AS empresaId, "); + sql.append(" PTVO.PUNTOVENTA_ID AS puntoventaId, "); + sql.append(" PTVO.NUMPUNTOVENTA AS codigo_dev, "); + sql.append(" COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) AS estadoId, "); + sql.append(" COALESCE(ESAIDF.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS estadoOrigem_dev, "); + sql.append(" COALESCE(b.preciopagado, 0) AS tarifa, "); + sql.append(" COALESCE(b.importetaxaembarque, 0) AS taxaEmbarque, "); + sql.append(" COALESCE(b.importepedagio, 0) AS pedagio, "); + sql.append(" COALESCE(b.importeseguro, 0) AS seguro, "); + sql.append(" COALESCE(b.importeoutros, 0) AS outros "); + sql.append(" FROM BOLETO B "); + sql.append(" INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.ACTIVO = 1 "); + sql.append(" INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); + sql.append(" INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID "); + sql.append(" INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); + sql.append(" INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); + sql.append(" INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); + sql.append(" INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); + sql.append(" INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); + sql.append(" LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = B.PTOVTAVENTA_ID "); + sql.append(" LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID "); + sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) "); + sql.append(" AND S.RUTA_ID = B.RUTA_ID AND S.ACTIVO = 1 "); + sql.append(" LEFT JOIN PARADA POS ON POS.PARADA_ID = S.ALIASORIGEN_ID "); + sql.append(" LEFT JOIN CIUDAD COS ON COS.CIUDAD_ID = POS.CIUDAD_ID "); + sql.append(" LEFT JOIN ESTADO EOS ON EOS.ESTADO_ID = COS.ESTADO_ID "); + sql.append(" LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID "); + sql.append(" LEFT JOIN CIUDAD CDS ON CDS.CIUDAD_ID = PDS.CIUDAD_ID "); + sql.append(" LEFT JOIN ESTADO EDS ON EDS.ESTADO_ID = CDS.ESTADO_ID "); + sql.append(" JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID "); + sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 "); + sql.append(" JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID "); + sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 "); + sql.append(" LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 "); + sql.append(" LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID "); + sql.append(" LEFT JOIN BOLETO BORI ON BORI.BOLETO_ID = B.BOLETOORIGINAL_ID "); + sql.append(" WHERE B.MOTIVOCANCELACION_ID IN (31,32,10,37,99,36) "); + sql.append(" AND B.INDSTATUSBOLETO = 'C' AND B.INDCANCELACION = 1 "); + sql.append(" AND BORI.FECHORVENTA >= :DATE_INICIO "); + sql.append(" AND BORI.FECHORVENTA <= :DATE_FIM "); + sql.append(" AND B.FECHORVENTA >= :DATE_INICIO "); + sql.append(" AND B.FECHORVENTA <= :DATE_FIM "); + sql.append(ufs == null ? "" : " AND COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) IN ( " + ufs + " ) "); + sql.append(pdvs == null ? "" : " AND PTVO.PUNTOVENTA_ID IN ( " + pdvs + " ) "); + sql.append(tipoptovtaId == -1 ? "" : " AND PTVO.TIPOPTOVTA_ID = " + tipoptovtaId); + sql.append(" AND E.EMPRESA_ID = :EMPRESA_ID "); + sql.append(" AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); + sql.append(" AND B.NUM_BPE IS NULL "); + sql.append(" ) cbl "); + sql.append(" GROUP BY cbl.estadoId, cbl.puntoventaId, cbl.empresaId, cbl.codigo_dev, cbl.estadoOrigem_dev "); sql.append(" ) cbpr "); sql.append(" ON agrc.empresaId = cbpr.empresaId "); sql.append(" AND agrc.puntoventaId = cbpr.puntoventaId "); sql.append(" AND agrc.estadoId = cbpr.estadoId "); - + return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jasper index cc41a6b30277de49be346d1a056ee4086a0267e9..19af3bbcde42341a8e61bf14f86cd813d6c27090 100644 GIT binary patch delta 21683 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 VInSstB%xW8kUtBVpWYNT`#%Ug^G^T( delta 23018 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%0DgL$R*!b2Dd&+4U#~bVu*%vG5k3yX^=RK0GydKF8 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 D%haoC diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jrxml index 2bd6ba8a6..04f1cdf48 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jrxml @@ -1,7 +1,7 @@ - + - + @@ -396,7 +396,7 @@ - + @@ -406,17 +406,6 @@ - - - - - - - - - - - @@ -486,7 +475,7 @@ - + @@ -546,25 +535,25 @@ - + - + - + - + - + @@ -812,7 +801,7 @@ - + @@ -821,17 +810,6 @@ - - - - - - - - - - - @@ -888,7 +866,7 @@ - + @@ -1058,16 +1036,6 @@ - - - - - - - - - - diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaRelatorioFinanceiroController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaRelatorioFinanceiroController.java index 6ddc8195e..e8bd17f00 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaRelatorioFinanceiroController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaRelatorioFinanceiroController.java @@ -159,7 +159,7 @@ public class BusquedaRelatorioFinanceiroController extends MyGenericForwardCompo args.put("relatorio", relatorio); openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mnRelatorioRDI.label"), args, MODAL); + Labels.getLabel("indexController.mnRelatoriosFinanceiros.label"), args, MODAL); } catch (Exception e) { log.error("", e);