From 8bf5450c1dfc3bc60ccb998a326b7abfc4841b2a Mon Sep 17 00:00:00 2001 From: wilian Date: Thu, 24 Mar 2016 17:34:51 +0000 Subject: [PATCH] fixes bug #7270 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@54220 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioMovimentosAtraso.java | 183 +++++++++---- .../RelatorioMovimentosAtraso_es.properties | 16 +- ...RelatorioMovimentosAtraso_pt_BR.properties | 16 +- .../RelatorioMovimentosAtraso.jasper | Bin 43551 -> 34067 bytes .../templates/RelatorioMovimentosAtraso.jrxml | 244 +++++++----------- .../catalogos/EditarPuntoVentaController.java | 16 +- ...FechamentoParamptovtaListItemRenderer.java | 10 +- .../RelatorioMovimentosAtrasoController.java | 9 +- .../filtroRelatorioMovimentosAtraso.zul | 4 +- 9 files changed, 264 insertions(+), 234 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java index 03ebcc949..3505fbc5f 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java @@ -5,9 +5,11 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -16,6 +18,7 @@ import java.util.TreeSet; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.DateUtil; @@ -34,6 +37,7 @@ public class RelatorioMovimentosAtraso extends Relatorio { private Date dataFinal; private String competencia; private SituacaoDiaMovimento status; + private Map> diasComMovimentos; public RelatorioMovimentosAtraso(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); @@ -50,7 +54,26 @@ public class RelatorioMovimentosAtraso extends Relatorio { } private List processarRelatorio(Connection conexao) throws ParseException { + carregarDiasComMovimentos(conexao); List lsDadosRelatorio = iniciarDados(conexao); + processarDiasConferidos(conexao, lsDadosRelatorio); + removerMovimentosSemAtraso(lsDadosRelatorio); + Collections.sort(lsDadosRelatorio); + return lsDadosRelatorio; + } + + private void removerMovimentosSemAtraso(List lsDadosRelatorio) { + List lsMovimentosSemAtraso = new ArrayList(); + for (MovimentosAtrasoVO movimentosAtraso : lsDadosRelatorio) { + if(movimentosAtraso.getDiasEmAtraso() == null || movimentosAtraso.getDiasEmAtraso().isEmpty()) { + lsMovimentosSemAtraso.add(movimentosAtraso); + } + } + + lsDadosRelatorio.removeAll(lsMovimentosSemAtraso); + } + + private void processarDiasConferidos(Connection conexao, List lsDadosRelatorio) { ResultSet rset = null; NamedParameterStatement stmt = null; try { @@ -90,15 +113,12 @@ public class RelatorioMovimentosAtraso extends Relatorio { 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); + MovimentosAtrasoVO movimentosAtrasoAux = lsDadosRelatorio.get(lsDadosRelatorio.indexOf(movimentosAtraso)); + if(movimentosAtrasoAux.getDiasEmAtraso() != null && !movimentosAtrasoAux.getDiasEmAtraso().isEmpty()) { + movimentosAtrasoAux.getDiasEmAtraso().remove(DateUtil.getIntegerDate(movimentosAtraso.getDataMovimento(), "dd")); + } } } - - aplicarFiltroSituacaoMovimentos(lsDadosRelatorio); - - Collections.sort(lsDadosRelatorio); - return lsDadosRelatorio; } catch (Exception e) { log.error(e.getMessage(), e); } finally { @@ -113,28 +133,84 @@ public class RelatorioMovimentosAtraso extends Relatorio { log.error(e.getMessage(), e); } } - return null; + } + + + private void validarPuntoventaDiasComMovimentos(Integer puntoventaId) { + if(!diasComMovimentos.containsKey(puntoventaId)) { + diasComMovimentos.put(puntoventaId, new TreeSet()); + } } - private void aplicarFiltroSituacaoMovimentos(List lsDadosRelatorio) { - if(status != null) { - Set sPuntoventaManter = new TreeSet(); - for (MovimentosAtrasoVO movimentosAtraso : lsDadosRelatorio) { - if(movimentosAtraso.getSituacao().equals(status)) { - sPuntoventaManter.add(movimentosAtraso.getPuntoventaId()); - } - } + private void carregarDiasComMovimentos(Connection conexao) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + try { + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT DISTINCT B.PUNTOVENTA_ID, TO_DATE(B.FECHORVENTA,'DD/MM/YYYY') AS FECHORVENTA ") + .append("FROM BOLETO B ") + .append("WHERE B.ACTIVO = 1 ") + .append("AND TO_DATE(B.FECHORVENTA,'DD/MM/YYYY') BETWEEN TO_DATE(:dataInicial,'DD/MM/YYYY') AND TO_DATE(:dataFinal,'DD/MM/YYYY') ") + .append("AND B.TIPOVENTA_ID IN (") + .append(Arrays.asList(Constantes.TPV_BOLETO_REMOTO,Constantes.TPV_MANUAL,Constantes.TPV_DIRECTO_NORMAL, Constantes.TPV_TRANSFERENCIAS).toString().replaceAll("[^0-9,]", "")) + .append(") ") + .append("AND ( ") + .append(" (B.INDSTATUSBOLETO = 'V' AND (B.MOTIVOCANCELACION_ID IS NULL OR B.MOTIVOCANCELACION_ID IN (") + .append(Arrays.asList(Constantes.MVO_CANCEL_CANCELACION,Constantes.MVO_CANCEL_DEVOLUCAO,Constantes.MVO_CANCEL_TROCA).toString().replaceAll("[^0-9,]", "")) + .append(" ))) ") + .append(" OR ") + .append(" (B.INDSTATUSBOLETO = 'C' AND B.MOTIVOCANCELACION_ID IN (") + .append(Arrays.asList(Constantes.MVO_CANCEL_CANCELACION,Constantes.MVO_CANCEL_DEVOLUCAO).toString().replaceAll("[^0-9,]", "")) + .append(" )) ") + .append(" OR ") + .append(" (B.INDSTATUSBOLETO = 'T' AND (B.MOTIVOCANCELACION_ID IS NULL OR B.MOTIVOCANCELACION_ID IN (") + .append(Arrays.asList(Constantes.MVO_CANCEL_CANCELACION,Constantes.MVO_CANCEL_DEVOLUCAO).toString().replaceAll("[^0-9,]", "")) + .append(" ))) ") + .append(" ) "); - List lsMovimentosAtrasosManter = new ArrayList(); - for (MovimentosAtrasoVO movimentosAtraso: lsDadosRelatorio) { - if(sPuntoventaManter.contains(movimentosAtraso.getPuntoventaId())) { - lsMovimentosAtrasosManter.add(movimentosAtraso); - } + if(empresaId != null) { + sQuery.append("AND B.EMPRESACORRIDA_ID = :empresaId "); + } + + if(puntoventaId != null) { + sQuery.append("AND B.PUNTOVENTA_ID = :puntoventaId "); + } + + log.info(sQuery.toString()); + + stmt = new NamedParameterStatement(conexao, sQuery.toString()); + if(empresaId != null) { + stmt.setInt("empresaId", empresaId); } - if(lsMovimentosAtrasosManter.size() != lsDadosRelatorio.size()) { - lsDadosRelatorio.clear(); - lsDadosRelatorio.addAll(lsMovimentosAtrasosManter); + 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(); + + diasComMovimentos = new HashMap>(); + while (rset.next()) { + Integer puntoventaId = rset.getInt("PUNTOVENTA_ID"); + Date fechorventa = DateUtil.normalizar(rset.getDate("FECHORVENTA")); + + validarPuntoventaDiasComMovimentos(puntoventaId); + diasComMovimentos.get(puntoventaId).add(DateUtil.getIntegerDate(fechorventa, "dd")); + } + } 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); } } } @@ -146,9 +222,14 @@ public class RelatorioMovimentosAtraso extends Relatorio { 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 ") + sQuery.append("SELECT DISTINCT PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, NVL(FP.DIASEMTRANSITO,0) AS DIASEMTRANSITO, ") + .append("ES.CVEESTADO AS UF, FP.INTERVALOFECHAMENTO, PVP.NOMBPUNTOVENTA AS NOMPUNTOVENTAPADRE, PV.NUMTELEFONOUNO ") .append("FROM PUNTO_VENTA PV ") + .append("LEFT JOIN PUNTO_VENTA PVP ON PVP.PUNTOVENTA_ID = PV.PUNTOVENTAPADRE_ID ") .append("INNER JOIN PTOVTA_EMPRESA PTE ON PTE.PUNTOVENTA_ID = PV.PUNTOVENTA_ID ") + .append("LEFT JOIN COLONIA CO ON CO.COLONIA_ID = PV.COLONIA_ID ") + .append("LEFT JOIN CIUDAD CID ON CID.CIUDAD_ID = CO.CIUDAD_ID ") + .append("LEFT JOIN ESTADO ES ON ES.ESTADO_ID = CID.ESTADO_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 "); @@ -175,13 +256,20 @@ public class RelatorioMovimentosAtraso extends Relatorio { 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)); + MovimentosAtrasoVO movimentosAtraso = new MovimentosAtrasoVO(); + movimentosAtraso.setPuntoventaId(rset.getInt("PUNTOVENTA_ID")); + movimentosAtraso.setNumPuntoVenta(rset.getString("NUMPUNTOVENTA")); + movimentosAtraso.setNombpuntoventa(rset.getString("NOMBPUNTOVENTA")); + movimentosAtraso.setCompetencia(competencia); + movimentosAtraso.setDiasemtransito(rset.getInt("DIASEMTRANSITO")); + movimentosAtraso.setIntervalofechamento(rset.getInt("INTERVALOFECHAMENTO")); + movimentosAtraso.setNombpuntoventaPadre(rset.getString("NOMPUNTOVENTAPADRE")); + movimentosAtraso.setUf(rset.getString("UF")); + movimentosAtraso.setNumtelefonouno(rset.getString("NUMTELEFONOUNO")); + carregarDiasMovimento(movimentosAtraso); + if(!movimentosAtraso.getDiasEmAtraso().isEmpty()) { + lsMovimentosAtrasoVOs.add(movimentosAtraso); + } } return lsMovimentosAtrasoVOs; @@ -202,26 +290,25 @@ public class RelatorioMovimentosAtraso extends Relatorio { return null; } - private List carregarDiasMovimento(MovimentosAtrasoVO movimentosAtrasoBase) throws ParseException { + private void carregarDiasMovimento(MovimentosAtrasoVO movimentosAtrasoBase) throws ParseException { + movimentosAtrasoBase.setDiasEmAtraso(new TreeSet()); Set diasCompetencia = DateUtil.carregarDiasCompetencia(movimentosAtrasoBase.getCompetencia()); - List lsMovimentos = new ArrayList(); - Date dataAtual = new Date(); + Date dataAtual = DateUtil.normalizar(new Date()); + Integer diasEmTransito = movimentosAtrasoBase.getDiasemtransito() != null ? movimentosAtrasoBase.getDiasemtransito() : 0; + diasEmTransito += movimentosAtrasoBase.getIntervalofechamento() != null ? movimentosAtrasoBase.getIntervalofechamento() : 0; 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); - } + Date dataMovimento = DateUtil.normalizar(DateUtil.getDateFromString(dia+"/"+movimentosAtrasoBase.getCompetencia(), "dd/MM/yyyy")); + if(dataAtual.compareTo(dataMovimento) >= 0 && DateUtil.getElapsedDias(dataAtual, dataMovimento) > diasEmTransito) { + movimentosAtrasoBase.getDiasEmAtraso().add(dia); } - - lsMovimentos.add(movimentosAtraso); } - return lsMovimentos; + + if(diasComMovimentos.containsKey(movimentosAtrasoBase.getPuntoventaId())) { + movimentosAtrasoBase.getDiasEmAtraso().retainAll(diasComMovimentos.get(movimentosAtrasoBase.getPuntoventaId())); + } else { + movimentosAtrasoBase.getDiasEmAtraso().clear(); + } + } public void setLsDadosRelatorio(List lsDadosRelatorio) { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties index afabd0044..b0e253d32 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_es.properties @@ -11,10 +11,14 @@ cabecalho.impressorPor=Impressor por: cabecalho.pagina=Página cabecalho.de=de cabecalho.filtros=Filtros: -label.empresa=Empresa: +cabecalho.competencia=Competência: +cabecalho.puntoventa=Agência: +cabecalho.empresa=Empresa: cabecalho.usuario=Usuário: -label.empresa=Empresa: -label.legenda=Legenda -label.puntoventa=Punto Venta: -label.competencia=Competencia: -label.situacao=Situação: \ No newline at end of file +label.puntoventa=Agência +label.numero=Número +label.telefone=Telefone +label.uf=UF +label.subordinante=Subordinante +label.periodicidade=Periodicidade +label.diasEmAtraso=Dias Em Atraso \ 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 index 6db620428..b0e253d32 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentosAtraso_pt_BR.properties @@ -11,10 +11,14 @@ cabecalho.impressorPor=Impressor por: cabecalho.pagina=Página cabecalho.de=de cabecalho.filtros=Filtros: -label.empresa=Empresa: +cabecalho.competencia=Competência: +cabecalho.puntoventa=Agência: +cabecalho.empresa=Empresa: cabecalho.usuario=Usuário: -label.empresa=Empresa: -label.legenda=Legenda -label.puntoventa=Ponto de Venda: -label.competencia=Competência: -label.situacao=Situação: \ No newline at end of file +label.puntoventa=Agência +label.numero=Número +label.telefone=Telefone +label.uf=UF +label.subordinante=Subordinante +label.periodicidade=Periodicidade +label.diasEmAtraso=Dias Em Atraso \ 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 index 11e5e93ce109001e5afd001a125f74a4c83cb670..3bc1bc17ebc6b1e3b7882f2f5c73d8dfeeb7aa8c 100644 GIT binary patch literal 34067 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 WGev=Ki_1S@ur0PfHlWV|Wd1kzq3yi@ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml index b64504897..f383ffe2c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml @@ -1,6 +1,6 @@ - +