From 73757dd8b71eb8439c9a4586e1df7bf269366600 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Tue, 27 Aug 2024 15:27:24 -0300 Subject: [PATCH] fixes bug#AL-4718 --- pom.xml | 2 +- .../relatorios/impl/RelatorioEstoque.java | 107 ++++++++++++------ .../ItemReporteControleEstoqueBoletos.java | 8 ++ 3 files changed, 80 insertions(+), 37 deletions(-) diff --git a/pom.xml b/pom.xml index f33a2fb8b..e305e46ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.130.0 + 1.130.1 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java index 39103b1c5..9c2fdf869 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -82,6 +82,7 @@ public class RelatorioEstoque extends Relatorio { item.setFechorAquisicion((Date) rset.getObject("fechorAquisicion")); item.setFecVencimento((Date) rset.getObject("fecVencimento")); item.setID((String) rset.getObject("ID")); + item.setPuntoVentaId(rset.getInt("puntoVentaId") > 0 ? rset.getInt("puntoVentaId") : null); lsEstoquePorSalto.add(item); } @@ -137,6 +138,7 @@ public class RelatorioEstoque extends Relatorio { List lsTemp = new ArrayList<>(); List lsTempRetorno = new ArrayList<>(); List lsTempRetornoAux = new ArrayList<>(); + lsEstoquePorSalto = validarFolioPreImpressoPuntoventa(lsEstoquePorSalto, puntoVentaId); for (ItemReporteControleEstoqueBoletos i : lsEstoquePorSalto) { if(map.get(i.getID()) == null) { for (ItemReporteControleEstoqueBoletos item : lsEstoquePorSalto) { @@ -145,6 +147,7 @@ public class RelatorioEstoque extends Relatorio { } } map.put(i.getID(), i.getID()); + //criar metodo for dentro do outro para remover o que a consulta retornar lsTempRetorno.addAll(gerarRangesDeFolios(recuperarOsFaltantes(lsTemp), lsTemp)); lsTemp = new ArrayList(); } @@ -211,12 +214,13 @@ public class RelatorioEstoque extends Relatorio { sb.append(" TB.articuloId as articuloId, "); sb.append(" TB.nombEmpresa as nombEmpresa, "); sb.append(" TB.empresaId as empresaId, "); - sb.append(" TB.marcaId as marcaId, "); +// sb.append(" TB.marcaId as marcaId, "); sb.append(" TB.fechorAquisicion as fechorAquisicion, "); sb.append(" TB.tipo as tipo, "); sb.append(" TB.fecVencimento as fecVencimento, "); sb.append(" TB.ID as ID , TB.nomeEstado as nomeEstado, "); - sb.append(" TB.tipoAidf as tipoAidf "); + sb.append(" TB.tipoAidf as tipoAidf, "); + sb.append(" TB.puntoVentaId as puntoVentaId, TB.fechorventa as fechorVenta "); sb.append(" from (SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado, "); sb.append(" dab.NUMSERIEPREIMPRESA AS serie, "); sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) AS folioCaja, "); @@ -226,7 +230,7 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.EMPRESA_ID AS empresaId, "); - sb.append(" M.MARCA_ID AS marcaId, "); +// sb.append(" M.MARCA_ID AS marcaId, "); sb.append(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, "); sb.append(" CASE "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); @@ -234,12 +238,13 @@ public class RelatorioEstoque extends Relatorio { sb.append(" END AS tipo , "); sb.append(" to_date(to_char(AI.fecadquisicion, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fechorAquisicion, "); sb.append(" to_date(to_char(ai.fecvencimiento, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fecVencimento, "); - sb.append(" AIT.DESCTIPO tipoAidf "); + sb.append(" AIT.DESCTIPO tipoAidf, "); + sb.append(" PV.PUNTOVENTA_ID AS puntoVentaId, cj.fechorVenta as fechorVenta "); sb.append(" FROM CAJA CJ, "); sb.append(" ARTICULO A, "); sb.append(" EMPRESA EM, "); - sb.append(" MARCA M, "); - sb.append(" USUARIO U, "); +// sb.append(" MARCA M, "); +// sb.append(" USUARIO U, "); sb.append(" AIDF AI, "); sb.append(" AIDF_TIPO AIT, "); sb.append(" ESTADO est,"); @@ -249,19 +254,18 @@ public class RelatorioEstoque extends Relatorio { sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) "); sb.append(" WHERE TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) BETWEEN TO_NUMBER(DAB.NUMFOLIOINICIAL) AND TO_NUMBER(DAB.NUMFOLIOFINAL) "); // sb.append(" AND CJ.PUNTOVENTA_ID = AB.PUNTOVENTA_ID "); - sb.append(" AND DAB.ACTIVO = 1 "); - sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); - sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); - sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) "); - if (puntoVentaId != null) { - sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); - } + sb.append(" AND DAB.ACTIVO = 1 "); + sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA OR (cj.NUMSERIEPREIMPRESA IS NULL AND dab.NUMSERIEPREIMPRESA IS NULL)) "); +// if (puntoVentaId != null) { +// sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); +// } if(empresaId != null) { sb.append(" AND Em.empresa_ID = ") .append(empresaId); } if(dataInicio!= null && dataFim != null) { sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND cj.fechorventa BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } @@ -270,10 +274,10 @@ public class RelatorioEstoque extends Relatorio { sb.append(" 1, "); sb.append(" 4) "); sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID "); - sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID "); - sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); - sb.append(" AND M.ACTIVO = 1 "); - sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); + sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID AND AI.EMPRESA_ID = AB.EMPRESA_ID "); +// sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); +// sb.append(" AND M.ACTIVO = 1 "); +// sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); sb.append(" AND (CJ.INDREIMPRESION = 0 "); sb.append(" OR (CJ.INDREIMPRESION = 1 "); sb.append(" AND CJ.INDSTATUSBOLETO = 'E')) "); @@ -290,14 +294,14 @@ public class RelatorioEstoque extends Relatorio { sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" AB.ARTICULO_ID, "); sb.append(" EM.NOMBEMPRESA, "); - sb.append(" U.USUARIO_ID, "); +// sb.append(" U.USUARIO_ID, "); sb.append(" EM.EMPRESA_ID, "); sb.append(" DAB.AIDF_ID, "); - sb.append(" M.MARCA_ID, "); +// sb.append(" M.MARCA_ID, "); sb.append(" A.descarticulo, "); sb.append(" dab.STATUSOPERACION , "); sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); - sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy'), est.NOMBESTADO , AIT.DESCTIPO "); + sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy'), est.NOMBESTADO , AIT.DESCTIPO, PV.PUNTOVENTA_ID, cj.fechorVenta "); sb.append(" "); sb.append(" UNION ALL "); sb.append(" SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado , "); @@ -309,7 +313,7 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.EMPRESA_ID AS empresaId, "); - sb.append(" M.MARCA_ID AS marcaId, "); +// sb.append(" M.MARCA_ID AS marcaId, "); sb.append(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, "); sb.append(" CASE "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); @@ -317,15 +321,17 @@ public class RelatorioEstoque extends Relatorio { sb.append(" END AS tipo, "); sb.append(" to_date(to_char(AI.fecadquisicion, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fechorAquisicion, "); sb.append(" to_date(to_char(ai.fecvencimiento, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fecVencimento, "); - sb.append(" AIT.DESCTIPO tipoAidf "); + sb.append(" AIT.DESCTIPO tipoAidf, "); + sb.append(" PV.PUNTOVENTA_ID AS puntoVentaId, "); + sb.append(" CJ.FECHORVTA as fechorVenta "); sb.append(" FROM CAJA_DIVERSOS CJ, "); sb.append(" ARTICULO A, "); sb.append(" EMPRESA EM, "); - sb.append(" MARCA M, "); +// sb.append(" MARCA M, "); sb.append(" AIDF AI, "); sb.append(" AIDF_TIPO AIT, "); sb.append(" ESTADO est,"); - sb.append(" USUARIO U, "); +// sb.append(" USUARIO U, "); sb.append(" PUNTO_VENTA PV, "); sb.append(" ABASTO_BOLETO AB "); sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) "); @@ -334,15 +340,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) "); - if (puntoVentaId != null) { - sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); - } +// if (puntoVentaId != null) { +// sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); +// } if(empresaId != null) { sb.append(" AND Em.empresa_ID = ") .append(empresaId); } if(dataInicio!= null && dataFim != null) { sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } @@ -350,15 +357,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" 1, "); sb.append(" 4) "); - sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID "); + sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID AND AI.EMPRESA_ID = AB.EMPRESA_ID "); sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID "); - sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); - sb.append(" AND M.ACTIVO = 1 "); - sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); +// sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); +// sb.append(" AND M.ACTIVO = 1 "); +// sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); sb.append(" AND CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID "); sb.append(" AND DAB.ACTIVO = 1 "); - sb.append(" AND AB.activo =1 AND AI.activo = 1 and est.estado_id = ai.ESTADO_ID "); + sb.append(" AND AB.activo =1 AND AI.activo = 1 and est.estado_id = ai.ESTADO_ID "); sb.append(aidfTipo != null ? " AND (AI.AIDFTIPO_ID =:aidfTipo AND AIT.AIDFTIPO_ID = AI.AIDFTIPO_ID) " : " AND AIT.AIDFTIPO_ID = AI.AIDFTIPO_ID "); + sb.append(" and CJ.aidf_id = AI.AIDF_ID "); sb.append(aidfId != null ? " AND (AI.AIDF_ID =:aidfId AND DAB.AIDF_ID = AI.AIDF_ID) " : " AND DAB.AIDF_ID = AI.AIDF_ID "); sb.append(" GROUP BY DAB.AIDF_ID, "); sb.append(" DAB.NUMSERIEPREIMPRESA, "); @@ -368,14 +376,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" AB.ARTICULO_ID, "); sb.append(" EM.NOMBEMPRESA, "); - sb.append(" U.USUARIO_ID, "); +// sb.append(" U.USUARIO_ID, "); sb.append(" EM.EMPRESA_ID, "); sb.append(" DAB.AIDF_ID, "); - sb.append(" M.MARCA_ID, "); +// sb.append(" M.MARCA_ID, "); sb.append(" A.descarticulo, "); sb.append(" dab.STATUSOPERACION, "); sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); - sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy') , est.NOMBESTADO , AIT.DESCTIPO ) TB "); + sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy') , est.NOMBESTADO , AIT.DESCTIPO, PV.PUNTOVENTA_ID, CJ.FECHORVTA ) TB "); + sb.append(" where exists ( SELECT * FROM CAJA_DIVERSOS CA WHERE CA.ACTIVO = 1 AND CA.NUMFOLIOPREIMPRESO = TB.folioCaja and ca.numseriepreimpresa = TB.SERIE and CA.FECHORVTA = TB.fechorVenta) "); + sb.append(" OR exists ( SELECT * FROM CAJA CA WHERE CA.ACTIVO = 1 AND CA.NUMFOLIOPREIMPRESO = TB.folioCaja and ca.numseriepreimpresa = TB.SERIE AND CA.ACTIVO = 1 AND CA.INDSTATUSBOLETO <> 'C' AND ( CA.motivocancelacion_id is null OR CA.motivocancelacion_id = 31 ) AND CA.EMPRESACORRIDA_ID = TB.empresaId and TB.fechorVenta = CA.fechorventa) "); sb.append(" ORDER BY TB.aidfId, "); sb.append(" TB.serie, "); sb.append(" TB.folioCaja "); @@ -439,12 +449,20 @@ public class RelatorioEstoque extends Relatorio { .append("LEFT JOIN aidf_tipo ait ON ait.AIDFTIPO_ID= ai.AIDFTIPO_ID ") .append("LEFT JOIN ESTADO est ON est.ESTADO_ID = ai.ESTADO_ID ") .append("LEFT JOIN ESTACION ES ON es.ESTACION_ID = ab.ESTACION_ID ") + .append("JOIN CAJA_DIVERSOS CJ ON CJ.AIDF_ID = dab.AIDF_ID ") .append("WHERE dab.STATUSOPERACION IN(0,1,4) ") .append("AND dab.ACTIVO = 1 ") .append(" and dab.NUMFOLIOFINAL < 2147483647 ") .append(" AND DAB.AIDF_ID = AI.AIDF_ID and ai.activo = 1 ") .append(aidfTipo != null ? " AND AI.AIDFTIPO_ID = :aidfTipo " : " ") - .append(aidfId != null ? " AND AI.AIDF_ID = :aidfId " : " "); + .append(aidfId != null ? " AND AI.AIDF_ID = :aidfId " : " ") + .append("AND TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) BETWEEN TO_NUMBER(DAB.NUMFOLIOINICIAL) AND TO_NUMBER(DAB.NUMFOLIOFINAL) ") + .append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA ") + .append(" OR (cj.NUMSERIEPREIMPRESA IS NULL ") + .append("AND dab.NUMSERIEPREIMPRESA IS NULL)) ") + .append("AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00', 'dd/mm/yyyy hh24:mi:ss') AND TO_DATE('30/08/2024 23:59:00', 'dd/mm/yyyy hh24:mi:ss') "); + + @@ -599,5 +617,22 @@ public class RelatorioEstoque extends Relatorio { return lsBlocoJaTodoUtilizado; } + private List validarFolioPreImpressoPuntoventa(List lsEstoquePorSalto, String puntoVentaId) { + + List lsEstoquePorSaltoaux = new ArrayList<>(lsEstoquePorSalto); + String[] puntoVentaIds = null; + + if (puntoVentaId != null) { + puntoVentaIds = puntoVentaId.split(","); + for (ItemReporteControleEstoqueBoletos itemReporteControleEstoqueBoletos : lsEstoquePorSalto) { + for (String id : puntoVentaIds) { + if(!itemReporteControleEstoqueBoletos.getPuntoVentaId().equals(Integer.valueOf(id))) { + lsEstoquePorSaltoaux.remove(itemReporteControleEstoqueBoletos); + } + } + } + } + return lsEstoquePorSaltoaux; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java index f61a7f4c0..ba150795b 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java @@ -33,6 +33,7 @@ public class ItemReporteControleEstoqueBoletos { private String ID; private String tipoAidf; private Integer quantidade; + private Integer puntoVentaId; public Integer getEstacionId() { @@ -199,6 +200,13 @@ public class ItemReporteControleEstoqueBoletos { public void setQuantidade(Integer quantidade) { this.quantidade = quantidade; } + + public Integer getPuntoVentaId() { + return puntoVentaId; + } + public void setPuntoVentaId(Integer puntoVentaId) { + this.puntoVentaId = puntoVentaId; + } @Override public int hashCode() { final int prime = 31;