From b7c1c92d2e42f8ab43b77b28a365794672bd3eef Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 27 Feb 2019 19:39:21 +0000 Subject: [PATCH] fixes bug#13439 dev:Valdevir qua:Juliana git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@90334 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioDepositos.java | 57 ++-- .../RelatorioDepositos_es .properties | 3 +- .../RelatorioDepositos_pt_BR.properties | 3 +- .../templates/RelatorioDepositos.jasper | Bin 38242 -> 41411 bytes .../templates/RelatorioDepositos.jrxml | 293 ++++++++++++------ .../templates/RelatorioDepositos.pdf | 51 +++ .../utilitarios/RelatorioDepositoBean.java | 18 ++ .../RelatorioDepositosController.java | 48 +-- 8 files changed, 330 insertions(+), 143 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.pdf diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDepositos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDepositos.java index cc014398d..44bea9b9c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDepositos.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDepositos.java @@ -9,14 +9,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; - import org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioDepositoBean; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + public class RelatorioDepositos extends Relatorio { private static Logger log = Logger.getLogger(RelatorioDepositos.class); @@ -38,6 +38,7 @@ public class RelatorioDepositos extends Relatorio { Integer puntoventaId = parametros.get("puntoventaId") != null ? Integer.parseInt(parametros.get("puntoventaId").toString()) : null; Integer empresaId = parametros.get("empresaId") != null ? Integer.parseInt(parametros.get("empresaId").toString()) : null; Boolean filtrarPendentes = parametros.get("filtrarPendentes") != null ? Boolean.parseBoolean(parametros.get("filtrarPendentes").toString()) : false; + Boolean isClassificaPorBanco = parametros.get("isClassificaPorBanco") != null ? Boolean.parseBoolean(parametros.get("isClassificaPorBanco").toString()) : false; String fecInicio = parametros.get("fecInicio").toString() + " 00:00:00"; String fecFinal = parametros.get("fecFinal").toString() + " 23:59:59"; @@ -66,6 +67,11 @@ public class RelatorioDepositos extends Relatorio { deposito.setVrdeposito(rs.getBigDecimal(6)); deposito.setVrfechamento(rs.getBigDecimal(7)); deposito.setNumdeposito(rs.getString(8)); + // Se checkbox no estiver marcado no preenche este campo e relatrio no ir agrupar por nome banco + if (isClassificaPorBanco) { + deposito.setCodigoInstFinanceira(rs.getString(9)); + deposito.setNomeInstFinanceira(rs.getString(10)); + } lsDadosRelatorio.add(deposito); } @@ -100,15 +106,9 @@ public class RelatorioDepositos extends Relatorio { sql.append(" tmp.saldo, "); sql.append(" tmp.vrfechamento, "); sql.append(" tmp.vrdeposito, "); - sql.append(" COALESCE( "); - sql.append(" (SELECT UNIQUE LISTAGG( fdep.NUMDEPOSITO, '/') WITHIN GROUP ( "); - sql.append(" ORDER BY fdep.NUMDEPOSITO) as NUMDEPOSITO "); - sql.append(" FROM fechamento_cntcorrente fcnt "); - sql.append(" LEFT JOIN Fechamento_deposito fdep "); - sql.append(" ON fcnt.FECHAMENTOCNTCORRENTE_ID = fdep.FECHAMENTOCNTCORRENTE_ID "); - sql.append(" WHERE fcnt.FECHAMENTOCNTCORRENTE_ID = tmp.FECHAMENTOCNTCORRENTE_ID "); - sql.append(" GROUP BY fcnt.FECHAMENTOCNTCORRENTE_ID "); - sql.append(" ), ' ') AS numdeposito "); + sql.append(" tmp.numdeposito, "); + sql.append(" tmp.codinstfin, "); + sql.append(" tmp.nomeinstfin "); sql.append(" FROM "); sql.append(" ( SELECT DISTINCT e.nombempresa, "); sql.append(" p.nombpuntoventa, "); @@ -117,16 +117,30 @@ public class RelatorioDepositos extends Relatorio { sql.append(" ( SUM(NVL(fd.valor_pago,0)) - f.total ) AS saldo, "); sql.append(" SUM(NVL(fd.valor_pago,0)) AS vrfechamento , "); sql.append(" f.total AS vrdeposito, "); - sql.append(" fd.FECHAMENTOCNTCORRENTE_ID "); + sql.append(" f.FECHAMENTOCNTCORRENTE_ID, "); + sql.append(" fdp.NUMDEPOSITO as numdeposito, "); + sql.append(" ifin.CODIGO as codinstfin, "); + sql.append(" ifin.NOME as nomeinstfin "); sql.append(" FROM fechamento_cntcorrente f "); - sql.append(" INNER JOIN punto_venta p "); + // Join com PuntoVenta + sql.append(" LEFT JOIN punto_venta p "); sql.append(" ON p.puntoventa_id = f.puntoventa_id "); - sql.append(" INNER JOIN empresa e "); + // Join com empresa + sql.append(" LEFT JOIN empresa e "); sql.append(" ON e.empresa_id = f.empresa_id "); + // Join com fechamento_cct_deposito sql.append(" LEFT JOIN fechamento_cct_deposito fd "); sql.append(" ON fd.fechamentocntcorrente_id = f.fechamentocntcorrente_id "); - sql.append(" AND fd.activo = 1 "); - sql.append(" WHERE f.fecfechamento BETWEEN ? AND ?"); + // Join com FECHAMENTO_DEPOSITO + sql.append(" LEFT JOIN FECHAMENTO_DEPOSITO fdp "); + sql.append(" ON fdp.FECHAMENTODEPOSITO_ID = fd.FECHAMENTODEPOSITO_ID "); + // Join com empresa_contabancaria + sql.append(" LEFT JOIN empresa_contabancaria ecb "); + sql.append(" ON ecb.EMPRESACONTABANCARIA_ID = fdp.EMPRESACONTABANCARIA_ID "); + // Join com INSTI_FINANCEIRA + sql.append(" LEFT JOIN INSTI_FINANCEIRA ifin "); + sql.append(" ON ifin.INSTIFINANCEIRA_ID = ecb.INSTIFINANCEIRA_ID "); + sql.append(" WHERE f.fecfechamento BETWEEN ? AND ? "); sql.append(" AND f.activo = 1 "); if (puntoVentaId != null){ @@ -135,23 +149,24 @@ public class RelatorioDepositos extends Relatorio { if (empresaId != null){ sql.append(" and e.empresa_id = " + empresaId); } - sql.append(" GROUP BY e.nombempresa, "); sql.append(" p.nombpuntoventa, "); sql.append(" p.numpuntoventa, "); sql.append(" f.fecfechamento, "); - sql.append(" fd.FECHAMENTOCNTCORRENTE_ID, "); - sql.append(" f.total ) tmp "); + sql.append(" f.FECHAMENTOCNTCORRENTE_ID, "); + sql.append(" f.total, "); + sql.append(" fdp.NUMDEPOSITO, "); + sql.append(" ifin.CODIGO, "); + sql.append(" ifin.NOME ) tmp "); if (filtrarPendentes){ sql.append(" where "); sql.append(" tmp.saldo < tmp.vrdeposito and tmp.saldo <> 0"); } - sql.append(" ORDER BY tmp.nombempresa, "); + sql.append(" tmp.nomeinstfin, "); sql.append(" tmp.nombpuntoventa, "); sql.append(" tmp.dtmotivo, "); sql.append(" tmp.vrdeposito "); - return sql.toString(); } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_es .properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_es .properties index 13bb7fa2f..d78f844db 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_es .properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_es .properties @@ -9,7 +9,8 @@ header.banco=Banco header.numdeposito=N Depsito header.dataDeposito=Data header.valorDeposito=Valor - +header.empresa=Empresa: +header.data=Perodo: header.agencia=Agncia header.dtmotivo=Data Fechamento header.saldo=Pendente diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_pt_BR.properties index 410d3bb32..aba860115 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDepositos_pt_BR.properties @@ -9,7 +9,8 @@ header.banco=Banco header.numdeposito=N Depsito header.dataDeposito=Data header.valorDeposito=Valor - +header.empresa=Empresa: +header.data=Perodo: header.agencia=Agncia header.dtmotivo=Data Fechamento header.saldo=Pendente diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.jasper index 7dec872fe29f078af56569c753a82255e0e76de8..3f6a0bd47944d8dd4fcd4a88cea2d26cde81b37c 100644 GIT binary patch literal 41411 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

iMU+x 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 - - - + + + @@ -19,6 +19,8 @@ + + @@ -28,15 +30,50 @@ + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + @@ -44,7 +81,13 @@ - + + + + + + + @@ -52,40 +95,27 @@ - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -93,57 +123,101 @@ - + + + + + + + - - - - + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - + + @@ -151,20 +225,23 @@ + - + + - + + @@ -172,13 +249,15 @@ + - + + @@ -186,6 +265,7 @@ + @@ -193,12 +273,15 @@ - - - - + - + + + + + + + @@ -206,7 +289,13 @@ - + + + + + + + @@ -214,7 +303,13 @@ - + + + + + + + @@ -222,7 +317,13 @@ - + + + + + + + @@ -230,7 +331,13 @@ - + + + + + + + @@ -238,33 +345,27 @@ - - + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -276,42 +377,42 @@

- - + + - + - - + + - + - - + + - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.pdf b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.pdf new file mode 100644 index 000000000..c7ffbfe52 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDepositos.pdf @@ -0,0 +1,51 @@ +%PDF-1.4 +% +3 0 obj +<>stream +xn0y9Y86GEꉟ@x; +뱼ڭoU7/Fn^ͻFWῦVK ų>^~_@Fgdk [(B )3wȮn:J&ݏ~RaIPg2tWB@½NӌC_;(Z oWP;xs?6jV}ܿmҭM!)M;fO!! ),T0}"H ʛg!e| +G!`t#Gsʛg!e GBGѴty,,֑\XaQh>̑8r*Q*o;rExQQ:JͳXG>paEɝ-@Őͼ"oE9=9=hCjB_d aaUPa$.?S+_8BY3!âJgG+ 1:Ӫ +(~xV0xaFсUW@dK%ų#'U̮0Ɍ)~m=4DVk0sRzN? G*Q9pW_3J"ëQu9|ގþFaI`-t/[_=*+.NA +endstream +endobj +1 0 obj +<>/Parent 4 0 R/Contents 3 0 R/Type/Page/Resources<>/Font<>>>/MediaBox[0 0 595 842]>> +endobj +5 0 obj +[1 0 R/XYZ 0 852 0] +endobj +2 0 obj +<> +endobj +4 0 obj +<> +endobj +6 0 obj +<> +endobj +7 0 obj +<> +endobj +8 0 obj +<>/Pages 4 0 R>> +endobj +9 0 obj +<> +endobj +xref +0 10 +0000000000 65535 f +0000000763 00000 n +0000001032 00000 n +0000000015 00000 n +0000001120 00000 n +0000000997 00000 n +0000001183 00000 n +0000001237 00000 n +0000001269 00000 n +0000001372 00000 n +trailer +<<636b874ee70d10c4927e6e7bb9b3d064>]/Info 9 0 R/Size 10>> +startxref +1539 +%%EOF diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDepositoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDepositoBean.java index b186e40e5..38bdc3b3c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDepositoBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDepositoBean.java @@ -12,6 +12,24 @@ public class RelatorioDepositoBean { private Date dtmotivo; private String numdeposito; private String numpuntoventa; + private String codigoInstFinanceira; + private String nomeInstFinanceira; + + public String getCodigoInstFinanceira() { + return codigoInstFinanceira; + } + + public void setCodigoInstFinanceira(String codigoInstFinanceira) { + this.codigoInstFinanceira = codigoInstFinanceira; + } + + public String getNomeInstFinanceira() { + return nomeInstFinanceira; + } + + public void setNomeInstFinanceira(String nomeInstFinanceira) { + this.nomeInstFinanceira = nomeInstFinanceira; + } public String getNombpuntoventa() { return nombpuntoventa; diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/contacorrente/RelatorioDepositosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/contacorrente/RelatorioDepositosController.java index 67231454f..15c9bc104 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/contacorrente/RelatorioDepositosController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/contacorrente/RelatorioDepositosController.java @@ -2,7 +2,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.contacorrente; import java.text.SimpleDateFormat; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.sql.DataSource; @@ -12,35 +11,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.zkoss.util.resource.Labels; -import org.zkoss.zhtml.Messagebox; -import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; -import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Checkbox; import org.zkoss.zul.Combobox; -import org.zkoss.zul.Paging; -import org.zkoss.zul.Textbox; import org.zkoss.zul.api.Datebox; -import com.rjconsultores.ventaboletos.entidad.Cortesia; import com.rjconsultores.ventaboletos.entidad.Empresa; -import com.rjconsultores.ventaboletos.entidad.MotivoViaje; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.entidad.TipoCortesia; -import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioAgenciasNaoImportadas; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDepositos; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.service.MotivoViajeService; -import com.rjconsultores.ventaboletos.service.PuntoVentaService; -import com.rjconsultores.ventaboletos.service.TipoCortesiaService; -import com.rjconsultores.ventaboletos.service.impl.CortesiaServiceImpl; -import com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.RelatorioAgenciasNaoImportadasController; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; -import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; -import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; -import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; -import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCortesia; -import com.trg.search.Filter; @Controller("relatorioDepositosController") @Scope("prototype") @@ -49,8 +29,6 @@ public class RelatorioDepositosController extends MyGenericForwardComposer { private static final long serialVersionUID = 1L; private static Logger log = Logger.getLogger(RelatorioDepositosController.class); - @Autowired - private PuntoVentaService puntoVentaService; @Autowired private DataSource dataSourceRead; @@ -59,7 +37,8 @@ public class RelatorioDepositosController extends MyGenericForwardComposer { private Combobox cmbPuntoventa; private Combobox cmbEmpresa; private Checkbox chkFiltrarPendentes; - + private Checkbox chkClassificarBanco; + private void executarRelatorio() throws Exception { Map parametros = new HashMap(); @@ -77,6 +56,10 @@ public class RelatorioDepositosController extends MyGenericForwardComposer { parametros.put("filtrarPendentes", true); } + if (chkClassificarBanco.isChecked()) { + parametros.put("isClassificaPorBanco", true); + } + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); parametros.put("fecInicio", sdf.format(this.datInicial.getValue())); parametros.put("fecFinal", sdf.format(this.datFinal.getValue())); @@ -89,11 +72,28 @@ public class RelatorioDepositosController extends MyGenericForwardComposer { args.put("relatorio", relatorio); openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mniRelatorioDepositos.label"), args, MODAL); + Labels.getLabel("indexController.mniRelatorioDepositos.label"), args, MyGenericForwardComposer.MODAL); } + public void onClick$chkFiltrarPendentes() { + if (chkFiltrarPendentes.isChecked()) { + chkClassificarBanco.setDisabled(false); + } else { + chkClassificarBanco.setChecked(false); + chkClassificarBanco.setDisabled(true); + } + } + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { executarRelatorio(); } + + public Checkbox getChkClassificarBanco() { + return chkClassificarBanco; + } + + public void setChkClassificarBanco(Checkbox chkClassificarBanco) { + this.chkClassificarBanco = chkClassificarBanco; + } }