From 9caf909b2a54c0becd2dcbb6e7a7a33f025ff5be Mon Sep 17 00:00:00 2001 From: wilian Date: Mon, 2 Nov 2015 13:16:21 +0000 Subject: [PATCH] fixes bug #6789 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@49682 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioMovimentosAtraso.java | 236 +++++++++++++++++ .../RelatorioMovimentosAtraso_es.properties | 19 ++ ...RelatorioMovimentosAtraso_pt_BR.properties | 19 ++ .../RelatorioMovimentosAtraso.jasper | Bin 0 -> 42800 bytes .../templates/RelatorioMovimentosAtraso.jrxml | 247 ++++++++++++++++++ .../catalogos/EditarPuntoVentaController.java | 7 + .../comissao/ConferenciaController.java | 13 + .../EditarLogConfenciaComissaoController.java | 6 + ...FechamentoParamptovtaListItemRenderer.java | 4 + .../RelatorioMovimentosAtrasoController.java | 96 +++++++ .../ItemMenuRelatorioMovimentosAtraso.java | 25 ++ .../render/RenderLogConferencia.java | 3 + web/WEB-INF/i3-label_es_MX.label | 18 +- web/WEB-INF/i3-label_pt_BR.label | 19 +- web/gui/catalogos/editarPuntoVenta.zul | 12 + web/gui/comissao/conferencia.zul | 20 +- .../comissao/editarLogConferenciaComissao.zul | 12 +- web/gui/img/comissao/vermelho.png | Bin 128 -> 15325 bytes .../filtroRelatorioMovimentosAtraso.zul | 66 +++++ 19 files changed, 818 insertions(+), 4 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentosAtrasoController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentosAtraso.java create mode 100644 web/gui/relatorios/filtroRelatorioMovimentosAtraso.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java new file mode 100644 index 000000000..043e6ad4c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java @@ -0,0 +1,236 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.vo.comissao.MovimentosAtrasoVO; +import com.rjconsultores.ventaboletos.vo.comissao.MovimentosAtrasoVO.SituacaoDiaMovimento; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioMovimentosAtraso extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioMovimentosAtraso.class); + private Integer empresaId; + private Integer puntoventaId; + private Date dataInicial; + private Date dataFinal; + private String competencia; + + public RelatorioMovimentosAtraso(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(); + definirFiltros(this.relatorio.getParametros()); + List lsDadosRelatorio = processarRelatorio(conexao); + setLsDadosRelatorio(lsDadosRelatorio); + } + }); + } + + private List processarRelatorio(Connection conexao) throws ParseException { + List lsDadosRelatorio = iniciarDados(conexao); + ResultSet rset = null; + NamedParameterStatement stmt = null; + try { + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT DISTINCT PV.PUNTOVENTA_ID, CO.DATAMOVIMENTO ") + .append("FROM CONFERENCIA CO ") + .append("JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = CO.PUNTOVENTA_ID ") + .append("WHERE CO.ACTIVO = 1 ") + .append("AND CO.DATAMOVIMENTO BETWEEN :dataInicial AND :dataFinal ") + .append("AND CO.INDMALOTERECEBIDO = 1 "); + + if(empresaId != null) { + sQuery.append("AND CO.EMPRESA_ID = :empresaId "); + } + + if(puntoventaId != null) { + sQuery.append("AND CO.PUNTOVENTA_ID = :puntoventaId "); + } + + sQuery.append("ORDER BY PV.PUNTOVENTA_ID, CO.DATAMOVIMENTO"); + + log.info(sQuery.toString()); + + stmt = new NamedParameterStatement(conexao, sQuery.toString()); + if(empresaId != null) { + stmt.setInt("empresaId", empresaId); + } + + if(puntoventaId != null) { + stmt.setInt("puntoventaId", puntoventaId); + } + stmt.setDate("dataInicial", new java.sql.Date(dataInicial.getTime())); + stmt.setDate("dataFinal", new java.sql.Date(dataFinal.getTime())); + + rset = stmt.executeQuery(); + + while (rset.next()) { + MovimentosAtrasoVO movimentosAtraso = new MovimentosAtrasoVO(rset.getInt("PUNTOVENTA_ID"),DateUtil.normalizar(rset.getDate("DATAMOVIMENTO"))); + if(lsDadosRelatorio.contains(movimentosAtraso)) { + movimentosAtraso = lsDadosRelatorio.get(lsDadosRelatorio.indexOf(movimentosAtraso)); + movimentosAtraso.setSituacao(SituacaoDiaMovimento.ENTREGUE); + } + } + + Collections.sort(lsDadosRelatorio); + return lsDadosRelatorio; + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + try { + if(rset != null) { + rset.close(); + } + if(stmt != null) { + stmt.close(); + } + } catch (SQLException e) { + log.error(e.getMessage(), e); + } + } + return null; + } + + private List iniciarDados(Connection conexao) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + try { + List lsMovimentosAtrasoVOs = new ArrayList(); + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT DISTINCT PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, NVL(FP.DIASEMTRANSITO,0) AS DIASEMTRANSITO ") + .append("FROM PUNTO_VENTA PV ") + .append("INNER JOIN PTOVTA_EMPRESA PTE ON PTE.PUNTOVENTA_ID = PV.PUNTOVENTA_ID ") + .append("LEFT JOIN FECHAMENTO_PARAMPTOVTA FP ON FP.EMPRESA_ID = PTE.EMPRESA_ID AND PV.PUNTOVENTA_ID = FP.PUNTOVENTA_ID AND FP.ACTIVO = 1 ") + .append("WHERE PV.ACTIVO = 1 "); + + if(empresaId != null) { + sQuery.append("AND PTE.EMPRESA_ID = :empresaId "); + } + + if(puntoventaId != null) { + sQuery.append("AND PV.PUNTOVENTA_ID = :puntoventaId "); + } + + sQuery.append("ORDER BY PV.NOMBPUNTOVENTA "); + + log.info(sQuery.toString()); + + stmt = new NamedParameterStatement(conexao, sQuery.toString()); + if(empresaId != null) { + stmt.setInt("empresaId", empresaId); + } + + if(puntoventaId != null) { + stmt.setInt("puntoventaId", puntoventaId); + } + + rset = stmt.executeQuery(); + while (rset.next()) { + MovimentosAtrasoVO movimentosAtrasoVO = new MovimentosAtrasoVO(); + movimentosAtrasoVO.setPuntoventaId(rset.getInt("PUNTOVENTA_ID")); + movimentosAtrasoVO.setNumPuntoVenta(rset.getString("NUMPUNTOVENTA")); + movimentosAtrasoVO.setNombpuntoventa(rset.getString("NOMBPUNTOVENTA")); + movimentosAtrasoVO.setCompetencia(competencia); + movimentosAtrasoVO.setDiasemtransito(rset.getInt("DIASEMTRANSITO")); + lsMovimentosAtrasoVOs.addAll(carregarDiasMovimento(movimentosAtrasoVO)); + } + + return lsMovimentosAtrasoVOs; + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + try { + if(rset != null) { + rset.close(); + } + if(stmt != null) { + stmt.close(); + } + } catch (SQLException e) { + log.error(e.getMessage(), e); + } + } + return null; + } + + private List carregarDiasMovimento(MovimentosAtrasoVO movimentosAtrasoBase) throws ParseException { + Set diasCompetencia = DateUtil.carregarDiasCompetencia(movimentosAtrasoBase.getCompetencia()); + List lsMovimentos = new ArrayList(); + Date dataAtual = new Date(); + for (Integer dia : diasCompetencia) { + MovimentosAtrasoVO movimentosAtraso = new MovimentosAtrasoVO(movimentosAtrasoBase.getPuntoventaId(), movimentosAtrasoBase.getNombpuntoventa(), + movimentosAtrasoBase.getNumPuntoVenta(), movimentosAtrasoBase.getCompetencia(), + movimentosAtrasoBase.getDiasemtransito(), + DateUtil.getDateFromString(dia + "/" + movimentosAtrasoBase.getCompetencia(), "dd/MM/yyyy"), + SituacaoDiaMovimento.AGUARDANDO); + + if(movimentosAtraso.getDiasemtransito() != null && movimentosAtraso.getDiasemtransito() > 0) { + if(DateUtil.getElapsedDias(dataAtual, movimentosAtraso.getDataMovimento()) > movimentosAtraso.getDiasemtransito()) { + movimentosAtraso.setSituacao(SituacaoDiaMovimento.ATRASADO); + } + } + + lsMovimentos.add(movimentosAtraso); + } + return lsMovimentos; + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + } + + @Override + protected void processaParametros() throws Exception { + } + + private void definirFiltros(Map parametros) throws ParseException { + Integer puntoventaId = (Integer) parametros.get("puntoventaId"); + Integer empresaId = (Integer) parametros.get("empresaId"); + String competencia = (String) parametros.get("competencia"); + + if(StringUtils.isNotBlank(competencia)) { + this.competencia = competencia; + } + + if(empresaId != null) { + this.empresaId = empresaId; + } + if(puntoventaId != null) { + this.puntoventaId = puntoventaId; + } + + if(StringUtils.isNotBlank(competencia)) { + String[] vetCompetencia = competencia.split("/"); + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.MONTH, Integer.valueOf(vetCompetencia[0]) - 1); + cal.set(Calendar.YEAR, Integer.valueOf(vetCompetencia[1])); + + this.dataInicial = DateUtil.getDateFromString(cal.getActualMinimum(Calendar.DAY_OF_MONTH) + "/" + competencia, "dd/MM/yyyy"); + this.dataFinal = DateUtil.getDateFromString(cal.getActualMaximum(Calendar.DAY_OF_MONTH) + "/" + competencia, "dd/MM/yyyy"); + } + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties new file mode 100644 index 000000000..8c48ccc75 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties @@ -0,0 +1,19 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Movimentos em Atraso +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.empresa=Empresa: +cabecalho.usuario=Usuário: +label.empresa=Empresa: +label.legenda=Legenda +label.puntoventa=Punto Venta: +label.competencia=Competencia: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties new file mode 100644 index 000000000..bbc8831e0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties @@ -0,0 +1,19 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Movimentos em Atraso +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.empresa=Empresa: +cabecalho.usuario=Usuário: +label.empresa=Empresa: +label.legenda=Legenda +label.puntoventa=Ponto de Venda: +label.competencia=Competência: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jasper new file mode 100644 index 0000000000000000000000000000000000000000..f01b8d3404ce7baacabe823ae83d24a0b103d2d9 GIT binary patch literal 42800 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 literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml new file mode 100644 index 000000000..1f748717b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml @@ -0,0 +1,247 @@ + + + + + +