From f869a0f46d5c6fd7888acf6797e5729ff6126bf8 Mon Sep 17 00:00:00 2001 From: "gleison.cruz" Date: Wed, 27 Mar 2024 09:13:27 -0300 Subject: [PATCH] fixes bug#AL-3818 --- pom.xml | 2 +- ...torioCheckinModoConsolidadoPorUsuario.java | 148 +++++++++ ...kinModoConsolidadoPorUsuario_es.properties | 24 ++ ...ModoConsolidadoPorUsuario_pt_BR.properties | 30 ++ ...rioCheckinModoConsolidadoPorUsuario.jasper | Bin 0 -> 36931 bytes ...orioCheckinModoConsolidadoPorUsuario.jrxml | 281 ++++++++++++++++++ .../RelatorioCheckinController.java | 14 +- web/gui/relatorios/filtroRelatorioCheckin.zul | 9 +- 8 files changed, 503 insertions(+), 5 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckinModoConsolidadoPorUsuario.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jrxml diff --git a/pom.xml b/pom.xml index ce5cfaedc..1708ed6af 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.61.3 + 1.61.4 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckinModoConsolidadoPorUsuario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckinModoConsolidadoPorUsuario.java new file mode 100644 index 000000000..915826469 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckinModoConsolidadoPorUsuario.java @@ -0,0 +1,148 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Checkin; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; + +public class RelatorioCheckinModoConsolidadoPorUsuario extends Relatorio { + + public RelatorioCheckinModoConsolidadoPorUsuario(Map parametros, Connection conexao) { + super(parametros, conexao); + } + + List lsInt; + + @Override + protected void processaParametros() throws Exception { + + Integer corridaId = (Integer) getParametros().get("CORRIDA_ID"); + Integer origenId = (Integer) getParametros().get("ORIGEN_ID"); + String idsBilheteiros = (String) getParametros().get("IDS_BILHETEIROS"); + Date fecInicio = (Date) getParametros().get("DATA_INICIAL"); + Date fecFinal = (Date) getParametros().get("DATA_FINAL"); + fecInicio = DateUtil.inicioFecha(fecInicio); + fecFinal = DateUtil.fimFecha(fecFinal); + + + if (StringUtils.isNotBlank(idsBilheteiros)) { + String []ls = idsBilheteiros.split(","); + lsInt = new ArrayList(); + for(String i : ls){ + lsInt.add(new Integer(Integer.parseInt(i.trim()))); + } + } + + String sql = getSql(corridaId, origenId, idsBilheteiros); + + PreparedStatement pstmt = getConexao().prepareStatement(sql); + + int index = 1; + pstmt.setTimestamp(index++, new java.sql.Timestamp(fecInicio.getTime())); + pstmt.setTimestamp(index++, new java.sql.Timestamp(fecFinal.getTime())); + + if (corridaId != null) { + pstmt.setInt(index++, corridaId); + } + + if (origenId != null) { + pstmt.setInt(index++, origenId); + } + + if (StringUtils.isNotBlank(idsBilheteiros)) { + for(int i = 0 ; i < lsInt.size() ; i++){ + pstmt.setInt(index++, lsInt.get(i));//Object("idsBilheteiros", lsInt.toArray()); + } + } + + List checkins = new ArrayList(); + + ResultSet rset = pstmt.executeQuery(); + while (rset.next()) { + + Checkin checkin = new Checkin(); + checkin.setBoletoId(rset.getLong("boleto_Id")); + checkin.setNumFolioSistema(rset.getString("numoperacion")); + checkin.setOrigen(rset.getString("descparada")); + checkin.setCorridaId(rset.getInt("corrida_id")); + checkin.setFeccorrida(rset.getTimestamp("feccorrida")); + checkin.setDataVenda(rset.getTimestamp("datavenda")); + checkin.setDataCancelado(rset.getTimestamp("datacancelado")); + checkin.setDataRemarcacao(rset.getTimestamp("dataremarcacao")); + checkin.setNombUsuario(rset.getString("nombusuario")); + checkin.setCveusuario(rset.getString("cveusuario")); + checkin.setUsuariovenda(rset.getString("usuariovenda")); + checkin.setUsuarioNowShow(rset.getString("usuarioNowShow")); + checkin.setUsuariocheckin(rset.getString("usuariocheckin")); + + checkins.add(checkin); + } + + setLsDadosRelatorio(checkins); + } + + public void setLsDadosRelatorio(List checkins) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(checkins)); + } + + private String getSql(Integer corridaId, Integer origenId, String idsBilheteiros) { + + StringBuffer sql = new StringBuffer(); + sql.append("select b.boleto_id, o.descparada, b.corrida_id, "); + sql.append(" case when b.numfoliosistema is not null "); + sql.append(" then b.numfoliosistema else b.numoperacion "); + sql.append(" end numoperacion, "); + sql.append(" b.feccorrida, "); + sql.append(" bc.datavenda, "); + sql.append(" bc.datacancelado, "); + sql.append(" bc.dataremarcacao, "); + sql.append(" u.cveusuario as usuariovenda, "); + sql.append(" uc.cveusuario as usuarioNowShow, "); + sql.append(" case when uca.cveusuario is not null then uca.cveusuario else ucr.cveusuario end as usuariocheckin, "); + sql.append(" u.cveusuario, "); + sql.append(" u.nombusuario "); + sql.append(" from boleto b left join boleto_checkin bc on (b.boleto_id = bc.boletooriginal_id) "); + sql.append(" inner join parada o on b.origen_id = o.parada_id "); + sql.append(" left join checkin_automatico ca on (ca.boleto_id = b.boleto_id)"); + sql.append(" left join checkin_cerrado cc on (cc.feccorrida = b.feccorrida and "); + sql.append(" cc.corrida_id = b.corrida_id and "); + sql.append(" cc.origen_id = b.origen_id) "); + //sql.append(" and cc.destino_id = b.destino_id) "); + sql.append(" left join usuario u on (u.usuario_id = b.usuario_id)"); + sql.append(" left join usuario uc on (uc.usuario_id = bc.usuario_id)"); + sql.append(" left join usuario uca on (uca.usuario_id = ca.usuario_id)"); + sql.append(" left join usuario ucr on (ucr.usuario_id = cc.usuario_id)"); + sql.append(""); + sql.append(" where b.activo = 1 "); + sql.append("and bc.FECMODIF between ? and ? "); + sql.append(corridaId == null ? "" : " and b.corrida_id = ? "); + sql.append(origenId == null ? "" : " and b.origen_id = ? "); + sql.append((lsInt == null || lsInt.size() == 0) ? "" : " and u.USUARIO_ID in ( "+ createIn(lsInt.size()) + ") "); + + sql.append(" order by 3, 4, 7 desc"); + + return sql.toString(); + } + + public String createIn(int n) { + if(n > 0){ + String str = StringUtils.repeat(" ? ,", n); + return str.substring(0, str.length()-1); + }else{ + return ""; + } + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_es.properties new file mode 100644 index 000000000..0c26637f0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_es.properties @@ -0,0 +1,24 @@ +#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: + +#Labels datail +datail.voucher=Nº Bilhete / Voucher +datail.origen=Origem do Serviço +datail.servicio=Serviço +datail.data.servicio=Data do Serviço +datail.data.checkin=Data Checkin +datail.bilheteiro=Bilheteiro +datail.data.remarcada=Data Remarcada +datail.cveusuario=Login +datail.usuariocheckin=Usuário Checkin +datail.usuarionowshow=Usuário Now Show diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_pt_BR.properties new file mode 100644 index 000000000..4cef72173 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckinModoConsolidadoPorUsuario_pt_BR.properties @@ -0,0 +1,30 @@ +#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: +#Labels header +cabecalho.pagina=Página\: +cabecalho.empresa=Empresa\: +cabecalho.bilheteiro = Bilheteiro(s)\: +cabecalho.usuario = Usuário\: + + +#Labels datail +datail.voucher=Nº Bilhete / Voucher +datail.origen=Origem do Serviço +datail.servicio=Serviço +datail.data.servicio=Data do Serviço +datail.data.checkin=Data Checkin +datail.bilheteiro=Bilheteiro +datail.data.remarcada=Data Remarcada +datail.cveusuario=Login +datail.usuariocheckin=Usuário Checkin +datail.usuarionowshow=Usuário Now Show \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jasper new file mode 100644 index 0000000000000000000000000000000000000000..23911aacc1056221ea3d9e4b92a1c64eec5359ca GIT binary patch literal 36931 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 literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jrxml new file mode 100644 index 000000000..c03ebb9fb --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckinModoConsolidadoPorUsuario.jrxml @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="83" splitType="Stretch"> + <line> + <reportElement uuid="b28df970-c219-4853-afeb-6821e0a44f04" x="0" y="80" width="873" height="3"/> + </line> + <textField> + <reportElement uuid="50c553a9-7292-44df-8b24-24eb14e98841" mode="Opaque" x="0" y="0" width="646" height="30" backcolor="#D7D7D7"/> + <textElement markup="styled"> + <font size="16" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="3cbad5ad-ea6f-4718-b7e5-a98dc6be0188" x="0" y="31" width="130" height="16"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.periodo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="6c12f1b5-cae1-4ea9-b674-703d0f3d2bdc" x="130" y="31" width="672" height="16"/> + <textElement/> + <textFieldExpression><![CDATA[($P{DATA_INICIAL} != null ? new java.text.SimpleDateFormat("dd/MM/yyyy").format($P{DATA_INICIAL}) : "") + +" à " + +($P{DATA_FINAL} != null ? new java.text.SimpleDateFormat("dd/MM/yyyy").format($P{DATA_FINAL}) : "")]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="64d65c79-be80-4596-b84e-e2c3c3ddaa8a" x="131" y="49" width="504" height="16" isRemoveLineWhenBlank="true"/> + <textElement/> + <textFieldExpression><![CDATA[$P{nombUsuario}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="cdd0af8e-575e-4afa-b68f-6d0812032d4b" x="0" y="49" width="130" height="16" isRemoveLineWhenBlank="true"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.usuario}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="17fabb43-59cc-4375-86a8-793ff7a67f50" mode="Opaque" x="817" y="15" width="29" height="15" backcolor="#D7D7D7"/> + <textElement textAlignment="Right"/> + <textFieldExpression><![CDATA[$V{PAGE_NUMBER}+" de"]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="e0a35762-56d1-4da2-a945-8ae4d5348bb7" mode="Opaque" x="646" y="15" width="132" height="15" backcolor="#D7D7D7"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.pagina}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm"> + <reportElement uuid="54f55cc3-21cb-482f-a58b-fca885e48517" mode="Opaque" x="778" y="0" width="97" height="15" backcolor="#D7D7D7"/> + <textElement textAlignment="Left"/> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField evaluationTime="Report"> + <reportElement uuid="d0201aca-580e-4359-9503-c579a43dcccd" mode="Opaque" x="846" y="15" width="29" height="15" backcolor="#D7D7D7"/> + <textElement textAlignment="Left"/> + <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="1ac071ee-3dcd-427a-909f-9d39e40c6708" mode="Opaque" x="646" y="0" width="132" height="15" backcolor="#D7D7D7"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.dataHora}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="fb1a5b0c-1e7e-443e-b0ff-db26c4ed289d" mode="Opaque" x="778" y="15" width="39" height="15" backcolor="#D7D7D7"/> + <textElement textAlignment="Right"/> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java index 1d26ea234..03833ada6 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java @@ -16,6 +16,7 @@ import org.zkoss.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Bandbox; +import org.zkoss.zul.Checkbox; import org.zkoss.zul.Comboitem; import org.zkoss.zul.ComboitemRenderer; import org.zkoss.zul.Datebox; @@ -26,6 +27,7 @@ import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Usuario; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCheckin; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCheckinModoConsolidadoPorUsuario; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; @@ -55,6 +57,7 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { private MyListbox usuarioSelList; private MyComboboxParada cmbParadaOrigem; private MyComboboxParadaCve cmbParadaOrigemCve; + private Checkbox chkConsolidadoPorUsuario; @@ -113,7 +116,9 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { } public void onClick$btnExecutarRelatorio(Event ev) throws Exception { - + + Relatorio relatorio; + List lsUsuariosSelecionados = new ArrayList(Arrays.asList(usuarioSelList.getData())); Integer origenId = cmbParadaOrigemCve.getSelectedItem() == null ? null @@ -152,8 +157,11 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { } parametros.put("IDS_BILHETEIROS", usuariosIds); - - Relatorio relatorio = new RelatorioCheckin(parametros, dataSourceRead.getConnection()); + if (chkConsolidadoPorUsuario.isChecked()) { + relatorio = new RelatorioCheckinModoConsolidadoPorUsuario(parametros, dataSourceRead.getConnection()); + }else { + relatorio = new RelatorioCheckin(parametros, dataSourceRead.getConnection()); + } Map args = new HashMap(); args.put("relatorio", relatorio); diff --git a/web/gui/relatorios/filtroRelatorioCheckin.zul b/web/gui/relatorios/filtroRelatorioCheckin.zul index 6b2285f89..94ba3b88f 100644 --- a/web/gui/relatorios/filtroRelatorioCheckin.zul +++ b/web/gui/relatorios/filtroRelatorioCheckin.zul @@ -113,7 +113,14 @@ - + + + + + + +