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