From bab961aa995e038e8805ce1aba3b9b82a82c4dc9 Mon Sep 17 00:00:00 2001 From: "igor.rodrigo" Date: Thu, 29 Dec 2016 17:45:02 +0000 Subject: [PATCH] fixes bug #8369 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@64309 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioDescontos.java | 33 +++- .../RelatorioDescontos_es.properties | 5 +- .../RelatorioDescontos_pt_BR.properties | 5 +- .../templates/RelatorioDescontos.jasper | Bin 48584 -> 51862 bytes .../templates/RelatorioDescontos.jrxml | 172 ++++++++++++------ .../RelatorioDescontosController.java | 135 +++++++++++++- .../render/RenderRelatorioDescontos.java | 27 +++ .../RenderRelatorioDescontosEmpresasSel.java | 27 +++ web/WEB-INF/i3-label_es_MX.label | 4 + web/WEB-INF/i3-label_pt_BR.label | 5 + .../relatorios/filtroRelatorioDescontos.zul | 47 ++++- 11 files changed, 390 insertions(+), 70 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontos.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontosEmpresasSel.java diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java index c347c53df..4fc1c1db1 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java @@ -46,8 +46,8 @@ public class RelatorioDescontos extends Relatorio { } if(codconvenio != null && !codconvenio.isEmpty()) { statement.setString("codconvenio", codconvenio); - } - + } + ResultSet resultSet = statement.executeQuery(); preencherDadosRelatorio(resultSet); @@ -70,6 +70,10 @@ public class RelatorioDescontos extends Relatorio { singleData.put("tarifaComDesconto", resultSet.getDouble("tarifaComDesconto")); singleData.put("tut", resultSet.getDouble("tut")); singleData.put("pedagio", resultSet.getDouble("pedagio")); + singleData.put("nomepassageiro", resultSet.getString("nomepassageiro")); + singleData.put("documento", resultSet.getString("documento")); + singleData.put("bilheteiro", resultSet.getString("bilheteiro")); + singleData.put("empresacorrida", resultSet.getString("empresacorrida")); dadosRelatorio.add(singleData); } @@ -82,7 +86,7 @@ public class RelatorioDescontos extends Relatorio { String query = " SELECT " - + " CONV.CVECONVENIO AS codConvenio, " + + " (CONV.CVECONVENIO || ' - ' || CONV.DESCCONVENIO) AS codConvenio, " + " PUNT_V.NOMBPUNTOVENTA AS nomeAgencia, " + " BOL.FECHORVENTA AS dataEmissao, " + " BOL.FECHORVIAJE AS dataViagem, " @@ -91,20 +95,27 @@ public class RelatorioDescontos extends Relatorio { + " DEST.CVEPARADA AS codDestino, " + " BOL.PRECIOPAGADO AS tarifaComDesconto, " + " BOL.IMPORTETAXAEMBARQUE AS tut, " - + " BOL.IMPORTEPEDAGIO AS pedagio " - + + " BOL.IMPORTEPEDAGIO AS pedagio, " + + " BOL.NOMBPASAJERO AS nomepassageiro, " + + " BOL.NUMIDENTIFICACION AS documento," + + " U.CVEUSUARIO AS bilheteiro, " + + " BOL.EMPRESACORRIDA_ID AS empresacorrida" + " FROM BOLETO BOL " + " JOIN CONVENIO_DET CONV_D ON CONV_D.CONVENIODET_ID = BOL.CONVENIODET_ID " + " JOIN CONVENIO CONV ON CONV.CONVENIO_ID = CONV_D.CONVENIO_ID " + " JOIN PUNTO_VENTA PUNT_V ON PUNT_V.PUNTOVENTA_ID = BOL.PUNTOVENTA_ID " + " JOIN PARADA ORIG ON ORIG.PARADA_ID = BOL.ORIGEN_ID " + " JOIN PARADA DEST ON DEST.PARADA_ID = BOL.DESTINO_ID " - + + " INNER JOIN USUARIO U ON U.USUARIO_ID = BOL.USUARIO_ID " + " WHERE " + " BOL.INDSTATUSOPERACION = 'F' " + " AND BOL.ACTIVO = 1 " + " AND BOL.FECHORVENTA BETWEEN :fecVentaInicial AND :fecVentaFinal "; - + + if(!((String)parametros.get("EMPRESAIDS")).equals("")){ + query +=" AND BOL.EMPRESACORRIDA_ID IN ( " + (String)parametros.get("EMPRESAIDS") + ")" ; + } + if(idPuntoVenta != null) { query += " AND (BOL.PUNTOVENTA_ID = :idPuntoVenta) "; } @@ -112,7 +123,13 @@ public class RelatorioDescontos extends Relatorio { query += " AND (CONV.CVECONVENIO = :codconvenio)"; } - query += " ORDER BY CONV.CVECONVENIO "; + query += " GROUP BY (CONV.CVECONVENIO || ' - ' || CONV.DESCCONVENIO), BOL.EMPRESACORRIDA_ID, PUNT_V.NOMBPUNTOVENTA, "; + query += " BOL.FECHORVENTA, BOL.FECHORVIAJE, BOL.CORRIDA_ID, ORIG.CVEPARADA, DEST.CVEPARADA, BOL.PRECIOPAGADO, " ; + query += " BOL.IMPORTETAXAEMBARQUE, BOL.IMPORTEPEDAGIO, BOL.NOMBPASAJERO, BOL.NUMIDENTIFICACION, U.CVEUSUARIO " ; + query += " ORDER BY (CONV.CVECONVENIO || ' - ' || CONV.DESCCONVENIO), BOL.EMPRESACORRIDA_ID, PUNT_V.NOMBPUNTOVENTA, "; + query += " BOL.FECHORVENTA, BOL.FECHORVIAJE, BOL.CORRIDA_ID, ORIG.CVEPARADA, DEST.CVEPARADA, BOL.PRECIOPAGADO, " ; + query += " BOL.IMPORTETAXAEMBARQUE, BOL.IMPORTEPEDAGIO, BOL.NOMBPASAJERO, BOL.NUMIDENTIFICACION, U.CVEUSUARIO " ; + return query; } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties index 3622b3b8b..5f96a8b62 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties @@ -19,4 +19,7 @@ label.pedagio = Ped label.totalPorConvenio = Total deste Convênio label.totalGeral = Total Geral label.total = Total -msg.noData = Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file +msg.noData = Não foi possivel obter dados com os parâmetros informados. +label.bilheteiro = Bilheteiro +label.nomepassageiro = Passageiro +label.documentopassageiro = Doc. P. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties index 3622b3b8b..5f96a8b62 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties @@ -19,4 +19,7 @@ label.pedagio = Ped label.totalPorConvenio = Total deste Convênio label.totalGeral = Total Geral label.total = Total -msg.noData = Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file +msg.noData = Não foi possivel obter dados com os parâmetros informados. +label.bilheteiro = Bilheteiro +label.nomepassageiro = Passageiro +label.documentopassageiro = Doc. P. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jasper index 6fc73e8cd544508cde01f89edaaccb4fc20027c8..20eacc3c5fc84794d1ef666492ffb2d5d198b06d 100644 GIT binary patch literal 51862 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 XE5RnEd%?DIEo~M|m21`2viSc2A)p6a literal 48584 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 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml index 0e4d3797e..752804e8e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml @@ -1,7 +1,7 @@ - + @@ -19,6 +19,10 @@ + + + + @@ -44,7 +48,8 @@ - + @@ -72,140 +77,170 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -216,9 +251,9 @@ - + - + @@ -356,77 +391,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + @@ -438,7 +494,7 @@ - + @@ -451,28 +507,28 @@ - + - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java index 84df10d81..644459b3f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java @@ -1,6 +1,9 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.sql.DataSource; @@ -10,16 +13,24 @@ 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.zul.Datebox; +import org.zkoss.zul.Paging; import org.zkoss.zul.Textbox; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDescontos; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; 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.RenderRelatorioDescontos; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioDescontosEmpresasSel; @Controller("relatorioDescontosController") @Scope("prototype") @@ -29,10 +40,25 @@ public class RelatorioDescontosController extends MyGenericForwardComposer { @Autowired private DataSource dataSourceRead; + @Autowired + private transient PagedListWrapper plwEmpresa; + private MyComboboxPuntoVenta cmbAgencia; private Datebox fecVentaInicial; private Datebox fecVentaFinal; private Textbox txtCodConvenio; + private Textbox txtNombreEmpresa; + private Paging pagingEmpresa; + private Paging pagingEmpresaSel; + private MyListbox empresaList; + private MyListbox empresaSelList; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + empresaList.setItemRenderer(new RenderRelatorioDescontos()); + empresaSelList.setItemRenderer(new RenderRelatorioDescontosEmpresasSel()); + } public void onClick$btnExecutarRelatorio(Event ev) throws Exception { validarAntesImpressao(); @@ -74,6 +100,17 @@ public class RelatorioDescontosController extends MyGenericForwardComposer { parametros.put("puntoVenta", puntoVenta.getPuntoventaId() + " - " + puntoVenta.getNombpuntoventa()); } + StringBuilder empresaIds = new StringBuilder(); + List lsEmpresasSelecionadas = new ArrayList(Arrays.asList(empresaSelList.getData())); + for (int i = 0; i < lsEmpresasSelecionadas.size(); i++) { + Empresa empresa = lsEmpresasSelecionadas.get(i); + if(empresaIds.length() > 0) { + empresaIds.append(","); + } + empresaIds.append(empresa.getEmpresaId()); + } + parametros.put("EMPRESAIDS", empresaIds.toString()); + Relatorio relatorio = new RelatorioDescontos(parametros, dataSourceRead.getConnection()); Map args = new HashMap(); args.put("relatorio", relatorio); @@ -82,6 +119,47 @@ public class RelatorioDescontosController extends MyGenericForwardComposer { } + private void executarPesquisa() { + HibernateSearchObject empresaBusqueda = + new HibernateSearchObject(Empresa.class, pagingEmpresa.getPageSize()); + + empresaBusqueda.addFilterILike("nombempresa", "%" + txtNombreEmpresa.getValue() + "%"); + empresaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + empresaBusqueda.addSortAsc("nombempresa"); + + plwEmpresa.init(empresaBusqueda, empresaList, pagingEmpresa); + + if (empresaList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioDescontosController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + } + + public void onClick$btnPesquisa(Event ev) { + executarPesquisa(); + } + + public void onClick$btnLimpar(Event ev) { + empresaList.setData(new ArrayList()); + txtNombreEmpresa.setText(""); + } + + public void onDoubleClick$empresaList(Event ev) { + Empresa empresa = (Empresa) empresaList.getSelected(); + empresaSelList.addItemNovo(empresa); + } + + public void onDoubleClick$empresaSelList(Event ev) { + Empresa empresa = (Empresa) empresaSelList.getSelected(); + empresaSelList.removeItem(empresa); + } + public MyComboboxPuntoVenta getCmbAgencia() { return cmbAgencia; } @@ -106,5 +184,60 @@ public class RelatorioDescontosController extends MyGenericForwardComposer { } public void setTxtCodConvenio(Textbox txtCodConvenio) { this.txtCodConvenio = txtCodConvenio; - } + } + public Textbox getTxtNombreEmpresa() { + return txtNombreEmpresa; + } + public void setTxtNombreEmpresa(Textbox txtNombreEmpresa) { + this.txtNombreEmpresa = txtNombreEmpresa; + } + + public PagedListWrapper getPlwEmpresa() { + return plwEmpresa; + } + + public void setPlwEmpresa(PagedListWrapper plwEmpresa) { + this.plwEmpresa = plwEmpresa; + } + + public Paging getPagingEmpresa() { + return pagingEmpresa; + } + + public void setPagingEmpresa(Paging pagingEmpresa) { + this.pagingEmpresa = pagingEmpresa; + } + + public MyListbox getPuntoVentaList() { + return empresaList; + } + + public void setPuntoVentaList(MyListbox puntoVentaList) { + this.empresaList = puntoVentaList; + } + + public MyListbox getEmpresaSelList() { + return empresaSelList; + } + + public void setEmpresaSelList(MyListbox empresaSelList) { + this.empresaSelList = empresaSelList; + } + + public Paging getPagingEmpresaSel() { + return pagingEmpresaSel; + } + + public void setPagingEmpresaSel(Paging pagingEmpresaSel) { + this.pagingEmpresaSel = pagingEmpresaSel; + } + + public MyListbox getEmpresaList() { + return empresaList; + } + + public void setEmpresaList(MyListbox empresaList) { + this.empresaList = empresaList; + } + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontos.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontos.java new file mode 100644 index 000000000..9716df81c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontos.java @@ -0,0 +1,27 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Empresa; + +public class RenderRelatorioDescontos implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + Empresa empresa = (Empresa) o; + + Listcell lc = new Listcell(empresa.getEmpresaId().toString()); + lc.setParent(lstm); + + lc = new Listcell(empresa.getNombempresa()); + lc.setParent(lstm); + + lstm.setAttribute("data", empresa); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontosEmpresasSel.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontosEmpresasSel.java new file mode 100644 index 000000000..5cc3b34ec --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioDescontosEmpresasSel.java @@ -0,0 +1,27 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Empresa; + +public class RenderRelatorioDescontosEmpresasSel implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + Empresa empresa = (Empresa) o; + + Listcell lc = new Listcell(empresa.getEmpresaId().toString()); + lc.setParent(lstm); + + lc = new Listcell(empresa.getNombempresa()); + lc.setParent(lstm); + + lstm.setAttribute("data", empresa); + } + +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index e5fd38fec..3ab75ec9b 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -6173,6 +6173,10 @@ relatorioDescontosController.lbPeriodoVendaInicial.value = Fecha Venta Inicial relatorioDescontosController.lbPeriodoVendaFinal.value = Fecha Venta Final relatorioDescontosController.info.fecVentaInicial = Informe la Fecha de Venta Inicial relatorioDescontosController.info.fecVentaFinal = Informe la Fecha de Venta Final +relatorioDescontosController.lbEmpresa.value = Empresa +relatorioDescontosController.btnPesquisa.label = Buscar +relatorioDescontosController.btnLimpar.label = Limpar +relatorioDescontosController.lbIdEmpresa.value = Id # Filtro Relatorio de Agências Não Importadas filtroRelatorioAgenciasNaoImportadas.lbDataIni.value = Fecha Inicio diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index b921c0d18..81805b10c 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -6289,6 +6289,11 @@ relatorioDescontosController.lbPeriodoVendaFinal.value = Data Venda Final relatorioDescontosController.info.fecVentaInicial = Informe a Data Venda Inicial relatorioDescontosController.info.fecVentaFinal = Informe a Data Venda Final +relatorioDescontosController.lbEmpresa.value = Empresa +relatorioDescontosController.btnPesquisa.label = Buscar +relatorioDescontosController.btnLimpar.label = Limpar +relatorioDescontosController.lbIdEmpresa.value = Id + indexController.mniRelatorioAgenciaFechamento.label= Resumo Venda por Agencia integracion.totvs=ERRO ao fazer integração com a TOTVS diff --git a/web/gui/relatorios/filtroRelatorioDescontos.zul b/web/gui/relatorios/filtroRelatorioDescontos.zul index 1e53f889c..66d8a5fef 100644 --- a/web/gui/relatorios/filtroRelatorioDescontos.zul +++ b/web/gui/relatorios/filtroRelatorioDescontos.zul @@ -5,7 +5,7 @@ - + @@ -29,6 +29,51 @@ + +