From cf667caca48aed65ce571e2a7d4e4d96e4247b80 Mon Sep 17 00:00:00 2001 From: walace Date: Thu, 23 Dec 2021 18:46:56 +0000 Subject: [PATCH] fixes bug#23716 qua: dev: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@110113 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioBPe.java | 18 ++ .../impl/RelatorioBPeNumeracaoReuso.java | 183 +++++++++++++ .../RelatorioBPeNumeracaoReuso_es.properties | 32 +++ ...elatorioBPeNumeracaoReuso_pt_BR.properties | 32 +++ .../RelatorioBPe_es.properties | 1 + .../RelatorioBPe_pt_BR.properties | 3 +- .../relatorios/templates/RelatorioBPe.jasper | Bin 51221 -> 51630 bytes .../relatorios/templates/RelatorioBPe.jrxml | 5 +- .../RelatorioBpeNumeracaoReuso.jasper | Bin 0 -> 33917 bytes .../RelatorioBpeNumeracaoReuso.jrxml | 240 ++++++++++++++++++ .../relatorios/RelatorioBPeController.java | 29 ++- web/WEB-INF/i3-label_es_MX.label | 5 + web/WEB-INF/i3-label_pt_BR.label | 9 + web/gui/relatorios/filtroRelatorioBPe.zul | 3 + 14 files changed, 556 insertions(+), 4 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPeNumeracaoReuso.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBpeNumeracaoReuso.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBpeNumeracaoReuso.jrxml diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPe.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPe.java index 06c1d1939..6112b636a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPe.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPe.java @@ -161,6 +161,9 @@ public class RelatorioBPe extends Relatorio { } else if (status != null && status.equals("PE")) {//Pendente Envio sql.append(" AND bpe.CODSTAT IN ('-1','-2') "); } + else if (status != null && status.equals("T")) {//Opcao Todas + sql.append(opcaoTodas()); + } if(dtInicio != null && dtFim != null) { Constante constanteBPeOtimizado = constanteService.buscarPorNomeConstante(Constantes.RELATORIO_BPE_OTIMIZADO); @@ -183,6 +186,21 @@ public class RelatorioBPe extends Relatorio { } } + private String opcaoTodas() { + StringBuilder sql = new StringBuilder(); + + sql.append(" AND ((bpe.CODSTAT = '100' AND bol.ACTIVO = 1) OR (bpe.CODSTAT = '135' AND bpe.TIPOEVENTO = '110111' AND bol.ACTIVO = 1 ) "); + sql.append(" OR (bpe.CODSTAT IN ('100', '102') AND bpeSub.BPE_ID IS NOT NULL AND bol.ACTIVO = 1) "); + sql.append(" OR (bpe.CODSTAT IN ('100', '102','150') AND bpe.TIPOSUBSTITUICAO IS NOT NULL AND bol.ACTIVO = 1 and bpeSub.CODSTAT IN('150','100','102')) "); + sql.append(" OR (bpe.CODSTAT = '135' AND bpe.TIPOEVENTO = '110115' AND bol.ACTIVO = 1) "); + sql.append(" OR (bpe.CODSTAT NOT IN ('100','135','102','150','-1','-2')) "); + sql.append(" OR (bpe.CODSTAT IN ('100', '150') AND bpe.INDCONTINGENCIA = 1 AND bol.ACTIVO = 1) "); + sql.append(" OR (bpe.CODSTAT IN ('-10','-20') AND bol.ACTIVO = 1) "); + sql.append(" OR (bpe.CODSTAT IN ('-1','-2'))) "); + + return sql.toString(); + } + private void getSelectFrom(StringBuilder sql, String alias) { sql.append("SELECT"); sql.append(" TO_CHAR(COALESCE(bpe.DT_VENDA,bol.FECHORVENTA),'dd/mm/yyyy') as dtvenda, "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPeNumeracaoReuso.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPeNumeracaoReuso.java new file mode 100644 index 000000000..38b2139e2 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBPeNumeracaoReuso.java @@ -0,0 +1,183 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.constantes.Constantes; +import com.rjconsultores.ventaboletos.entidad.Constante; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +public class RelatorioBPeNumeracaoReuso extends Relatorio { + + private ConstanteService constanteService; + + public RelatorioBPeNumeracaoReuso(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(parametros); + + Date dtInicio = (Date) parametros.get("DATA_INICIO"); + Date dtFim = (Date) parametros.get("DATA_FIM"); + + + NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString()); + if(dtInicio != null && dtFim != null) { + ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); + ps.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); + } + + ResultSet rset = ps.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + + dataResult.put("numeroBPE", rset.getString("numeroBPE")); + dataResult.put("serieBPE", rset.getString("serieBPE")); + dataResult.put("estado", rset.getString("estado")); + + this.dados.add(dataResult); + } + + if(parametros.get("ESTADOS_ID") == null){ + sql = getSqlBuscarInicialFinal(parametros); + + dtInicio = (Date) parametros.get("DATA_INICIO"); + dtFim = (Date) parametros.get("DATA_FIM"); + + + ps = new NamedParameterStatement(conexao, sql.toString()); + if(dtInicio != null && dtFim != null) { + ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); + ps.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); + } + + rset = ps.executeQuery(); + + while (rset.next()) { + parametros.put("inicialAutorizado", rset.getString("inicialAutorizado")); + parametros.put("finalAutorizado", rset.getString("finalAutorizado")); + } + + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Map parametros) { + + StringBuilder sql = new StringBuilder(); + constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); + + String estados = (String) parametros.get("ESTADOS_ID"); + Integer empresaId = (Integer) parametros.get("EMPRESA_ID"); + Date dtInicio = (Date) parametros.get("DATA_INICIO"); + Date dtFim = (Date) parametros.get("DATA_FIM"); + + + getSelectFrom(sql); + + getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, false); + + sql.append(" group by BOL.num_bpe , BOL.numserie_bpe, E.nombestado ORDER BY BOL.NUM_BPE, BOL.NUMSERIE_BPE, E.NOMBESTADO ASC "); + + return sql.toString(); + } + + private String getSqlBuscarInicialFinal(Map parametros) { + + StringBuilder sql = new StringBuilder(); + + String estados = (String) parametros.get("ESTADOS_ID"); + Integer empresaId = (Integer) parametros.get("EMPRESA_ID"); + Date dtInicio = (Date) parametros.get("DATA_INICIO"); + Date dtFim = (Date) parametros.get("DATA_FIM"); + + + getSelectFromInicialFinalAutorizado(sql); + + getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, true); + + + return sql.toString(); + } + + private void getWhere(StringBuilder sql, ConstanteService constanteService, String estados, Integer empresaId, Date dtInicio, Date dtFim, boolean buscarUltimoFinal) { + sql.append(" WHERE e.ACTIVO = 1 "); + + if (empresaId != null) { + sql.append(" AND ep.EMPRESA_ID = " + empresaId + " "); + } + if (estados != null) { + sql.append(" AND e.ESTADO_ID IN ( " + estados + " )"); + } + if (buscarUltimoFinal) { + sql.append(" AND e.estado_id IN (15) AND (bpe.codstat = '100' AND bol.activo = 1)"); + } + + if(dtInicio != null && dtFim != null) { + Constante constanteBPeOtimizado = constanteService.buscarPorNomeConstante(Constantes.RELATORIO_BPE_OTIMIZADO); + if(constanteBPeOtimizado != null && StringUtils.isNotBlank(constanteBPeOtimizado.getValorconstante()) && Boolean.parseBoolean(constanteBPeOtimizado.getValorconstante())) { + sql.append(" AND coalesce(bol.FECHORVENTA_H, bol.FECHORVENTA) >= TO_DATE(:dataInicio,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" AND coalesce(bol.FECHORVENTA_H, bol.FECHORVENTA) <= TO_DATE(:dataFinal,'DD/MM/YYYY HH24:MI:SS') "); + }else { + //Mantis 17952 + sql.append(" AND (bpe.dt_venda >= TO_DATE(:dataInicio, 'DD/MM/YYYY HH24:MI:SS' ) OR (bpe.dt_venda is null and bol.fechorventa >= TO_DATE(:dataInicio, 'DD/MM/YYYY HH24:MI:SS'))) "); + sql.append(" AND (bpe.dt_venda <= TO_DATE(:dataFinal, 'DD/MM/YYYY HH24:MI:SS' ) OR (bpe.dt_venda is null and bol.fechorventa <= TO_DATE(:dataFinal, 'DD/MM/YYYY HH24:MI:SS' )))"); + } + } + + } + + private void getSelectFrom(StringBuilder sql) { + sql.append("SELECT BOL.NUM_BPE as numeroBPE, BOL.NUMSERIE_BPE as serieBPE, E.NOMBESTADO as estado "); + + sql.append(" FROM BPE bpe "); + sql.append(" LEFT JOIN BOLETO bol ON bol.BOLETO_ID = bpe.BOLETO_ID and bpe.activo = 1 "); + sql.append(" LEFT JOIN estado e ON e.CODIBGE = bpe.UF "); + sql.append(" LEFT JOIN marca ma ON bol.MARCA_ID = ma.MARCA_ID "); + sql.append(" LEFT JOIN empresa ep on ma.EMPRESA_ID = ep.EMPRESA_ID "); + sql.append(" LEFT JOIN PUNTO_VENTA pv ON bol.PUNTOVENTA_ID = pv.PUNTOVENTA_ID "); + sql.append(" JOIN BPE_CTRL_DISPONIBILIDADE bcd ON (bpe.BPE_ID = bcd.BPE_REJEITADO_ID) "); + + } + + private void getSelectFromInicialFinalAutorizado(StringBuilder sql){ + + sql.append("SELECT min(bol.num_bpe) as inicialAutorizado , max(bol.num_bpe) as finalAutorizado"); + sql.append(" FROM bpe bpe"); + sql.append(" LEFT JOIN bpe bpeSub ON bpe.bpesubstituicao_id = bpesub.bpe_id"); + sql.append(" AND bpesub.activo = 1"); + sql.append(" LEFT JOIN boleto bol ON bol.boleto_id = bpe.boleto_id"); + sql.append(" AND bpe.activo = 1"); + sql.append(" LEFT JOIN estado e ON e.codibge = bpe.uf"); + sql.append(" LEFT JOIN marca ma ON bol.marca_id = ma.marca_id"); + sql.append(" LEFT JOIN empresa ep ON ma.empresa_id = ep.empresa_id"); + sql.append(" LEFT JOIN parada ori ON bol.origen_id = ori.parada_id"); + sql.append(" LEFT JOIN parada dest ON bol.destino_id = dest.parada_id"); + sql.append(" LEFT JOIN punto_venta pv ON bol.puntoventa_id = pv.puntoventa_id "); + + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_es.properties new file mode 100644 index 000000000..287e32078 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_es.properties @@ -0,0 +1,32 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: + +label.dataVenda=Data Venda +label.horaVenda=Hora Venda +label.origem=Origem +label.destino=Destino +label.dataViagem=Data Viagem +label.valorBPe=Valor +label.origemPV= Loc. Venda +label.valortarifa=Tarifa +label.valortaxa=Taxa +label.valorpedagio=Pedágio +label.valorseguro=Seguro +label.valoroutros=Outros +label.chaveAcesso=Chave Acesso +label.protocolo=Protocolo +label.numBPe=Núm. BPe +label.serie=Série +label.status=Status +label.obs=Observação +header.filtro.total=Total Geral: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_pt_BR.properties new file mode 100644 index 000000000..c0d722dd0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPeNumeracaoReuso_pt_BR.properties @@ -0,0 +1,32 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +header.filtro.total=Total Geral: + +label.dataVenda=Data Venda +label.horaVenda=Hora Venda +label.origem=Origem +label.destino=Destino +label.dataViagem=Data Viagem +label.valorBPe=Valor +label.origemPV= Loc. Venda +label.valortarifa=Tarifa +label.valortaxa=Taxa +label.valorpedagio=Pedágio +label.valorseguro=Seguro +label.valoroutros=Outros +label.chaveAcesso=Chave Acesso +label.protocolo=Protocolo +label.numBPe=Núm. BPe +label.serie=Série +label.status=Status +label.obs=Observação \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_es.properties index 287e32078..691766509 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_es.properties @@ -29,4 +29,5 @@ label.numBPe=N label.serie=Série label.status=Status label.obs=Observação +label.codAgencia=Cod.Agência header.filtro.total=Total Geral: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_pt_BR.properties index c0d722dd0..2baec1144 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBPe_pt_BR.properties @@ -29,4 +29,5 @@ label.protocolo=Protocolo label.numBPe=Núm. BPe label.serie=Série label.status=Status -label.obs=Observação \ No newline at end of file +label.obs=Observação +label.codAgencia=Cod. Agência \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jasper index 2e8732db59df1ab052da1aab6c6849617dda6128..01f5d0a5db406b0914d4b2f368bc9cba5b1dac22 100644 GIT binary patch literal 51630 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 literal 51221 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 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jrxml index b559e35ff..f5e194148 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBPe.jrxml @@ -1,7 +1,7 @@ - + @@ -16,6 +16,7 @@ + @@ -180,7 +181,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBpeNumeracaoReuso.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBpeNumeracaoReuso.jasper new file mode 100644 index 0000000000000000000000000000000000000000..97dc4f8e972e8b407227fe81e1e1fb704838d879 GIT binary patch literal 33917 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBPeController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBPeController.java index e1d1f1989..78c2cbf16 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBPeController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBPeController.java @@ -6,6 +6,7 @@ import java.util.Map; import javax.sql.DataSource; +import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; @@ -25,6 +26,7 @@ import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBPe; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBPeNumeracaoReuso; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBPeRejeitadoEnvioContingencia; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.EmpresaService; @@ -151,7 +153,10 @@ public class RelatorioBPeController extends MyGenericForwardComposer { Relatorio relatorio = null; if(rdbGroup.getSelectedItem().getValue().equals("RC") || rdbGroup.getSelectedItem().getValue().equals("R")) { relatorio = new RelatorioBPeRejeitadoEnvioContingencia(parametros, dataSourceRead.getConnection()); - } else { + } else if(rdbGroup.getSelectedItem().getValue().equals("NR")) { + relatorio = new RelatorioBPeNumeracaoReuso(parametros, dataSourceRead.getConnection()); + } + else { relatorio = new RelatorioBPe(parametros, dataSourceRead.getConnection()); } @@ -163,7 +168,29 @@ public class RelatorioBPeController extends MyGenericForwardComposer { } private boolean validar() { + + try { + if(rdbGroup.getSelectedItem().getValue().equals("NR")){ + if (cmbEmpresa.getSelectedItem() != null) { + Empresa empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + if(BooleanUtils.toBoolean(empresa.getIndReaproveitarNumBPeRejeitado())){ + Messagebox.show(Labels.getLabel("relatorioBPeController.MSG.NaoPermitirReusoBPE"), + Labels.getLabel("relatorioBPeController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + } + } + if(rdbGroup.getSelectedItem().getValue().equals("T")){ + List lsEstadosSelecionados = estadoList.getItensSelecionados(); + if ((lsEstadosSelecionados.isEmpty()) || (!lsEstadosSelecionados.isEmpty() && lsEstadosSelecionados.size() > 1)) { + Messagebox.show(Labels.getLabel("relatorioBPeController.MSG.NaoPermitirTodasOpcoesEstado"), + Labels.getLabel("relatorioBPeController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + } txtChBpe.getValue(); txtNumBpe.getValue(); diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index c7fbe79e0..595ae1ec3 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -8634,6 +8634,11 @@ relatorioBPeController.lbAlias.value = ALIAS Origen / Destino de boletos relatorioBPeController.MSG.informarData = Favor informar data inicial e final. relatorioBPeController.MSG.dataInicialMaiorQueFinal = Data de inicio não pode ser maior do que a final. +relatorioBPeController.lbNumeracaoReuso.value = Numeração para Reuso +relatorioBPeController.lbTodasOpcoes.value = Todas as opções +relatorioBPeController.lbNumeracaoReuso.value.tooltiptext = Exibe os documentos que o sistema de vendas pulou e armazenou com a possibilidade de reuso. +relatorioBPeController.lbNumeracaoTodasOpcoes.value.tooltiptext = Exibe todos os documentos, das situações antecedentes. + #Relatorio Resumo Venda por Orgao Concedente diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index a8713f8f3..1a66ce505 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -9412,9 +9412,18 @@ relatorioBPeController.lbPendenteEnvio.value.tooltiptext = Exibe os bilhetes na relatorioBPeController.lbChbpe.value = Chave BP-e relatorioBPeController.lbNumbpe.value = Número BP-e relatorioBPeController.lbAlias.value = ALIAS Origen / Destino de boletos +relatorioBPeController.lbNumeracaoReuso.value = Numeração para Reuso +relatorioBPeController.lbTodasOpcoes.value = Todas as opções +relatorioBPeController.lbNumeracaoReuso.value.tooltiptext = Exibe os documentos que o sistema de vendas pulou e armazenou com a possibilidade de reuso. +relatorioBPeController.lbNumeracaoTodasOpcoes.value.tooltiptext = Exibe todos os documentos, das situações antecedentes. + relatorioBPeController.MSG.informarData = Favor informar data inicial e final. relatorioBPeController.MSG.dataInicialMaiorQueFinal = Data de inicio não pode ser maior do que a final. +relatorioBPeController.MSG.NaoPermitirReusoBPE = Numeração de reúso não disponível. Configurado para Reaproveitar Série/número do Bpe Rejeitado. +relatorioBPeController.MSG.NaoPermitirTodasOpcoesEstado = É Permitido Selecionar apenas 1 Estado para a opção 'Todas'. + + #Relatorio Resumo Venda por Orgao Concedente relatorioResumoVendaOrgaoConcedenteController.window.title = Relatorio Resumo Venda por Orgao Concedente diff --git a/web/gui/relatorios/filtroRelatorioBPe.zul b/web/gui/relatorios/filtroRelatorioBPe.zul index 36063abe8..e8e989613 100644 --- a/web/gui/relatorios/filtroRelatorioBPe.zul +++ b/web/gui/relatorios/filtroRelatorioBPe.zul @@ -66,6 +66,9 @@ + + +