From 4f769991e95d3fe420c50c797d9bbe4f587a0ae6 Mon Sep 17 00:00:00 2001 From: walace Date: Wed, 25 Oct 2017 12:06:01 +0000 Subject: [PATCH] fixes bug #9856 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@75648 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioAidfDetalhado.java | 94 ---------- .../relatorios/impl/RelatorioEstoque.java | 82 ++++++++ ...ties => RelatorioEstoque_es_BR.properties} | 0 ...ties => RelatorioEstoque_pt_BR.properties} | 0 .../templates/RelatorioAidfDetalhado.jasper | Bin 31734 -> 0 bytes .../templates/RelatorioEstoque.jasper | Bin 0 -> 33050 bytes ...Detalhado.jrxml => RelatorioEstoque.jrxml} | 177 ++++++++++-------- .../RelatorioAidfDetalhadoController.java | 53 +----- web/WEB-INF/i3-label_es_MX.label | 2 +- web/WEB-INF/i3-label_pt_BR.label | 4 +- .../filtroRelatorioAidfDetalhado.zul | 22 +-- 11 files changed, 197 insertions(+), 237 deletions(-) delete mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAidfDetalhado.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java rename src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/{RelatorioAidfDetalhado_es_BR.properties => RelatorioEstoque_es_BR.properties} (100%) rename src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/{RelatorioAidfDetalhado_pt_BR.properties => RelatorioEstoque_pt_BR.properties} (100%) delete mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jasper rename src/java/com/rjconsultores/ventaboletos/relatorios/templates/{RelatorioAidfDetalhado.jrxml => RelatorioEstoque.jrxml} (61%) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAidfDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAidfDetalhado.java deleted file mode 100644 index 7d96e8e05..000000000 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAidfDetalhado.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.rjconsultores.ventaboletos.relatorios.impl; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.util.HashMap; -import java.util.Map; - -import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; - -public class RelatorioAidfDetalhado extends Relatorio { - - public RelatorioAidfDetalhado(Map parametros, Connection conexao) throws Exception - { - super(parametros, conexao); - - this.setCustomDataSource(new ArrayDataSource(this) { - - public void initDados() throws Exception { - Connection conexao = this.relatorio.getConexao(); - Map parametros = this.relatorio.getParametros(); - String sql = getSql(); - - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); - - ResultSet rset = stmt.executeQuery(); - - while (rset.next()) { - Map dataResult = new HashMap(); - dataResult.put("aidf", rset.getString("aidf")); - dataResult.put("empresa", rset.getString("nombempresa")); - dataResult.put("estacao", rset.getString("estacao")); - dataResult.put("agencia", rset.getString("nombpuntoventa")); - dataResult.put("serie", rset.getString("serie")); - dataResult.put("subserie", rset.getString("subserie")); - dataResult.put("numeracao", rset.getString("numeracao")); - dataResult.put("folios", rset.getString("folios")); - dataResult.put("forminicio", rset.getString("forminicial")); - dataResult.put("formfinal", rset.getString("formfinal")); - this.dados.add(dataResult); - } - - this.resultSet = rset; - } - }); - } - - @Override - protected void processaParametros() throws Exception { - } - - private String getSql() { - StringBuilder sql = new StringBuilder(); - sql.append(" select a.aidf_id as aidf, e.nombempresa, p.nombpuntoventa, a.serie, ab.estacion_id as estacao, a.subserie, a.forminicial, a.formfinal,"); - sql.append(" concat(a.forminicial, concat('-',a.formfinal)) as numeracao,"); - sql.append(" concat(fp.foliopreimpreso,concat('-',dab.numfoliofinal)) as folios "); - sql.append(" from aidf a "); - sql.append(" inner join empresa e on e.empresa_id = a.empresa_id "); - sql.append(" inner join abasto_boleto ab on a.empresa_id = ab.empresa_id and ab.ACTIVO = 1 "); - sql.append(" inner join det_abasto_boleto dab on dab.abastoboleto_id = ab.abastoboleto_id and dab.ACTIVO = 1 "); - sql.append(" inner join punto_venta p on p.puntoventa_id = ab.puntoventa_id and p.ACTIVO = 1"); - sql.append(" inner join folio_preimpreso fp on (a.serie=fp.numeserie or concat(a.aidf_id, concat(a.serie,a.subserie))=fp.numeserie OR concat(a.serie,concat('-',a.subserie))=fp.numeserie) and fp.ACTIVO = 1"); - sql.append(" where "); - sql.append(" a.ACTIVO = 1"); - if(parametros.get("EMPRESA_ID") != null){ - sql.append(" and a.empresa_id = ").append(parametros.get("EMPRESA_ID")); - } - if(parametros.get("SERIE") != null){ - sql.append(" and (a.serie ='").append(parametros.get("SERIE")).append("'"); - sql.append(" or concat(a.aidf_id, concat(a.SERIE,a.SUBSERIE))='").append(parametros.get("SERIE")).append("')"); - } - if(parametros.get("AIDF") != null){ - sql.append(" and a.aidf_id like'%").append(parametros.get("AIDF")).append("%'"); - } - if(parametros.get("INICIOFORM") != null){ - sql.append(" and a.forminicial >= ").append(parametros.get("INICIOFORM")); - } - if(parametros.get("FIMFORM") != null){ - sql.append(" and a.formfinal <= ").append(parametros.get("FIMFORM")); - } - if(parametros.get("NUMPUNTOVENTA") != null){ - sql.append(" and ab.puntoventa_id in(").append(parametros.get("NUMPUNTOVENTA")).append(") "); - } - sql.append(" group by a.aidf_id, e.nombempresa, p.nombpuntoventa, a.serie, ab.estacion_id , a.subserie,concat(a.forminicial, concat('-',a.formfinal)), a.forminicial, a.formfinal, "); - sql.append(" concat(fp.foliopreimpreso,concat('-',dab.numfoliofinal)) "); - sql.append(" order by a.aidf_id"); - - return sql.toString(); - - - } - -} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java new file mode 100644 index 000000000..4c3b5b803 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -0,0 +1,82 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioEstoque extends Relatorio { + + public RelatorioEstoque(Map parametros, Connection conexao) throws Exception + { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + String sql = getSql(); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + dataResult.put("aidf", rset.getString("aidf")); + dataResult.put("empresa", rset.getString("nombempresa")); + dataResult.put("estacao", rset.getString("estacao")); + dataResult.put("agencia", rset.getString("nombpuntoventa")); + dataResult.put("serie", rset.getString("serie")); + dataResult.put("forminicio", rset.getString("forminicial")); + dataResult.put("formfinal", rset.getString("formfinal")); + dataResult.put("estado", rset.getString("nombestado")); + dataResult.put("descestacion", rset.getString("estacao")); + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql() { + StringBuilder sql = new StringBuilder(); + sql.append(" select dab.aidf_id as aidf, e.nombempresa, p.nombpuntoventa, dab.NUMSERIEPREIMPRESA as serie, es.descestacion as estacao, "); + sql.append(" case when dab.STATUSOPERACION = 0 then dab.NUMFOLIOINICIAL else coalesce(fp.FOLIOPREIMPRESO,dab.NUMFOLIOINICIAL) end as forminicial, dab.NUMFOLIOFINAL as formfinal, "); + sql.append(" est.nombestado, ar.descarticulo "); + sql.append(" from abasto_boleto ab "); + sql.append(" inner join empresa e on e.empresa_id = ab.empresa_id and ab.ACTIVO = 1 "); + sql.append(" inner join det_abasto_boleto dab on dab.abastoboleto_id = ab.abastoboleto_id and dab.ACTIVO = 1 "); + sql.append(" inner join punto_venta p on p.puntoventa_id = ab.puntoventa_id and p.ACTIVO = 1 "); + sql.append(" inner join estacion es on es.ESTACION_ID = ab.ESTACION_ID "); + sql.append(" inner join ARTICULO ar on ar.ARTICULO_ID = ab.ARTICULO_ID "); + sql.append(" left join FOLIO_PREIMPRESO fp on fp.AIDF_ID = dab.AIDF_ID and fp.EMPRESA_ID = e.EMPRESA_ID and fp.ESTACION_ID = ab.ESTACION_ID and fp.activo = 1 "); + sql.append(" inner join aidf ai on ai.aidf_id =dab.aidf_id "); + sql.append(" inner join estado est on est.estado_id = ai.ESTADO_ID "); + + sql.append(" where "); + sql.append(" dab.statusoperacion in (0,1) and dab.activo = 1 and ab.activo = 1 "); + if(parametros.get("EMPRESA_ID") != null){ + sql.append(" and e.empresa_id = ").append(parametros.get("EMPRESA_ID")); + } + if(parametros.get("NUMPUNTOVENTA") != null){ + sql.append(" and ab.puntoventa_id in(").append(parametros.get("NUMPUNTOVENTA")).append(") "); + } + sql.append(" order by e.nombempresa, p.nombpuntoventa,es.descestacion, ar.descarticulo, forminicial"); + + return sql.toString(); + + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAidfDetalhado_es_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioEstoque_es_BR.properties similarity index 100% rename from src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAidfDetalhado_es_BR.properties rename to src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioEstoque_es_BR.properties diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAidfDetalhado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioEstoque_pt_BR.properties similarity index 100% rename from src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAidfDetalhado_pt_BR.properties rename to src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioEstoque_pt_BR.properties diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jasper deleted file mode 100644 index f27baf436238f658a0aea72d2f77d1f6328a4e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31734 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 SRKecnUyd_*J!&&P`~LtS-k!Ap literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml similarity index 61% rename from src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jrxml rename to src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml index fe50c85f7..9af226f8d 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAidfDetalhado.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml @@ -1,7 +1,7 @@ - - - + + + @@ -23,13 +23,15 @@ + + - + @@ -37,14 +39,14 @@ - + - + @@ -55,7 +57,7 @@ - + @@ -63,7 +65,7 @@ - + @@ -71,9 +73,9 @@ - + - + @@ -82,9 +84,9 @@ - + - + @@ -93,120 +95,141 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + - + + + + + + + + + + + + + + + - + - + - - - - - - - - + - + - - - - - - + - - - - - - - + + + + + + + + + + + @@ -215,7 +238,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAidfDetalhadoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAidfDetalhadoController.java index 517e0edad..ae6e0bee3 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAidfDetalhadoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAidfDetalhadoController.java @@ -23,7 +23,7 @@ import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioAidfDetalhado; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioEstoque; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -91,22 +91,10 @@ public class RelatorioAidfDetalhadoController extends MyGenericForwardComposer { String puntoVentaIds = ""; String puntoVentas = ""; List lsPuntoVentaSelecionados = new ArrayList(Arrays.asList(puntoVentaSelList.getData())); - if (lsPuntoVentaSelecionados.isEmpty()) { - if (puntoVentaList.getData().length == 0) { - try { - Messagebox.show(Labels.getLabel("relatorioAidfDetalhadoController.msg.agencia.obrigatorio"), - Labels.getLabel("relatorioVendasBilheteiroController.window.title"), - Messagebox.OK, Messagebox.INFORMATION); - return; - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - } - } else { + if (lsPuntoVentaSelecionados.size() > 0) { for (int i = 0; i < lsPuntoVentaSelecionados.size(); i++) { PuntoVenta puntoVenta = lsPuntoVentaSelecionados.get(i); puntoVentas = puntoVentas + puntoVenta.getNombpuntoventa() + ","; - puntoVentaIds = puntoVentaIds + puntoVenta.getPuntoventaId() + ","; } @@ -114,7 +102,10 @@ public class RelatorioAidfDetalhadoController extends MyGenericForwardComposer { puntoVentaIds = puntoVentaIds.substring(0, puntoVentaIds.length() - 1); puntoVentas = puntoVentas.substring(0, puntoVentas.length() - 1); parametros.put("NUMPUNTOVENTA", puntoVentaIds); + }else{ + filtro.append("Todas "); } + filtro.append(puntoVentas).append(";"); parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioAidfDetalhadoController.window.title")); @@ -128,39 +119,11 @@ public class RelatorioAidfDetalhadoController extends MyGenericForwardComposer { parametros.put("EMPRESA_ID", empresa.getEmpresaId()); filtro.append(empresa.getNombempresa() + ";"); } else { - filtro.append(" Todas;"); + filtro.append(" Todas; "); } - filtro.append("AIDF: "); - if(!txtAIDF.getValue().equals("")){ - parametros.put("AIDF", txtAIDF.getValue()); - filtro.append(txtAIDF.getValue() + ";"); - }else{ - filtro.append(" Todas;"); - } - filtro.append("Inicio Form: "); - if(!txtInicioForm.getValue().equals("")){ - parametros.put("INICIOFORM", txtInicioForm.getValue()); - filtro.append(txtInicioForm.getValue() + ";"); - }else{ - filtro.append(" Todas;"); - } - filtro.append("Final Form: "); - if(!txtFimForm.getValue().equals("")){ - parametros.put("FIMFORM", txtFimForm.getValue()); - filtro.append(txtFimForm.getValue() + ";"); - }else{ - filtro.append(" Todas;"); - } - filtro.append("Serie: "); - if(!txtSerie.getValue().equals("")){ - parametros.put("SERIE", txtSerie.getValue()); - filtro.append(txtSerie.getValue() + ";"); - }else{ - filtro.append(" Todas;"); - } - + parametros.put("FILTROS", filtro.toString()); - relatorio = new RelatorioAidfDetalhado(parametros, dataSourceRead.getConnection()); + relatorio = new RelatorioEstoque(parametros, dataSourceRead.getConnection()); Map args = new HashMap(); args.put("relatorio", relatorio); diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 12cffa14a..fca2257a9 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -273,7 +273,7 @@ indexController.mniRelatorioCancelamentoVendaCartao.label = Cancelación de vent indexController.mniRelatorioCancelamentoTransacao.label = Cancelamento J3 indexController.mniRelatorioTabelaPreco.label = Reporte de tabla de precios indexController.mniRelatorioAIDF.label = Reporte AIDF -indexController.mniRelatorioAIDFDetalhado.label = AIDF detallado +indexController.mniRelatorioAIDFDetalhado.label = Reporte Estoque indexController.mniRelatorioSegundaVia.label = Segunda Via indexController.mniPrecoApanhe.label = Precio Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Ventas de paquetes - Resumido diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 62c989d16..eca6a1f2d 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -290,7 +290,7 @@ indexController.mniRelatorioEstornoCartao.label=Estorno Cartão indexController.mniRelatorioCancelamentoTransacao.label = Cancelamento J3 indexController.mniRelatorioTabelaPreco.label = Tabela de Preços indexController.mniRelatorioAIDF.label = AIDF -indexController.mniRelatorioAIDFDetalhado.label = AIDF Detalhado +indexController.mniRelatorioAIDFDetalhado.label = Relatório Estoque indexController.mniRelatorioConsultaAntt.label= Consulta ANTT indexController.mniRelatorioSegundaVia.label = Segunda Via indexController.mniPrecoApanhe.label = Preço Apanhe @@ -785,7 +785,7 @@ relatorioAidfController.lbEmpresa.value = Empresa relatorioAidfController.lbSerie.value = Série #Relatorio Aidf Detalhado -relatorioAidfDetalhadoController.window.title = Relatório Aidf Detalhado +relatorioAidfDetalhadoController.window.title = Relatório Estoque relatorioAidfDetalhadoController.datainicial.value = Data Inicial relatorioAidfDetalhadoController.dataFinal.value = Data Final relatorioAidfDetalhadoController.lbEmpresa.value = Empresa diff --git a/web/gui/relatorios/filtroRelatorioAidfDetalhado.zul b/web/gui/relatorios/filtroRelatorioAidfDetalhado.zul index e4d469ae9..441270bdd 100644 --- a/web/gui/relatorios/filtroRelatorioAidfDetalhado.zul +++ b/web/gui/relatorios/filtroRelatorioAidfDetalhado.zul @@ -7,7 +7,7 @@ + height="280px" width="538px" border="normal"> @@ -15,11 +15,7 @@ - - - + - - - - +