Bloqueio de cadastro duplicado AIDF fixes bug#AL-4011' (!165) from AL-4011 into master
Reviewed-on: adm/ModelWeb#165 Reviewed-by: Gleison da Cruz <gleison.cruz@totvs.com.br>master
commit
ec2ea968a9
2
pom.xml
2
pom.xml
|
@ -3,7 +3,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>br.com.rjconsultores</groupId>
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
<artifactId>ModelWeb</artifactId>
|
<artifactId>ModelWeb</artifactId>
|
||||||
<version>1.42.0</version>
|
<version>1.42.1</version>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<repository>
|
<repository>
|
||||||
|
|
|
@ -13,7 +13,7 @@ public interface AidfDAO extends GenericDAO<Aidf, Long> {
|
||||||
|
|
||||||
public List<Aidf> buscaAidfsPorEmpresas(List<Empresa> empresas);
|
public List<Aidf> buscaAidfsPorEmpresas(List<Empresa> empresas);
|
||||||
|
|
||||||
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn);
|
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn);
|
||||||
|
|
||||||
public Boolean existeAidfComCodFiscalEEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado);
|
public Boolean existeAidfComCodFiscalEEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado);
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn) {
|
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn) {
|
||||||
|
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
|
@ -68,8 +68,15 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
|
||||||
sb.append(" x.SUBSERIE, ");
|
sb.append(" x.SUBSERIE, ");
|
||||||
sb.append(" x.CNPJ, ");
|
sb.append(" x.CNPJ, ");
|
||||||
sb.append(" x.TIPOVALIDAVENTA ");
|
sb.append(" x.TIPOVALIDAVENTA ");
|
||||||
sb.append(" from AIDF x where x.SERIE like '" + serie + "' ");
|
sb.append(" from AIDF x where x.SERIE = '" + serie + "' ");
|
||||||
sb.append(" and REGEXP_REPLACE( x.docfiscal ,'[^[:alnum:]'' '']', NULL) like '" + docfiscal + "' ");
|
|
||||||
|
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 ");
|
sb.append(" and x.activo = 1 ");
|
||||||
|
|
||||||
List<AidfVo> ls = new ArrayList<AidfVo>();
|
List<AidfVo> ls = new ArrayList<AidfVo>();
|
||||||
|
@ -83,6 +90,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
|
||||||
a.setAidfId(rs.getLong(1));
|
a.setAidfId(rs.getLong(1));
|
||||||
a.setDocfiscal(rs.getString(3));
|
a.setDocfiscal(rs.getString(3));
|
||||||
a.setSerie(rs.getString(5));
|
a.setSerie(rs.getString(5));
|
||||||
|
a.setSubserie(rs.getString(17)!=null?rs.getString(17):"");
|
||||||
a.setForminicial(rs.getString(6));
|
a.setForminicial(rs.getString(6));
|
||||||
a.setFormfinal(rs.getString(7));
|
a.setFormfinal(rs.getString(7));
|
||||||
ls.add(a);
|
ls.add(a);
|
||||||
|
@ -107,6 +115,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ls;
|
return ls;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,10 @@ public interface AidfService {
|
||||||
public List<Aidf> buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda);
|
public List<Aidf> buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda);
|
||||||
|
|
||||||
public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn);
|
public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn);
|
||||||
|
|
||||||
|
public Long validarSerieFormInicialFinal(Aidf entidad, Connection conn);
|
||||||
|
|
||||||
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn);
|
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn);
|
||||||
|
|
||||||
public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado);
|
public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado);
|
||||||
|
|
||||||
|
|
|
@ -96,14 +96,15 @@ public class AidfServiceImpl implements AidfService {
|
||||||
public List<Aidf> buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda){
|
public List<Aidf> buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda){
|
||||||
return aidfDAO.buscaAidfsPorEmpresaAgencia(empresa, pontoVenda);
|
return aidfDAO.buscaAidfsPorEmpresaAgencia(empresa, pontoVenda);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn) {
|
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn) {
|
||||||
return aidfDAO.obtenerAidfFromSerieDocfiscal(serie, docfiscal, conn);
|
return aidfDAO.obtenerAidfFromSerieDocfiscal(serie, subSerie, docfiscal, conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn) {
|
public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn) {
|
||||||
|
|
||||||
List<AidfVo> list = obtenerAidfFromSerieDocfiscal(entidad.getSerie(), entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", ""), conn);
|
List<AidfVo> list = obtenerAidfFromSerieDocfiscal(
|
||||||
|
entidad.getSerie(), null, entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", ""), conn);
|
||||||
|
|
||||||
for (AidfVo aidf : list) {
|
for (AidfVo aidf : list) {
|
||||||
// desconsiderar o próprio ID, caso contrário o erro de validação sempre acontece qdo o registro é editado.
|
// 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;
|
return -1l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long validarSerieFormInicialFinal(Aidf entidad, Connection conn) {
|
||||||
|
|
||||||
|
List<AidfVo> 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) {
|
public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado) {
|
||||||
return aidfDAO.existeAidfComCodFiscalEEstado(idAidf, especieId, docFiscal, estado);
|
return aidfDAO.existeAidfComCodFiscalEEstado(idAidf, especieId, docFiscal, estado);
|
||||||
|
|
Loading…
Reference in New Issue