From c78349bf4e05e65351e71d0bb9e7202d4081bcfc Mon Sep 17 00:00:00 2001 From: julio Date: Fri, 25 Aug 2017 11:26:31 +0000 Subject: [PATCH] bug #9389 - Financeiro Analitico git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@73069 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioFinanceiroAnalitico.java | 291 +++++ .../impl/RelatorioFinanceiroSintetico.java | 7 +- ...RelatorioFinanceiroAnalitico_es.properties | 2 + ...atorioFinanceiroAnalitico_pt_BR.properties | 2 + .../RelatorioFinanceiroAnalitico.jasper | Bin 0 -> 75021 bytes .../RelatorioFinanceiroAnalitico.jrxml | 1032 +++++++++++++++++ .../RelatorioFinanceiroSintetico.jasper | Bin 69750 -> 73810 bytes .../RelatorioFinanceiroSintetico.jrxml | 302 ++++- ...BusquedaRelatorioFinanceiroController.java | 17 +- .../busquedaRelatorioFinanceiro.zul | 3 + 10 files changed, 1584 insertions(+), 72 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroAnalitico.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroAnalitico.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroAnalitico.jrxml diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroAnalitico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroAnalitico.java new file mode 100644 index 000000000..5753918b6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroAnalitico.java @@ -0,0 +1,291 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FinanceiroAnalitico; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioFinanceiroAnalitico extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioFinanceiroAnalitico.class); + List listdata = null; + + @SuppressWarnings("unchecked") + public RelatorioFinanceiroAnalitico(final Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + try { + Date inicio = (Date) parametros.get("inicio"); + Date fim = (Date) parametros.get("fim"); + Empresa empresa = (Empresa) parametros.get("empresa"); + TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) parametros.get("tipoPuntoVenta"); + + List estados = (List) parametros.get("estados"); + String ufs = null; + for (Estado estado : estados) { + if (ufs == null) + ufs = estado.getEstadoId().toString(); + else + ufs = ufs + "," + estado.getEstadoId().toString(); + } + + List agencias = (List) parametros.get("agencias"); + String pdvs = null; + for (PuntoVenta pv : agencias) { + if (pdvs == null) + pdvs = pv.getPuntoventaId().toString(); + else + pdvs = pdvs + "," + pv.getPuntoventaId().toString(); + } + + NamedParameterStatement stmt = new NamedParameterStatement(getConexao(), getSql(ufs, pdvs, tipoPuntoVenta == null ? -1 : tipoPuntoVenta.getTipoptovtaId().intValue())); + stmt.setInt("EMPRESA_ID", empresa.getEmpresaId()); + stmt.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); + stmt.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + + listdata = new ArrayList(); + ResultSet rset = stmt.executeQuery(); + while (rset.next()) { + FinanceiroAnalitico fs = new FinanceiroAnalitico(); + fs.setUf(rset.getString("uf")); + fs.setCodigoAgencia(rset.getString("codigo")); + fs.setFechorVenta(rset.getDate("fechorVenta")); + + fs.setReceitaBPR(getBigDecimal(rset, "receita_bpr")); + fs.setGapVenda(getBigDecimal(rset, "receita_gap")); + fs.setGapImpressa(getBigDecimal(rset, "entrega_gap")); + + BigDecimal totalVendaPassagens = fs.getReceitaBPR().add(fs.getGapVenda()); + totalVendaPassagens = totalVendaPassagens.subtract(fs.getGapImpressa()); + fs.setTotalVendaPassagens(totalVendaPassagens); + + fs.setReceitaEb(getBigDecimal(rset, "receita_eb")); + fs.setMultaComp(getBigDecimal(rset, "receita_multa")); + fs.setDifTrocaOCD(getBigDecimal(rset, "receita_dif_troca_ocd")); + fs.setDifTarifaMaior(getBigDecimal(rset, "receita_dif_dif_tarifa_maior")); + + BigDecimal totalOutrasReceitas = fs.getReceitaEb().add(fs.getMultaComp()).add(fs.getDifTrocaOCD()).add(fs.getDifTarifaMaior()); + fs.setTotalOutrasReceitas(totalOutrasReceitas); + + fs.setTxEmb(getBigDecimal(rset, "taxaEmbarque")); + fs.setPedagio(getBigDecimal(rset, "pedagio")); + fs.setSegFacult(getBigDecimal(rset, "seguro")); + + BigDecimal totalTerceiros = fs.getTxEmb().add(fs.getPedagio()).add(fs.getSegFacult()); + fs.setTotalTerceiros(totalTerceiros); + + BigDecimal receitaBruta = totalVendaPassagens.add(totalOutrasReceitas).add(totalTerceiros); + fs.setReceitaBruta(receitaBruta); + + fs.setDevolBPR(getBigDecimal(rset, "receita_devol_bpr")); + fs.setDevolGAP(getBigDecimal(rset, "receita_devol_gap")); + + BigDecimal totalDevolucao = fs.getDevolBPR().add(fs.getDevolGAP()); + BigDecimal receitaLiquida = receitaBruta.subtract(totalDevolucao); + fs.setReceitaLiquida(receitaLiquida); + + fs.setDespesas(getBigDecimal(rset, "despesas")); + fs.setPgOCD(getBigDecimal(rset, "receita_ocd_deb")); + fs.setDifTarifaMenor(getBigDecimal(rset, "receita_dif_dif_tarifa_menor")); + fs.setCartaoCredito(getBigDecimal(rset, "cartao_credito")); + fs.setCartaoDebito(getBigDecimal(rset, "cartao_debito")); + fs.setBoletoBancario(getBigDecimal(rset, "boleto_bnc")); + fs.setDeposito(getBigDecimal(rset, "deposito")); + + BigDecimal totalDetalhamento = fs.getDespesas().add(fs.getPgOCD()).add(fs.getDifTarifaMenor()) + .add(fs.getCartaoCredito()).add(fs.getCartaoDebito()).add(fs.getBoletoBancario()) + .add(fs.getDeposito()); + fs.setTotalDetalhamento(totalDetalhamento); + + BigDecimal saldo = totalDetalhamento.subtract(receitaLiquida); + fs.setSaldo(saldo); + + listdata.add(fs); + } + + if (!getConexao().isClosed()) + getConexao().close(); + + Collections.sort(listdata); + + } catch (SQLException e) { + log.error("", e); + } + } + + }); + + this.setCollectionDataSource(new JRBeanCollectionDataSource(listdata)); + } + + static public BigDecimal getBigDecimal(ResultSet rs, String strColName) throws SQLException { + BigDecimal nValue = rs.getBigDecimal(strColName); + return rs.wasNull() ? BigDecimal.ZERO : nValue; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(String ufs, String pdvs, Integer tipoptovtaId) { + + StringBuilder sql = new StringBuilder(); + sql.append("select * from "); + sql.append(" "); + sql.append("(select "); + sql.append(" cd.estadoOrigem as uf, "); + sql.append(" cd.estadoId, "); + sql.append(" cd.codigo, "); + sql.append(" cd.puntoventaId, "); + sql.append(" cd.empresaId, "); + sql.append(" cd.fechorVenta, "); + sql.append(" sum(case when cd.venda = 1 then cd.taxaEmbarque else 0 end) as taxaEmbarque, "); + sql.append(" sum(case when cd.venda = 1 then cd.pedagio else 0 end) as pedagio, "); + sql.append(" sum(case when cd.venda = 1 then cd.seguro else 0 end) as seguro, "); + sql.append(" sum(case when (cd.venda = 1 and cd.bpr = 1) then cd.tarifa else 0 end) as receita_bpr, "); + sql.append(" sum(case when (cd.venda = 1 and cd.gap = 1) then cd.valorpago else 0 end) as receita_gap, "); + sql.append(" sum(case when (cd.entrega_gap = 1) then cd.valorpago else 0 end) as entrega_gap, "); + sql.append(" sum(case when (cd.indcancelacion = 1 and cd.bpr = 1) then cd.valorpago else 0 end) as receita_devol_bpr, "); + sql.append(" sum(case when (cd.indcancelacion = 1 and cd.gap = 1) then cd.valorpago else 0 end) as receita_devol_gap, "); + sql.append(" sum(case when (cd.venda = 1 and cd.pagamento_credito = 1) then cd.valorpago else 0 end) as cartao_credito, "); + sql.append(" sum(case when (cd.venda = 1 and cd.pagamento_debito = 1) then cd.valorpago else 0 end) as cartao_debito, "); + sql.append(" sum(case when (cd.indcancelacion = 1 and cd.ocd_deb = 1) then cd.valorpago else 0 end) as receita_ocd_deb, "); + sql.append(" sum(case when (cd.ocd_cred = 1) then cd.valorpago else 0 end) as receita_ocd_cred "); + sql.append(" "); + sql.append("from ( "); + sql.append(" select "); + sql.append(" c.caja_id as cajaid, "); + sql.append(" trunc(c.feccreacion) as fechorVenta, "); + sql.append(" e.empresa_id as empresaId, "); + sql.append(" pv.puntoventa_id as puntoventaId, "); + sql.append(" pv.numpuntoventa as codigo, "); + sql.append(" eo.estado_id as estadoId, "); + sql.append(" eo.cveestado as estadoOrigem, "); + sql.append(" c.indstatusboleto, "); + sql.append(" c.indreimpresion, "); + sql.append(" c.indcancelacion, "); + sql.append(" case when c.indstatusboleto = 'V' and c.indcancelacion = 0 and c.indreimpresion = 0 then 1 else 0 end as venda, "); + sql.append(" case when c.tipoventa_id not in (5,12,18,49) then 1 else 0 end as bpr, "); + sql.append(" case when c.tipoventa_id in (5,12,18,49) then 1 else 0 end as gap, "); + sql.append(" case when c.motivocancelacion_id in (35) then 1 else 0 end as ocd_deb, "); + sql.append(" coalesce(cfp.importe, 0) as valorpago, "); + sql.append(" coalesce(c.preciobase, 0) as precobase, "); + 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(" cfp.formapago_id, "); + sql.append(" c.motivocancelacion_id as motivocancelacion_id, "); + sql.append(" c.tipoventa_id as tipoventa_id, "); + sql.append(" case when (c.tipoventa_id in (5,12,18,49) and indstatusboleto = 'E') then 1 else 0 end as entrega_gap, "); + sql.append(" case when c.indreimpresion = 1 and indstatusboleto = 'T' then 1 else 0 end as nao_entra_no_caixa, "); + sql.append(" case when cfp.formapago_id = 1 then 1 else 0 end as pagamento_dinheiro, "); + sql.append(" case when cfp.formapago_id in (3,26) then 1 else 0 end as pagamento_debito, "); + sql.append(" case when cfp.formapago_id in (2,25) then 1 else 0 end as pagamento_credito, "); + sql.append(" case when cfp.formapago_id not in (1,2,3,25,26) then 1 else 0 end as pagamento_outro, "); + sql.append(" case when c.motivocancelacion_id in (99) then 1 else 0 end as ocd_cred "); + sql.append(" from caja c "); + sql.append(" inner join caja_formapago cfp on cfp.caja_id = c.caja_id "); + sql.append(" inner join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); + sql.append(" inner join forma_pago fp on cfp.formapago_id = fp.formapago_id "); + sql.append(" inner join marca m on c.marca_id = m.marca_id "); + sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" inner join parada po on po.parada_id = pv.parada_id "); + sql.append(" inner join ciudad co on co.ciudad_id = po.ciudad_id "); + sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); + sql.append(" where c.feccreacion between :DATE_INICIO and :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(" ) cd "); + sql.append(" where cd.nao_entra_no_caixa = 0 "); + sql.append(" group by cd.estadoOrigem, cd.estadoId, cd.codigo, cd.puntoventaId, cd.empresaId, cd.fechorVenta ) agrc "); + sql.append("left join ( "); + sql.append(" select ed.puntoventaId, ed.estadoId, ed.empresaId, "); + sql.append(" ed.fechorVenta, "); + sql.append(" sum(case when tipoeventoextra_id = 82 and indtipo = 1 then impingreso else 0 end) as receita_eb, "); + sql.append(" sum(case when tipoeventoextra_id in (102,42) and indtipo = 1 then impingreso else 0 end) as receita_multa, "); + sql.append(" sum(case when tipoeventoextra_id in (103,99978,99999) and indtipo = 1 then impingreso else 0 end) as receita_dif_troca_ocd, "); + sql.append(" sum(case when tipoeventoextra_id in (43) and indtipo = 1 then impingreso else 0 end) as receita_dif_dif_tarifa_maior, "); + sql.append(" sum(case when tipoeventoextra_id in (44) and indtipo = 0 then impingreso else 0 end) as receita_dif_dif_tarifa_menor, "); + sql.append(" sum(case when tipoeventoextra_id not in (44) and indtipo = 0 then impingreso else 0 end) as despesas "); + sql.append(" from ( "); + sql.append(" select ee.tipoeventoextra_id, ee.impingreso, tee.indtipo, "); + sql.append(" pv.puntoventa_id as puntoventaId, eo.estado_id as estadoId, ee.empresa_id as empresaId, "); + sql.append(" trunc(ee.fechoringreso) as fechorVenta "); + sql.append(" from evento_extra ee "); + sql.append(" join tipo_evento_extra tee on ee.tipoeventoextra_id = tee.tipoeventoextra_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = ee.puntoventa_id "); + 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(" where ee.activo = 1 and ee.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(" and ee.fechoringreso between :DATE_INICIO and :DATE_FIM "); + sql.append(" ) ed "); + sql.append(" group by ed.puntoventaId, ed.estadoId, ed.empresaId, ed.fechorVenta "); + sql.append(" ) eed on agrc.empresaId = eed.empresaId and agrc.puntoventaId = eed.puntoventaId and agrc.estadoId = eed.estadoId and agrc.fechorVenta = eed.fechorVenta "); + sql.append("left join ( "); + sql.append(" select coalesce(sum(fd.valor), 0) as deposito, pv.puntoventa_id as puntoventaId, fcc.empresa_id as empresaId, eo.estado_id as estadoId, "); + sql.append(" trunc(fd.feccreacion) as fechorVenta "); + sql.append(" from fechamento_cntcorrente fcc "); + sql.append(" join fechamento_cct_deposito fcd on fcd.fechamentocntcorrente_id = fcc.fechamentocntcorrente_id "); + sql.append(" join fechamento_deposito fd on fd.fechamentocntcorrente_id = fcd.fechamentocntcorrente_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = fcc.puntoventa_id "); + 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(" where fcc.activo = 1 and fcc.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(" and fd.feccreacion between :DATE_INICIO and :DATE_FIM "); + sql.append(" group by pv.puntoventa_id, fcc.empresa_id, eo.estado_id, trunc(fd.feccreacion) "); + sql.append(" ) depd on agrc.empresaId = depd.empresaId and agrc.puntoventaId = depd.puntoventaId and agrc.estadoId = depd.estadoId and agrc.fechorVenta = depd.fechorVenta "); + sql.append("left join ( "); + sql.append(" select coalesce(sum(fb.valordocumento), 0) as boleto_bnc , pv.puntoventa_id as puntoventaId, fcc.empresa_id as empresaId, eo.estado_id as estadoId, "); + sql.append(" trunc(fb.fecmodif) as fechorVenta "); + sql.append(" from fechamento_cntcorrente fcc "); + sql.append(" join fechamento_boleto fb on fb.fechamentocntcorrente_id = fcc.fechamentocntcorrente_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = fcc.puntoventa_id "); + 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(" where fcc.activo = 1 and fcc.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(" and fb.fecmodif between :DATE_INICIO and :DATE_FIM "); + sql.append(" group by pv.puntoventa_id, fcc.empresa_id, eo.estado_id, trunc(fb.fecmodif) "); + sql.append(" ) bold on agrc.empresaId = bold.empresaId and agrc.puntoventaId = bold.puntoventaId and agrc.estadoId = bold.estadoId and agrc.fechorVenta = bold.fechorVenta "); + + return sql.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java index 2cb82ab3d..5343a7440 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFinanceiroSintetico.java @@ -26,7 +26,7 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioFinanceiroSintetico extends Relatorio { - private static Logger log = Logger.getLogger(RelatorioFolioRmd.class); + private static Logger log = Logger.getLogger(RelatorioFinanceiroSintetico.class); List listdata = null; @SuppressWarnings("unchecked") @@ -76,7 +76,8 @@ public class RelatorioFinanceiroSintetico extends Relatorio { fs.setGapVenda(getBigDecimal(rset, "receita_gap")); fs.setGapImpressa(getBigDecimal(rset, "entrega_gap")); - BigDecimal totalVendaPassagens = fs.getReceitaBPR().add(fs.getGapVenda()).add(fs.getGapImpressa()); + BigDecimal totalVendaPassagens = fs.getReceitaBPR().add(fs.getGapVenda()); + totalVendaPassagens = totalVendaPassagens.subtract(fs.getGapImpressa()); fs.setTotalVendaPassagens(totalVendaPassagens); fs.setReceitaEb(getBigDecimal(rset, "receita_eb")); @@ -212,7 +213,7 @@ public class RelatorioFinanceiroSintetico extends Relatorio { sql.append(" inner join parada po on po.parada_id = pv.parada_id "); sql.append(" inner join ciudad co on co.ciudad_id = po.ciudad_id "); sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); - sql.append(" where c.fechorventa between :DATE_INICIO and :DATE_FIM "); + sql.append(" where c.feccreacion between :DATE_INICIO and :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 + " ) "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_es.properties new file mode 100644 index 000000000..57daa3700 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_es.properties @@ -0,0 +1,2 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_pt_BR.properties new file mode 100644 index 000000000..57daa3700 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFinanceiroAnalitico_pt_BR.properties @@ -0,0 +1,2 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroAnalitico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroAnalitico.jasper new file mode 100644 index 0000000000000000000000000000000000000000..7ce76f2ce779e1e9798ea18e9def7c7f5b0b0463 GIT binary patch literal 75021 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFinanceiroSintetico.jasper index f0a40aa50965978ad50e56bbab7c0bf356741f74..a99c504f10b4a42725e2456c9ed4533efba3f4ad 100644 GIT binary patch literal 73810 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 - + @@ -152,7 +152,7 @@ - + @@ -173,7 +173,7 @@ - @@ -181,7 +181,7 @@ - @@ -189,7 +189,7 @@ - @@ -205,32 +205,28 @@ - + - + - + - + @@ -245,24 +241,21 @@ - + - + - + @@ -273,7 +266,7 @@ ]]> - + @@ -285,16 +278,14 @@ - + - + @@ -309,56 +300,49 @@ - + - + - + - + - + - + - + @@ -369,7 +353,7 @@ ]]> - + @@ -405,7 +389,7 @@ - + @@ -433,7 +417,103 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -442,6 +522,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -450,26 +566,19 @@ - + - + - - - - - - - @@ -513,7 +622,7 @@ - + @@ -548,7 +657,7 @@ - + @@ -569,7 +678,7 @@ - + @@ -625,23 +734,48 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -706,14 +840,14 @@ - + - + @@ -734,14 +868,14 @@ - + - + @@ -783,14 +917,14 @@ - + - + @@ -818,14 +952,14 @@ - + - + @@ -837,6 +971,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 a1680563a..d98700c4f 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 @@ -25,6 +25,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioFinanceiroAnalitico; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioFinanceiroSintetico; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.EmpresaService; @@ -95,7 +96,7 @@ public class BusquedaRelatorioFinanceiroController extends MyGenericForwardCompo } @SuppressWarnings({ "rawtypes", "unchecked" }) - private void executar() throws InterruptedException { + private void executar(boolean isSintetico, boolean isAnalitico) throws InterruptedException { try { Empresa empresa = cmbEmpresa == null ? null : (cmbEmpresa.getSelectedItem() == null ? null : (Empresa) cmbEmpresa.getSelectedItem().getValue()); @@ -117,7 +118,11 @@ public class BusquedaRelatorioFinanceiroController extends MyGenericForwardCompo parametros.put("fim", datFinal.getValue()); parametros.put("usuario", UsuarioLogado.getUsuarioLogado().getClaveUsuario()); - Relatorio relatorio = new RelatorioFinanceiroSintetico(parametros, dataSourceRead.getConnection()); + Relatorio relatorio = null; + if (isSintetico) + relatorio = new RelatorioFinanceiroSintetico(parametros, dataSourceRead.getConnection()); + else + relatorio = new RelatorioFinanceiroAnalitico(parametros, dataSourceRead.getConnection()); Map args = new HashMap(); args.put("relatorio", relatorio); @@ -178,12 +183,12 @@ public class BusquedaRelatorioFinanceiroController extends MyGenericForwardCompo } public void onClick$btnSintetico(Event ev) throws InterruptedException { - executar(); + executar(true, false); } -// public void onClick$btnAnalitico(Event ev) throws InterruptedException { -// executar(); -// } + public void onClick$btnAnalitico(Event ev) throws InterruptedException { + executar(false, true); + } public List getLsEmpresa() { return lsEmpresa; diff --git a/web/gui/impressaofiscal/busquedaRelatorioFinanceiro.zul b/web/gui/impressaofiscal/busquedaRelatorioFinanceiro.zul index 8d04419d6..5622995ad 100644 --- a/web/gui/impressaofiscal/busquedaRelatorioFinanceiro.zul +++ b/web/gui/impressaofiscal/busquedaRelatorioFinanceiro.zul @@ -116,6 +116,9 @@