diff --git a/pom.xml b/pom.xml
index 00ffb3448..934f8a70e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.5.8
+ 1.5.9
war
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java
index 872b07db8..bf79527b6 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java
@@ -10,11 +10,13 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioPassagensAGRBean;
+import com.rjconsultores.ventaboletos.web.utilerias.CurrencyUtil;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
@@ -52,7 +54,7 @@ public class RelatorioPassagensAGR extends Relatorio {
if (parametros.get("fecFinalViagem") != null) {
fecFinalViagem = parametros.get("fecFinalViagem") + " 23:59:59";
}
-
+ Locale locale = new Locale("pt", "BR");
String tipGratuIds = parametros.get("tipGratuIds").toString();
String clienteIds = parametros.get("clienteIds").toString();
String linhaIds = parametros.get("linhaIds").toString();
@@ -95,22 +97,22 @@ public class RelatorioPassagensAGR extends Relatorio {
PassagensBean.setNumeroBilhete(rset.getString("numero_bilhete"));
PassagensBean.setRazaoSocial(capitalizeWords(rset.getString("razao_social")));
- PassagensBean.setCnpj(rset.getString("cnpj"));
+ PassagensBean.setCnpj(mascaraDOC(rset.getString("cnpj")));
PassagensBean.setNumeroPassaporte(rset.getString("numero_passaporte"));
- PassagensBean.setTipoDescontoBeneficio(capitalizeWords(rset.getString("tipo_desconto_beneficio")));
+ PassagensBean.setTipoDescontoBeneficio(capitalizeWords(removerEstado(rset.getString("tipo_desconto_beneficio"))));
PassagensBean.setNomePassageiro(capitalizeWords(rset.getString("nome_passageiro")));
- PassagensBean.setNumeroIdentidade(rset.getString("numero_identidade"));
+ PassagensBean.setNumeroIdentidade((rset.getString("numero_identidade")));
PassagensBean.setOrgaoExpedidor(rset.getString("orgao_expedidor"));
- PassagensBean.setCpfPassageiro(rset.getString("cpf_passageiro"));
+ PassagensBean.setCpfPassageiro(mascaraDOC(rset.getString("cpf_passageiro")));
PassagensBean.setNumeroPoltrona(rset.getString("numero_poltrona"));
PassagensBean.setDataViagem(getDataCompleta(rset.getString("data_viagem")));
PassagensBean.setMesViagem(getMesAno(rset.getString("data_viagem")));
PassagensBean.setHoraViagem(getHora(rset.getString("data_viagem")));
- PassagensBean.setNumeroLinha(rset.getString("numero_linha"));
+ PassagensBean.setNumeroLinha(formatarNumero(rset.getString("numero_linha")));
PassagensBean.setDenominacaoLinha(capitalizeWords(rset.getString("denominacao_linha")));
PassagensBean.setLocalOrigem(capitalizeWords(removerEstado(rset.getString("local_origem"))));
PassagensBean.setLocalDestino(capitalizeWords(removerEstado(rset.getString("local_destino"))));
- PassagensBean.setValorPassagem(rset.getString("valor_passagem"));
+ PassagensBean.setValorPassagem(CurrencyUtil.getCurrencyStrFromStr(rset.getString("valor_passagem"),locale));
PassagensBean.setChaveAcessoBPE(rset.getString("chave_acesso_bpe"));
PassagensBean.setImagemBPE(rset.getString("imagem_bpe"));
PassagensBean.setNaturezaServico(capitalizeWords(rset.getString("natureza_servico")));
@@ -126,6 +128,22 @@ public class RelatorioPassagensAGR extends Relatorio {
});
}
+ public static String formatarNumero(String numero) {
+ if (numero == null || numero.isEmpty()) {
+ return "";
+ }
+
+ StringBuilder builder = new StringBuilder(numero);
+ if (numero.length() >= 6) {
+ builder.insert(2, ".");
+ builder.insert(6, "-");
+ return builder.toString();
+ } else {
+ builder.insert(2, ".");
+ return builder.toString();
+ }
+ }
+
public void setLsDadosRelatorio(List lsDadosRelatorio) {
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
this.lsDadosRelatorio = lsDadosRelatorio;
@@ -148,6 +166,58 @@ public class RelatorioPassagensAGR extends Relatorio {
return "";
}
+
+ public static String mascaraDOC(String document) {
+ if (document == null || document.isEmpty()) {
+ return "";
+ }
+ String numericOnly = document.replaceAll("[^0-9]", "");
+ if (numericOnly.length() == 11) {
+ return numericOnly.replaceFirst("(\\d{3})(\\d{3})(\\d{3})(\\d{2})", "$1.$2.$3-$4");
+ } else if (numericOnly.length() == 14) {
+ return numericOnly.replaceFirst("(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})", "$1.$2.$3/$4-$5");
+ }
+
+ return document;
+ }
+
+ public static String removerDigitosEspeciais(String input) {
+ String semDigitosEspeciais = input.replaceAll("[^\\p{L}\\s.]", "");
+ String semEspacosEmExcesso = semDigitosEspeciais.replaceAll("\\s+", " ");
+ String resultadoFinal = semEspacosEmExcesso.trim();
+
+ return resultadoFinal;
+ }
+
+ public static String capitalizeWords(String input) {
+ StringBuilder output = new StringBuilder();
+ String palavraCorrigida = "";
+ boolean newWord = input == null || input.isEmpty() ? false : true;
+ if (newWord) {
+ for (int i = 0; i < input.length(); i++) {
+ char c = input.charAt(i);
+
+ if (Character.isLetter(c)) {
+ if (newWord) {
+ output.append(Character.toUpperCase(c));
+ newWord = false;
+ } else {
+ output.append(Character.toLowerCase(c));
+ }
+ } else {
+ output.append(c);
+ newWord = true;
+ }
+ }
+ }
+ try {
+ palavraCorrigida = removerDigitosEspeciais(output.toString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return palavraCorrigida;
+ }
public static String removerEstado(String lugar) {
// Criando um array com as siglas dos estados
@@ -160,11 +230,11 @@ public class RelatorioPassagensAGR extends Relatorio {
// Verificando se a string contém a sigla do estado
if (lugar.contains(" - " + estado)) {
// Retornando a string sem a sigla do estado
- return lugar.replace(" - " + estado, "");
- }
+ return lugar.replace(" - " + estado, "");
+ }
if (lugar.endsWith(" " + estado)) {
// Retornando a string sem a sigla do estado
- return lugar.replace(" " + estado, "");
+ return lugar.replace(" " + estado, "");
}
}
}
@@ -202,30 +272,6 @@ public class RelatorioPassagensAGR extends Relatorio {
}
return "";
}
-
- public static String capitalizeWords(String input) {
- StringBuilder output = new StringBuilder();
- boolean newWord = input == null || input.isEmpty() ? false : true;
- if(newWord) {
- for (int i = 0; i < input.length(); i++) {
- char c = input.charAt(i);
-
- if (Character.isLetter(c)) {
- if (newWord) {
- output.append(Character.toUpperCase(c));
- newWord = false;
- } else {
- output.append(Character.toLowerCase(c));
- }
- } else {
- output.append(c);
- newWord = true;
- }
- }
- }
- return output.toString();
- }
-
@Override
protected void processaParametros() throws Exception {
@@ -247,13 +293,7 @@ public class RelatorioPassagensAGR extends Relatorio {
sql.append(" THEN nvl(b.descnumdoc2, c.numidentificados) ");
sql.append(" ELSE '' ");
sql.append(" END AS numero_passaporte, ");
- sql.append(" CASE ");
- sql.append(" WHEN (b.categoria_id in (7)) ");
- sql.append(" THEN 'Idoso' ");
- sql.append(" WHEN (b.categoria_id in (5)) ");
- sql.append(" THEN 'Deficiente' ");
- sql.append(" ELSE '' ");
- sql.append(" END AS tipo_desconto_beneficio, ");
+ sql.append(" ct.desccategoria AS tipo_desconto_beneficio, ");
sql.append(" b.nombpasajero AS nome_passageiro, ");
sql.append(" CASE ");
sql.append(" WHEN ((b.DESCNUMDOC IS NOT NULL OR c.NUMIDENTIFICAUNO IS NOT NULL) AND c.TIPOIDENTIFICAUNO_ID = 1) ");
@@ -274,7 +314,7 @@ public class RelatorioPassagensAGR extends Relatorio {
sql.append(" des.descparada AS local_destino, ");
sql.append(" b.preciobase AS valor_passagem, ");
sql.append(" bpe.chbpe AS chave_acesso_bpe, ");
- sql.append(" bpe.url_consulta AS imagem_bpe, ");
+ sql.append(" bpe.qrcode AS imagem_bpe, ");
sql.append(" cs.descclase AS natureza_servico ");
sql.append("FROM ");
sql.append(" boleto b ");
@@ -286,7 +326,8 @@ public class RelatorioPassagensAGR extends Relatorio {
sql.append(" LEFT JOIN clase_servicio cs ON (r.claseservicio_id = cs.claseservicio_id and cs.activo = 1) ");
sql.append(" LEFT JOIN cliente c ON (c.cliente_id = b.cliente_id ");
sql.append(" AND c.activo = 1) ");
-
+ sql.append(" LEFT JOIN categoria ct ON (b.categoria_id = ct.categoria_id ");
+ sql.append(" AND ct.activo =1 and ct.categoria_id not in (1)) ");
sql.append("WHERE ");
sql.append(" ( b.motivocancelacion_id NOT IN ( 4 ) ");
sql.append(" OR b.motivocancelacion_id IS NULL ) ");