AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/AidfHibernateDAO.java

106 lines
3.3 KiB
Java

package com.rjconsultores.ventaboletos.dao.hibernate;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.AidfDAO;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.vo.aidf.AidfVo;
@Repository("aidfDAO")
public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements AidfDAO{
private static Logger log = Logger.getLogger(AidfHibernateDAO.class);
@Autowired
public AidfHibernateDAO(
@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<Aidf> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
return (List<Aidf>)c.list();
}
@Override
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn){
PreparedStatement pstmt = null;
ResultSet rs = null;
StringBuilder sb = new StringBuilder();
sb.append(" select x.AIDF_ID, ");
sb.append(" x.ESTADO_ID, ");
sb.append(" REGEXP_REPLACE( x.docfiscal ,'[^[:alnum:]'' '']', NULL) , ");
sb.append(" x.ACFISCAL, ");
sb.append(" x.SERIE, ");
sb.append(" x.FORMINICIAL, ");
sb.append(" x.FORMFINAL, ");
sb.append(" x.FECADQUISICION, ");
sb.append(" x.FECVENCIMIENTO, ");
sb.append(" x.INSCESTADUAL, ");
sb.append(" x.EMPRESA_ID, ");
sb.append(" x.AIDFESP_ID, ");
sb.append(" x.AIDFTIPO_ID, ");
sb.append(" x.ACTIVO, ");
sb.append(" x.FECMODIF, ");
sb.append(" x.USUARIO_ID, ");
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(" and x.activo = 1 ");
List<AidfVo> ls = new ArrayList<AidfVo>();
try{
pstmt = conn.prepareStatement(sb.toString());
rs = pstmt.executeQuery();
while (rs.next()){
AidfVo a = new AidfVo();
a.setAidfId(rs.getLong(1));
a.setDocfiscal(rs.getString(3));
a.setSerie(rs.getString(5));
a.setForminicial(rs.getString(6));
a.setFormfinal(rs.getString(7));
ls.add(a);
}
} catch (Exception e){
log.error("", e);
} finally {
try { rs.close(); } catch (Exception ignore) { log.error("", ignore); }
try { pstmt.close(); } catch (Exception ignore) { log.error("", ignore); }
}
return ls;
};
@Override
public List<Aidf> buscaAidfsPorEmpresas(List<Empresa> empresas) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.in("empresa", empresas));
return (List<Aidf>)c.list();
}
}