From a98291e30367ddcc7d78e9e17d3f21c80c25b782 Mon Sep 17 00:00:00 2001 From: edgar Date: Wed, 15 Jun 2016 23:01:51 +0000 Subject: [PATCH] fixes bug #0007445 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@56991 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioTripulacao.java | 188 +++++++++++ .../RelatorioTripulacao_es.properties | 17 + .../RelatorioTripulacao_pt.properties | 25 ++ .../templates/RelatorioEmpresaOnibus.jasper | Bin 35464 -> 35434 bytes .../templates/RelatorioEmpresaOnibus.jrxml | 4 +- .../templates/RelatorioTripulacao.jasper | Bin 0 -> 36995 bytes .../templates/RelatorioTripulacao.jrxml | 291 ++++++++++++++++++ .../utilitarios/RelatorioTripulacaoBean.java | 87 ++++++ .../RelatorioEmpresaOnibusController.java | 36 +-- .../RelatorioTripulacaoController.java | 129 ++++++++ .../relatorios/ItemRelatorioTripulacao.java | 25 ++ web/WEB-INF/i3-label_es_MX.label | 11 + web/WEB-INF/i3-label_pt_BR.label | 13 +- .../relatorios/filtroRelatorioTripulacao.zul | 66 ++++ 14 files changed, 871 insertions(+), 21 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTripulacao.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_pt.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioTripulacaoBean.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTripulacaoController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemRelatorioTripulacao.java create mode 100644 web/gui/relatorios/filtroRelatorioTripulacao.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTripulacao.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTripulacao.java new file mode 100644 index 000000000..61aca4b42 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTripulacao.java @@ -0,0 +1,188 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.entidad.Empleado; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.TipoEmpleado; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioTripulacaoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioTripulacao extends Relatorio { + private static final short CONDUCTOR1 = 0; + private static final short CONDUCTOR2 = 1; + private static final short GUARDIA1 = 2; + private static final short GUARDIA2 = 3; + + private Connection conexaoRelatorio; + private List lsDadosRelatorio; + + public RelatorioTripulacao(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + this.parametros = parametros; + this.lsDadosRelatorio = new ArrayList(); + this.conexaoRelatorio = conexao; + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + lsDadosRelatorio.addAll(executeStatement(CONDUCTOR1)); + lsDadosRelatorio.addAll(executeStatement(CONDUCTOR2)); + lsDadosRelatorio.addAll(executeStatement(GUARDIA1)); + lsDadosRelatorio.addAll(executeStatement(GUARDIA2)); + + setDadosRelatorio(lsDadosRelatorio); + } + }); + } + + private List executeStatement(Short tipoTripulacao) throws SQLException, ParseException { + Map parametros = this.getParametros(); + Empresa empresa = (Empresa) parametros.get("empresa"); + Empleado empleado = (Empleado) parametros.get("empleado"); + TipoEmpleado tipoEmpleado = (TipoEmpleado) parametros.get("tipoEmpleado"); + + Date fecInicio = (Date) parametros.get("fecInicio"); + Date fecFinal = (Date) parametros.get("fecFinal"); + + StringBuilder sql = new StringBuilder(getSelectClause()); + + switch (tipoTripulacao) { + case CONDUCTOR1: + sql.append(getSqlConductor1()); + break; + case CONDUCTOR2: + sql.append(getSqlConductor2()); + break; + case GUARDIA1: + sql.append(getSqlGuardian1()); + break; + default: + sql.append(getSqlGuardian2()); + break; + } + + sql.append(getWhereClause()); + + NamedParameterStatement stmt = new NamedParameterStatement(conexaoRelatorio, sql.toString()); + + stmt.setDate("fecInicio", new java.sql.Date(fecInicio.getTime())); + stmt.setDate("fecFinal", new java.sql.Date(fecFinal.getTime())); + + stmt.setString("tipoEmpleado", tipoEmpleado != null ? tipoEmpleado.getDescTipo() : null); + stmt.setLong("empleadoId", empleado != null ? empleado.getEmpleadoId() : 0); + stmt.setLong("empresaId", empresa != null ? empresa.getEmpresaId() : 0); + + System.out.println(sql.toString()); + + return getDataFromResultSet(stmt.executeQuery()); + } + + private List getDataFromResultSet(ResultSet result) throws SQLException { + List lsDadosRelatorio = new ArrayList(); + RelatorioTripulacaoBean relatorioTripulacaoBean; + while (result.next()) { + relatorioTripulacaoBean = new RelatorioTripulacaoBean(); + relatorioTripulacaoBean.setIdEmpleado(result.getLong("empleadoId")); + relatorioTripulacaoBean.setNomeEmpleado(result.getString("nomeEmpleado")); + relatorioTripulacaoBean.setTipoEmpleado(result.getString("tipoEmpleado")); + relatorioTripulacaoBean.setCorridaId(result.getLong("corridaId")); + relatorioTripulacaoBean.setFecha(result.getDate("fecha")); + relatorioTripulacaoBean.setNomeOrigem(result.getString("nomeOrigem")); + relatorioTripulacaoBean.setNomeDestino(result.getString("nomeDestino")); + relatorioTripulacaoBean.setDistanciaKm(result.getDouble("distanciaKm")); + relatorioTripulacaoBean.setNumSequencia(result.getLong("numSequencia")); + relatorioTripulacaoBean.setIdCorridaTramo(result.getLong("idCorridaTramo")); + relatorioTripulacaoBean.setHora(result.getString("hora")); + lsDadosRelatorio.add(relatorioTripulacaoBean); + } + return lsDadosRelatorio; + } + + private void setDadosRelatorio(Collection collection) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(collection)); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSelectClause() { + return "SELECT" + + " emp.EMPLEADO_ID empleadoId," + + " emp.NOMBEMPLEADO nomeEmpleado," + + " tipo.DESCTIPO tipoEmpleado," + + " corrida.corrida_Id corridaId," + + " corrida.feccorrida fecha," + + " origem.cveparada nomeOrigem," + + " destino.cveparada nomeDestino," + + " to_char(corridaTramo.fechorsalida, 'HH24:MI') hora," + + " tramo.cantkmreal distanciaKm," + + " corridaTramo.numsecuencia numSequencia," + + " corridaTramo.CORRIDATRAMO_ID idCorridaTramo" + + " FROM corrida corrida "; + } + + private String getWhereClause() { + return " WHERE corrida.activo = 1" + + " AND corrida.FECCORRIDA BETWEEN :fecInicio and :fecFinal" + + " AND (:tipoEmpleado IS NULL OR tipo.DESCTIPO = :tipoEmpleado)" + + " AND(:empleadoId =0 or emp.EMPLEADO_ID=:empleadoId)" + + " AND (:empresaId =0 OR (emp.EMPLEADO_ID IS NULL OR emp.EMPRESA_ID =:empresaId))" + + " ORDER BY NOMBEMPLEADO, corridaId, hora "; + } + + private String getSqlGuardian1() { + return " INNER JOIN corrida_tramo corridaTramo" + + " ON corridaTramo.corrida_id = corrida.corrida_id AND corrida.feccorrida = corridaTramo.feccorrida" + + " INNER JOIN tramo tramo ON tramo.tramo_id = corridaTramo.tramo_id" + + " INNER JOIN parada origem ON origem.parada_id = corridaTramo.origen_id" + + " INNER JOIN parada destino ON destino.parada_id = corridaTramo.destino_id" + + " INNER JOIN EMPLEADO emp ON emp.EMPLEADO_ID = corridaTramo.GUARDIA_ID" + + " INNER JOIN TIPO_EMPLEADO tipo ON tipo.TIPOEMPLEADO_ID = emp.TIPOEMPLEADO_ID "; + } + + private String getSqlGuardian2() { + return " INNER JOIN corrida_tramo corridaTramo" + + " ON corridaTramo.corrida_id = corrida.corrida_id AND corrida.feccorrida = corridaTramo.feccorrida" + + " INNER JOIN tramo tramo ON tramo.tramo_id = corridaTramo.tramo_id" + + " INNER JOIN parada origem ON origem.parada_id = corridaTramo.origen_id" + + " INNER JOIN parada destino ON destino.parada_id = corridaTramo.destino_id" + + " INNER JOIN EMPLEADO emp ON emp.EMPLEADO_ID = corridaTramo.GUARDIA2_ID" + + " INNER JOIN TIPO_EMPLEADO tipo ON tipo.TIPOEMPLEADO_ID = emp.TIPOEMPLEADO_ID "; + } + + private String getSqlConductor1() { + return " INNER JOIN corrida_tramo corridaTramo" + + " ON corridaTramo.corrida_id = corrida.corrida_id AND corrida.feccorrida = corridaTramo.feccorrida" + + " INNER JOIN tramo tramo ON tramo.tramo_id = corridaTramo.tramo_id" + + " INNER JOIN parada origem ON origem.parada_id = corridaTramo.origen_id" + + " INNER JOIN parada destino ON destino.parada_id = corridaTramo.destino_id" + + " INNER JOIN CONDUCTOR cond ON cond.CONDUCTOR_ID = corridaTramo.CONDUCTOR1_ID" + + " INNER JOIN EMPLEADO emp ON emp.EMPLEADO_ID = cond.EMPLEADO_ID" + + " INNER JOIN TIPO_EMPLEADO tipo ON tipo.TIPOEMPLEADO_ID = emp.TIPOEMPLEADO_ID "; + } + + private String getSqlConductor2() { + return " INNER JOIN corrida_tramo corridaTramo" + + " ON corridaTramo.corrida_id = corrida.corrida_id AND corrida.feccorrida = corridaTramo.feccorrida" + + " INNER JOIN tramo tramo ON tramo.tramo_id = corridaTramo.tramo_id" + + " INNER JOIN parada origem ON origem.parada_id = corridaTramo.origen_id" + + " INNER JOIN parada destino ON destino.parada_id = corridaTramo.destino_id" + + " INNER JOIN CONDUCTOR cond ON cond.CONDUCTOR_ID = corridaTramo.CONDUCTOR2_ID" + + " INNER JOIN EMPLEADO emp ON emp.EMPLEADO_ID = cond.EMPLEADO_ID" + + " INNER JOIN TIPO_EMPLEADO tipo ON tipo.TIPOEMPLEADO_ID = emp.TIPOEMPLEADO_ID "; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_es.properties new file mode 100644 index 000000000..0d04e037b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_es.properties @@ -0,0 +1,17 @@ +#geral +msg.noData=No se pudo obtener datos con los parámetros reportados. +msg.a=a + +#Labels header + +#Labels detail +detail.nomeEmpleado=Empleado +datail.tipoEmpleado=Tipo Empleado +detail.fecha=Fecha +detail.nomeOrigem=Origen +detail.nomeDestino=Destino +detail.hora=Hora +detail.distanciaKm=Kmts +detail.corridaId=Corrida + +linhas=Lineas \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_pt.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_pt.properties new file mode 100644 index 000000000..52ba002f7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTripulacao_pt.properties @@ -0,0 +1,25 @@ +#geral +msg.noData=No se pudo obtener datos con los parámetros reportados. +msg.a=a + +#Labels header +header.pagina=Página\: +header.data.hora=Data/Hora\: +label.empleadoId=Empregado +label.empleadoNome=Nome +label.tipoEmpregado=Tipo + +#Labels detail +detail.fecha=Data +detail.nomeOrigem=Origen +detail.nomeDestino=Destino +detail.hora=Hora +detail.distanciaKm=Distância Km +detail.corridaId=Corrida + +#filtros +filtro.periodo=Período +filtro.empregado=Empregado +filtro.empresa=Empresa +filtro.tipoEmpregado=Tipo Empregado +linhas=Lineas diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jasper index 19357bf92cbb0140e10f96b22437c480b1796225..4ffbcf9dc6e7df38ab604f9950e178a900880dcf 100644 GIT binary patch delta 4874 zcmZ{ne{5UT702Io5+`j^2uYL1c78Oeqohelo0gi&!6WeJ?TH?B~M?LH~ zwcUYKHSRPtXsIe~cYr_}(Nd;yFxoJV8+jK(}w7|VjmSO^y5^Jsjg-Axwh#rB+J|0A%+@EqFn zXSC<3!d@0k_Cm1OKZo|8c62iP`!~Ai(53?t!pnew;SwV7XGGws0zno`2tu$RTtbAn zyBiVO=q2}vgm48AFkD6i{)`AbRUpWM2|)-Jgv*FNOayOr{FO^n7l0ycWmHkLU6U%izP=VqtaNI$R)? zUC5^jQf&h+ux2io&!>}#K$1^bdc61b3UZ6qR&_4r2FeL>P%`7B7q;o{R@Nzk!Nq%W zSo&&lp_RTpTHnSCt$j0UPVB39h?=i-XSZ)IUu4=39DVd}+s6gOf%`n}K7hc` zqk!NlLhw`pA!-0Z)L0;TmevgZ(b)RGhq}oyb?tbScv&l4^y3|y*^AWfX?KqT3kIKp zg{#QIQw58t0TxkXVew%@KHM2adnY|K+)7&LUw66PQLx7_sj%lN+VfOlFKU>*U8Fzv zG?7Vk4DWhCIKIBia7=(BhPc9!tLVs6g`=neN0EYK936l4jYGn*?|#EE2aXuB3P-M@ zBTp5Mq6QpA3XWNHbniACpWbaao(4w@rxcD{MMs`097PQ{iWD4AF~{$U{e8K|aC;Km zFq~DmaTVQos&ErE;3iUVJB$0f<(UzVnZ1VNv*3u~8HFQP(UGSLM^OWgA_d21&@t(q z7LGT(hT|o0#BfpJ$W?UYslrjzfTKvk@gh3@Y2O6-4{i6=H~m-B9{HE15smq2w+j%D zYnoO~&qVs|a4#Sg^o%c5eHqeq5bmZoeLbXsUfI8qx<>}c@A0f#81cBTfsEk|1v6KX znWqY7QNx%WqQ>&oeuED9A0zkCD}J}I{?y-H^X>v1tFQ^On?8TAk$Ohg3weIj-+Q>3}KiEOf2I|QQ{c)g!J^v=)VEKCiXXP@R zSk$`dKxH%CFjmJ#d&XK>MPRIr<>|4OTByKIBL^FNdaTVf?FLT!$5@LP-GYntjysxH z2!YktMf?-tNGz_0eO}$qx3f%-jyJQ#PLFS5Za*D&?-9kdqBs@^`r|XB*S zJJEl#n9lUa(%IBZZa!sDmFXQ7xEcCMRVzK9H?hSN`o>LsgAF(_lbC;~-=XKql|^%qdXpJXVm9HEi8X2 z1RpC2H#=8|20gD1g@gMTX2c)$8Y?n+gOIDfnVK6-&nGgH#+I23Z{W+gL|u&@2p#Y; zW<3@On`?g^cJW%qkCygWAU35-RW6&hOuHt|t$nblk*(|(BzSGs8BZxjq=xH^@Y^#Oaz0BQC^Hp z^s@5u3GaUY*AzU^#M=m4?u)*L<}`gG>7UiuKIFnpk(;;Mp57EDyKV4@O& zmFfc;I`TU~bnk=h>|#z1wU@pCE)1V3xVWm|k_8i&ESR{2VCDJ@yVW)u5p3sYeWkUG zstiMwm5K{%tyCsKrZNdKl_6ND%BtvO{3nd)llXM031~1hDrmT>ppgX=jVzdGgkYs< z#2)?c=xNcT?wT{2Nj6jDWB zF1wJ| delta 4756 zcmZ{nZERE58OQH&LU>6CNepOl5+@GMmIg=@k`e+0V-knjxqhi%l7_YfC$=DvU^g}! z`>+Ir)FM8B;A~ShjnPW|Pzkl#<_~>ibY0&*w6vu!DyS7HANpm{HcgY5R4LQW^PI=z z-rSRXc=Gr8Kj-{^=U(5V>%afncK$cEKfcniF88c9s|7SoTgx+BTIcX1mTVUPJ*8>y z#k1lM`lKt3#7f5Dm5d__LoAGoj>`xhcg`>1i6BZ>z6?(bcJREON+|s>FMlD zI%jCz2-DY2WM*b2Q%QeH_7^6%{%sXo*bS% zo4XF!%VZ-@dLGK^efC;8Dz1r~OsB;xbK#9U(e+5_obayHZsYHF4N+`cx5vE$VzG26 zVx^0*Bq5e0#7b$6?IMv?4;f7(o&uNJ0cjh)83^@Ar&QMCD$JI0X?{a*7D)VgyNuAPEs9AtHwn zWqrkn(|r^HM?J%GRuLgxj35aSBq4$%M4ZKl?7m^z#r=I00Y^5&a!C;(U5p?J5hNjk zBt%@oh`XLc6cO4_5!WCBi{f;b#x;zPjrdTJgb0!lAy4T+?Y{k{>lo4??5Q{Xqg){5`4xH*XJ=VyjDbJyTTvLk~Y_kA$1%qw`Li##NO zha~VwY2}$OR3GfIu{-=`u$iCm+t~v?=WnjNBRcci`s2x;C)-cuC#TwjNqHrOf5Y!s zE&W!0yS0J;=&u%|6#=JMWow{O=%GME6?EVgMp`j=I?!mC=Hxd5Rbup3pg~Mq2<+*7 zz!+vmeUWf9KBkBJy}D0sRi;%f(de0ptt#EMH?3OY8CT{h^~<4cR*3_j)}r-m4Y{n2>BtNRZbyPEmV z5ZsPH2%@J#4MJZCH48o8R#(R!FbytOc_X|Eqoh$a3#D+_Bx8a>k_eq zH|h_M`3DTG^+mfv_lF+$ihbzuXxPvo*5cQ~b#k%I#qP4WKc3JHef6SYZREnbiM+-- z#GSV#`PE1*8!x;bS;HD1KBcqpr6>_^8?n(?+!vHzl5&3UiBMaO7?oFK>5HR1oCr(K z6x)ZR5tnE$jd&0GR%m9W{G(_eE9a|XA;&LQZkmok)Ag9{IJ?vsBKf3#K{LgG%X$(@>Rhc_hAtS!O}J72%mQAr!ruy2LmG%->@i`GVZpeK80SY15ys-Er|)~fz;aK4AzcNAG!Vns zW5OWAf^iQq77jg47~@areg6UsEDH(@=_)X!ff&Xf69yR;j0N8D^!tRc;Te~B3B88dANVB3aGGDDyXEZpfVaJ zDx+bdBEw2miBw0%W{Bz^W1fT)sIb&4sHCf)G8!f-G-(b*(0q%qMf{e1B#- zJ2{me5T690c9(xK(ZW)^I%O}*i2)nP=*I4z9o>)h?CS399P1Lgw|BM1_|20)EnH1K R-%?|7^Zas$lgBS?{y(fU=uH3s diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jrxml index b4590786b..f451cde43 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEmpresaOnibus.jrxml @@ -1,7 +1,7 @@ - - + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jasper new file mode 100644 index 0000000000000000000000000000000000000000..051f62f0047fd32585435b536708c98b86f3820b GIT binary patch literal 36995 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 C!nwf! literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jrxml new file mode 100644 index 000000000..8b04d50a1 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTripulacao.jrxml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="36" splitType="Stretch"> + <textField> + <reportElement uuid="f6832783-9c29-4cad-9f22-9720cfacf1b6" x="400" y="0" width="56" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$R{header.data.hora}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm"> + <reportElement uuid="44b4f57c-9828-4cae-9e5f-b02bf81421b9" x="456" y="0" width="98" height="20"/> + <textElement textAlignment="Left"/> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="8f1be949-b574-4f79-9fc3-ad18d94635c3" x="0" y="0" width="401" height="20"/> + <textElement> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{titulo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="2617faa7-82b9-4631-b1b1-aeab2d940b8e" x="167" y="22" width="58" height="12"/> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{filtro.empresa}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="f5b64932-6e93-408b-883b-6947fc45df32" x="17" y="22" width="58" height="12"/> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{filtro.periodo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="5d538a0a-bc1f-4ef2-9f31-877f2fb71ed5" x="312" y="22" width="52" height="12"/> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{filtro.empregado}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="634786ed-bb56-43f4-9c17-c797a15368f2" x="439" y="22" width="60" height="12"/> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{filtro.tipoEmpregado}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="true"> + <reportElement uuid="9f76f840-1ff6-469e-893f-7db8b470b627" x="75" y="22" width="45" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{fecInicio}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="7c1f3629-dd0d-4dd9-8ae2-070d4ade1366" x="499" y="22" width="55" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{tipoEmpleadoDesc}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="88100b48-af1c-4b1c-b5ca-7779f5fd637d" x="364" y="22" width="75" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{nomeEmpleado}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="d8070e66-07f1-474a-b9a7-ba55740c2031" x="225" y="22" width="87" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{nomeEmpresa}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy" isBlankWhenNull="true"> + <reportElement uuid="0b606534-b607-4a38-af7f-b28bce38bcd2" x="120" y="22" width="47" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{fecFinal}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioTripulacaoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioTripulacaoBean.java new file mode 100644 index 000000000..030924204 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioTripulacaoBean.java @@ -0,0 +1,87 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.sql.Date; + +public class RelatorioTripulacaoBean { + private Long idEmpleado; + private String nomeEmpleado; + private String tipoEmpleado; + private Long corridaId; + private Date fecha; + private String nomeOrigem; + private String nomeDestino; + private String hora; + private Double distanciaKm; + private Long numSequencia; + private Long idCorridaTramo; + + public Long getIdEmpleado() { + return idEmpleado; + } + public void setIdEmpleado(Long idEmpleado) { + this.idEmpleado = idEmpleado; + } + public RelatorioTripulacaoBean() { + } + public String getNomeEmpleado() { + return nomeEmpleado; + } + public void setNomeEmpleado(String nomeEmpleado) { + this.nomeEmpleado = nomeEmpleado; + } + public String getTipoEmpleado() { + return tipoEmpleado; + } + public void setTipoEmpleado(String tipoEmpleado) { + this.tipoEmpleado = tipoEmpleado; + } + public Long getCorridaId() { + return corridaId; + } + public void setCorridaId(Long corridaId) { + this.corridaId = corridaId; + } + public Date getFecha() { + return fecha; + } + public void setFecha(Date fecha) { + this.fecha = fecha; + } + public String getNomeOrigem() { + return nomeOrigem; + } + public void setNomeOrigem(String nomeOrigem) { + this.nomeOrigem = nomeOrigem; + } + public String getNomeDestino() { + return nomeDestino; + } + public void setNomeDestino(String nomeDestino) { + this.nomeDestino = nomeDestino; + } + + public String getHora() { + return hora; + } + public void setHora(String hora) { + this.hora = hora; + } + public Double getDistanciaKm() { + return distanciaKm; + } + public void setDistanciaKm(Double distanciaKm) { + this.distanciaKm = distanciaKm; + } + public Long getNumSequencia() { + return numSequencia; + } + public void setNumSequencia(Long numSequencia) { + this.numSequencia = numSequencia; + } + public Long getIdCorridaTramo() { + return idCorridaTramo; + } + public void setIdCorridaTramo(Long idCorridaTramo) { + this.idCorridaTramo = idCorridaTramo; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioEmpresaOnibusController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioEmpresaOnibusController.java index 93bd282d9..4beb87562 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioEmpresaOnibusController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioEmpresaOnibusController.java @@ -35,49 +35,49 @@ public class RelatorioEmpresaOnibusController extends MyGenericForwardComposer { @Autowired private DataSource dataSourceRead; - @Autowired + @Autowired private EmpresaService empresaService; - @Autowired + @Autowired private AutobusService autobusService; - + private Datebox datInicial; private Datebox datFinal; private MyComboboxEstandar cmbEmpresa; private MyComboboxEstandar cmbAutobus; private Checkbox chkResumo; - + private List lsEmpresas; private List lsAutobus; - + private void executarRelatorio() throws Exception { Map parametros = new HashMap(); - Empresa empresa = cmbEmpresa.getSelectedItem() != null ? (Empresa)cmbEmpresa.getSelectedItem().getValue() : null; - Autobus autobus = cmbAutobus.getSelectedItem() != null ? (Autobus)cmbAutobus.getSelectedItem().getValue() : null; - + Empresa empresa = cmbEmpresa.getSelectedItem() != null ? (Empresa) cmbEmpresa.getSelectedItem().getValue() : null; + Autobus autobus = cmbAutobus.getSelectedItem() != null ? (Autobus) cmbAutobus.getSelectedItem().getValue() : null; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); parametros.put("fecInicio", sdf.format(this.datInicial.getValue())); parametros.put("fecFinal", sdf.format(this.datFinal.getValue())); - - if (empresa != null){ + + if (empresa != null) { parametros.put("empresa", empresa.getEmpresaId()); } - - if (autobus != null){ + + if (autobus != null) { parametros.put("autobus", autobus.getAutobusId()); } - + Relatorio relatorio; - - if (chkResumo.isChecked()){ + + if (chkResumo.isChecked()) { parametros.put("TITULO", Labels.getLabel("relatorioEmpresaOnibusResumoController.window.title")); relatorio = new RelatorioEmpresaOnibusResumo(parametros, dataSourceRead.getConnection()); } else { parametros.put("TITULO", Labels.getLabel("relatorioEmpresaOnibusController.window.title")); relatorio = new RelatorioEmpresaOnibus(parametros, dataSourceRead.getConnection()); } - + Map args = new HashMap(); args.put("relatorio", relatorio); @@ -85,7 +85,7 @@ public class RelatorioEmpresaOnibusController extends MyGenericForwardComposer { Labels.getLabel("relatorioEmpresaOnibusController.window.title"), args, MODAL); } - + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { executarRelatorio(); } @@ -94,7 +94,7 @@ public class RelatorioEmpresaOnibusController extends MyGenericForwardComposer { public void doAfterCompose(Component comp) throws Exception { lsEmpresas = empresaService.obtenerTodos(); lsAutobus = autobusService.obtenerTodos(); - + super.doAfterCompose(comp); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTripulacaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTripulacaoController.java new file mode 100644 index 000000000..ec7bb5e4f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTripulacaoController.java @@ -0,0 +1,129 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; + +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.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.ComboitemRenderer; +import org.zkoss.zul.ListModel; +import org.zkoss.zul.ListModelList; +import org.zkoss.zul.api.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empleado; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.TipoEmpleado; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioTripulacao; +import com.rjconsultores.ventaboletos.service.EmpleadoService; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.TipoEmpleadoService; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioTripulacaoController") +@Scope("prototype") +public class RelatorioTripulacaoController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + // private Logger logger = Logger.getLogger(RelatorioTripulacaoController.class); + + private Datebox datInicial; + private Datebox datFinal; + private Combobox cmbEmpresa; + private Combobox cmbEmpleado; + private Combobox cmbTipoEmpleado; + + private Empresa empresa; + private Empleado empleado; + + private List lsEmpresa; + private List lsEmpleado; + private List lsTipoEmpleado; + + @Autowired + private DataSource dataSourceRead; + + @Autowired + EmpresaService empresaService; + + @Autowired + EmpleadoService empleadoService; + + @Autowired + TipoEmpleadoService tipoEmpleadoService; + + public List getLsEmpresa() { + return lsEmpresa; + } + + public List getLsEmpleado() { + return lsEmpleado; + } + + public List getLsTipoEmpleado() { + return lsTipoEmpleado; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsEmpleado = empleadoService.obtenerTodos(); + lsTipoEmpleado = tipoEmpleadoService.obtenerTodos(); + super.doAfterCompose(comp); + + } + + public void onSelect$cmbEmpresa(Event ev) throws Exception { + empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + } + + public void onSelect$cmbEmpleado(Event ev) throws Exception { + empleado = (Empleado) cmbEmpleado.getSelectedItem().getValue(); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + public void executarRelatorio() throws Exception { + HashMap parametros = new HashMap(); + TipoEmpleado tipoEmpleado = null; + + if (cmbTipoEmpleado.getSelectedItem() != null) { + tipoEmpleado = (TipoEmpleado) cmbTipoEmpleado.getSelectedItem().getValue(); + } + parametros.put("empresa", empresa); + parametros.put("empleado", empleado); + parametros.put("tipoEmpleado", tipoEmpleado); + + parametros.put("fecInicio", datInicial.getValue()); + parametros.put("fecFinal", datFinal.getValue()); + + parametros.put("nomeEmpresa", empresa != null ? empresa.getNombempresa() :""); + parametros.put("nomeEmpleado", empleado != null ? empleado.getNombEmpleado() : ""); + parametros.put("tipoEmpleadoDesc", tipoEmpleado != null ? tipoEmpleado.getDescTipo() : ""); + + parametros.put("relatorio", new RelatorioTripulacao(parametros, dataSourceRead.getConnection())); + parametros.put("titulo", Labels.getLabel("relatorioTripulacao.label")); + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioTripulacao.label"), parametros, MODAL); + } + + private class EmpleadoRenderer implements ComboitemRenderer { + @Override + public void render(Comboitem combo, Object object) throws Exception { + Empleado empleado = (Empleado) object; + combo.setLabel(empleado.getNombEmpleado()); + } + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemRelatorioTripulacao.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemRelatorioTripulacao.java new file mode 100644 index 000000000..1b4cd312a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemRelatorioTripulacao.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 ItemRelatorioTripulacao extends DefaultItemMenuSistema { + + public ItemRelatorioTripulacao() { + super("Relatório Tripulação"); + + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIO.MENU.TRIPULACAO"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("gui/relatorios/filtroRelatorioTripulacao.zul", + Labels.getLabel("relatorioTripulacao.label"), getArgs(), desktop); + } +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b0769325f..3a259a60f 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -576,6 +576,17 @@ relatorioAidfController.dataFinal.value = Fecha Final relatorioAidfController.lbEmpresa.value = Empresa relatorioAidfController.lbSerie.value = Série +#Relatorio Tripulacao +relatorioTripulacao.label=Informe Tripulación +relatorioTripulacaoController.lbDataInicial=Fecha Inicial +relatorioTripulacaoController.lbDataFinal=Fecha Final +relatorioTripulacaoController.lbCmbEmpresa=Empresa +relatorioTripulacaoController.lbCmbFuncionario=Funcionario +relatorioTripulacaoController.radioCondutor=Conductor +relatorioTripulacaoController.radioGuarda=Guarda +relatorioTripulacaoController.radioTodos=Todos +relatorioTripulacaoController.lbTipoTripulacao=Función + # Pantalla Editar clase editarClaseServicioController.window.title = Clase de servicio editarClaseServicioController.btnApagar.tooltiptext = Eliminar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 4b1ace5b7..8c388a53d 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -1,4 +1,4 @@ -# V. 1.4 + # V. 1.4 # Para alterar esta planilha, selecione Ferramentas | Planilhas # E abrir a planilha no editor. @@ -456,6 +456,17 @@ relatorioTrechoVendidoController.lbEmpresa.label = Empresa relatorioTrechoVendidoController.window.title = Relatório de Trecho Vendido Por Agência relatorioTrechoVendidoController.no.agencia = Selecione uma agência +#Relatorio Tripulacao +relatorioTripulacao.label=Relatório Tripulação +relatorioTripulacaoController.lbDataInicial=Data Inicial +relatorioTripulacaoController.lbDataFinal=Data Final +relatorioTripulacaoController.lbCmbEmpresa=Empresa +relatorioTripulacaoController.lbCmbFuncionario=Funcionário +relatorioTripulacaoController.radioCondutor=Condutor +relatorioTripulacaoController.radioGuarda=Guarda +relatorioTripulacaoController.radioTodos=Todos +relatorioTripulacaoController.lbTipoTripulacao=Função + #Receita Diária por Agência relatorioReceitaDiariaAgenciaController.window.title = Relatório de Receita Diária por Agência relatorioReceitaDiariaAgenciaController.lbDataIni.value = Data Inicial diff --git a/web/gui/relatorios/filtroRelatorioTripulacao.zul b/web/gui/relatorios/filtroRelatorioTripulacao.zul new file mode 100644 index 000000000..7e9c63980 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioTripulacao.zul @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +