fixes bug#21410
qua:wally dev: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@105006 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
74d987d8a3
commit
67410e166f
|
@ -1,13 +1,13 @@
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.criterion.Order;
|
import org.hibernate.criterion.Order;
|
||||||
import org.hibernate.criterion.Projections;
|
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
@ -21,6 +21,8 @@ import com.rjconsultores.ventaboletos.entidad.Feriado;
|
||||||
@Repository("feriadoDAO")
|
@Repository("feriadoDAO")
|
||||||
public class FeriadoHibernateDAO extends GenericHibernateDAO<Feriado, Integer> implements FeriadoDAO {
|
public class FeriadoHibernateDAO extends GenericHibernateDAO<Feriado, Integer> implements FeriadoDAO {
|
||||||
|
|
||||||
|
private static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public FeriadoHibernateDAO(
|
public FeriadoHibernateDAO(
|
||||||
@Qualifier("sessionFactory") SessionFactory factory) {
|
@Qualifier("sessionFactory") SessionFactory factory) {
|
||||||
|
@ -48,15 +50,25 @@ public class FeriadoHibernateDAO extends GenericHibernateDAO<Feriado, Integer> i
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean ehFeriado(Date fecFeriado, Empresa empresa, Estado estadoOrigem) {
|
public boolean ehFeriado(Date fecFeriado, Empresa empresa, Estado estadoOrigem) {
|
||||||
Criteria c = makeCriteria();
|
|
||||||
|
|
||||||
c.add(Restrictions.eq("activo", true));
|
StringBuilder sb = new StringBuilder("");
|
||||||
c.add(Restrictions.eq("fecferiado", fecFeriado));
|
|
||||||
c.add(Restrictions.or(Restrictions.eq("estado", estadoOrigem), Restrictions.isNull("estado")));
|
|
||||||
c.add(Restrictions.or(Restrictions.eq("empresa", empresa), Restrictions.isNull("empresa")));
|
|
||||||
c.setProjection(Projections.rowCount());
|
|
||||||
|
|
||||||
return HibernateFix.count(c.uniqueResult()) > 0;
|
sb.append(" select count(*) ");
|
||||||
|
sb.append(" from ");
|
||||||
|
sb.append(" Feriado f ");
|
||||||
|
sb.append(" where ");
|
||||||
|
sb.append(" f.activo = 1 ");
|
||||||
|
sb.append(" and f.fecferiado = TO_DATE(:fecFeriado,'dd/MM/yyyy') ");
|
||||||
|
sb.append(" and (f.estado is null or f.estado = :estado) ");
|
||||||
|
sb.append(" and (f.empresa is null or f.empresa = :empresa) ");
|
||||||
|
|
||||||
|
|
||||||
|
Query query = this.getSession().createQuery(sb.toString());
|
||||||
|
query.setString("fecFeriado", sdf.format(fecFeriado));
|
||||||
|
query.setParameter("estado",estadoOrigem);
|
||||||
|
query.setParameter("empresa",empresa);
|
||||||
|
|
||||||
|
return HibernateFix.count(query.uniqueResult()) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -36,6 +36,8 @@ public class FeriadoCache {
|
||||||
|
|
||||||
Boolean ehFeriado = mapFeriado.get(key);
|
Boolean ehFeriado = mapFeriado.get(key);
|
||||||
|
|
||||||
|
log.debug("ehFeriado="+ehFeriado);
|
||||||
|
|
||||||
if (ehFeriado == null) {
|
if (ehFeriado == null) {
|
||||||
ehFeriado = feriadoDAO.ehFeriado(new java.sql.Date(dataFeriado.getTime()), empresa, estadoOrigem);
|
ehFeriado = feriadoDAO.ehFeriado(new java.sql.Date(dataFeriado.getTime()), empresa, estadoOrigem);
|
||||||
|
|
||||||
|
@ -48,6 +50,8 @@ public class FeriadoCache {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void limpar() {
|
public void limpar() {
|
||||||
|
log.debug("limpeza de cache de feriados");
|
||||||
|
|
||||||
mapFeriado.clear();
|
mapFeriado.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue