Fixes bug#AL-4556

master
Fernando Abimael Alvarez Uc 2024-08-27 16:53:00 -06:00
commit 430656eb2b
9 changed files with 257 additions and 55 deletions

View File

@ -1,14 +1,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd ">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId> <artifactId>ventaboletosadm</artifactId>
<version>1.130.1</version> <version>1.131.2</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<modelWeb.version>1.100.0</modelWeb.version> <modelWeb.version>1.101.0</modelWeb.version>
<flyway.version>1.88.0</flyway.version> <flyway.version>1.88.0</flyway.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties> </properties>

View File

@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
@ -14,7 +15,6 @@ import java.util.Map;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ItemReporteControleEstoqueBoletos; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ItemReporteControleEstoqueBoletos;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioBilhetesVendidosEstoqueAgenciaBean;
import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
@ -48,12 +48,21 @@ public class RelatorioEstoque extends Relatorio {
} }
String sql = retornarItensConsultaPorPuloFolio(puntoVentaId,empresaId, dtInicio, dtFim, aidfTipoId, aidfId); String sql = retornarItensConsultaPorPuloFolio(puntoVentaId,empresaId, dtInicio, dtFim, aidfTipoId, aidfId);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
if(dtInicio != null && dtFim != null) { if(dtInicio != null && dtFim != null) {
stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
stmt.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); stmt.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59");
}else if(dtInicio != null) { }else if(dtInicio != null) {
stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
} }
Calendar c = Calendar.getInstance();
c.setTime(dtInicio);
c.add(Calendar.YEAR, -3);
stmt.setString("dataInicioVenda", DateUtil.getStringDate(c.getTime(), "dd/MM/yyyy") + " 23:59:59");
stmt.setString("dataFimVenda", DateUtil.getStringDate(new Date(), "dd/MM/yyyy") + " 23:59:59");
if(aidfTipoId != null) { if(aidfTipoId != null) {
stmt.setInt("aidfTipo",aidfTipoId); stmt.setInt("aidfTipo",aidfTipoId);
} }
@ -82,6 +91,7 @@ public class RelatorioEstoque extends Relatorio {
item.setFechorAquisicion((Date) rset.getObject("fechorAquisicion")); item.setFechorAquisicion((Date) rset.getObject("fechorAquisicion"));
item.setFecVencimento((Date) rset.getObject("fecVencimento")); item.setFecVencimento((Date) rset.getObject("fecVencimento"));
item.setID((String) rset.getObject("ID")); item.setID((String) rset.getObject("ID"));
item.setPuntoVentaId(rset.getInt("puntoVentaId") > 0 ? rset.getInt("puntoVentaId") : null);
lsEstoquePorSalto.add(item); lsEstoquePorSalto.add(item);
} }
@ -98,6 +108,10 @@ public class RelatorioEstoque extends Relatorio {
}else if(dtInicio != null) { }else if(dtInicio != null) {
stmt2.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); stmt2.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
} }
stmt2.setString("dataInicioVenda", DateUtil.getStringDate(c.getTime(), "dd/MM/yyyy") + " 23:59:59");
stmt2.setString("dataFimVenda", DateUtil.getStringDate(new Date(), "dd/MM/yyyy") + " 23:59:59");
if(aidfTipoId != null) { if(aidfTipoId != null) {
stmt2.setInt("aidfTipo",aidfTipoId); stmt2.setInt("aidfTipo",aidfTipoId);
} }
@ -107,6 +121,7 @@ public class RelatorioEstoque extends Relatorio {
ResultSet rset2 = null; ResultSet rset2 = null;
rset2 = stmt2.executeQuery(); rset2 = stmt2.executeQuery();
List<ItemReporteControleEstoqueBoletos> lsEstoque = new ArrayList<>() ; List<ItemReporteControleEstoqueBoletos> lsEstoque = new ArrayList<>() ;
while (rset2.next()) { while (rset2.next()) {
@ -137,6 +152,7 @@ public class RelatorioEstoque extends Relatorio {
List<ItemReporteControleEstoqueBoletos> lsTemp = new ArrayList<>(); List<ItemReporteControleEstoqueBoletos> lsTemp = new ArrayList<>();
List<ItemReporteControleEstoqueBoletos> lsTempRetorno = new ArrayList<>(); List<ItemReporteControleEstoqueBoletos> lsTempRetorno = new ArrayList<>();
List<ItemReporteControleEstoqueBoletos> lsTempRetornoAux = new ArrayList<>(); List<ItemReporteControleEstoqueBoletos> lsTempRetornoAux = new ArrayList<>();
lsEstoquePorSalto = validarFolioPreImpressoPuntoventa(lsEstoquePorSalto, puntoVentaId);
for (ItemReporteControleEstoqueBoletos i : lsEstoquePorSalto) { for (ItemReporteControleEstoqueBoletos i : lsEstoquePorSalto) {
if(map.get(i.getID()) == null) { if(map.get(i.getID()) == null) {
for (ItemReporteControleEstoqueBoletos item : lsEstoquePorSalto) { for (ItemReporteControleEstoqueBoletos item : lsEstoquePorSalto) {
@ -145,6 +161,7 @@ public class RelatorioEstoque extends Relatorio {
} }
} }
map.put(i.getID(), i.getID()); 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)); lsTempRetorno.addAll(gerarRangesDeFolios(recuperarOsFaltantes(lsTemp), lsTemp));
lsTemp = new ArrayList<ItemReporteControleEstoqueBoletos>(); lsTemp = new ArrayList<ItemReporteControleEstoqueBoletos>();
} }
@ -211,12 +228,13 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" TB.articuloId as articuloId, "); sb.append(" TB.articuloId as articuloId, ");
sb.append(" TB.nombEmpresa as nombEmpresa, "); sb.append(" TB.nombEmpresa as nombEmpresa, ");
sb.append(" TB.empresaId as empresaId, "); 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.fechorAquisicion as fechorAquisicion, ");
sb.append(" TB.tipo as tipo, "); sb.append(" TB.tipo as tipo, ");
sb.append(" TB.fecVencimento as fecVencimento, "); sb.append(" TB.fecVencimento as fecVencimento, ");
sb.append(" TB.ID as ID , TB.nomeEstado as nomeEstado, "); 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(" from (SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado, ");
sb.append(" dab.NUMSERIEPREIMPRESA AS serie, "); sb.append(" dab.NUMSERIEPREIMPRESA AS serie, ");
sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) AS folioCaja, "); sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) AS folioCaja, ");
@ -226,7 +244,7 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" AB.ARTICULO_ID AS articuloId, ");
sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, ");
sb.append(" EM.EMPRESA_ID AS empresaId, "); 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(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, ");
sb.append(" CASE "); sb.append(" CASE ");
sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') ");
@ -234,12 +252,13 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" END AS tipo , "); 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.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(" 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(" FROM CAJA CJ, ");
sb.append(" ARTICULO A, "); sb.append(" ARTICULO A, ");
sb.append(" EMPRESA EM, "); sb.append(" EMPRESA EM, ");
sb.append(" MARCA M, "); // sb.append(" MARCA M, ");
sb.append(" USUARIO U, "); // sb.append(" USUARIO U, ");
sb.append(" AIDF AI, "); sb.append(" AIDF AI, ");
sb.append(" AIDF_TIPO AIT, "); sb.append(" AIDF_TIPO AIT, ");
sb.append(" ESTADO est,"); sb.append(" ESTADO est,");
@ -250,12 +269,10 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" WHERE TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) BETWEEN TO_NUMBER(DAB.NUMFOLIOINICIAL) AND TO_NUMBER(DAB.NUMFOLIOFINAL) "); 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 CJ.PUNTOVENTA_ID = AB.PUNTOVENTA_ID ");
sb.append(" AND DAB.ACTIVO = 1 "); sb.append(" AND DAB.ACTIVO = 1 ");
sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA OR (cj.NUMSERIEPREIMPRESA IS NULL AND dab.NUMSERIEPREIMPRESA IS NULL)) ");
sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); // if (puntoVentaId != null) {
sb.append(" AND dab.NUMSERIEPREIMPRESA IS 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) { if(empresaId != null) {
sb.append(" AND Em.empresa_ID = ") sb.append(" AND Em.empresa_ID = ")
.append(empresaId); .append(empresaId);
@ -265,15 +282,16 @@ public class RelatorioEstoque extends Relatorio {
}else if(dataInicio!= null) { }else if(dataInicio!= null) {
sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') ");
} }
sb.append(" AND cj.fechorventa BETWEEN TO_DATE(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') ");
sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 "); sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 ");
sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" AND DAB.STATUSOPERACION IN(0, ");
sb.append(" 1, "); sb.append(" 1, ");
sb.append(" 4) "); sb.append(" 4) ");
sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID "); sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID ");
sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_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.EMPRESA_ID = EM.EMPRESA_ID ");
sb.append(" AND M.ACTIVO = 1 "); // sb.append(" AND M.ACTIVO = 1 ");
sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); // sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID ");
sb.append(" AND (CJ.INDREIMPRESION = 0 "); sb.append(" AND (CJ.INDREIMPRESION = 0 ");
sb.append(" OR (CJ.INDREIMPRESION = 1 "); sb.append(" OR (CJ.INDREIMPRESION = 1 ");
sb.append(" AND CJ.INDSTATUSBOLETO = 'E')) "); sb.append(" AND CJ.INDSTATUSBOLETO = 'E')) ");
@ -290,14 +308,14 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" PV.NOMBPUNTOVENTA, ");
sb.append(" AB.ARTICULO_ID, "); sb.append(" AB.ARTICULO_ID, ");
sb.append(" EM.NOMBEMPRESA, "); sb.append(" EM.NOMBEMPRESA, ");
sb.append(" U.USUARIO_ID, "); // sb.append(" U.USUARIO_ID, ");
sb.append(" EM.EMPRESA_ID, "); sb.append(" EM.EMPRESA_ID, ");
sb.append(" DAB.AIDF_ID, "); sb.append(" DAB.AIDF_ID, ");
sb.append(" M.MARCA_ID, "); // sb.append(" M.MARCA_ID, ");
sb.append(" A.descarticulo, "); sb.append(" A.descarticulo, ");
sb.append(" dab.STATUSOPERACION , "); sb.append(" dab.STATUSOPERACION , ");
sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); 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(" ");
sb.append(" UNION ALL "); sb.append(" UNION ALL ");
sb.append(" SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado , "); sb.append(" SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado , ");
@ -309,7 +327,7 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" AB.ARTICULO_ID AS articuloId, ");
sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, ");
sb.append(" EM.EMPRESA_ID AS empresaId, "); 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(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, ");
sb.append(" CASE "); sb.append(" CASE ");
sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') ");
@ -317,15 +335,17 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" END AS tipo, "); 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.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(" 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(" FROM CAJA_DIVERSOS CJ, ");
sb.append(" ARTICULO A, "); sb.append(" ARTICULO A, ");
sb.append(" EMPRESA EM, "); sb.append(" EMPRESA EM, ");
sb.append(" MARCA M, "); // sb.append(" MARCA M, ");
sb.append(" AIDF AI, "); sb.append(" AIDF AI, ");
sb.append(" AIDF_TIPO AIT, "); sb.append(" AIDF_TIPO AIT, ");
sb.append(" ESTADO est,"); sb.append(" ESTADO est,");
sb.append(" USUARIO U, "); // sb.append(" USUARIO U, ");
sb.append(" PUNTO_VENTA PV, "); sb.append(" PUNTO_VENTA PV, ");
sb.append(" ABASTO_BOLETO AB "); sb.append(" ABASTO_BOLETO AB ");
sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) "); sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) ");
@ -334,9 +354,9 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA ");
sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL ");
sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) "); sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) ");
if (puntoVentaId != null) { // if (puntoVentaId != null) {
sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); // sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) ");
} // }
if(empresaId != null) { if(empresaId != null) {
sb.append(" AND Em.empresa_ID = ") sb.append(" AND Em.empresa_ID = ")
.append(empresaId); .append(empresaId);
@ -346,19 +366,21 @@ public class RelatorioEstoque extends Relatorio {
}else if(dataInicio!= null) { }else if(dataInicio!= null) {
sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') ");
} }
sb.append(" AND FECHORVTA BETWEEN TO_DATE(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') ");
sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 "); sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 ");
sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" AND DAB.STATUSOPERACION IN(0, ");
sb.append(" 1, "); sb.append(" 1, ");
sb.append(" 4) "); 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 EM.EMPRESA_ID = AB.EMPRESA_ID ");
sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); // sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID ");
sb.append(" AND M.ACTIVO = 1 "); // sb.append(" AND M.ACTIVO = 1 ");
sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); // sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID ");
sb.append(" AND CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID "); sb.append(" AND CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID ");
sb.append(" AND DAB.ACTIVO = 1 "); 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(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(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(" GROUP BY DAB.AIDF_ID, ");
sb.append(" DAB.NUMSERIEPREIMPRESA, "); sb.append(" DAB.NUMSERIEPREIMPRESA, ");
@ -368,14 +390,16 @@ public class RelatorioEstoque extends Relatorio {
sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" PV.NOMBPUNTOVENTA, ");
sb.append(" AB.ARTICULO_ID, "); sb.append(" AB.ARTICULO_ID, ");
sb.append(" EM.NOMBEMPRESA, "); sb.append(" EM.NOMBEMPRESA, ");
sb.append(" U.USUARIO_ID, "); // sb.append(" U.USUARIO_ID, ");
sb.append(" EM.EMPRESA_ID, "); sb.append(" EM.EMPRESA_ID, ");
sb.append(" DAB.AIDF_ID, "); sb.append(" DAB.AIDF_ID, ");
sb.append(" M.MARCA_ID, "); // sb.append(" M.MARCA_ID, ");
sb.append(" A.descarticulo, "); sb.append(" A.descarticulo, ");
sb.append(" dab.STATUSOPERACION, "); sb.append(" dab.STATUSOPERACION, ");
sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); 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(" ORDER BY TB.aidfId, ");
sb.append(" TB.serie, "); sb.append(" TB.serie, ");
sb.append(" TB.folioCaja "); sb.append(" TB.folioCaja ");
@ -439,12 +463,20 @@ public class RelatorioEstoque extends Relatorio {
.append("LEFT JOIN aidf_tipo ait ON ait.AIDFTIPO_ID= ai.AIDFTIPO_ID ") .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 ESTADO est ON est.ESTADO_ID = ai.ESTADO_ID ")
.append("LEFT JOIN ESTACION ES ON es.ESTACION_ID = ab.ESTACION_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("WHERE dab.STATUSOPERACION IN(0,1,4) ")
.append("AND dab.ACTIVO = 1 ") .append("AND dab.ACTIVO = 1 ")
.append(" and dab.NUMFOLIOFINAL < 2147483647 ") .append(" and dab.NUMFOLIOFINAL < 2147483647 ")
.append(" AND DAB.AIDF_ID = AI.AIDF_ID and ai.activo = 1 ") .append(" AND DAB.AIDF_ID = AI.AIDF_ID and ai.activo = 1 ")
.append(aidfTipo != null ? " AND AI.AIDFTIPO_ID = :aidfTipo " : " ") .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(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') ");
@ -599,5 +631,22 @@ public class RelatorioEstoque extends Relatorio {
return lsBlocoJaTodoUtilizado; 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 ID;
private String tipoAidf; private String tipoAidf;
private Integer quantidade; private Integer quantidade;
private Integer puntoVentaId;
public Integer getEstacionId() { public Integer getEstacionId() {
@ -199,6 +200,13 @@ public class ItemReporteControleEstoqueBoletos {
public void setQuantidade(Integer quantidade) { public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade; this.quantidade = quantidade;
} }
public Integer getPuntoVentaId() {
return puntoVentaId;
}
public void setPuntoVentaId(Integer puntoVentaId) {
this.puntoVentaId = puntoVentaId;
}
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; final int prime = 31;

View File

@ -42,9 +42,11 @@ import com.rjconsultores.ventaboletos.service.ClaseServicioService;
import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.service.MarcaService;
import com.rjconsultores.ventaboletos.service.OperadorEmbarcadaService; import com.rjconsultores.ventaboletos.service.OperadorEmbarcadaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.InputMessageBox;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.api.CacheOperadorEmbarcada;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.ItemRenderRutaOperadorEmbarcada; import com.rjconsultores.ventaboletos.web.utilerias.render.ItemRenderRutaOperadorEmbarcada;
@ -553,7 +555,13 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer
operador = operadorService.suscribirActualizar(operador, linhas, listaServicos); operador = operadorService.suscribirActualizar(operador, linhas, listaServicos);
Usuario usuario = operador.getUsuario();
String OperadorId = operadorEdicao.getOperadorEmbarcadaId().toString();
String senha = InputMessageBox.showQuestion(Labels.getLabel("limparCacheAPI.message.senha"),
Labels.getLabel("limparCacheAPI.title"), Messagebox.OK);
CacheOperadorEmbarcada.getInstance().limparCacheOperador(OperadorId, senha, usuario);
} }
try { try {
Messagebox.show(Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo"), Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo.title"), Messagebox.show(Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo"), Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo.title"),
@ -582,6 +590,12 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer
if (resp == Messagebox.YES) { if (resp == Messagebox.YES) {
String senha = InputMessageBox.showQuestion(Labels.getLabel("limparCacheAPI.message.senha"),
Labels.getLabel("limparCacheAPI.title"), Messagebox.OK);
Usuario usuario = operadorEdicao.getUsuario();
String OperadorId = operadorEdicao.getOperadorEmbarcadaId().toString();
operadorService.apagar(operadorEdicao); operadorService.apagar(operadorEdicao);
Messagebox.show( Messagebox.show(
@ -589,6 +603,8 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer
Labels.getLabel("busquedaOperadorEmbarcada.MSG.borrarPergunta.title"), Labels.getLabel("busquedaOperadorEmbarcada.MSG.borrarPergunta.title"),
Messagebox.OK, Messagebox.INFORMATION); Messagebox.OK, Messagebox.INFORMATION);
CacheOperadorEmbarcada.getInstance().limparCacheOperador(OperadorId, senha, usuario);
closeWindow(); closeWindow();
} }
} catch (Exception ex) { } catch (Exception ex) {

View File

@ -24,6 +24,7 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.InputMessageBox; import com.rjconsultores.ventaboletos.web.utilerias.InputMessageBox;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.api.ApiCallRunnable; import com.rjconsultores.ventaboletos.web.utilerias.api.ApiCallRunnable;
import com.rjconsultores.ventaboletos.web.utilerias.api.ETipoEnvio;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
/** /**
@ -119,7 +120,7 @@ public class LimparCacheApiController extends MyGenericForwardComposer {
urlBase, urlBase,
user.getClaveUsuario(), user.getClaveUsuario(),
secret, secret,
false); ETipoEnvio.POST);
Thread thread = new Thread(cache); Thread thread = new Thread(cache);
thread.start(); thread.start();
thread.join(); thread.join();

View File

@ -10,6 +10,7 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.HttpUriRequest;
@ -39,7 +40,7 @@ public class ApiCallRunnable implements Runnable {
private String retorno; private String retorno;
private String urlBase; private String urlBase;
private String user = "internal"; private String user = "internal";
private boolean get = true; private ETipoEnvio tipoEnvio;
public String getUrl() { public String getUrl() {
return url; return url;
@ -71,14 +72,14 @@ public class ApiCallRunnable implements Runnable {
this.urlBase = urlOriginal; this.urlBase = urlOriginal;
} }
public ApiCallRunnable(String url, String tenant, String urlBase, String user, String secret, boolean get) { public ApiCallRunnable(String url, String tenant, String urlBase, String user, String secret, ETipoEnvio tipoEnvio) {
super(); super();
this.secret = secret; this.secret = secret;
this.url = url; this.url = url;
this.tenant = tenant; this.tenant = tenant;
this.urlBase = urlBase; this.urlBase = urlBase;
this.user = user; this.user = user;
this.get = get; this.tipoEnvio = tipoEnvio;
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@ -90,10 +91,12 @@ public class ApiCallRunnable implements Runnable {
HttpUriRequest request; HttpUriRequest request;
if(isGet()) { if(ETipoEnvio.POST.equals(tipoEnvio)) {
request = new HttpGet(url);
}else {
request = new HttpPost(url); request = new HttpPost(url);
} else if(ETipoEnvio.DELETE.equals(tipoEnvio)) {
request = new HttpDelete(url);
} else {
request = new HttpGet(url);
} }
UsernamePasswordCredentials creds = null; UsernamePasswordCredentials creds = null;
@ -172,12 +175,12 @@ public class ApiCallRunnable implements Runnable {
this.secret = secret; this.secret = secret;
} }
public boolean isGet() { public ETipoEnvio getTipoEnvio() {
return get; return tipoEnvio;
} }
public void setGet(boolean get) { public void setTipoEnvio(ETipoEnvio tipoEnvio) {
this.get = get; this.tipoEnvio = tipoEnvio;
} }
} }

View File

@ -0,0 +1,120 @@
package com.rjconsultores.ventaboletos.web.utilerias.api;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.zkoss.util.resource.Labels;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.enums.CacheApiEnum;
import com.rjconsultores.ventaboletos.service.ConstanteService;
import com.rjconsultores.ventaboletos.service.UsuarioEmpresaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
public class CacheOperadorEmbarcada {
private static CacheOperadorEmbarcada instance;
public final String URL_API_EMB = "URL_API_EMB";
private static Logger log = LogManager.getLogger(CacheOperadorEmbarcada.class);
public static CacheOperadorEmbarcada getInstance() {
if(instance == null) {
instance = new CacheOperadorEmbarcada();
}
return instance;
}
public void limparCacheOperador(String OperadorId, String senha, Usuario usuario) {
try {
log.info("Inicio limparCacheOperador, OperadorId: " + OperadorId);
CacheApiEnum entidade = CacheApiEnum.OPERADOR_ESPECIFICO;
String[] urls = getURLSAPI();
if (urls == null || urls.length == 0) {
log.info(Labels.getLabel("limparCacheAPI.message.naoconfigurado"));
return;
}
Usuario user = UsuarioLogado.getUsuarioLogado();
List<Empresa> empresas = buscarEmpresas(usuario);
for (String url : urls) {
if (StringUtils.isBlank(url) || url.contains("|")) {
log.info(Labels.getLabel("limparCacheAPI.message.naoconfigurado"));
return;
}
String tenant = StringUtils.substringBetween(url, "[", "]");
if (tenant != null) {
url = url.replaceAll("\\[.*?\\]", "");
}
String urlBase = url;
for(Empresa emp : empresas) {
url = montarUrlRequest(url, entidade.getUri(), OperadorId, emp.getEmpresaId());
log.info("URL: " + url);
ApiCallRunnable cache = new ApiCallRunnable(
url,
tenant,
urlBase,
user.getClaveUsuario(),
senha,
ETipoEnvio.DELETE);
Thread thread = new Thread(cache);
thread.start();
thread.join();
log.info(cache.getRetorno());
}
}
log.info("Final limparCacheOperador, OperadorId: " + OperadorId);
} catch (Exception e) {
log.error("Erro ao limpar cache operador embarcada", e);
}
}
private String montarUrlRequest(String url, String uri, String OperadorId, Integer empresaId) {
url = url.toLowerCase();
if (!url.endsWith("/")) {
url += "/";
}
uri = uri.replace("operador_id", OperadorId);
uri = uri.replace("empresa_id", empresaId.toString());
return url.concat(uri);
}
private List<Empresa> buscarEmpresas(Usuario usuario) {
ApplicationContext appContext = AppContext.getApplicationContext();
UsuarioEmpresaService usuarioEmpService = (UsuarioEmpresaService) appContext.getBean("usuarioEmpresaService");
return usuarioEmpService.obtenerEmpresa(usuario);
}
private String[] getURLSAPI() {
ApplicationContext appContext = AppContext.getApplicationContext();
ConstanteService constanteService = (ConstanteService) appContext.getBean("constanteService");
String constante = constanteService.buscarURLAPIEmb();
return constante == null ? null : constante.split("\\|");
}
}

View File

@ -0,0 +1,5 @@
package com.rjconsultores.ventaboletos.web.utilerias.api;
public enum ETipoEnvio {
GET, POST, DELETE;
}

View File

@ -1,5 +1,5 @@
MSG.ATIVADO = AtFivado MSG.ATIVADO = Ativado
MSG.CONSTRAINT.CAMPOOBRIGATORIO = Informe los campos obrigatorios o borre todos los dados de la pantalla! MSG.CONSTRAINT.CAMPOOBRIGATORIO = Informe los campos obrigatorios o borre todos los dados de la pantalla!
MSG.CONSTRAINT.CONSTRAINTNUMBERBD = El valor debe de tener el formato de {0} dígitos mas {1} decimales MSG.CONSTRAINT.CONSTRAINTNUMBERBD = El valor debe de tener el formato de {0} dígitos mas {1} decimales
MSG.CONSTRAINT.CONSTRAINTNUMBERBD.EXCEPTION = El valor informado no es válido MSG.CONSTRAINT.CONSTRAINTNUMBERBD.EXCEPTION = El valor informado no es válido