fixes bug#AL-2702
parent
898c6abba3
commit
b36c2c57ec
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>br.com.rjconsultores</groupId>
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
<artifactId>ventaboletosadm</artifactId>
|
<artifactId>ventaboletosadm</artifactId>
|
||||||
<version>1.5.8</version>
|
<version>1.5.9</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
@ -10,11 +10,13 @@ import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
|
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
|
||||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioPassagensAGRBean;
|
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioPassagensAGRBean;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.CurrencyUtil;
|
||||||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||||
|
|
||||||
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
||||||
|
@ -52,7 +54,7 @@ public class RelatorioPassagensAGR extends Relatorio {
|
||||||
if (parametros.get("fecFinalViagem") != null) {
|
if (parametros.get("fecFinalViagem") != null) {
|
||||||
fecFinalViagem = parametros.get("fecFinalViagem") + " 23:59:59";
|
fecFinalViagem = parametros.get("fecFinalViagem") + " 23:59:59";
|
||||||
}
|
}
|
||||||
|
Locale locale = new Locale("pt", "BR");
|
||||||
String tipGratuIds = parametros.get("tipGratuIds").toString();
|
String tipGratuIds = parametros.get("tipGratuIds").toString();
|
||||||
String clienteIds = parametros.get("clienteIds").toString();
|
String clienteIds = parametros.get("clienteIds").toString();
|
||||||
String linhaIds = parametros.get("linhaIds").toString();
|
String linhaIds = parametros.get("linhaIds").toString();
|
||||||
|
@ -95,22 +97,22 @@ public class RelatorioPassagensAGR extends Relatorio {
|
||||||
|
|
||||||
PassagensBean.setNumeroBilhete(rset.getString("numero_bilhete"));
|
PassagensBean.setNumeroBilhete(rset.getString("numero_bilhete"));
|
||||||
PassagensBean.setRazaoSocial(capitalizeWords(rset.getString("razao_social")));
|
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.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.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.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.setNumeroPoltrona(rset.getString("numero_poltrona"));
|
||||||
PassagensBean.setDataViagem(getDataCompleta(rset.getString("data_viagem")));
|
PassagensBean.setDataViagem(getDataCompleta(rset.getString("data_viagem")));
|
||||||
PassagensBean.setMesViagem(getMesAno(rset.getString("data_viagem")));
|
PassagensBean.setMesViagem(getMesAno(rset.getString("data_viagem")));
|
||||||
PassagensBean.setHoraViagem(getHora(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.setDenominacaoLinha(capitalizeWords(rset.getString("denominacao_linha")));
|
||||||
PassagensBean.setLocalOrigem(capitalizeWords(removerEstado(rset.getString("local_origem"))));
|
PassagensBean.setLocalOrigem(capitalizeWords(removerEstado(rset.getString("local_origem"))));
|
||||||
PassagensBean.setLocalDestino(capitalizeWords(removerEstado(rset.getString("local_destino"))));
|
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.setChaveAcessoBPE(rset.getString("chave_acesso_bpe"));
|
||||||
PassagensBean.setImagemBPE(rset.getString("imagem_bpe"));
|
PassagensBean.setImagemBPE(rset.getString("imagem_bpe"));
|
||||||
PassagensBean.setNaturezaServico(capitalizeWords(rset.getString("natureza_servico")));
|
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<RelatorioPassagensAGRBean> lsDadosRelatorio) {
|
public void setLsDadosRelatorio(List<RelatorioPassagensAGRBean> lsDadosRelatorio) {
|
||||||
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
|
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
|
||||||
this.lsDadosRelatorio = lsDadosRelatorio;
|
this.lsDadosRelatorio = lsDadosRelatorio;
|
||||||
|
@ -149,6 +167,58 @@ public class RelatorioPassagensAGR extends Relatorio {
|
||||||
return "";
|
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) {
|
public static String removerEstado(String lugar) {
|
||||||
// Criando um array com as siglas dos estados
|
// Criando um array com as siglas dos estados
|
||||||
String[] estados = {"AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS",
|
String[] estados = {"AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS",
|
||||||
|
@ -203,30 +273,6 @@ public class RelatorioPassagensAGR extends Relatorio {
|
||||||
return "";
|
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
|
@Override
|
||||||
protected void processaParametros() throws Exception {
|
protected void processaParametros() throws Exception {
|
||||||
}
|
}
|
||||||
|
@ -247,13 +293,7 @@ public class RelatorioPassagensAGR extends Relatorio {
|
||||||
sql.append(" THEN nvl(b.descnumdoc2, c.numidentificados) ");
|
sql.append(" THEN nvl(b.descnumdoc2, c.numidentificados) ");
|
||||||
sql.append(" ELSE '' ");
|
sql.append(" ELSE '' ");
|
||||||
sql.append(" END AS numero_passaporte, ");
|
sql.append(" END AS numero_passaporte, ");
|
||||||
sql.append(" CASE ");
|
sql.append(" ct.desccategoria AS tipo_desconto_beneficio, ");
|
||||||
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(" b.nombpasajero AS nome_passageiro, ");
|
sql.append(" b.nombpasajero AS nome_passageiro, ");
|
||||||
sql.append(" CASE ");
|
sql.append(" CASE ");
|
||||||
sql.append(" WHEN ((b.DESCNUMDOC IS NOT NULL OR c.NUMIDENTIFICAUNO IS NOT NULL) AND c.TIPOIDENTIFICAUNO_ID = 1) ");
|
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(" des.descparada AS local_destino, ");
|
||||||
sql.append(" b.preciobase AS valor_passagem, ");
|
sql.append(" b.preciobase AS valor_passagem, ");
|
||||||
sql.append(" bpe.chbpe AS chave_acesso_bpe, ");
|
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(" cs.descclase AS natureza_servico ");
|
||||||
sql.append("FROM ");
|
sql.append("FROM ");
|
||||||
sql.append(" boleto b ");
|
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 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(" LEFT JOIN cliente c ON (c.cliente_id = b.cliente_id ");
|
||||||
sql.append(" AND c.activo = 1) ");
|
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("WHERE ");
|
||||||
sql.append(" ( b.motivocancelacion_id NOT IN ( 4 ) ");
|
sql.append(" ( b.motivocancelacion_id NOT IN ( 4 ) ");
|
||||||
sql.append(" OR b.motivocancelacion_id IS NULL ) ");
|
sql.append(" OR b.motivocancelacion_id IS NULL ) ");
|
||||||
|
|
Loading…
Reference in New Issue