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 ) ");