diff --git a/pom.xml b/pom.xml
index beaa3af6d..6492d90e8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,12 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.1.0
+ 1.2.0
war
1.2.0
- 1.1.0
+ 1.2.0
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java
new file mode 100644
index 000000000..fdbfe8c2c
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassagensAGR.java
@@ -0,0 +1,321 @@
+package com.rjconsultores.ventaboletos.relatorios.impl;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+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.NamedParameterStatement;
+
+import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
+
+public class RelatorioPassagensAGR extends Relatorio {
+
+ private List lsDadosRelatorio;
+
+ public RelatorioPassagensAGR(Map parametros, Connection conexao) throws Exception {
+ super(parametros, conexao);
+
+ this.setCustomDataSource(new DataSource(this) {
+
+ @Override
+ public void initDados() throws Exception {
+
+ Connection conexao = this.relatorio.getConexao();
+
+ Map parametros = this.relatorio.getParametros();
+
+ String fecInicioVenda = null;
+ if (parametros.get("fecInicioVenda") != null) {
+ fecInicioVenda = parametros.get("fecInicioVenda") + " 00:00:00";
+ }
+ String fecFinalVenda = null;
+ if (parametros.get("fecFinalVenda") != null) {
+ fecFinalVenda = parametros.get("fecFinalVenda")+ " 23:59:59";
+ }
+
+ String fecInicioViagem = null;
+ if (parametros.get("fecInicioViagem") != null) {
+ fecInicioViagem = parametros.get("fecInicioViagem") + " 00:00:00";
+ }
+ String fecFinalViagem = null;
+ if (parametros.get("fecFinalViagem") != null) {
+ fecFinalViagem = parametros.get("fecFinalViagem") + " 23:59:59";
+ }
+
+ String tipGratuIds = parametros.get("tipGratuIds").toString();
+ String clienteIds = parametros.get("clienteIds").toString();
+ String linhaIds = parametros.get("linhaIds").toString();
+ String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : "";
+
+ String sql = getSql(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds, clienteIds, empresa, fecInicioViagem, fecFinalViagem);
+
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
+ NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
+
+ if (fecInicioVenda != null) {
+ stmt.setTimestamp("fecInicioVenda", new java.sql.Timestamp(sdf.parse(fecInicioVenda).getTime()));
+ }
+
+ if (fecFinalVenda != null) {
+ stmt.setTimestamp("fecFinalVenda", new java.sql.Timestamp(sdf.parse(fecFinalVenda).getTime()));
+ }
+
+ if (fecInicioViagem != null) {
+ stmt.setTimestamp("fecInicioViagem", new java.sql.Timestamp(sdf.parse(fecInicioViagem).getTime()));
+ }
+
+ if (fecFinalViagem != null) {
+ stmt.setTimestamp("fecFinalViagem", new java.sql.Timestamp(sdf.parse(fecFinalViagem).getTime()));
+ }
+
+ if(empresa != null && !empresa.equals("")){
+ stmt.setInt("empresa_id", Integer.parseInt(empresa));
+ }
+
+ ResultSet rset = null;
+
+ rset = stmt.executeQuery();
+
+ lsDadosRelatorio = new ArrayList();
+
+ while (rset.next()) {
+ RelatorioPassagensAGRBean PassagensBean = new RelatorioPassagensAGRBean();
+
+ PassagensBean.setNumeroBilhete(rset.getString("numero_bilhete"));
+ PassagensBean.setRazaoSocial(capitalizeWords(rset.getString("razao_social")));
+ PassagensBean.setCnpj(rset.getString("cnpj"));
+ PassagensBean.setNumeroPassaporte(rset.getString("numero_passaporte"));
+ PassagensBean.setTipoDescontoBenefÃcio(capitalizeWords(rset.getString("tipo_desconto_benefÃcio")));
+ PassagensBean.setNomePassageiro(capitalizeWords(rset.getString("nome_passageiro")));
+ PassagensBean.setNumeroBilhete(rset.getString("numero_identidade"));
+ PassagensBean.setOrgaoExpedidor(rset.getString("orgao_expedidor"));
+ PassagensBean.setCpfPassageiro(rset.getString("cpf_passageiro"));
+ PassagensBean.setNumeroBilhete(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.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.setChaveAcessoBPE(rset.getString("chave_acesso_bpe"));
+ PassagensBean.setImagemBPE(rset.getString("imagem_bpe"));
+ PassagensBean.setNaturezaServico(capitalizeWords(rset.getString("natureza_servico")));
+
+
+ lsDadosRelatorio.add(PassagensBean);
+ }
+
+ if (lsDadosRelatorio.size() > 0) {
+ setLsDadosRelatorio(lsDadosRelatorio);
+ }
+ }
+ });
+ }
+
+ public void setLsDadosRelatorio(List lsDadosRelatorio) {
+ this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
+ this.lsDadosRelatorio = lsDadosRelatorio;
+ }
+
+ public String getMesAno(String data) {
+ if(!data.isEmpty()) {
+ data = getData(data);
+ DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ Date dateFormatada = null;
+ try {
+ dateFormatada = format.parse(data);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ DateFormat outputFormat = new SimpleDateFormat("dd/MM");
+ String dataDiaMes = outputFormat.format(dateFormatada);
+ return dataDiaMes;
+ }
+
+ return "";
+ }
+
+ public static String removerEstado(String lugar) {
+ // Criando um array com as siglas dos estados
+ String[] estados = {"AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS",
+ "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO"};
+ if(lugar != null || !lugar.isEmpty()) {
+ // Percorrendo o array de estados
+ for (String estado : estados) {
+ // 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, "");
+ }
+ if (lugar.endsWith(" " + estado)) {
+ // Retornando a string sem a sigla do estado
+ return lugar.replace(" " + estado, "");
+ }
+ }
+ }
+ // Se não encontrar nenhuma sigla de estado, retorna a string original
+ return lugar;
+ }
+
+ private String getData(String data) {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime dateTime = LocalDateTime.parse(data, formatter);
+ String formattedDate = dateTime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"));
+ return formattedDate;
+ }
+
+ private String getDataCompleta(String data) {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime dateTime = LocalDateTime.parse(data, formatter);
+ String formattedDate = dateTime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
+ return formattedDate;
+ }
+
+ public String getHora(String data) {
+ if(!data.isEmpty()) {
+ data = getData(data);
+ DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ Date dateFormatada = null;
+ try {
+ dateFormatada = format.parse(data);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ DateFormat outputFormat = new SimpleDateFormat("HH:mm");
+ String dataDiaMes = outputFormat.format(dateFormatada);
+ return dataDiaMes;
+ }
+
+ return "";
+ }
+
+ public static String capitalizeWords(String input) {
+ StringBuilder output = new StringBuilder();
+ boolean newWord = true;
+ if(input != null || !input.isEmpty()) {
+ 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 {
+ }
+
+ private String getSql(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String cliente, String empresa, String fecInicioViagem, String fecFinalViagem ) {
+
+ StringBuilder sql = new StringBuilder(3400);
+
+ sql.append(" SELECT ");
+ sql.append(" b.numfoliosistema AS numero_bilhete, ");
+ sql.append(" e.nombempresa AS razao_social, ");
+ sql.append(" e.cnpj AS cnpj, ");
+ sql.append(" CASE ");
+ sql.append(" WHEN ((b.DESCNUMDOC IS NOT NULL OR c.NUMIDENTIFICAUNO IS NOT NULL) AND c.TIPOIDENTIFICAUNO_ID = 13) ");
+ sql.append(" THEN nvl(b.descnumdoc, c.numidentificauno) ");
+ sql.append(" WHEN ((b.descnumdoc2 IS NOT NULL OR c.NUMIDENTIFICADOS IS NOT NULL) AND c.TIPOIDENTIFICADOS_ID = 13) ");
+ 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 'DefÃciente' ");
+ sql.append(" ELSE '' ");
+ sql.append(" END AS tipo_desconto_benefÃcio, ");
+ 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) ");
+ sql.append(" THEN nvl(b.descnumdoc, c.numidentificauno) ");
+ sql.append(" ELSE '' ");
+ sql.append(" END AS numero_identidade, ");
+ sql.append(" '' AS orgao_expedidor, ");
+ sql.append(" CASE ");
+ sql.append(" WHEN ((b.DESCNUMDOC IS NOT NULL OR c.NUMIDENTIFICAUNO IS NOT NULL) AND c.TIPOIDENTIFICAUNO_ID = 2) ");
+ sql.append(" THEN nvl(b.descnumdoc, c.numidentificauno) ");
+ sql.append(" ELSE '' ");
+ sql.append(" END AS cpf_passageiro, ");
+ sql.append(" b.numasiento AS numero_poltrona, ");
+ sql.append(" nvl(b.fechorviaje, '') AS data_viagem, ");
+ sql.append(" r.prefixo AS numero_linha, ");
+ sql.append(" r.descruta AS denominacao_linha, ");
+ sql.append(" ori.descparada AS local_origem, ");
+ 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(" cs.descclase AS natureza_servico ");
+ sql.append("FROM ");
+ sql.append(" boleto b ");
+ sql.append(" LEFT JOIN BPE bpe ON (bpe.boleto_id = b.boleto_id AND bpe.activo = 1) ");
+ sql.append(" LEFT JOIN empresa e ON (e.empresa_id = b.empresacorrida_id) ");
+ sql.append(" LEFT JOIN parada ori ON (ori.parada_id = b.origen_id) ");
+ sql.append(" LEFT JOIN parada des ON (des.parada_id = b.destino_id) ");
+ sql.append(" LEFT JOIN ruta r ON (r.ruta_id = b.ruta_id) ");
+ 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("WHERE ");
+ sql.append(" ( b.motivocancelacion_id NOT IN ( 4 ) ");
+ sql.append(" OR b.motivocancelacion_id IS NULL ) ");
+ sql.append(" AND b.categoria_id in (5,7) ");
+ sql.append(" AND r.orgaoconcedente_id = 16 ");
+
+ if( fecInicioVenda != null && fecFinalVenda !=null ){
+ sql.append(" AND b.fechorventa BETWEEN :fecInicioVenda AND :fecFinalVenda ");
+ }
+
+ if( fecInicioViagem != null && fecFinalViagem !=null ){
+ sql.append(" AND b.fechorviaje BETWEEN :fecInicioViagem AND :fecFinalViagem ");
+ }
+
+ if (!empresa.isEmpty()){
+ sql.append("AND b.empresacorrida_id =:empresa_id ");
+ }
+
+ if (linha != null && !linha.equals("Todas")) {
+ sql.append(" AND b.ruta_id in (").append(linha).append(") ");
+ }
+
+ sql.append(" ORDER BY ");
+ sql.append(" b.fechorviaje, ");
+ sql.append(" ori.descparada, ");
+ sql.append(" des.descparada, ");
+ sql.append(" b.nombpasajero ");
+
+ return sql.toString();
+ }
+
+}
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_es.properties
new file mode 100644
index 000000000..73bc5ed08
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_es.properties
@@ -0,0 +1,39 @@
+#geral
+msg.noData=Não foi possivel obter dados com os parâmetros informados.
+msg.a=à
+
+#Labels header
+header.periodo=Período:
+header.data.hora=Data/Hora\:
+header.pagina=Página\:
+header.filtro=Filtro\:
+header.filtro.servico=Serviço\:
+header.filtro.linha=Linha\:
+header.filtro.grupo=Grupo de Linhas\:
+header.empresa=Empresa\:
+header.periodo.viagem=Período Viagem
+header.periodo.venda=Período Venda
+header.tipopassagem=Tipo Passagem\:
+
+#Labels label
+label.bilhete=numero_bilhete
+label.empresa=razao_social
+label.cnpj=cnpj
+label.pass=numero_passaporte
+label.tipoDesconto=tipo_desconto_benefício
+label.passageiro=nome_passageiro
+label.identidade=numero_identidade
+label.orgaoex=orgao_expedidor
+label.cpf=cpf_passageiro
+label.poltrona=cpf_passageiro
+label.dataViagem=data_viagem
+label.mesRef=mes_ano_referencia
+label.hora=horario_viagem
+label.numeroLinha=numero_linha
+label.descLinha=denominacao_linha
+label.origem=local_origem
+label.destino=local_destino
+label.tarifa=valor_passagem
+label.cheBPE=chave_acesso_bpe
+label.linkBPE=imagem_bpe
+label.tipoServico=natureza_servico
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_pt_BR.properties
new file mode 100644
index 000000000..4472a4de2
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassagensAGR_pt_BR.properties
@@ -0,0 +1,39 @@
+#geral
+msg.noData=Não foi possivel obter dados com os parâmetros informados.
+msg.a=à
+
+#Labels header
+header.periodo=Período:
+header.data.hora=Data/Hora\:
+header.pagina=Página\:
+header.filtro=Filtro\:
+header.filtro.servico=Serviço\:
+header.filtro.linha=Linha\:
+header.filtro.grupo=Grupo de Linhas\:
+header.empresa=Empresa\:
+header.periodo.viagem=Período Viagem
+header.periodo.venda=Período Venda
+header.tipopassagem=Tipo Passagem\:
+
+#Labels label
+label.bilhete=numero_bilhete
+label.empresa=razao_social
+label.cnpj=cnpj
+label.pass=numero_passaporte
+label.tipoDesconto=tipo_desconto_benefício
+label.passageiro=nome_passageiro
+label.identidade=numero_identidade
+label.orgaoex=orgao_expedidor
+label.cpf=cpf_passageiro
+label.poltrona=cpf_passageiro
+label.dataViagem=data_viagem
+label.mesRef=mes_ano_referencia
+label.hora=horario_viagem
+label.numeroLinha=numero_linha
+label.descLinha=denominacao_linha
+label.origem=local_origem
+label.destino=local_destino
+label.tarifa=valor_passagem
+label.cheBPE=chave_acesso_bpe
+label.linkBPE=imagem_bpe
+label.tipoServico=natureza_servico
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jasper
new file mode 100644
index 000000000..a2dbb203b
Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jasper differ
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jrxml
new file mode 100644
index 000000000..8d852df96
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassagensAGR.jrxml
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioPassagensAGRBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioPassagensAGRBean.java
new file mode 100644
index 000000000..c239471ed
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioPassagensAGRBean.java
@@ -0,0 +1,156 @@
+package com.rjconsultores.ventaboletos.relatorios.utilitarios;
+
+public class RelatorioPassagensAGRBean {
+
+ private String numeroBilhete;
+ private String razaoSocial;
+ private String cnpj;
+ private String numeroPassaporte;
+ private String tipoDescontoBenefÃcio;
+
+ private String nomePassageiro;
+ private String numeroIdentidade;
+ private String orgaoExpedidor;
+ private String cpfPassageiro;
+ private String numeroPoltrona;
+ private String dataViagem;
+ private String mesViagem;
+ private String horaViagem;
+
+ private String numeroLinha;
+ private String denominacaoLinha;
+ private String localOrigem;
+ private String localDestino;
+ private String valorPassagem;
+ private String chaveAcessoBPE;
+ private String imagemBPE;
+ private String naturezaServico;
+
+ public String getNumeroBilhete() {
+ return numeroBilhete;
+ }
+ public void setNumeroBilhete(String numeroBilhete) {
+ this.numeroBilhete = numeroBilhete;
+ }
+ public String getRazaoSocial() {
+ return razaoSocial;
+ }
+ public void setRazaoSocial(String razaoSocial) {
+ this.razaoSocial = razaoSocial;
+ }
+ public String getCnpj() {
+ return cnpj;
+ }
+ public void setCnpj(String cnpj) {
+ this.cnpj = cnpj;
+ }
+ public String getNumeroPassaporte() {
+ return numeroPassaporte;
+ }
+ public void setNumeroPassaporte(String numeroPassaporte) {
+ this.numeroPassaporte = numeroPassaporte;
+ }
+ public String getTipoDescontoBenefÃcio() {
+ return tipoDescontoBenefÃcio;
+ }
+ public void setTipoDescontoBenefÃcio(String tipoDescontoBenefÃcio) {
+ this.tipoDescontoBenefÃcio = tipoDescontoBenefÃcio;
+ }
+ public String getNomePassageiro() {
+ return nomePassageiro;
+ }
+ public void setNomePassageiro(String nomePassageiro) {
+ this.nomePassageiro = nomePassageiro;
+ }
+ public String getNumeroIdentidade() {
+ return numeroIdentidade;
+ }
+ public void setNumeroIdentidade(String numeroIdentidade) {
+ this.numeroIdentidade = numeroIdentidade;
+ }
+ public String getOrgaoExpedidor() {
+ return orgaoExpedidor;
+ }
+ public void setOrgaoExpedidor(String orgaoExpedidor) {
+ this.orgaoExpedidor = orgaoExpedidor;
+ }
+ public String getCpfPassageiro() {
+ return cpfPassageiro;
+ }
+ public void setCpfPassageiro(String cpfPassageiro) {
+ this.cpfPassageiro = cpfPassageiro;
+ }
+ public String getNumeroPoltrona() {
+ return numeroPoltrona;
+ }
+ public void setNumeroPoltrona(String numeroPoltrona) {
+ this.numeroPoltrona = numeroPoltrona;
+ }
+ public String getDataViagem() {
+ return dataViagem;
+ }
+ public void setDataViagem(String dataViagem) {
+ this.dataViagem = dataViagem;
+ }
+ public String getMesViagem() {
+ return mesViagem;
+ }
+ public void setMesViagem(String mesViagem) {
+ this.mesViagem = mesViagem;
+ }
+ public String getHoraViagem() {
+ return horaViagem;
+ }
+ public void setHoraViagem(String horaViagem) {
+ this.horaViagem = horaViagem;
+ }
+ public String getNumeroLinha() {
+ return numeroLinha;
+ }
+ public void setNumeroLinha(String numeroLinha) {
+ this.numeroLinha = numeroLinha;
+ }
+ public String getDenominacaoLinha() {
+ return denominacaoLinha;
+ }
+ public void setDenominacaoLinha(String denominacaoLinha) {
+ this.denominacaoLinha = denominacaoLinha;
+ }
+ public String getLocalOrigem() {
+ return localOrigem;
+ }
+ public void setLocalOrigem(String localOrigem) {
+ this.localOrigem = localOrigem;
+ }
+ public String getLocalDestino() {
+ return localDestino;
+ }
+ public void setLocalDestino(String localDestino) {
+ this.localDestino = localDestino;
+ }
+ public String getValorPassagem() {
+ return valorPassagem;
+ }
+ public void setValorPassagem(String valorPassagem) {
+ this.valorPassagem = valorPassagem;
+ }
+ public String getChaveAcessoBPE() {
+ return chaveAcessoBPE;
+ }
+ public void setChaveAcessoBPE(String chaveAcessoBPE) {
+ this.chaveAcessoBPE = chaveAcessoBPE;
+ }
+ public String getImagemBPE() {
+ return imagemBPE;
+ }
+ public void setImagemBPE(String imagemBPE) {
+ this.imagemBPE = imagemBPE;
+ }
+ public String getNaturezaServico() {
+ return naturezaServico;
+ }
+ public void setNaturezaServico(String naturezaServico) {
+ this.naturezaServico = naturezaServico;
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassagensAGRController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassagensAGRController.java
new file mode 100644
index 000000000..181e05b9a
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassagensAGRController.java
@@ -0,0 +1,390 @@
+package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Controller;
+import org.zkoss.util.resource.Labels;
+import org.zkoss.zhtml.Messagebox;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zul.Datebox;
+import org.zkoss.zul.Paging;
+import org.zkoss.zul.Radiogroup;
+import org.zkoss.zul.Textbox;
+
+import com.rjconsultores.ventaboletos.entidad.Categoria;
+import com.rjconsultores.ventaboletos.entidad.Cliente;
+import com.rjconsultores.ventaboletos.entidad.Empresa;
+import com.rjconsultores.ventaboletos.entidad.Ruta;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassagensAGR;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
+import com.rjconsultores.ventaboletos.service.CategoriaService;
+import com.rjconsultores.ventaboletos.service.EmpresaService;
+import com.rjconsultores.ventaboletos.service.RutaService;
+import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
+import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
+import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
+import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;
+import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
+import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
+import com.rjconsultores.ventaboletos.web.utilerias.render.RenderClienteSimples;
+import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioLinhaHorario;
+import com.trg.search.Filter;
+
+@Controller("relatorioPassagensAGRController")
+@Scope("prototype")
+public class RelatorioPassagensAGRController extends MyGenericForwardComposer {
+ private static final long serialVersionUID = 1L;
+
+ @Autowired
+ private DataSource dataSourceRead;
+ @Autowired
+ private CategoriaService categoriaService;
+ @Autowired
+ private EmpresaService empresaService;
+ @Autowired
+ private RutaService rutaService;
+ @Autowired
+ private transient PagedListWrapper plwCliente;
+
+ private MyTextbox txtCliente;
+ private Paging pagingCliente;
+ private MyListbox clienteList;
+ private MyListbox clienteSelList;
+
+ private Datebox datInicialVenda;
+ private Datebox datFinalVenda;
+ private Datebox datInicialViagem;
+ private Datebox datFinalViagem;
+ private MyComboboxEstandar cmbEmpresa;
+ private MyComboboxEstandar cmbTipoGratuidade;
+ private Radiogroup rgLayout;
+
+ private List lsCategorias;
+ private List lsEmpresas;
+
+ private Textbox txtPalavraPesquisaLinha;
+ private MyListbox linhaList;
+ private MyListbox linhaListSelList;
+ private MyListbox selectedTipoGratuidadeList;
+
+ private List listSelectedTipoGratuidade;
+
+ public void onClick$btnRemoveTipoGratuidade(Event ev) throws InterruptedException {
+ Categoria categoria = (Categoria) selectedTipoGratuidadeList.getSelectedItem().getValue();
+ listSelectedTipoGratuidade.remove(categoria);
+ selectedTipoGratuidadeList.setData(listSelectedTipoGratuidade);
+ }
+
+ public void onClick$btnAddTipoTipoGratuidade(Event ev) throws InterruptedException {
+ if (cmbTipoGratuidade.getSelectedItem() != null) {
+ listSelectedTipoGratuidade.add((Categoria) cmbTipoGratuidade.getSelectedItem().getValue());
+ selectedTipoGratuidadeList.setData(listSelectedTipoGratuidade);
+ selectedTipoGratuidadeList.setSelectedItem(null);
+ }
+ }
+
+ public void onClick$btnPesquisaLinha(Event ev) {
+ executarPesquisaLinha();
+ }
+
+ public void onClick$btnLimparLinha(Event ev) {
+ linhaList.clearSelection();
+ linhaListSelList.setData(new ArrayList());
+
+ linhaList.setItemRenderer(new RenderRelatorioLinhaHorario());
+ linhaListSelList.setItemRenderer(new RenderRelatorioLinhaHorario());
+ }
+
+ public void onDoubleClick$linhaList(Event ev) {
+ linhaListSelList.addItemNovo(linhaList.getSelected());
+ }
+
+ private void executarPesquisaLinha() {
+
+ String palavraPesquisaRuta = txtPalavraPesquisaLinha.getText();
+ linhaList.setData(rutaService.buscaRuta(palavraPesquisaRuta));
+
+ if (linhaList.getData().length == 0) {
+ try {
+ Messagebox.show(Labels.getLabel("MSG.ningunRegistro"),
+ Labels.getLabel("relatorioLinhasHorarioController.window.title"),
+ Messagebox.OK, Messagebox.INFORMATION);
+ } catch (InterruptedException ex) {
+ }
+ }
+ }
+
+ private void executarRelatorio() throws Exception {
+
+ Map parametros = new HashMap();
+
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+ if (this.datInicialVenda.getValue() != null) {
+ parametros.put("fecInicioVenda", sdf.format(this.datInicialVenda.getValue()));
+ }
+
+ if (this.datFinalVenda.getValue() != null) {
+ parametros.put("fecFinalVenda", sdf.format(this.datFinalVenda.getValue()));
+ }
+
+ if (this.datInicialViagem.getValue() != null) {
+ parametros.put("fecInicioViagem", sdf.format(this.datInicialViagem.getValue()));
+ }
+
+ if (this.datFinalViagem.getValue() != null) {
+ parametros.put("fecFinalViagem", sdf.format(this.datFinalViagem.getValue()));
+ }
+
+ if ( (parametros.get("fecInicioVenda") == null && parametros.get("fecFinalVenda") == null) &&
+ (parametros.get("fecInicioViagem") == null && parametros.get("fecFinalViagem") == null)) {
+ Messagebox.show(Labels.getLabel("relatorioPassagensAGRController.data.obrigatoria"),
+ Labels.getLabel("relatorioGratuidadeController.window.title"),
+ Messagebox.OK, Messagebox.INFORMATION);
+ return;
+ }
+
+ StringBuilder tipGratu = new StringBuilder();
+ StringBuilder tipGratuIds = new StringBuilder();
+ if (selectedTipoGratuidadeList == null || selectedTipoGratuidadeList.getListData().isEmpty()) {
+ tipGratu.append("Todas;");
+ tipGratuIds.append("Todas;");
+ } else {
+ for (Categoria categoria : listSelectedTipoGratuidade) {
+ tipGratu.append(categoria.getDesccategoria()).append(",");
+ tipGratuIds.append(categoria.getCategoriaId()).append(",");
+ }
+ }
+
+ // removendo ultima virgula
+ tipGratuIds = tipGratuIds.delete(tipGratuIds.length() -1, tipGratuIds.length());
+ tipGratu = tipGratu.delete(tipGratu.length() -1, tipGratu.length());
+
+ parametros.put("tipGratu", tipGratu.append(";").toString());
+ parametros.put("tipGratuIds", tipGratuIds.toString());
+
+ StringBuilder linhas = new StringBuilder();
+ StringBuilder linhaIds = new StringBuilder();
+
+ if (linhaListSelList.getListData().isEmpty()) {
+ linhas.append("Todas");
+ linhaIds.append("Todas");
+ } else {
+ for (Object obj : linhaListSelList.getListData()) {
+ Ruta ruta = (Ruta)obj;
+ linhas.append(ruta.getDescruta()).append(",");
+ linhaIds.append(ruta.getRutaId()).append(",");
+ }
+
+ // removendo ultima virgula
+ linhaIds = linhaIds.delete(linhaIds.length() -1, linhaIds.length());
+ linhas = linhas.delete(linhas.length() -1, linhas.length());
+ }
+
+ parametros.put("linhas", linhas.append(";").toString());
+ parametros.put("linhaIds", linhaIds.toString());
+
+ StringBuilder clientes = new StringBuilder();
+ StringBuilder clienteIds = new StringBuilder();
+
+ if (clienteSelList == null || clienteSelList.getListData().isEmpty()) {
+ clientes.append("Todas");
+ clienteIds.append("Todas");
+ } else {
+ for (Object obj : clienteSelList.getListData()) {
+ Cliente cliente = (Cliente)obj;
+ clientes.append(cliente.getNumIdentificaUno()).append(",");
+ clienteIds.append(cliente.getClienteId()).append(",");
+ }
+
+ // removendo ultima virgula
+ clienteIds = clienteIds.delete(clienteIds.length() -1, clienteIds.length());
+ clientes = clientes.delete(clientes.length() -1, clientes.length());
+ }
+
+ parametros.put("clientes", clientes.append(";").toString());
+ parametros.put("clienteIds", clienteIds.toString());
+
+ if (cmbEmpresa.getSelectedIndex() != -1) {
+ parametros.put("empresa", ((Empresa) cmbEmpresa.getSelectedItem().getValue()).getEmpresaId());
+ parametros.put("nomb_empresa", ((Empresa) cmbEmpresa.getSelectedItem().getValue()).getNombempresa());
+
+ }else{
+ parametros.put("nomb_empresa", "Todas" );
+ }
+
+ Relatorio relatorio;
+ relatorio = new RelatorioPassagensAGR(parametros, dataSourceRead.getConnection());
+ parametros.put("TITULO", Labels.getLabel("relatorioPassagensAGRController.window.title"));
+
+ Map args = new HashMap();
+ args.put("relatorio", relatorio);
+
+ openWindow("/component/reportView.zul",
+ Labels.getLabel("relatorioPassagensAGRController.window.title"), args, MODAL);
+
+ }
+
+ public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
+ executarRelatorio();
+ }
+
+ private void executarPesquisaCliente() {
+ HibernateSearchObject clienteBusqueda =
+ new HibernateSearchObject(Cliente.class, pagingCliente.getPageSize());
+ if(txtCliente.getValue() != null && !txtCliente.getValue().equals("") ){
+ Filter filterNome = new Filter("nombcliente", txtCliente.getValue() + "%", Filter.OP_ILIKE);
+ Filter filterCpf = new Filter("numIdentificaUno", txtCliente.getValue() + "%", Filter.OP_ILIKE);
+ Filter filterCpf2 = new Filter("numIdentificaDos", txtCliente.getValue() + "%", Filter.OP_ILIKE);
+
+ clienteBusqueda.addFilterOr( filterNome, filterCpf, filterCpf2 );
+ clienteBusqueda.addFilterEqual("activo", Boolean.TRUE);
+ clienteBusqueda.addSortAsc("nombcliente");
+
+ }
+ plwCliente.init(clienteBusqueda, clienteList, pagingCliente);
+ if (clienteList.getData().length == 0) {
+ try {
+ Messagebox.show(Labels.getLabel("MSG.ningunRegistro"),
+ Labels.getLabel("carteirinhaController.window.title"),
+ Messagebox.OK, Messagebox.INFORMATION);
+ } catch (InterruptedException ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ public void onClick$btnPesquisaCliente(Event ev) {
+ executarPesquisaCliente();
+ }
+
+ public void onDoubleClick$clienteList(Event ev) {
+ Cliente cliente = (Cliente) clienteList.getSelected();
+ clienteSelList.addItemNovo(cliente);
+ }
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ lsEmpresas = empresaService.obtenerTodos();
+ lsCategorias = categoriaService.obtenerTodos();
+ listSelectedTipoGratuidade = new ArrayList();
+
+ linhaList.setItemRenderer(new RenderRelatorioLinhaHorario());
+ linhaListSelList.setItemRenderer(new RenderRelatorioLinhaHorario());
+
+ }
+
+ public List getLsCategorias() {
+ return lsCategorias;
+ }
+
+ public void setLsCategorias(List lsCategorias) {
+ this.lsCategorias = lsCategorias;
+ }
+
+ public Datebox getDatInicialVenda() {
+ return datInicialVenda;
+ }
+
+ public void setDatInicialVenda(Datebox datInicialVenda) {
+ this.datInicialVenda = datInicialVenda;
+ }
+
+ public Datebox getDatFinalVenda() {
+ return datFinalVenda;
+ }
+
+ public void setDatFinalVenda(Datebox datFinalVenda) {
+ this.datFinalVenda = datFinalVenda;
+ }
+
+ public MyComboboxEstandar getCmbTipoGratuidade() {
+ return cmbTipoGratuidade;
+ }
+
+ public void setCmbTipoGratuidade(MyComboboxEstandar cmbTipoGratuidade) {
+ this.cmbTipoGratuidade = cmbTipoGratuidade;
+ }
+
+ public MyListbox getLinhaListSelList() {
+ return linhaListSelList;
+ }
+
+ public void setLinhaListSelList(MyListbox linhaListSelList) {
+ this.linhaListSelList = linhaListSelList;
+ }
+
+ public Textbox getTxtPalavraPesquisaLinha() {
+ return txtPalavraPesquisaLinha;
+ }
+
+ public void setTxtPalavraPesquisaLinha(Textbox txtPalavraPesquisaLinha) {
+ this.txtPalavraPesquisaLinha = txtPalavraPesquisaLinha;
+ }
+
+ public List getLsEmpresas() {
+ return lsEmpresas;
+ }
+
+ public void setLsEmpresas(List lsEmpresas) {
+ this.lsEmpresas = lsEmpresas;
+ }
+
+ public Datebox getDatInicialViagem() {
+ return datInicialViagem;
+ }
+
+ public void setDatInicialViagem(Datebox datInicialViagem) {
+ this.datInicialViagem = datInicialViagem;
+ }
+
+ public Datebox getDatFinalViagem() {
+ return datFinalViagem;
+ }
+
+ public void setDatFinalViagem(Datebox datFinalViagem) {
+ this.datFinalViagem = datFinalViagem;
+ }
+
+ public Radiogroup getRgLayout() {
+ return rgLayout;
+ }
+
+ public void setRgLayout(Radiogroup rgLayout) {
+ this.rgLayout = rgLayout;
+ }
+
+ public Paging getPagingCliente() {
+ return pagingCliente;
+ }
+
+ public void setPagingCliente(Paging pagingCliente) {
+ this.pagingCliente = pagingCliente;
+ }
+
+ public MyListbox getSelectedTipoGratuidadeList() {
+ return selectedTipoGratuidadeList;
+ }
+
+ public void setSelectedTipoGratuidadeList(MyListbox selectedTipoGratuidadeList) {
+ this.selectedTipoGratuidadeList = selectedTipoGratuidadeList;
+ }
+
+ public List getListSelectedTipoGratuidade() {
+ return listSelectedTipoGratuidade;
+ }
+
+ public void setListSelectedTipoGratuidade(List listSelectedTipoGratuidade) {
+ this.listSelectedTipoGratuidade = listSelectedTipoGratuidade;
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/estatisticos/SubMenuRelatorioAGR.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/estatisticos/SubMenuRelatorioAGR.java
new file mode 100644
index 000000000..950aa0d8e
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/estatisticos/SubMenuRelatorioAGR.java
@@ -0,0 +1,16 @@
+package com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.estatisticos;
+
+import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema;
+
+public class SubMenuRelatorioAGR extends DefaultItemMenuSistema {
+
+ public SubMenuRelatorioAGR() {
+ super("indexController.mnSubMenuAGR.label");
+ }
+
+ @Override
+ public String getClaveMenu() {
+ return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS";
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioPassagensAGR.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioPassagensAGR.java
new file mode 100644
index 000000000..9bdd15cda
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioPassagensAGR.java
@@ -0,0 +1,25 @@
+package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios;
+
+import org.zkoss.util.resource.Labels;
+
+import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;
+import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema;
+
+public class ItemMenuRelatorioPassagensAGR extends DefaultItemMenuSistema {
+
+ public ItemMenuRelatorioPassagensAGR() {
+ super("indexController.mniRelatorioPassagensAGR.label");
+ }
+
+ @Override
+ public String getClaveMenu() {
+ return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOPASSAGENSAGR";
+ }
+
+ @Override
+ public void ejecutar() {
+ PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioPassagensAGR.zul",
+ Labels.getLabel("relatorioPassagensAGRController.window.title"), getArgs() ,desktop);
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
index 923be32a4..cb1782ba1 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
+++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
@@ -192,7 +192,9 @@ analitico.gerenciais.estatisticos.passageirosViajar=com.rjconsultores.ventabolet
analitico.gerenciais.estatisticos.origemDestino=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioOrigemDestino
analitico.gerenciais.estatisticos.relatorioCorridas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCorridas
analitico.gerenciais.estatisticos.gratuidades=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeANTT
-analitico.gerenciais.estatisticos.gratuidadeAGR=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeAGR
+analitico.gerenciais.estatisticos.AGR=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.estatisticos.SubMenuRelatorioAGR
+analitico.gerenciais.estatisticos.AGR.gratuidadeAGR=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeAGR
+analitico.gerenciais.estatisticos.AGR.passagensAGR=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioPassagensAGR
analitico.gerenciais.estatisticos.gratuidadeARTESP=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeARTESP
analitico.gerenciais.estatisticos.AGER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.estatisticos.SubMenuRelatorioAGER
analitico.gerenciais.estatisticos.AGER.gratuidadeAGER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeAGER
diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label
index 1fd676bcf..8fe9d2ae1 100644
--- a/web/WEB-INF/i3-label_en.label
+++ b/web/WEB-INF/i3-label_en.label
@@ -346,6 +346,7 @@ indexController.mniRelatorioEncerramentoCheckin.label = Encerramento do Checkin
indexController.mniRelatorioGratuidade.label = Relatório Tipo Passagem
indexController.mniRelatorioGratuidadeANTT.label = Relatório Gratuidades ANTT
indexController.mniRelatorioGratuidadeAGR.label = Relatório Gratuidades AGR
+indexController.mniRelatorioPassagensAGR.label = AGR Tickets Report
indexController.mniRelatorioGratuidadeARTESP.label = Relatório Gratuidade ARTESP
indexController.mniRelatorioGratuidadeAGER.label = Relatório Gratuidade AGER
indexController.mniRelatorioPassagensAGER.label = Relatório Passagens AGER
@@ -8150,6 +8151,7 @@ relatorioGratuidadeANTTController.lvVenda = Venda
relatorioGratuidadeANTTController.lbOrgao.value = Orgão Concedente
# Relatório Gratuidade AGR
+indexController.mnSubMenuAGR.label=Report AGR
relatorioGratuidadeAGRController.window.title = Gratuidades AGR
relatorioGratuidadeAGRController.data.obrigatoria = Data inicial e Final são obrigatórias
relatorioGratuidadeAGRController.tipo.obrigatoria = Tipo de passagens é obrigatório
@@ -8179,6 +8181,36 @@ relatorioGratuidadeAGRController.lblDocumento2=Documento 2
relatorioGratuidadeAGRController.btnPesquisar= Pesquisar
relatorioGratuidadeAGRController.btnLimpar= Limpar
+# Export Report on AGR Passengers
+relatorioPassagensAGRController.window.title = AGR Gratuity Report
+relatorioPassagensAGRController.data.obrigatoria = Start and End Dates are mandatory
+relatorioPassagensAGRController.tipo.obrigatoria = Ticket Type is mandatory
+relatorioPassagensAGRController.lbEmpresa.value = Company
+relatorioPassagensAGRController.lbAgencia.value = Agency
+relatorioPassagensAGRController.lbLinha.value = Route
+relatorioPassagensAGRController.lbOrigem.value = Origin
+relatorioPassagensAGRController.lbDestino.value = Destination
+relatorioPassagensAGRController.lbTipoGratuidade.value = Ticket Types
+relatorioPassagensAGRController.lbDataIniVenda.value = Start Date of Sale
+relatorioPassagensAGRController.lbDataFinVenda.value = End Date of Sale
+relatorioPassagensAGRController.lbDataIniViagem.value = Start Date of Travel
+relatorioPassagensAGRController.lbDataFinViagem.value = End Date of Travel
+relatorioPassagensAGRController.btnPesquisa.value = Search
+relatorioPassagensAGRController.btnLimpar.value = Clear
+relatorioPassagensAGRController.lbNumRuta.value = Route Number
+relatorioPassagensAGRController.lbPrefixo.value = Prefix
+relatorioPassagensAGRController.lvVenda = Sale
+relatorioPassagensAGRController.lbOrgao.value = Granting Agency
+relatorioPassagensAGRController.lbTipoRelatorio.value=Type
+relatorioPassagensAGRController.lbTipoGeral.value=All
+relatorioPassagensAGRController.lbTipoCliente.value=Client
+relatorioPassagensAGRController.lblIdCliente=Id
+relatorioPassagensAGRController.lblCliente=Client
+relatorioPassagensAGRController.lblDocumento=Document
+relatorioPassagensAGRController.lblDocumento2=Document 2
+relatorioPassagensAGRController.btnPesquisar= Search
+relatorioPassagensAGRController.btnLimpar= Clear
+
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Bilhetes Vendidos
relatorioBilhetesVendidosController.lbDatInicial.value = Data Inicial
diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label
index 18e87e1af..56b70cd86 100644
--- a/web/WEB-INF/i3-label_es_MX.label
+++ b/web/WEB-INF/i3-label_es_MX.label
@@ -330,6 +330,7 @@ indexController.mniRelatorioEncerramentoCheckin.label = Encerramento do Checkin
indexController.mniRelatorioGratuidade.label = Gratuidades
indexController.mniRelatorioGratuidadeANTT.label = Gratuidades ANTT
indexController.mniRelatorioGratuidadeAGR.label = Gratuidades AGR
+indexController.mniRelatorioPassagensAGR.label = Relatório de Passagens AGR
indexController.mniRelatorioGratuidadeAGEPAN.label = Gratuidades AGEPAN
indexController.mniRelatorioExportacaoIdosoARTESP.label = Reporte Exportación Ancianos ARTESP
indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Gratuidades Idoso/Deficiente
@@ -9605,6 +9606,7 @@ relatorioGratuidadeAGEPANController.lvVenda = Venda
relatorioGratuidadeAGEPANController.lbOrgao.value = Orgão Concedente
# Relatório Gratuidade AGR
+indexController.mnSubMenuAGR.label=Relatório AGR
relatorioGratuidadeAGRController.window.title = Gratuidades AGR
relatorioGratuidadeAGRController.data.obrigatoria = Data inicial e Final são obrigatórias
relatorioGratuidadeAGRController.tipo.obrigatoria = Tipo de passagens é obrigatório
@@ -9634,6 +9636,36 @@ relatorioGratuidadeAGRController.lblDocumento2=Documento 2
relatorioGratuidadeAGRController.btnPesquisar= Pesquisar
relatorioGratuidadeAGRController.btnLimpar= Limpar
+# Relatório Exportacao Passagens AGR
+relatorioPassagensAGRController.window.title = Reporte de gratuidades AGR
+relatorioPassagensAGRController.data.obrigatoria = Fecha de inicio y fin son obligatorias
+relatorioPassagensAGRController.tipo.obrigatoria = El tipo de pasaje es obligatorio
+relatorioPassagensAGRController.lbEmpresa.value = Empresa
+relatorioPassagensAGRController.lbAgencia.value = Agencia
+relatorioPassagensAGRController.lbLinha.value = LÃnea
+relatorioPassagensAGRController.lbOrigem.value = Origen
+relatorioPassagensAGRController.lbDestino.value = Destino
+relatorioPassagensAGRController.lbTipoGratuidade.value = Tipos de Pasajes
+relatorioPassagensAGRController.lbDataIniVenda.value = Fecha Inicial de Venta
+relatorioPassagensAGRController.lbDataFinVenda.value = Fecha Final de Venta
+relatorioPassagensAGRController.lbDataIniViagem.value = Fecha Inicial de Viaje
+relatorioPassagensAGRController.lbDataFinViagem.value = Fecha Final de Viaje
+relatorioPassagensAGRController.btnPesquisa.value = Buscar
+relatorioPassagensAGRController.btnLimpar.value = Limpiar
+relatorioPassagensAGRController.lbNumRuta.value = Número de LÃnea
+relatorioPassagensAGRController.lbPrefixo.value = Prefijo
+relatorioPassagensAGRController.lvVenda = Venta
+relatorioPassagensAGRController.lbOrgao.value = Entidad Concedente
+relatorioPassagensAGRController.lbTipoRelatorio.value = Tipo
+relatorioPassagensAGRController.lbTipoGeral.value = General
+relatorioPassagensAGRController.lbTipoCliente.value = Cliente
+relatorioPassagensAGRController.lblIdCliente = ID
+relatorioPassagensAGRController.lblCliente = Cliente
+relatorioPassagensAGRController.lblDocumento = Documento
+relatorioPassagensAGRController.lblDocumento2 = Documento 2
+relatorioPassagensAGRController.btnPesquisar = Buscar
+relatorioPassagensAGRController.btnLimpar = Limpiar
+
#Relatorio de Vendas conexao por Linha
relatorioVendaConexaoRuta.window.title = Reporte Vendas Conexão Por Linha
diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label
index ecd3134f4..40f1708a8 100644
--- a/web/WEB-INF/i3-label_pt_BR.label
+++ b/web/WEB-INF/i3-label_pt_BR.label
@@ -346,6 +346,8 @@ indexController.mniRelatorioEncerramentoCheckin.label = Encerramento do Checkin
indexController.mniRelatorioGratuidade.label = Relatório Tipo Passagem
indexController.mniRelatorioGratuidadeANTT.label = Relatório Gratuidades ANTT
indexController.mniRelatorioGratuidadeAGR.label = Relatório Gratuidades AGR
+indexController.mniRelatorioPassagensAGR.label = Relatório Passagens AGR
+indexController.mnSubMenuAGR.label=Relatório AGR
indexController.mniRelatorioGratuidadeARTESP.label = Relatório Gratuidade ARTESP
indexController.mniRelatorioGratuidadeAGER.label = Relatório Gratuidade AGER
indexController.mniRelatorioPassagensAGER.label = Relatório Passagens AGER
@@ -8188,6 +8190,36 @@ relatorioGratuidadeAGRController.lblDocumento2=Documento 2
relatorioGratuidadeAGRController.btnPesquisar= Pesquisar
relatorioGratuidadeAGRController.btnLimpar= Limpar
+# Relatório Exportacao Passagens AGR
+relatorioPassagensAGRController.window.title = Passagens AGR
+relatorioPassagensAGRController.data.obrigatoria = Data inicial e Final são obrigatórias
+relatorioPassagensAGRController.tipo.obrigatoria = Tipo de passagens é obrigatório
+relatorioPassagensAGRController.lbEmpresa.value = Empresa
+relatorioPassagensAGRController.lbAgencia.value = Agência
+relatorioPassagensAGRController.lbLinha.value = Linha
+relatorioPassagensAGRController.lbOrigem.value = Origem
+relatorioPassagensAGRController.lbDestino.value = Destino
+relatorioPassagensAGRController.lbTipoGratuidade.value = Tipos de Passagens
+relatorioPassagensAGRController.lbDataIniVenda.value = Data Inicial Venda
+relatorioPassagensAGRController.lbDataFinVenda.value = Data Final Venda
+relatorioPassagensAGRController.lbDataIniViagem.value = Data Inicial Viagem
+relatorioPassagensAGRController.lbDataFinViagem.value = Data Final Viagem
+relatorioPassagensAGRController.btnPesquisa.value = Pesquisar
+relatorioPassagensAGRController.btnLimpar.value = Limpar
+relatorioPassagensAGRController.lbNumRuta.value = Num. Linha
+relatorioPassagensAGRController.lbPrefixo.value = Prefixo
+relatorioPassagensAGRController.lvVenda = Venda
+relatorioPassagensAGRController.lbOrgao.value = Orgão Concedente
+relatorioPassagensAGRController.lbTipoRelatorio.value=Tipo
+relatorioPassagensAGRController.lbTipoGeral.value=Geral
+relatorioPassagensAGRController.lbTipoCliente.value=Cliente
+relatorioPassagensAGRController.lblIdCliente=Id
+relatorioPassagensAGRController.lblCliente=Cliente
+relatorioPassagensAGRController.lblDocumento=Documento
+relatorioPassagensAGRController.lblDocumento2=Documento 2
+relatorioPassagensAGRController.btnPesquisar= Pesquisar
+relatorioPassagensAGRController.btnLimpar= Limpar
+
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Bilhetes Vendidos
relatorioBilhetesVendidosController.lbDatInicial.value = Data Inicial
diff --git a/web/gui/relatorios/filtroRelatorioPassagensAGR.zul b/web/gui/relatorios/filtroRelatorioPassagensAGR.zul
new file mode 100644
index 000000000..145bcb220
--- /dev/null
+++ b/web/gui/relatorios/filtroRelatorioPassagensAGR.zul
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file