diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java index f5ca11a55..a88ba3f5a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentosAtraso.java @@ -9,6 +9,7 @@ import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -45,21 +46,85 @@ public class RelatorioMovimentosAtraso extends Relatorio { public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); definirFiltros(this.relatorio.getParametros()); - List lsDadosRelatorio = processarRelatorio(conexao); + + Boolean tipoRelatorio = (Boolean) relatorio.getParametros().get("eTipoConferencia"); + + List lsDadosRelatorio = processarRelatorio(conexao, tipoRelatorio); setLsDadosRelatorio(lsDadosRelatorio); } }); } - private List processarRelatorio(Connection conexao) throws ParseException { + private List processarRelatorio(Connection conexao, Boolean eTipoConferencia) throws ParseException { carregarDiasComMovimentos(conexao); - List lsDadosRelatorio = iniciarDados(conexao); - processarDiasConferidos(conexao, lsDadosRelatorio); + List lsDadosRelatorio = iniciarDados(conexao, eTipoConferencia); + + if (eTipoConferencia) { + processarConfenciasNaoFinalizada(conexao, lsDadosRelatorio); + } else { + processarDiasConferidos(conexao, lsDadosRelatorio); + } + removerMovimentosSemAtraso(lsDadosRelatorio); Collections.sort(lsDadosRelatorio); return lsDadosRelatorio; } - + + private void processarConfenciasNaoFinalizada(Connection conexao, List lsDadosRelatorio) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + try { + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT DISTINCT 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 ") + .append("AND CO.INDCONFERIDO = 0 ") + .append("AND CO.EMPRESA_ID = :empresaId ") + .append("AND CO.PUNTOVENTA_ID = :puntoventaId ") + .append("ORDER BY CO.DATAMOVIMENTO"); + + for(MovimentosAtrasoVO movimento : lsDadosRelatorio){ + + movimento.setDiasEmAtraso(new HashSet()); + + log.info(sQuery.toString()); + + stmt = new NamedParameterStatement(conexao, sQuery.toString()); + stmt.setInt("empresaId", empresaId); + stmt.setInt("puntoventaId", movimento.getPuntoventaId()); + stmt.setDate("dataInicial", new java.sql.Date(dataInicial.getTime())); + stmt.setDate("dataFinal", new java.sql.Date(dataFinal.getTime())); + + rset = stmt.executeQuery(); + + while (rset.next()) { + Date data = DateUtil.normalizar(rset.getDate("DATAMOVIMENTO")); + Calendar cal = Calendar.getInstance(); + cal.setTime(data); + int day = cal.get(Calendar.DAY_OF_MONTH); + movimento.getDiasEmAtraso().add(day); + } + } + + } 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); + } + } + } + private void removerMovimentosSemAtraso(List lsDadosRelatorio) { List lsMovimentosSemAtraso = new ArrayList(); for (MovimentosAtrasoVO movimentosAtraso : lsDadosRelatorio) { @@ -200,7 +265,7 @@ public class RelatorioMovimentosAtraso extends Relatorio { } } - private List iniciarDados(Connection conexao) { + private List iniciarDados(Connection conexao, Boolean eTipoConferencia) { ResultSet rset = null; NamedParameterStatement stmt = null; try { @@ -252,7 +317,7 @@ public class RelatorioMovimentosAtraso extends Relatorio { movimentosAtraso.setUf(rset.getString("UF")); movimentosAtraso.setNumtelefonouno(rset.getString("NUMTELEFONOUNO")); carregarDiasMovimento(movimentosAtraso); - if(!movimentosAtraso.getDiasEmAtraso().isEmpty()) { + if(!movimentosAtraso.getDiasEmAtraso().isEmpty() || eTipoConferencia) { lsMovimentosAtrasoVOs.add(movimentosAtraso); } } @@ -279,6 +344,7 @@ public class RelatorioMovimentosAtraso extends Relatorio { movimentosAtrasoBase.setDiasEmAtraso(new TreeSet()); Set diasCompetencia = DateUtil.carregarDiasCompetencia(movimentosAtrasoBase.getCompetencia(), null); 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) { @@ -293,7 +359,6 @@ public class RelatorioMovimentosAtraso extends Relatorio { } else { movimentosAtrasoBase.getDiasEmAtraso().clear(); } - } public void setLsDadosRelatorio(List lsDadosRelatorio) { 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 b0e253d32..d3f650a34 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 @@ -21,4 +21,5 @@ label.telefone=Telefone label.uf=UF label.subordinante=Subordinante label.periodicidade=Periodicidade -label.diasEmAtraso=Dias Em Atraso \ No newline at end of file +label.diasEmAtraso=Dias Em Atraso +label.diasMaloteEntregue=Dias malote entregue não finalizados \ 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 58b7eda11..9292064e9 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml index 1d5169a56..69bab2735 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentosAtraso.jrxml @@ -1,8 +1,8 @@ - - - + + +