diff --git a/pom.xml b/pom.xml index 10b3099a9..ea1900ec1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.42.0 + 1.42.1 diff --git a/src/com/rjconsultores/ventaboletos/dao/AidfDAO.java b/src/com/rjconsultores/ventaboletos/dao/AidfDAO.java index e8698c128..0ef0b09b9 100644 --- a/src/com/rjconsultores/ventaboletos/dao/AidfDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/AidfDAO.java @@ -13,7 +13,7 @@ public interface AidfDAO extends GenericDAO { public List buscaAidfsPorEmpresas(List empresas); - public List obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn); + public List obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn); public Boolean existeAidfComCodFiscalEEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AidfHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AidfHibernateDAO.java index ee58b80f9..919845d15 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/AidfHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AidfHibernateDAO.java @@ -43,7 +43,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO implements } @Override - public List obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn) { + public List obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn) { PreparedStatement pstmt = null; ResultSet rs = null; @@ -68,8 +68,15 @@ public class AidfHibernateDAO extends GenericHibernateDAO implements sb.append(" x.SUBSERIE, "); sb.append(" x.CNPJ, "); sb.append(" x.TIPOVALIDAVENTA "); - sb.append(" from AIDF x where x.SERIE like '" + serie + "' "); - sb.append(" and REGEXP_REPLACE( x.docfiscal ,'[^[:alnum:]'' '']', NULL) like '" + docfiscal + "' "); + sb.append(" from AIDF x where x.SERIE = '" + serie + "' "); + + if( !subSerie.equals("") ) { + sb.append(" AND x.SUBSERIE = '" + subSerie + "' "); + } + + if( docfiscal != null ) { + sb.append(" and REGEXP_REPLACE( x.docfiscal ,'[^[:alnum:]'' '']', NULL) like '" + docfiscal + "' "); + } sb.append(" and x.activo = 1 "); List ls = new ArrayList(); @@ -83,6 +90,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO implements a.setAidfId(rs.getLong(1)); a.setDocfiscal(rs.getString(3)); a.setSerie(rs.getString(5)); + a.setSubserie(rs.getString(17)!=null?rs.getString(17):""); a.setForminicial(rs.getString(6)); a.setFormfinal(rs.getString(7)); ls.add(a); @@ -107,6 +115,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO implements } } + return ls; }; diff --git a/src/com/rjconsultores/ventaboletos/service/AidfService.java b/src/com/rjconsultores/ventaboletos/service/AidfService.java index f08a45a1a..cb4f7b56f 100644 --- a/src/com/rjconsultores/ventaboletos/service/AidfService.java +++ b/src/com/rjconsultores/ventaboletos/service/AidfService.java @@ -32,8 +32,10 @@ public interface AidfService { public List buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda); public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn); + + public Long validarSerieFormInicialFinal(Aidf entidad, Connection conn); - public List obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn); + public List obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn); public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AidfServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AidfServiceImpl.java index 606910bb1..0b8b48a38 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/AidfServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/AidfServiceImpl.java @@ -96,14 +96,15 @@ public class AidfServiceImpl implements AidfService { public List buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda){ return aidfDAO.buscaAidfsPorEmpresaAgencia(empresa, pontoVenda); } - - public List obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn) { - return aidfDAO.obtenerAidfFromSerieDocfiscal(serie, docfiscal, conn); + + public List obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn) { + return aidfDAO.obtenerAidfFromSerieDocfiscal(serie, subSerie, docfiscal, conn); } public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn) { - List list = obtenerAidfFromSerieDocfiscal(entidad.getSerie(), entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", ""), conn); + List list = obtenerAidfFromSerieDocfiscal( + entidad.getSerie(), null, entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", ""), conn); for (AidfVo aidf : list) { // desconsiderar o próprio ID, caso contrário o erro de validação sempre acontece qdo o registro é editado. @@ -120,6 +121,26 @@ public class AidfServiceImpl implements AidfService { } return -1l; } + + public Long validarSerieFormInicialFinal(Aidf entidad, Connection conn) { + + List list = obtenerAidfFromSerieDocfiscal(entidad.getSerie(), entidad.getSubserie(), null, conn); + + for (AidfVo aidf : list) { + // desconsiderar o próprio ID, caso contrário o erro de validação sempre acontece qdo o registro é editado. + if ((entidad.getAidfId() == null) || (aidf.getAidfId().compareTo(entidad.getAidfId()) != 0)) { + if (aidf.getSerie().trim().equals(entidad.getSerie().trim())) { + if (entidad.getSubserie() != null && aidf.getSubserie().equals(entidad.getSubserie())) { + if ((Long.parseLong(entidad.getForminicial()) >= Long.parseLong(aidf.getForminicial()) && Long.parseLong(entidad.getForminicial()) <= Long.parseLong(aidf.getFormfinal())) + || (Long.parseLong(entidad.getFormfinal()) >= Long.parseLong(aidf.getForminicial()) && Long.parseLong(entidad.getFormfinal()) <= Long.parseLong(aidf.getFormfinal()))) { + return aidf.getAidfId(); + } + } + } + } + } + return -1l; + } public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado) { return aidfDAO.existeAidfComCodFiscalEEstado(idAidf, especieId, docFiscal, estado);