From 751dd8d241c8daef6c4c6c53efe1b74f29b69a57 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Fri, 1 Mar 2024 06:55:00 -0300 Subject: [PATCH] fixes bug#AL-3920 --- pom.xml | 2 +- .../relatorios/impl/RelatorioEstoque.java | 554 ++++++++++++++---- .../templates/RelatorioEstoque.jasper | Bin 35001 -> 34715 bytes .../templates/RelatorioEstoque.jrxml | 49 +- .../ItemReporteControleEstoqueBoletos.java | 185 ++++++ 5 files changed, 644 insertions(+), 146 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java diff --git a/pom.xml b/pom.xml index 7bc57d0c3..9478ca699 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.54.6 + 1.54.7 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java index ba4c9ac63..0cda99763 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -1,89 +1,169 @@ package com.rjconsultores.ventaboletos.relatorios.impl; +import java.math.BigDecimal; import java.sql.Connection; import java.sql.ResultSet; -import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; -import com.rjconsultores.ventaboletos.enums.EnumTipoVenda; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ItemReporteControleEstoqueBoletos; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + public class RelatorioEstoque extends Relatorio { + private List lsDadosRelatorio; + public RelatorioEstoque(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); this.setCustomDataSource(new ArrayDataSource(this) { public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); - String sql = getSql(); - - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + Integer empresaId = null; + String puntoVentaId = null; + Date dtInicio = (Date) parametros.get("DATA_INICIO"); Date dtFim = (Date) parametros.get("DATA_FIM"); + + if (parametros.get("EMPRESA_ID") != null) { + empresaId = Integer.valueOf(parametros.get("EMPRESA_ID").toString()); + } + if (parametros.get("NUMPUNTOVENTA") != null) { + puntoVentaId = String.valueOf(parametros.get("NUMPUNTOVENTA")); + } + String sql = retornarItensConsultaPorPuloFolio(puntoVentaId,empresaId, dtInicio, dtFim); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + if(dtInicio != null && dtFim != null) { stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); stmt.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); }else if(dtInicio != null) { stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); } + lsDadosRelatorio = new ArrayList(); + ResultSet rset = null; + rset = stmt.executeQuery(); + List lsEstoquePorSalto = new ArrayList<>(); - - ResultSet rset = stmt.executeQuery(); - while (rset.next()) { - Map dataResult = new HashMap(); - String tipoVenta = rset.getString("tipoVenta"); - String formfinal = rset.getString("formfinal"); - - String formInicio = rset.getString("forminicial"); - - - String ultimoFolioCaja = rset.getString("ultimoFolioCaja"); - - boolean isFormularioMaior = false; - try { - int ultimoFolioCajaInt = Integer.parseInt(ultimoFolioCaja); - int formfinalInt = Integer.parseInt(formfinal); - - if (ultimoFolioCaja != null && ultimoFolioCajaInt > formfinalInt) { - isFormularioMaior = true; - } - - } catch (Exception e) { - } - - if (isFormularioMaior) { - formInicio = formfinal; - } else { - formInicio = ultimoFolioCaja != null ? ultimoFolioCaja : formInicio; - } - - - dataResult.put("dataVencimento", rset.getDate("dataVencimento")); - dataResult.put("dataAquicision", rset.getDate("dataAquicision")); - dataResult.put("aidf", rset.getString("aidf")); - dataResult.put("empresa", rset.getString("nombempresa")); - dataResult.put("estacao", rset.getString("estacao")); - dataResult.put("agencia", rset.getString("nombpuntoventa")); - dataResult.put("serie", rset.getString("serie")); - dataResult.put("forminicio", formInicio); - dataResult.put("formfinal", formfinal); - dataResult.put("estado", rset.getString("nombestado")); - dataResult.put("tipo", rset.getString("tipo")); - - this.dados.add(dataResult); + ItemReporteControleEstoqueBoletos item = new ItemReporteControleEstoqueBoletos(); + item.setAidfId(rset.getInt("aidfId") > 0 ? rset.getInt("aidfId") : null); + item.setNombEmpresa((String) rset.getObject("nombEmpresa")); + item.setNomeEstado((String) rset.getObject("nomeEstado")); + item.setDescPuntoVenta((String) rset.getObject("descPuntoVenta")); + item.setSerie((String) rset.getObject("serie")); + item.setTipo((String) rset.getObject("tipo")); + item.setFolioInicial((String) rset.getObject("folioInicial")); + item.setFolioFinal((String) rset.getString("folioFinal")); + item.setFolioCaja((BigDecimal) rset.getObject("folioCaja")); + item.setArticuloId(rset.getInt("articuloId") > 0 ? rset.getInt("articuloId") : null); + item.setFechorAquisicion((Date) rset.getObject("fechorAquisicion")); + item.setFecVencimento((Date) rset.getObject("fecVencimento")); + item.setID((String) rset.getObject("ID")); + lsEstoquePorSalto.add(item); } this.resultSet = rset; + + + String sqlretornEstoque = sQLretornarEstoque(puntoVentaId, dtInicio, dtFim,empresaId); + + NamedParameterStatement stmt2 = new NamedParameterStatement(conexao, sqlretornEstoque); + + if(dtInicio != null && dtFim != null) { + stmt2.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); + stmt2.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); + }else if(dtInicio != null) { + stmt2.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); + } + + ResultSet rset2 = null; + rset2 = stmt2.executeQuery(); + List lsEstoque = new ArrayList<>() ; + while (rset2.next()) { + + ItemReporteControleEstoqueBoletos item = new ItemReporteControleEstoqueBoletos(); + item.setAidfId(rset2.getInt("aidfId") > 0 ? rset2.getInt("aidfId") : null); + item.setNombEmpresa((String) rset2.getObject("nombEmpresa")); + item.setDescPuntoVenta((String) rset2.getObject("descPuntoVenta")); + item.setNomeEstado((String) rset2.getObject("nomeEstado")); + item.setSerie((String) rset2.getObject("serie")); + item.setTipo((String) rset2.getObject("tipo")); + item.setFolioInicial((String) rset2.getObject("folioInicial")); + item.setFolioFinal((String) rset2.getObject("folioFinal")); + item.setFolioCaja((BigDecimal) rset2.getObject("folioCaja")); + item.setArticuloId(rset2.getInt("articuloId") > 0 ? rset2.getInt("articuloId") : null); + item.setFechorAquisicion((Date) rset2.getObject("fechorAquisicion")); + item.setFecVencimento((Date) rset2.getObject("fecVencimento")); + item.setID((String) rset2.getObject("ID")); + item.setCveUsuario((String) rset2.getObject("cveUsuario")); + item.setDescArticulo(rset2.getObject("descArticulo") != null ? rset2.getBigDecimal("descArticulo").toString(): null); + lsEstoque.add(item); + } + rset2 = stmt2.executeQuery(); + + + Map map = new HashMap(); + List lsTemp = new ArrayList<>(); + List lsTempRetorno = new ArrayList<>(); + List lsTempRetornoAux = new ArrayList<>(); + for (ItemReporteControleEstoqueBoletos i : lsEstoquePorSalto) { + if(map.get(i.getID()) == null) { + for (ItemReporteControleEstoqueBoletos item : lsEstoquePorSalto) { + if(i.getID().equals(item.getID())) { + lsTemp.add(item); + } + } + map.put(i.getID(), i.getID()); + lsTempRetorno.addAll(gerarRangesDeFolios(recuperarOsFaltantes(lsTemp), lsTemp)); + lsTemp = new ArrayList(); + } + } + lsTempRetornoAux.addAll(lsTempRetorno); + + + boolean contem = false; + + + for (ItemReporteControleEstoqueBoletos itemEstoque : lsEstoque) { + for (ItemReporteControleEstoqueBoletos itemReporteStockBoletos : lsTempRetorno) { + + if (itemReporteStockBoletos.getID().equals(itemEstoque.getID())) { + continue; + }else { + for (ItemReporteControleEstoqueBoletos itemReporteStockBoletos2 : lsTempRetornoAux) { + if(itemReporteStockBoletos2.getID().equals(itemEstoque.getID())) { + contem = true; + } + } + if(contem) { + contem = false; + continue; + }else { + lsTempRetornoAux.add(itemEstoque); + contem = false; + } + } + } + } + + List lsBlocoJaTodoUtilizado = tratarBlocoJaTodoUtilizado(lsTempRetornoAux); + for (ItemReporteControleEstoqueBoletos itemReporteControleEstoqueBoletos : lsBlocoJaTodoUtilizado) { + lsDadosRelatorio.add(itemReporteControleEstoqueBoletos); + } + setLsDadosRelatorio(lsDadosRelatorio); } }); } @@ -91,75 +171,313 @@ public class RelatorioEstoque extends Relatorio { @Override protected void processaParametros() throws Exception { } - - private String getSql() { - StringBuilder sql = new StringBuilder(); - sql.append("SELECT ai.fecvencimiento as dataVencimento, ai.fecadquisicion as dataAquicision, dab.aidf_id AS aidf, "); - sql.append(" e.nombempresa, "); - sql.append(" p.nombpuntoventa, "); - sql.append(" dab.NUMSERIEPREIMPRESA AS serie, "); - sql.append(" coalesce(es.descestacion, 'Todas') AS estacao, "); - sql.append(" tp.desctipo AS tipo, "); - - sql.append(" ( case "); - sql.append(" when "); - sql.append(" dab.STATUSOPERACION = 0 "); - sql.append(" then "); - sql.append(" dab.NUMFOLIOINICIAL"); - sql.append(" else "); - sql.append(" coalesce(fp.FOLIOPREIMPRESO,dab.NUMFOLIOINICIAL) "); - sql.append(" end ) AS forminicial,"); - sql.append(" dab.NUMFOLIOFINAL AS formfinal, "); - sql.append(" CASE "); - sql.append(" WHEN dab.STATUSOPERACION = 1 THEN fp.FOLIOPREIMPRESO "); - sql.append(" ELSE COALESCE( "); - sql.append(" "); - sql.append(" (SELECT TO_CHAR(MAX(c.numfoliopreimpreso)+1) "); - sql.append(" FROM caja c "); - sql.append(" WHERE (c.numseriepreimpresa = dab.numseriepreimpresa "); - sql.append(" OR (c.numseriepreimpresa IS NULL "); - sql.append(" AND dab.numseriepreimpresa IS NULL)) "); - sql.append(" AND to_number(c.numfoliopreimpreso) BETWEEN dab.numfolioinicial AND dab.numfoliofinal "); - sql.append(" AND (c.indreimpresion = 0 "); - sql.append(" OR (c.indreimpresion = 1 "); - sql.append(" AND c.indstatusboleto = 'E')) "); - sql.append(" AND c.marca_id = m.marca_id), (SELECT to_char(MAX(cd.numfoliopreimpreso)+1) "); - sql.append(" FROM caja_diversos cd "); - sql.append(" WHERE cd.numseriepreimpresa = dab.numseriepreimpresa AND to_number(cd.numfoliopreimpreso) BETWEEN dab.numfolioinicial AND dab.numfoliofinal ) , dab.NUMFOLIOINICIAL) "); - sql.append(" END AS ultimoFolioCaja, "); - sql.append(" ar.articulo_id AS tipoventa,"); - sql.append(" ar.descarticulo, "); - sql.append(" est.nombestado "); - sql.append(" FROM abasto_boleto ab "); - sql.append(" INNER JOIN det_abasto_boleto dab ON ( dab.abastoboleto_id = ab.abastoboleto_id and dab.ACTIVO = 1 )"); - sql.append(" INNER JOIN aidf ai ON ( ai.aidf_id =dab.aidf_id )"); - sql.append(" INNER JOIN estado est ON ( est.estado_id = ai.ESTADO_ID ) "); - sql.append(" INNER JOIN empresa e ON ( e.empresa_id = ab.empresa_id and ab.ACTIVO = 1 )"); - sql.append(" INNER JOIN punto_venta p ON ( p.puntoventa_id = ab.puntoventa_id and p.ACTIVO = 1 )"); - sql.append(" INNER JOIN ARTICULO ar ON ( ar.ARTICULO_ID = ab.ARTICULO_ID )"); - sql.append(" LEFT JOIN TIPO_PTOVTA tp ON ( tp.TIPOPTOVTA_ID = p.TIPOPTOVTA_ID and tp.ACTIVO = 1 )"); - sql.append(" LEFT JOIN estacion es ON ( es.ESTACION_ID = ab.ESTACION_ID )"); - sql.append(" LEFT JOIN FOLIO_PREIMPRESO fp ON ( fp.AIDF_ID = dab.AIDF_ID and fp.EMPRESA_ID = e.EMPRESA_ID and fp.ESTACION_ID = ab.ESTACION_ID and fp.activo = 1 )"); - sql.append(" LEFT JOIN EMPRESA em ON em.EMPRESA_ID = ab.EMPRESA_ID "); - sql.append(" LEFT JOIN MARCA m ON m.EMPRESA_ID = em.EMPRESA_ID AND m.ACTIVO = 1 "); - - sql.append(" WHERE "); - sql.append(" dab.statusoperacion in (0,1) and dab.activo = 1 and ab.activo = 1 and ai.activo = 1 "); - if (parametros.get("EMPRESA_ID") != null) { - sql.append(" AND e.empresa_id = ").append(parametros.get("EMPRESA_ID")); - } - if (parametros.get("NUMPUNTOVENTA") != null) { - sql.append(" AND ab.puntoventa_id in(").append(parametros.get("NUMPUNTOVENTA")).append(") "); - } - if(parametros.get("DATA_INICIO") != null && parametros.get("DATA_FIM") != null) { - sql.append(" AND fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); - }else if(parametros.get("DATA_INICIO") != null) { - sql.append(" AND fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); - } - sql.append(" ORDER BY e.nombempresa, p.nombpuntoventa,es.descestacion, ar.descarticulo, forminicial"); - - return sql.toString(); - + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + public List getLsDadosRelatorio() { + return lsDadosRelatorio; } + + + + private String retornarItensConsultaPorPuloFolio(String puntoVentaId, Integer empresaId, Date dataInicio, Date dataFim) { + + StringBuilder sb = new StringBuilder(); + + sb.append("SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado,"); + sb.append("dab.NUMSERIEPREIMPRESA as serie, "); + sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) as folioCaja, "); + sb.append(" DAB.NUMFOLIOINICIAL AS folioInicial,"); + sb.append(" DAB.NUMFOLIOFINAL AS folioFinal,"); + sb.append(" PV.NOMBPUNTOVENTA AS descPuntoVenta,"); + sb.append(" AI.SUBSERIE AS subSerie,"); + 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(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, " ); + sb.append("CASE WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo,' (Distribuição Estoque)') ELSE a.descarticulo 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("FROM CAJA CJ,"); + sb.append(" ESTACION E,"); + sb.append(" ARTICULO A,"); + sb.append(" EMPRESA EM,"); + sb.append(" MARCA M,"); + + sb.append(" AIDF AI,"); + sb.append(" ESTADO est,"); + + 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) "); + 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 OR (cj.NUMSERIEPREIMPRESA IS NULL and dab.NUMSERIEPREIMPRESA is null)) "); + + if (puntoVentaId != null) { + sb.append(" AND pv.PUNTOVENTA_ID in("+puntoVentaId+ ")"); + } + + if(empresaId != null) { + sb.append(" AND Em.empresa_ID = ") + .append(empresaId); + } + + sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647"); + sb.append(" AND DAB.STATUSOPERACION IN(0,1,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 DAB.AIDF_ID = AI.AIDF_ID"); + + + 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') "); + }else if(dataInicio!= null) { + sb.append(" AND fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); + } + 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'))"); + sb.append(" AND CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID"); + sb.append(" AND DAB.ACTIVO = 1 and AB.activo =1 and est.estado_id = ai.ESTADO_ID "); + sb.append("GROUP BY DAB.AIDF_ID,"); + sb.append(" DAB.NUMSERIEPREIMPRESA,"); + sb.append(" CJ.NUMFOLIOPREIMPRESO,"); + sb.append(" DAB.NUMFOLIOINICIAL,"); + sb.append(" DAB.NUMFOLIOFINAL,"); + sb.append(" PV.NOMBPUNTOVENTA,"); + + + sb.append(" AI.SUBSERIE,"); + + sb.append(" AB.ARTICULO_ID,"); + sb.append(" EM.NOMBEMPRESA,"); + sb.append(" U.USUARIO_ID,"); + sb.append(" EM.EMPRESA_ID,"); + sb.append(" DAB.AIDF_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 "); + sb.append("ORDER BY DAB.AIDF_ID,"); + sb.append(" DAB.NUMSERIEPREIMPRESA,"); + sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO)"); + + + return sb.toString(); + + } + + private String sQLretornarEstoque(String puntoVentaId, Date dataInicio, Date dataFim, Integer empresaId) { + + StringBuilder queryString = new StringBuilder("SELECT DISTINCT to_date(to_char(ai.fecvencimiento, 'dd/MM/yyyy'), 'dd/MM/yyyy') as fecVencimento, to_date(to_char(AI.fecadquisicion, 'dd/MM/yyyy'), 'dd/MM/yyyy') as fechorAquisicion, ") + .append("dab.NUMSERIEPREIMPRESA as serie, ") + .append("dab.NUMFOLIOINICIAL as folioInicial, ") + .append("dab.NUMFOLIOFINAL as folioFinal, ") + .append("pv.NOMBPUNTOVENTA as descPuntoVenta, ") + .append("to_number(dab.NUMFOLIOINICIAl) as ultimoFolioCaja, ") + .append(" CASE ") + .append(" WHEN dab.STATUSOPERACION = 1 THEN fp.FOLIOPREIMPRESO ") + .append(" ELSE COALESCE( ") + .append(" ") + .append(" (SELECT TO_CHAR(MAX(c.numfoliopreimpreso)+1) ") + .append(" FROM caja c ") + .append(" WHERE (c.numseriepreimpresa = dab.numseriepreimpresa ") + .append(" OR (c.numseriepreimpresa IS NULL ") + .append(" AND dab.numseriepreimpresa IS NULL)) ") + .append(" AND to_number(c.numfoliopreimpreso) BETWEEN dab.numfolioinicial AND dab.numfoliofinal ") + .append(" AND (c.indreimpresion = 0 ") + .append(" OR (c.indreimpresion = 1 ") + .append(" AND c.indstatusboleto = 'E')) ") + .append(" AND c.marca_id = m.marca_id), (SELECT to_char(MAX(cd.numfoliopreimpreso)+1) ") + .append(" FROM caja_diversos cd ") + .append(" WHERE cd.numseriepreimpresa = dab.numseriepreimpresa AND to_number(cd.numfoliopreimpreso) BETWEEN dab.numfolioinicial AND dab.numfoliofinal ) , dab.NUMFOLIOINICIAL) ") + .append("END as folioAtual, ") + .append("ab.ARTICULO_ID as articuloId, ") + .append("a.ARTICULO_ID as descArticulo, ") + .append("CASE WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo,' (Distribuição Estoque)') ELSE a.descarticulo END as tipo, ") + .append("em.nombEmpresa as \"nombEmpresa\", ") + .append("em.EMPRESA_ID as \"empresaId\", ") + .append("CASE WHEN dab.STATUSOPERACION = 1 THEN to_number(fp.FOLIOPREIMPRESO) ELSE NULL END as folioCaja, ") + .append("dab.AIDF_ID as aidfId, ") + .append("m.MARCA_ID as marcaId, ") + .append("ai.SUBSERIE as subSerie, ") + .append("us.CVEUSUARIO as cveUsuario, ") + .append(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || dab.NUMFOLIOINICIAL || dab.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, " ) + .append("est.NOMBESTADO as nomeEstado ") + .append("FROM DET_ABASTO_BOLETO dab ") + .append("INNER JOIN ABASTO_BOLETO ab ON dab.ABASTOBOLETO_ID = ab.ABASTOBOLETO_ID ") + .append("LEFT JOIN USUARIO us ON ab.USUARIOESTOQUE_ID = us.USUARIO_ID ") + .append("INNER JOIN PUNTO_VENTA pv ON ab.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ") + .append("LEFT JOIN FOLIO_PREIMPRESO fp ON fp.EMPRESA_ID = ab.EMPRESA_ID ") + .append(" AND (fp.NUMESERIE = dab.NUMSERIEPREIMPRESA OR (fp.NUMESERIE IS NULL AND dab.NUMSERIEPREIMPRESA IS NULL)) ") + .append(" AND to_number(fp.FOLIOPREIMPRESO) BETWEEN to_number(dab.NUMFOLIOINICIAL) AND to_number(dab.NUMFOLIOFINAL) ") + .append(" AND (fp.ACTIVO = 1) ") + .append("LEFT JOIN ARTICULO a ON a.ARTICULO_ID = ab.ARTICULO_ID ") + .append("LEFT JOIN EMPRESA em ON em.EMPRESA_ID = ab.EMPRESA_ID ") + .append("LEFT JOIN MARCA m ON m.EMPRESA_ID = em.EMPRESA_ID AND m.ACTIVO = 1 ") + .append("LEFT JOIN AIDF ai ON dab.AIDF_ID = ai.AIDF_ID ") + .append("LEFT JOIN ESTADO est ON est.ESTADO_ID = est.ESTADO_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 "); + + + if (puntoVentaId != null) { + queryString.append(" AND pv.PUNTOVENTA_ID in("+puntoVentaId+ ")"); + } + + if (empresaId != null) { + queryString.append(" AND em.EMPRESA_ID = ") + .append(empresaId); + } + if(dataInicio!= null && dataFim != null) { + queryString.append(" AND fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); + }else if(dataInicio!= null) { + queryString.append(" AND fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); + } + queryString.append(" ORDER BY 5,11,1,7"); + + return queryString.toString(); + + } + + private List gerarRangesDeFolios(int[] a, List lsTemp){ + + int length = 1; + List list = new ArrayList(); + ItemReporteControleEstoqueBoletos ItemReporteStockBoletos= null; + + if (a.length == 0) { + return list; + } + + for (int i = 1; i <= a.length; i++) { + + if (i == a.length || a[i] - a[i - 1] != 1) { + + ItemReporteStockBoletos = new ItemReporteControleEstoqueBoletos(); + ItemReporteStockBoletos.setEstacionId(lsTemp.get(0).getEstacionId()); + ItemReporteStockBoletos.setDescEstacion((lsTemp.get(0).getDescEstacion())); + ItemReporteStockBoletos.setDescPuntoVenta((lsTemp.get(0).getDescPuntoVenta())); + ItemReporteStockBoletos.setAidfId(lsTemp.get(0).getAidfId()); + ItemReporteStockBoletos.setNombEmpresa(lsTemp.get(0).getNombEmpresa()); + ItemReporteStockBoletos.setNombreUsuario(lsTemp.get(0).getNombreUsuario()); + ItemReporteStockBoletos.setCveUsuario(lsTemp.get(0).getCveUsuario()); + ItemReporteStockBoletos.setTipo(lsTemp.get(0).getTipo()); + ItemReporteStockBoletos.setID(lsTemp.get(0).getID()); + ItemReporteStockBoletos.setFechorAquisicion(lsTemp.get(0).getFechorAquisicion()); + ItemReporteStockBoletos.setFecVencimento(lsTemp.get(0).getFecVencimento()); + ItemReporteStockBoletos.setSerie(lsTemp.get(0).getSerie()); + ItemReporteStockBoletos.setNomeEstado(lsTemp.get(0).getNomeEstado()); + ItemReporteStockBoletos.setDescEstacion("Todas"); + + if (length == 1) { + if(a[i - length] != 0) { + + ItemReporteStockBoletos.setFolioInicial(String.valueOf(a[i - length])); + ItemReporteStockBoletos.setFolioAtual(String.valueOf(a[i - length])); + ItemReporteStockBoletos.setFolioFinal(String.valueOf(a[i - length])); + } + } + else { + + ItemReporteStockBoletos.setFolioInicial(String.valueOf(a[i - length])); + ItemReporteStockBoletos.setFolioAtual(String.valueOf(a[i - length])); + ItemReporteStockBoletos.setFolioFinal(String.valueOf(a[i - 1])); + list.add(ItemReporteStockBoletos); + } + length = 1; + } + else { + length++; + } + } + + return list; + } + + private int[] recuperarOsFaltantes(List listEstoque) { + int arrayTemp[] = null; + ItemReporteControleEstoqueBoletos item = new ItemReporteControleEstoqueBoletos(); + item.setFolioCaja(new BigDecimal(listEstoque.get(0).getFolioFinal()).add(new BigDecimal(1))); + listEstoque.add(item); + + int cont = 0; + int low = Integer.parseInt(listEstoque.get(0).getFolioInicial()); + int high = 9999999; + + arrayTemp = new int[high+1]; + arrayTemp[high] = Integer.parseInt(listEstoque.get(0).getFolioFinal()); + + int index = ceilindex(listEstoque, low, 0, listEstoque.size() - 1); + int x = low; + + while (index < listEstoque.size() && x <= high) { + if (listEstoque.get(index).getFolioCaja().intValue() != x) { + if(x != 0) { + arrayTemp[cont++] = x; + } + } + else + index++; + x++; + } + + while (x <= high) { + x++; + } + arrayTemp[arrayTemp.length-1] = 0; + + return arrayTemp; + } + + private int ceilindex(List arrayTemp, int val, int menor, int maior) { + + if (val < arrayTemp.get(0).getFolioCaja().intValue()) + return 0; + if (val > arrayTemp.get(arrayTemp.size() - 1).getFolioCaja().intValue()) + return arrayTemp.size(); + + int mid = (menor + maior) / 2; + + if (arrayTemp.get(mid).getFolioCaja().intValue() == val) + return mid; + + if (arrayTemp.get(mid).getFolioCaja().intValue() < val) { + if (mid + 1 < maior && arrayTemp.get(mid + 1).getFolioCaja().intValue() >= val) + return mid + 1; + return ceilindex(arrayTemp, val, mid + 1, maior); + }else { + if (mid - 1 >= menor && arrayTemp.get(mid - 1).getFolioCaja().intValue() < val) + return mid; + return ceilindex(arrayTemp, val, menor, mid - 1); + } + } + + private List tratarBlocoJaTodoUtilizado(List lsTempRetornoAux) { + List lsBlocoJaTodoUtilizado = new ArrayList(); + for (ItemReporteControleEstoqueBoletos itemReporteStockBoletos : lsTempRetornoAux) { + if(itemReporteStockBoletos.getFolioAtual() != null) { + if(!itemReporteStockBoletos.getFolioAtual().equals(itemReporteStockBoletos.getFolioFinal())) { + lsBlocoJaTodoUtilizado.add(itemReporteStockBoletos); + } + } + } + return lsBlocoJaTodoUtilizado; + } + + } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jasper index b73b1c52b3189318dff7d8575d655533c4dfd1ca..9ee375011805386f4044bda0de0ed87a38da95ca 100644 GIT binary patch delta 11464 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 Y^Jy<3M!O&;;ESes4{nM5e~Z{k1poj5 literal 35001 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 W_|N3BZ3wYrC01hRW0#6(Nd7;L;?5KR diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml index 612f7b535..0d3a83fcb 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioEstoque.jrxml @@ -1,8 +1,8 @@ - - - + + + @@ -13,22 +13,17 @@ - - - + + + - - - - - - + + + - - - - - + + + @@ -187,7 +182,7 @@ - + @@ -195,7 +190,7 @@ - + @@ -209,14 +204,14 @@ - + - + - + @@ -232,35 +227,35 @@ - + - + - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java new file mode 100644 index 000000000..91d846312 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java @@ -0,0 +1,185 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; +import java.util.Date; + +public class ItemReporteControleEstoqueBoletos { + + private Integer estacionId; + private String serie; + private String folioInicial; + private String folioFinal; + private String descPuntoVenta; + private Long numCaja; + private String descEstacion; + private String folioAtual; + private Integer articuloId; + private String tipo; + private String nombEmpresa; + private BigDecimal empresaId; + private BigDecimal folioCaja; + private Integer aidfId; + private Integer marcaId; + private Integer ultimoFolioCaja; + private String subSerie; + private String cveUsuario; + private String nombreUsuario; + private String nomeEstado; + private String descArticulo; + private Date fechorAquisicion; + private Date fecVencimento; + private Integer numfoliopreimpreso; + private String ID; + + public Integer getEstacionId() { + return estacionId; + } + public void setEstacionId(Integer estacionId) { + this.estacionId = estacionId; + } + public String getSerie() { + return serie; + } + public void setSerie(String serie) { + this.serie = serie; + } + public String getFolioInicial() { + return folioInicial; + } + public void setFolioInicial(String folioInicial) { + this.folioInicial = folioInicial; + } + public String getFolioFinal() { + return folioFinal; + } + public void setFolioFinal(String folioFinal) { + this.folioFinal = folioFinal; + } + public String getDescPuntoVenta() { + return descPuntoVenta; + } + public void setDescPuntoVenta(String descPuntoVenta) { + this.descPuntoVenta = descPuntoVenta; + } + public Long getNumCaja() { + return numCaja; + } + public void setNumCaja(Long numCaja) { + this.numCaja = numCaja; + } + public String getDescEstacion() { + return descEstacion; + } + public void setDescEstacion(String descEstacion) { + this.descEstacion = descEstacion; + } + public String getFolioAtual() { + return folioAtual; + } + public void setFolioAtual(String folioAtual) { + this.folioAtual = folioAtual; + } + public Integer getArticuloId() { + return articuloId; + } + public void setArticuloId(Integer articuloId) { + this.articuloId = articuloId; + } + public String getTipo() { + return tipo; + } + public void setTipo(String tipo) { + this.tipo = tipo; + } + public String getNombEmpresa() { + return nombEmpresa; + } + public void setNombEmpresa(String nombEmpresa) { + this.nombEmpresa = nombEmpresa; + } + public BigDecimal getEmpresaId() { + return empresaId; + } + public void setEmpresaId(BigDecimal empresaId) { + this.empresaId = empresaId; + } + public BigDecimal getFolioCaja() { + return folioCaja; + } + public void setFolioCaja(BigDecimal folioCaja) { + this.folioCaja = folioCaja; + } + public Integer getAidfId() { + return aidfId; + } + public void setAidfId(Integer aidfId) { + this.aidfId = aidfId; + } + public Integer getMarcaId() { + return marcaId; + } + public void setMarcaId(Integer marcaId) { + this.marcaId = marcaId; + } + public Integer getUltimoFolioCaja() { + return ultimoFolioCaja; + } + public void setUltimoFolioCaja(Integer ultimoFolioCaja) { + this.ultimoFolioCaja = ultimoFolioCaja; + } + public String getSubSerie() { + return subSerie; + } + public void setSubSerie(String subSerie) { + this.subSerie = subSerie; + } + public String getCveUsuario() { + return cveUsuario; + } + public void setCveUsuario(String cveUsuario) { + this.cveUsuario = cveUsuario; + } + public String getNombreUsuario() { + return nombreUsuario; + } + public void setNombreUsuario(String nombreUsuario) { + this.nombreUsuario = nombreUsuario; + } + public String getNomeEstado() { + return nomeEstado; + } + public void setNomeEstado(String nomeEstado) { + this.nomeEstado = nomeEstado; + } + public String getDescArticulo() { + return descArticulo; + } + public void setDescArticulo(String descArticulo) { + this.descArticulo = descArticulo; + } + public Date getFechorAquisicion() { + return fechorAquisicion; + } + public void setFechorAquisicion(Date fechorAquisicion) { + this.fechorAquisicion = fechorAquisicion; + } + public Date getFecVencimento() { + return fecVencimento; + } + public void setFecVencimento(Date fecVencimento) { + this.fecVencimento = fecVencimento; + } + public Integer getNumfoliopreimpreso() { + return numfoliopreimpreso; + } + public void setNumfoliopreimpreso(Integer numfoliopreimpreso) { + this.numfoliopreimpreso = numfoliopreimpreso; + } + public String getID() { + return ID; + } + public void setID(String iD) { + ID = iD; + } + +}