diff --git a/pom.xml b/pom.xml index 2f110fb4d..c170ad31b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.10.1 + 1.10.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 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="96eded89-d7ca-4186-a91e-41fcd6baf278" mode="Transparent" x="0" y="0" width="457" height="41" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="14" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="041f4c8d-2436-490c-b906-77c8780b5425" x="-1" y="58" width="832" height="1"/> + </line> + <line> + <reportElement uuid="51d2aa74-94f4-440a-959f-2c9acc1902c7" positionType="Float" x="-1" y="78" width="832" height="1"/> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 c6136c1c8..76a501739 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 @@ -7829,6 +7830,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 ef92185f0..4cf302539 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 0b5ffae7f..6bf29d113 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 @@