diff --git a/pom.xml b/pom.xml
index 7def9ceb7..cff9e9ead 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.9.1
+ 1.9.2
war
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassageirosViajarDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassageirosViajarDetalhado.java
new file mode 100644
index 000000000..303162fb3
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPassageirosViajarDetalhado.java
@@ -0,0 +1,93 @@
+package com.rjconsultores.ventaboletos.relatorios.impl;
+
+import java.sql.Connection;
+import java.util.Date;
+import java.sql.ResultSet;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
+import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
+
+public class RelatorioPassageirosViajarDetalhado extends Relatorio {
+
+ public RelatorioPassageirosViajarDetalhado(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);
+
+ NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
+ ResultSet rset = stmt.executeQuery();
+
+ while (rset.next()) {
+ Map dataResult = new HashMap();
+
+ dataResult.put("NUMERO", rset.getString("NUMERO"));
+ dataResult.put("NOME", trataCampoNull(rset.getString("NOME")));
+ dataResult.put("RG", trataCampoNull(rset.getString("RG")));
+ dataResult.put("LOCALIZADOR", trataCampoNull(rset.getString("LOCALIZADOR")));
+ dataResult.put("ENDERECO", trataCampoNull(rset.getString("ENDERECO")));
+ dataResult.put("NUMTELEFONO", trataCampoNull(rset.getString("NUMTELEFONO")));
+ dataResult.put("AGENTE", trataCampoNull(rset.getString("AGENTE")));
+ dataResult.put("CONTROLE", trataCampoNull(rset.getString("CONTROLE")));
+ this.dados.add(dataResult);
+ }
+
+ this.resultSet = rset;
+ }
+ });
+ }
+
+ @Override
+ protected void processaParametros() throws Exception {
+ }
+
+ private String getSql(Map parametros) {
+
+ StringBuilder sql = new StringBuilder();
+
+ String formatToDate = ("'dd/MM/yyyy hh24:mi:ss'");
+ SimpleDateFormat formatSemHora = new SimpleDateFormat("dd/MM/yyyy");
+
+ Date dataCadastroInicial = (Date) parametros.get("DATA_INICIO");
+ Date dataCadastroFinal = (Date) parametros.get("DATA_FINAL");
+ String passagemAberta = (String) parametros.get("PASSAGEM_ABERTA");
+ String empresaId = (String) parametros.get("EMPRESA_ID");
+ String categorias = (String) parametros.get("LS_CATEGORIA");
+ Integer usuario = (Integer) parametros.get("USUARIO");
+
+ sql.append(" SELECT ROWNUM AS NUMERO, ");
+ sql.append(" B.NOMBPASAJERO AS NOME, ");
+ sql.append(" CASE B.DESCTIPODOC WHEN 'RG' THEN B.DESCNUMDOC END AS RG, ");
+ sql.append(" COALESCE(B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS LOCALIZADOR, ");
+ sql.append(" CD.DESCCALLE AS ENDERECO, ");
+ sql.append(" C.NUMTELEFONO, ");
+ sql.append(" U.CVEUSUARIO AS AGENTE, ");
+ sql.append(" '''' AS CONTROLE ");
+ sql.append(" FROM BOLETO B INNER JOIN USUARIO U ON (B.USUARIO_ID = U.USUARIO_ID) ");
+ sql.append(" LEFT JOIN CLIENTE C ON (B.CLIENTE_ID = C.CLIENTE_ID) ");
+ sql.append(" LEFT JOIN CLIENTE_DIRECCION CD ON (C.CLIENTE_ID = CD.CLIENTE_ID) ");
+ sql.append("WHERE B.TIPOVENTA_ID = 15 ");
+ if (dataCadastroInicial != null && dataCadastroFinal != null) {
+ sql.append("AND B.FECCREACION BETWEEN TO_DATE('" + formatSemHora.format(dataCadastroInicial) + " 00:00:00', " + formatToDate + ") "
+ + "AND TO_DATE('" + formatSemHora.format(dataCadastroFinal) + " 23:59:59', " + formatToDate + ") ");
+ }
+ return sql.toString();
+ }
+
+ private String trataCampoNull(String campo) {
+ if (campo != null && !campo.isEmpty() && campo.equalsIgnoreCase("null")) {
+ return "";
+ }
+ return campo;
+ }
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_es.properties
new file mode 100644
index 000000000..3ed1b04c8
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_es.properties
@@ -0,0 +1,21 @@
+#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.numero=Nº
+label.nome=NOME
+label.RG=RG
+label.LOCALIZAODR=VOO / LOCALIZADOR
+label.ENDERECO=ENDEREÇO
+label.TELEFONE=TELEFONE
+label.AGENTE=AGENTE
+label.CONTROLE=CONTROLE
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_pt_BR.properties
new file mode 100644
index 000000000..17ddf4fc8
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPassageirosViajarDetalhado_pt_BR.properties
@@ -0,0 +1,21 @@
+#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.numero=Nº
+label.nome=NOME
+label.RG=RG
+label.LOCALIZAODR=VOO / LOCALIZADOR
+label.ENDERECO=ENDEREÇO
+label.TELEFONE=TELEFONE
+label.AGENTE=AGENTE
+label.CONTROLE=CONTROLE
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jasper
new file mode 100644
index 000000000..16615e216
Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jasper differ
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jrxml
new file mode 100644
index 000000000..bfc1d3cb2
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPassageirosViajarDetalhado.jrxml
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassageirosViajarController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassageirosViajarController.java
index 4f534f278..e4d5e6041 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassageirosViajarController.java
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioPassageirosViajarController.java
@@ -28,6 +28,7 @@ import org.zkoss.zul.Textbox;
import com.rjconsultores.ventaboletos.entidad.Categoria;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassageirosViajar;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassageirosViajarDetalhado;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.CategoriaService;
import com.rjconsultores.ventaboletos.service.EmpresaService;
@@ -158,6 +159,10 @@ public class RelatorioPassageirosViajarController extends MyGenericForwardCompos
public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
executarRelatorio();
}
+
+ public void onClick$btnExecutarRelatorioDetalhado(Event ev) throws Exception {
+ executarRelatorioDetalhado();
+ }
public void onSelect$categoriaList(Event ev) {
@@ -249,6 +254,53 @@ public class RelatorioPassageirosViajarController extends MyGenericForwardCompos
Labels.getLabel("relatorioPassageirosViajarController.window.title"), args, MODAL);
}
+
+ private void executarRelatorioDetalhado() throws Exception {
+
+ Map parametros = new HashMap();
+
+ parametros.put("DATA_INICIO", datInicial.getValue());
+ parametros.put("DATA_FINAL", datFinal.getValue());
+ String passagemAberta = " and (B.feccorrida is null and B.corrida_id is null) ";
+ if (!chkPassageiroAberto.isChecked()) {
+ passagemAberta = " and (B.feccorrida is not null and B.corrida_id is not null) ";
+ }
+ parametros.put("PASSAGEM_ABERTA", passagemAberta);
+ Empresa e = (Empresa) cmbEmpresa.getSelectedItem().getValue();
+ parametros.put("EMPRESA_ID", e.getEmpresaId().toString());
+
+ parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioCadastroClientesController.window.title"));
+ parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString());
+ parametros.put("USUARIO_NOME", UsuarioLogado.getUsuarioLogado().getNombusuario());
+
+ String strNumCategoria="";
+
+ StringBuilder sbCategoria = new StringBuilder("");
+ if (categoriaSelList.getData().length != 0){
+
+ lsNumCategoria = new ArrayList(Arrays.asList(categoriaSelList.getData()));
+
+ sbCategoria = new StringBuilder(" and B.categoria_id in ( ");
+ for (Categoria c : lsNumCategoria) {
+ sbCategoria.append(c.getCategoriaId().toString()).append(",");
+ }
+ sbCategoria.delete(sbCategoria.length()-1,sbCategoria.length());
+ sbCategoria.append(")");
+ }
+
+ parametros.put("LS_CATEGORIA", sbCategoria.toString());
+ parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId());
+
+ Relatorio relatorio = new RelatorioPassageirosViajarDetalhado(parametros, dataSourceRead.getConnection());
+
+ Map args = new HashMap();
+ args.put("relatorio", relatorio);
+
+ openWindow("/component/reportView.zul",
+ Labels.getLabel("relatorioPassageirosViajarController.window.title"), args, MODAL);
+
+ }
+
@Override
public void doAfterCompose(Component comp) throws Exception {
diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label
index 4d9daea1b..842b12dcd 100644
--- a/web/WEB-INF/i3-label_en.label
+++ b/web/WEB-INF/i3-label_en.label
@@ -94,6 +94,7 @@ lb.sigla = Currency
# Relatório
relatorio.lb.btnExecutarRelatorio = Executar Relatório
+relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Salvar Relatório
relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF
relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS
@@ -7826,6 +7827,7 @@ relatorioLinhaOperacionalController.lblEspecie.value = Espécie
#Relatorio Pasajeiros Viajar
relatorioPassageirosViajarController.window.title = Passageiros a viajar
+relatorioPassageirosViajarControllerDetalhado.window.title = LISTA DE PASSAGEIROS
relatorioPassageirosViajarController.lbDataIni.value = Data Inicial
relatorioPassageirosViajarController.lbDataFin.value = Data Final
relatorioPassageirosViajarController.lbEmpresa.value = Empresa
diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label
index 3479a1cfd..46df0800e 100644
--- a/web/WEB-INF/i3-label_es_MX.label
+++ b/web/WEB-INF/i3-label_es_MX.label
@@ -93,6 +93,7 @@ lb.sigla = Sigla
# Reporte
relatorio.lb.btnExecutarRelatorio = Ejecutar reporte
+relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Guardar reporte
relatorio.lb.btnSalvarRelatorioPdf = Guardar reporte en PDF
relatorio.lb.btnSalvarRelatorioXls = Guardar reporte en XLS
diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label
index edb59c917..9bd3ce1ba 100644
--- a/web/WEB-INF/i3-label_pt_BR.label
+++ b/web/WEB-INF/i3-label_pt_BR.label
@@ -94,6 +94,7 @@ lb.sigla = Sigla
# Relatório
relatorio.lb.btnExecutarRelatorio = Executar Relatório
+relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Salvar Relatório
relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF
relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS
diff --git a/web/gui/relatorios/filtroRelatorioPassageirosViajar.zul b/web/gui/relatorios/filtroRelatorioPassageirosViajar.zul
index 311d98e16..b6516d04e 100644
--- a/web/gui/relatorios/filtroRelatorioPassageirosViajar.zul
+++ b/web/gui/relatorios/filtroRelatorioPassageirosViajar.zul
@@ -98,6 +98,9 @@
+
+