Merge pull request 'fixes bug#AL-4718' (!680) from AL-4718 into master

Reviewed-on: adm/VentaBoletosAdm#680
Reviewed-by: Célio de Souza Ribeiro JR <celio@rjconsultores.com.br>
master 1.130.1
wallace 2024-08-27 18:26:08 +00:00
commit 5e83ce33fb
3 changed files with 80 additions and 37 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId>
<version>1.130.0</version>
<version>1.130.1</version>
<packaging>war</packaging>
<properties>

View File

@ -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<ItemReporteControleEstoqueBoletos> lsTemp = new ArrayList<>();
List<ItemReporteControleEstoqueBoletos> lsTempRetorno = new ArrayList<>();
List<ItemReporteControleEstoqueBoletos> 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<ItemReporteControleEstoqueBoletos>();
}
@ -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,");
@ -250,18 +255,17 @@ public class RelatorioEstoque extends Relatorio {
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 (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(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<ItemReporteControleEstoqueBoletos> validarFolioPreImpressoPuntoventa(List<ItemReporteControleEstoqueBoletos> lsEstoquePorSalto, String puntoVentaId) {
List<ItemReporteControleEstoqueBoletos> 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;
}
}

View File

@ -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;