From 5f0177a483886056ac79a71c20ad963c4d1931e2 Mon Sep 17 00:00:00 2001 From: "igor.rodrigo" Date: Mon, 4 Jul 2016 21:23:31 +0000 Subject: [PATCH] fixes bug 7583 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@57554 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/TarifaDAO.java | 4 ++ .../dao/hibernate/TarifaHibernateDAO.java | 66 +++++++++++++++++++ .../ventaboletos/service/TarifaService.java | 4 ++ .../service/impl/TarifaServiceImpl.java | 7 ++ 4 files changed, 81 insertions(+) diff --git a/src/com/rjconsultores/ventaboletos/dao/TarifaDAO.java b/src/com/rjconsultores/ventaboletos/dao/TarifaDAO.java index 3a8047f66..48964b702 100644 --- a/src/com/rjconsultores/ventaboletos/dao/TarifaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/TarifaDAO.java @@ -16,6 +16,7 @@ import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.Tarifa; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Tramo; +import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.TarifaService; @@ -70,4 +71,7 @@ public interface TarifaDAO extends GenericDAO { public boolean existeTarifas(VigenciaTarifa vigenciaTarifa); + public void excluirTodasTarifas(Moneda moneda, Marca marca, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Parada origem, + Parada destino, Categoria categoria, TipoPuntoVenta tipoPuntoVenta, Ruta ruta, Via via); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaHibernateDAO.java index 1e5f9f6fc..5633d0d3a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaHibernateDAO.java @@ -9,6 +9,7 @@ import java.util.List; import org.apache.commons.lang.Validate; import org.apache.log4j.Logger; import org.hibernate.Criteria; +import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.criterion.Projections; @@ -30,6 +31,7 @@ import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.Tarifa; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Tramo; +import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -217,5 +219,69 @@ public class TarifaHibernateDAO extends GenericHibernateDAO imp c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa)); c.setProjection(Projections.rowCount()); return (HibernateFix.count(c.list()) > 0); + } + + @Override + public void excluirTodasTarifas(Moneda moneda, Marca marca, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Parada origem, + Parada destino, Categoria categoria, TipoPuntoVenta tipoPuntoVenta, Ruta ruta, Via via){ + StringBuilder hql = new StringBuilder(); + hql.append(" update Tarifa set activo = 0 where tarifaId in ("); + hql.append(" select t.tarifaId from Tarifa t " ); + + if(categoria == null && tipoPuntoVenta == null){ + hql.append(" where 0 = 0 "); + } + + if(categoria != null){ + hql.append(" inner join t.lsTarifaCategoria as tarifascategoria " ); + hql.append(" where 0 = 0 and tarifascategoria.categoria.categoriaId = " + categoria.getCategoriaId()); + } + + if(tipoPuntoVenta != null){ + hql.append(" inner join t.lsTarifaTipoptovta as tarifastipoptovta " ); + if(categoria == null){ + hql.append(" where 0 = 0 and tarifastipoptovta.tipoPuntoVenta.tipoptovtaId = " + tipoPuntoVenta.getTipoptovtaId()); + }else{ + hql.append(" and tarifastipoptovta.tipoPuntoVenta.tipoptovtaId = " + tipoPuntoVenta.getTipoptovtaId()); + } + } + + if(moneda != null){ + hql.append(" and t.moneda.monedaId = " + moneda.getMonedaId()); + } + + if(marca != null){ + hql.append(" and t.marca.marcaId = " + marca.getMarcaId()); + } + + if(claseServicio != null){ + hql.append(" and t.claseServicio.claseservicioId = " + claseServicio.getClaseservicioId()); + } + + if(vigenciaTarifa != null){ + hql.append(" and t.vigenciaTarifa.vigenciatarifaId = " + vigenciaTarifa.getVigenciatarifaId()); + } + + if(origem != null){ + hql.append(" and t.origen.paradaId = " + origem.getParadaId()); + } + + if(destino != null){ + hql.append(" and t.destino.paradaId = " + destino.getParadaId()); + } + + if(ruta != null){ + hql.append(" and t.ruta.rutaId = " + ruta.getRutaId()); + } + + if(via != null){ + hql.append(" and t.via.viaId = " + via.getViaId()); + } + + hql.append(")") ; + + Query sq = getSession().createQuery(hql.toString()); + sq.executeUpdate(); + } } diff --git a/src/com/rjconsultores/ventaboletos/service/TarifaService.java b/src/com/rjconsultores/ventaboletos/service/TarifaService.java index b2be78cec..98882d8d5 100644 --- a/src/com/rjconsultores/ventaboletos/service/TarifaService.java +++ b/src/com/rjconsultores/ventaboletos/service/TarifaService.java @@ -17,6 +17,7 @@ import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.Tarifa; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Tramo; +import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; @@ -61,4 +62,7 @@ public interface TarifaService extends GenericService { public boolean existeTarifas(VigenciaTarifa vigenciaTarifa); + public void excluirTodasTarifas(Moneda moneda, Marca marca, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Parada origem, + Parada destino, Categoria categoria, TipoPuntoVenta tipoPuntoVenta, Ruta ruta, Via via); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarifaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaServiceImpl.java index 7c296eb9a..d5d35f887 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarifaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarifaServiceImpl.java @@ -31,6 +31,7 @@ import com.rjconsultores.ventaboletos.entidad.TarifaMinima; import com.rjconsultores.ventaboletos.entidad.TarifaTipoptovta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Tramo; +import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.ConstanteService; @@ -279,4 +280,10 @@ public class TarifaServiceImpl implements TarifaService { public boolean existeTarifas(VigenciaTarifa vigenciaTarifa) { return tarifaDAO.existeTarifas(vigenciaTarifa); } + + @Override + public void excluirTodasTarifas(Moneda moneda, Marca marca, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Parada origem, + Parada destino, Categoria categoria, TipoPuntoVenta tipoPuntoVenta, Ruta ruta, Via via){ + tarifaDAO.excluirTodasTarifas(moneda, marca, claseServicio, vigenciaTarifa, origem, destino, categoria, tipoPuntoVenta, ruta, via); + } }