From 0bba1edd1ba6cea25b35bae8db2d940c9cc0189d Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 13 Apr 2017 14:03:45 +0000 Subject: [PATCH] fixes bug #7930 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@68005 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/RutaHibernateDAO.java | 66 +++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java index 74a120c9a..8cfb76e82 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java @@ -256,43 +256,57 @@ public class RutaHibernateDAO extends GenericHibernateDAO impleme query.executeUpdate(); } - qryList = new ArrayList(); - qry = new StringBuilder(" update TARIFA set TRAMO_ID = :nuevoTramo, "); - qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino "); - qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta "); - qry.append(" AND ACTIVO = 1 "); - qryList.add(qry.toString()); + try { + // Pode cair na exception caso ja possua tarifa criada para o tramo, e nao é necessaria criar novamente + + qryList = new ArrayList(); + qry = new StringBuilder(" update TARIFA set TRAMO_ID = :nuevoTramo, "); + qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino "); + qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta "); + qry.append(" AND ACTIVO = 1 "); + qryList.add(qry.toString()); - qry = new StringBuilder(" update TARIFA_OFICIAL set TRAMO_ID = :nuevoTramo, "); - qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino "); - qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta "); - qry.append(" AND ACTIVO = 1 "); - qryList.add(qry.toString()); + qry = new StringBuilder(" update TARIFA_OFICIAL set TRAMO_ID = :nuevoTramo, "); + qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino "); + qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta "); + qry.append(" AND ACTIVO = 1 "); + qryList.add(qry.toString()); + + for (String strQuery : qryList) { + Query query = getSession().createSQLQuery(strQuery); + query.setInteger("viejoTramo", viejoTramo.getTramoId()); + query.setInteger("nuevoTramo", nuevoTramo.getTramoId()); + query.setInteger("origen", nuevoTramo.getOrigem().getParadaId()); + query.setInteger("destino", nuevoTramo.getDestino().getParadaId()); + query.setInteger("usuario", nuevoTramo.getUsuarioId()); + query.setInteger("ruta", ruta.getRutaId()); + query.executeUpdate(); + } + + } catch (Exception e) { + } qry = new StringBuilder(" update CORRIDA_TRAMO set TRAMO_ID = :nuevoTramo, "); qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino "); qry.append(" where TRAMO_ID = :viejoTramo and "); qry.append(" CORRIDA_ID in (select CORRIDA_ID from CORRIDA_CTRL where RUTA_ID = :ruta ) "); qry.append(" AND ACTIVO = 1 "); - qryList.add(qry.toString()); - - for (String strQuery : qryList) { - Query query = getSession().createSQLQuery(strQuery); - query.setInteger("viejoTramo", viejoTramo.getTramoId()); - query.setInteger("nuevoTramo", nuevoTramo.getTramoId()); - query.setInteger("origen", nuevoTramo.getOrigem().getParadaId()); - query.setInteger("destino", nuevoTramo.getDestino().getParadaId()); - query.setInteger("usuario", nuevoTramo.getUsuarioId()); - query.setInteger("ruta", ruta.getRutaId()); - query.executeUpdate(); - } - + + Query query = getSession().createSQLQuery(qry.toString()); + query.setInteger("viejoTramo", viejoTramo.getTramoId()); + query.setInteger("nuevoTramo", nuevoTramo.getTramoId()); + query.setInteger("origen", nuevoTramo.getOrigem().getParadaId()); + query.setInteger("destino", nuevoTramo.getDestino().getParadaId()); + query.setInteger("usuario", nuevoTramo.getUsuarioId()); + query.setInteger("ruta", ruta.getRutaId()); + query.executeUpdate(); + qry = new StringBuilder(" update CORRIDA set FECMODIF = SYSDATE, USUARIO_ID = :usuario, "); qry.append(" ORIGEN_ID = (case when ORIGEN_ID = :viejaOrigen then :nuevaOrigen else ORIGEN_ID end ), "); qry.append(" DESTINO_ID = (case when DESTINO_ID = :viejoDestino then :nuevoDestino else DESTINO_ID end ) "); qry.append(" where RUTA_ID = :ruta "); - - Query query = getSession().createSQLQuery(qry.toString()); + + query = getSession().createSQLQuery(qry.toString()); query.setInteger("viejaOrigen", viejoTramo.getOrigem().getParadaId()); query.setInteger("nuevaOrigen", nuevoTramo.getOrigem().getParadaId()); query.setInteger("viejoDestino", viejoTramo.getOrigem().getParadaId());