horário de verão e fuso horário configurado por UF.
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@31326 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
947d1e3bff
commit
0e2a053244
|
@ -55,11 +55,14 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
|
|||
* @param corridaId
|
||||
* @return
|
||||
*/
|
||||
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
||||
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio,
|
||||
Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
||||
|
||||
public boolean existe(Ruta ruta, Date dataGeracao, Date horario, ClaseServicio claseServicio, Marca marca, boolean pisoExtra);
|
||||
public boolean existe(Ruta ruta, Date dataGeracao, Date horario, ClaseServicio claseServicio,
|
||||
Marca marca, boolean pisoExtra);
|
||||
|
||||
public boolean count(Parada origem, Parada destino, Date feccorrida, ClaseServicio claseServicio, boolean pisoExtra);
|
||||
public boolean count(Parada origem, Parada destino, Date feccorrida, ClaseServicio claseServicio,
|
||||
boolean pisoExtra);
|
||||
|
||||
/**
|
||||
* Regresa la cantidad de corridas que fue generada hoy.
|
||||
|
@ -70,5 +73,9 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
|
|||
|
||||
public List<Corrida> buscarGroupCorrridaId(Integer corridaId, Date dateInicio, Date dateFin);
|
||||
|
||||
public List<Corrida> buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin);
|
||||
public List<Corrida> buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino,
|
||||
Integer ruta, Integer numRuta, Date dateInicio, Date dateFin);
|
||||
|
||||
public void actualizaFecHusoFecVerano(Corrida corrida);
|
||||
|
||||
}
|
|
@ -11,6 +11,7 @@ import java.util.Date;
|
|||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.math.NumberUtils;
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.SessionFactory;
|
||||
|
@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.rjconsultores.ventaboletos.dao.CorridaDAO;
|
||||
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
|
||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||
import com.rjconsultores.ventaboletos.entidad.Corrida;
|
||||
import com.rjconsultores.ventaboletos.entidad.Corrida.Id;
|
||||
|
@ -37,14 +39,18 @@ import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties;
|
|||
@Repository("corridaDAO")
|
||||
public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id> implements CorridaDAO {
|
||||
|
||||
private static final Integer maxResult = new Integer(1);
|
||||
@Autowired
|
||||
private SQLBuilder sqlBuilder;
|
||||
private static final Integer ULTIMA_HORA_DIA = new Integer(23);
|
||||
private static final Integer ULTIMO_MINUTO_SEGUNDO = new Integer(59);
|
||||
private static final Integer ULTIMO_MILLISEGUNDO = new Integer(99);
|
||||
|
||||
@Autowired
|
||||
public CorridaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||
public CorridaHibernateDAO(@Qualifier("sessionFactory") final SessionFactory factory) {
|
||||
setSessionFactory(factory);
|
||||
}
|
||||
|
||||
public Boolean existe(Id id) {
|
||||
public Boolean existe(final Id id) {
|
||||
|
||||
Criteria c = makeCriteria();
|
||||
c.setProjection(Projections.rowCount());
|
||||
|
@ -56,10 +62,11 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
}
|
||||
|
||||
@Override
|
||||
public Corrida suscribir(Corrida entity) {
|
||||
public Corrida suscribir(final Corrida entity) {
|
||||
|
||||
if (ApplicationProperties.getInstance().gerarCampoEquivalenciaCorrida()) {
|
||||
Object o = this.getSession().createSQLQuery("SELECT VTABOL.CORRIDA_EQUIVALENCIA_SEQ.NEXTVAL FROM DUAL").uniqueResult();
|
||||
String sql = "SELECT VTABOL.CORRIDA_EQUIVALENCIA_SEQ.NEXTVAL FROM DUAL";
|
||||
Object o = this.getSession().createSQLQuery(sql).uniqueResult();
|
||||
entity.setEquivalenciaId(o.toString());
|
||||
}
|
||||
|
||||
|
@ -68,19 +75,20 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return corrida;
|
||||
}
|
||||
|
||||
public List<Corrida> buscarPorAutobusCorridasFuturas(DiagramaAutobus diagramaAutobus) {
|
||||
public List<Corrida> buscarPorAutobusCorridasFuturas(final DiagramaAutobus diagramaAutobus) {
|
||||
String hql = " select co from Corrida co, Autobus ab "
|
||||
+ " where ab.autobusId = co.autobus.autobusId "
|
||||
+ " and ab.diagramaAutobus.diagramaautobusId = " + diagramaAutobus.getDiagramaautobusId()
|
||||
+ " and co.id.feccorrida > current_timestamp()";
|
||||
|
||||
Query sq = getSession().createQuery(hql);
|
||||
|
||||
List<Corrida> lsCorridas = sq.list();
|
||||
|
||||
return lsCorridas;
|
||||
}
|
||||
|
||||
public List<Corrida> buscarPorRolOperativoCorridasFuturas(DiagramaAutobus diagramaAutobus) {
|
||||
public List<Corrida> buscarPorRolOperativoCorridasFuturas(final DiagramaAutobus diagramaAutobus) {
|
||||
String hql = " select co from Corrida co, RolOperativo rol "
|
||||
+ " where rol.roloperativoId = co.rolOperativo.roloperativoId "
|
||||
+ " and rol.diagramaAutobus.diagramaautobusId = " + diagramaAutobus.getDiagramaautobusId()
|
||||
|
@ -92,7 +100,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return lsCorridas;
|
||||
}
|
||||
|
||||
public List<Corrida> buscarPorFecCorrida(Date value) {
|
||||
public List<Corrida> buscarPorFecCorrida(final Date value) {
|
||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
|
||||
|
@ -101,7 +109,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return c.list();
|
||||
}
|
||||
|
||||
public Long count(Ruta ruta) {
|
||||
public Long count(final Ruta ruta) {
|
||||
Criteria c = this.makeCriteria();
|
||||
c.add(Restrictions.eq("ruta", ruta));
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
|
@ -111,7 +119,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
|
||||
}
|
||||
|
||||
public List<Corrida> buscarPorId(Integer idCorrida) {
|
||||
public List<Corrida> buscarPorId(final Integer idCorrida) {
|
||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
|
||||
|
@ -121,21 +129,9 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
}
|
||||
|
||||
// Metodo Ok.
|
||||
public List<Corrida> buscarFiltro(Parada ori, Parada des, Date hora, ClaseServicio cs) {
|
||||
public List<Corrida> buscarFiltro(final Parada ori, final Parada des, final Date hora, final ClaseServicio cs) {
|
||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
|
||||
// SimpleDateFormat sf = new
|
||||
// SimpleDateFormat("dd/MM/yyyy HH:mm:ss,SSS");
|
||||
// log.debug("Hora Corrida : " + sf.format(hora));
|
||||
// log.debug("Hora Corrida INI : " +
|
||||
// sf.format(getDiaGeracaoHoraIni(hora)));
|
||||
// log.debug("Hora Corrida FIM : " +
|
||||
// sf.format(getDiaGeracaoHoraFim(hora)));
|
||||
// log.debug("Origem : " + ori.getParadaId());
|
||||
// log.debug("Destino : " + des.getParadaId());
|
||||
// log.debug("Classe de Ser: " + cs.getClaseservicioId());
|
||||
|
||||
c.add(Restrictions.eq("origem", ori));
|
||||
c.add(Restrictions.eq("destino", des));
|
||||
c.add(Restrictions.between("fechorsalida", getDiaGeracaoHoraIni(hora), getDiaGeracaoHoraFim(hora)));
|
||||
|
@ -145,7 +141,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean count(Parada ori, Parada des, Date hora, ClaseServicio cs, boolean pisoExtra) {
|
||||
public boolean count(final Parada ori, final Parada des, final Date hora,
|
||||
final ClaseServicio cs, final boolean pisoExtra) {
|
||||
|
||||
Criteria c = makeCriteria();
|
||||
c.setProjection(Projections.rowCount());
|
||||
|
@ -169,7 +166,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return (cant > 0);
|
||||
}
|
||||
|
||||
private Date getDiaGeracaoHoraIni(Date hora) {
|
||||
private Date getDiaGeracaoHoraIni(final Date hora) {
|
||||
Date dataCorreta = new Date();
|
||||
|
||||
// para pegar a hora e adicionar ao dia da geracao:
|
||||
|
@ -179,15 +176,15 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
gcalendar.setTime(hora);
|
||||
gcalendar.set(Calendar.HOUR_OF_DAY, gAux.get(Calendar.HOUR_OF_DAY));
|
||||
gcalendar.set(Calendar.MINUTE, gAux.get(Calendar.MINUTE));
|
||||
gcalendar.set(Calendar.SECOND, 0);
|
||||
gcalendar.set(Calendar.MILLISECOND, 0);
|
||||
gcalendar.set(Calendar.SECOND, NumberUtils.INTEGER_ZERO);
|
||||
gcalendar.set(Calendar.MILLISECOND, NumberUtils.INTEGER_ZERO);
|
||||
|
||||
dataCorreta = gcalendar.getTime();
|
||||
|
||||
return dataCorreta;
|
||||
}
|
||||
|
||||
private Date getDiaGeracaoHoraFim(Date hora) {
|
||||
private Date getDiaGeracaoHoraFim(final Date hora) {
|
||||
Date dataCorreta = new Date();
|
||||
|
||||
// para pegar a hora e adicionar ao dia da geracao:
|
||||
|
@ -197,8 +194,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
gcalendar.setTime(hora);
|
||||
gcalendar.set(Calendar.HOUR_OF_DAY, gAux.get(Calendar.HOUR_OF_DAY));
|
||||
gcalendar.set(Calendar.MINUTE, gAux.get(Calendar.MINUTE));
|
||||
gcalendar.set(Calendar.SECOND, 0);
|
||||
gcalendar.set(Calendar.MILLISECOND, 59);
|
||||
gcalendar.set(Calendar.SECOND, NumberUtils.INTEGER_ZERO);
|
||||
gcalendar.set(Calendar.MILLISECOND, ULTIMA_HORA_DIA);
|
||||
|
||||
dataCorreta = gcalendar.getTime();
|
||||
|
||||
|
@ -206,7 +203,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId) {
|
||||
public List<Corrida> buscarDistinct(final Parada ori, final Parada des, final Date horaSalidaInicio,
|
||||
final Date horaSalidaFin, final ClaseServicio cs, final Integer corridaId) {
|
||||
StringBuilder hql = new StringBuilder("");
|
||||
hql.append("select distinct ");
|
||||
hql.append(" new com.rjconsultores.ventaboletos.entidad.Corrida(");
|
||||
|
@ -243,8 +241,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
|
||||
hql.append(" order by c.id.corridaId,c.corridaCtrl.horario");
|
||||
|
||||
Query query = getSession().createQuery(hql.toString());// .setResultTransformer(new
|
||||
// AliasToBeanResultTransformer(Corrida.class));
|
||||
Query query = getSession().createQuery(hql.toString());
|
||||
|
||||
if (ori != null) {
|
||||
query.setParameter("origen", ori);
|
||||
}
|
||||
|
@ -271,13 +269,14 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean existe(Ruta ruta, Date fecCorrida, Date horaCorrida, ClaseServicio claseServicio, Marca marca, boolean pisoExtra) {
|
||||
public boolean existe(final Ruta ruta, final Date fecCorrida, final Date horaCorrida,
|
||||
final ClaseServicio claseServicio, final Marca marca, final boolean pisoExtra) {
|
||||
Calendar soloFecha = Calendar.getInstance();
|
||||
soloFecha.setTime(fecCorrida);
|
||||
soloFecha.set(Calendar.HOUR, 0);
|
||||
soloFecha.set(Calendar.MINUTE, 0);
|
||||
soloFecha.set(Calendar.SECOND, 0);
|
||||
soloFecha.set(Calendar.MILLISECOND, 0);
|
||||
soloFecha.set(Calendar.HOUR, NumberUtils.INTEGER_ZERO);
|
||||
soloFecha.set(Calendar.MINUTE, NumberUtils.INTEGER_ZERO);
|
||||
soloFecha.set(Calendar.SECOND, NumberUtils.INTEGER_ZERO);
|
||||
soloFecha.set(Calendar.MILLISECOND, NumberUtils.INTEGER_ZERO);
|
||||
|
||||
Criteria c = makeCriteria();
|
||||
c.setProjection(Projections.rowCount());
|
||||
|
@ -308,17 +307,19 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
Calendar cTmp1 = Calendar.getInstance();
|
||||
Calendar cTmp2 = Calendar.getInstance();
|
||||
|
||||
cTmp1.set(Calendar.HOUR_OF_DAY, 0);
|
||||
cTmp1.set(Calendar.MINUTE, 0);
|
||||
cTmp1.set(Calendar.MILLISECOND, 0);
|
||||
cTmp1.set(Calendar.SECOND, 0);
|
||||
cTmp1.set(Calendar.HOUR_OF_DAY, NumberUtils.INTEGER_ZERO);
|
||||
cTmp1.set(Calendar.MINUTE, NumberUtils.INTEGER_ZERO);
|
||||
cTmp1.set(Calendar.MILLISECOND, NumberUtils.INTEGER_ZERO);
|
||||
cTmp1.set(Calendar.SECOND, NumberUtils.INTEGER_ZERO);
|
||||
|
||||
cTmp2.set(Calendar.HOUR_OF_DAY, 23);
|
||||
cTmp2.set(Calendar.MINUTE, 59);
|
||||
cTmp2.set(Calendar.SECOND, 59);
|
||||
cTmp2.set(Calendar.MILLISECOND, 99);
|
||||
cTmp2.set(Calendar.HOUR_OF_DAY, ULTIMA_HORA_DIA);
|
||||
cTmp2.set(Calendar.MINUTE, ULTIMO_MINUTO_SEGUNDO);
|
||||
cTmp2.set(Calendar.SECOND, ULTIMO_MINUTO_SEGUNDO);
|
||||
cTmp2.set(Calendar.MILLISECOND, ULTIMO_MILLISEGUNDO);
|
||||
|
||||
Query query = getSession().createQuery("select count(c.fecmodif) from Corrida c where c.fecmodif between :inicio and :fim");
|
||||
String sql = "select count(c.fecmodif) from Corrida c where c.fecmodif between :inicio and :fim";
|
||||
|
||||
Query query = getSession().createQuery(sql);
|
||||
query.setParameter("inicio", cTmp1.getTime());
|
||||
query.setParameter("fim", cTmp2.getTime());
|
||||
Long count = HibernateFix.count(query.uniqueResult());
|
||||
|
@ -326,7 +327,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return count;
|
||||
}
|
||||
|
||||
public List<Corrida> buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin) {
|
||||
public List<Corrida> buscarGroupCorrridaId(final Integer corridaId, final Integer origem, final Integer destino,
|
||||
final Integer ruta, final Integer numRuta, final Date dateInicio, final Date dateFin) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT c.corrida_id ");
|
||||
sql.append(" FROM corrida c ");
|
||||
|
@ -377,7 +379,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
hql.append(" WHERE id.corridaId = " + id);
|
||||
|
||||
Query squery = getSession().createQuery(hql.toString());
|
||||
squery.setMaxResults(maxResult);
|
||||
squery.setMaxResults(NumberUtils.INTEGER_ONE);
|
||||
|
||||
List<Corrida> lsCorridasAux = squery.list();
|
||||
|
||||
|
@ -390,7 +392,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
return lsCorridas;
|
||||
}
|
||||
|
||||
public List<Corrida> buscarGroupCorrridaId(Integer corridaId, Date dateInicio, Date dateFin) {
|
||||
public List<Corrida> buscarGroupCorrridaId(final Integer corridaId, final Date dateInicio, final Date dateFin) {
|
||||
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT c.corrida_id ");
|
||||
|
@ -425,7 +427,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
hql.append(" WHERE id.corridaId = " + id);
|
||||
|
||||
Query squery = getSession().createQuery(hql.toString());
|
||||
squery.setMaxResults(maxResult);
|
||||
squery.setMaxResults(NumberUtils.INTEGER_ONE);
|
||||
|
||||
List<Corrida> lsCorridasAux = squery.list();
|
||||
|
||||
|
@ -437,4 +439,23 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
|||
|
||||
return lsCorridas;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actualizaFecHusoFecVerano(final Corrida corrida) {
|
||||
|
||||
Integer corridaId = corrida.getId().getCorridaId();
|
||||
Date feccorrida = corrida.getId().getFeccorrida();
|
||||
|
||||
Query queryCorrida = getSession().createQuery(
|
||||
sqlBuilder.getSQLActualizarCorridaFecHusoFecVerano(corridaId, feccorrida));
|
||||
queryCorrida.setInteger("corridaId", corridaId);
|
||||
queryCorrida.setDate("feccorrida", feccorrida);
|
||||
queryCorrida.executeUpdate();
|
||||
|
||||
Query queryCorridaTramo = getSession().createQuery(
|
||||
sqlBuilder.getSQLActualizarCorridaTramoFecHusoFecVerano(corridaId, feccorrida));
|
||||
queryCorridaTramo.setInteger("corridaId", corridaId);
|
||||
queryCorridaTramo.setDate("feccorrida", feccorrida);
|
||||
queryCorridaTramo.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.rjconsultores.ventaboletos.dao.sqlbuilder;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Interface que indica quais são os SQL nativos da aplicação.
|
||||
|
@ -10,26 +11,32 @@ package com.rjconsultores.ventaboletos.dao.sqlbuilder;
|
|||
*
|
||||
*
|
||||
* @author gleimar
|
||||
*
|
||||
*
|
||||
*/
|
||||
public interface SQLBuilder {
|
||||
|
||||
public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
|
||||
public String getSQLAtualizarTarifaOficial(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
|
||||
public String getAtualizarTaxaEmbarquePorKmParada(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
|
||||
public String getSQLAtualizarTaxaEmbarquePorKmOrgao(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
public String getSQLAtualizarTaxaEmbarquePorParadaFixo(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
|
||||
public String getSQLAtualizarTaxaEmbarquePorParadaFixo(Integer rutaId, Integer usuarioId,
|
||||
Integer orgaoConcedenteId);
|
||||
|
||||
public String getSQLAtualizarSeguroPorKm(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
|
||||
public String getSQLAtualizarSeguroPorTarifa(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
|
||||
|
||||
public String getSQLAtualizarTarifaPorTarifaOfical(Integer vigenciaTarifaId,Integer usuarioId, Boolean calculaPegagio);
|
||||
|
||||
public String getSQLAtualizarTarifaPorTarifaOfical(Integer vigenciaTarifaId, Integer usuarioId,
|
||||
Boolean calculaPegagio);
|
||||
|
||||
public String getSQLInserirTarifaPelaTarifaOficial(Integer vigenciaTarifaId, Integer usuarioId);
|
||||
|
||||
|
||||
public String getSQLActualizarCorridaFecHusoFecVerano(Integer corridaId, Date feccorrida);
|
||||
|
||||
public String getSQLActualizarCorridaTramoFecHusoFecVerano(Integer corridaId, Date feccorrida);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
package com.rjconsultores.ventaboletos.dao.sqlbuilder.impl;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
|
||||
|
||||
public class SQLBuilderOracle implements SQLBuilder {
|
||||
|
||||
private static final Integer HORAS_NO_DIA = new Integer(24);
|
||||
|
||||
@Override
|
||||
public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLGerarTarifaOficial(final Integer codRuta, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("INSERT ");
|
||||
sb.append("INTO ");
|
||||
|
@ -39,11 +45,13 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" ROUND( ");
|
||||
sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + ");
|
||||
sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + ");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2), ");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * ");
|
||||
sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2), ");
|
||||
sb.append(" ROUND( ");
|
||||
sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + ");
|
||||
sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + ");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2),");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * ");
|
||||
sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2),");
|
||||
sb.append(" t.tramo_id, ");
|
||||
sb.append(" mc.marca_id, ");
|
||||
sb.append(" r.CLASESERVICIO_ID, ");
|
||||
|
@ -68,8 +76,11 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" inner join ruta r on r.ruta_id = rc.ruta_id ");
|
||||
sb.append(" inner join ruta_empresa re on r.ruta_id = re.ruta_id ");
|
||||
sb.append(" inner join marca ma on ma.empresa_id = re.empresa_id ");
|
||||
sb.append(" inner join orgao_tramo tc on tc.tramo_id = rc.tramo_id and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 ");
|
||||
sb.append(" inner join orgao_concedente oc on oc.orgaoconcedente_id = tc.orgaoconcedente_id and oc.orgaoconcedente_id =r.orgaoconcedente_id ");
|
||||
sb.append(" inner join orgao_tramo tc on tc.tramo_id = rc.tramo_id ");
|
||||
sb.append(" and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 ");
|
||||
sb.append(" inner join orgao_concedente oc on ");
|
||||
sb.append(" oc.orgaoconcedente_id = tc.orgaoconcedente_id ");
|
||||
sb.append(" and oc.orgaoconcedente_id =r.orgaoconcedente_id ");
|
||||
sb.append(" inner join coeficiente_tarifa ct1 on ct1.coeficientetarifa_id = tc.coeficientetarifa1_id ");
|
||||
sb.append(" left join coeficiente_tarifa ct2 on ct2.coeficientetarifa_id = tc.coeficientetarifa2_id ");
|
||||
sb.append(" left join coeficiente_tarifa ct3 on ct3.coeficientetarifa_id = tc.coeficientetarifa3_id ");
|
||||
|
@ -78,7 +89,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" inner join parada pd on pd.parada_id = t.destino_id ");
|
||||
sb.append(" inner join ciudad c on c.ciudad_id = po.ciudad_id ");
|
||||
sb.append(" inner join estado e on e.estado_id = c.estado_id ");
|
||||
sb.append(" inner join MARCA_CLASESERVICIO mc on mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id, ");
|
||||
sb.append(" inner join MARCA_CLASESERVICIO mc on ");
|
||||
sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id, ");
|
||||
sb.append(" moneda m ");
|
||||
sb.append(" ");
|
||||
sb.append("where ");
|
||||
|
@ -100,14 +112,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" mc.marca_id, ");
|
||||
sb.append(" r.CLASESERVICIO_ID, ");
|
||||
sb.append(" m.moneda_id, ");
|
||||
sb.append(" oc.orgaoconcedente_id, ");
|
||||
sb.append(" r.ruta_id) not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID,tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id from tarifa_oficial tao where tao.activo = 1) ");
|
||||
sb.append(" oc.orgaoconcedente_id, r.ruta_id) ");
|
||||
sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, ");
|
||||
sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id ");
|
||||
sb.append(" from tarifa_oficial tao where tao.activo = 1) ");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSQLAtualizarTarifaOficial(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLAtualizarTarifaOficial(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
|
||||
sb.append("UPDATE TARIFA_OFICIAL SET PRECIO = ");
|
||||
|
@ -117,13 +132,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" ROUND( ");
|
||||
sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + ");
|
||||
sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + ");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2)");
|
||||
sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * ");
|
||||
sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2)");
|
||||
sb.append(" ");
|
||||
sb.append("from ");
|
||||
sb.append(" ruta_combinacion rc ");
|
||||
sb.append(" inner join ruta r on r.ruta_id = rc.ruta_id ");
|
||||
sb.append(" inner join orgao_tramo tc on tc.tramo_id = rc.tramo_id and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 ");
|
||||
sb.append(" inner join orgao_concedente oc on oc.orgaoconcedente_id = tc.orgaoconcedente_id and oc.orgaoconcedente_id =r.orgaoconcedente_id ");
|
||||
sb.append(" inner join orgao_tramo tc on ");
|
||||
sb.append(" tc.tramo_id = rc.tramo_id and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 ");
|
||||
sb.append(" inner join orgao_concedente oc on ");
|
||||
sb.append(" oc.orgaoconcedente_id = tc.orgaoconcedente_id ");
|
||||
sb.append(" and oc.orgaoconcedente_id =r.orgaoconcedente_id ");
|
||||
sb.append(" inner join coeficiente_tarifa ct1 on ct1.coeficientetarifa_id = tc.coeficientetarifa1_id ");
|
||||
sb.append(" left join coeficiente_tarifa ct2 on ct2.coeficientetarifa_id = tc.coeficientetarifa2_id ");
|
||||
sb.append(" left join coeficiente_tarifa ct3 on ct3.coeficientetarifa_id = tc.coeficientetarifa3_id ");
|
||||
|
@ -167,7 +186,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getAtualizarTaxaEmbarquePorKmParada(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getAtualizarTaxaEmbarquePorKmParada(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
|
||||
sb.append("( ");
|
||||
|
@ -178,7 +198,9 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id ");
|
||||
sb.append(" inner join TAXA_EMBARQUE_PARADA tepKm on tepKm.parada_id = t.origen_id and tepKm.KMATE >= t.CANTKMREAL and tepKm.activo = 1 and tepKm.indtipo = 'K' ");
|
||||
sb.append(" inner join TAXA_EMBARQUE_PARADA tepKm on ");
|
||||
sb.append(" tepKm.parada_id = t.origen_id and tepKm.KMATE >= ");
|
||||
sb.append(" t.CANTKMREAL and tepKm.activo = 1 and tepKm.indtipo = 'K' ");
|
||||
sb.append("where ");
|
||||
sb.append(" tepKm.kmate= ");
|
||||
sb.append(" (select min(tepKm1.KMATE) ");
|
||||
|
@ -209,7 +231,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getSQLAtualizarTaxaEmbarquePorKmOrgao(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLAtualizarTaxaEmbarquePorKmOrgao(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
|
||||
sb.append("coalesce( ");
|
||||
|
@ -220,14 +243,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id ");
|
||||
sb.append(" inner join taxa_embarque_km tek on tek.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID and tek.activo = 1 and t.CANTKMREAL <= tek.kmate ");
|
||||
sb.append(" inner join taxa_embarque_km tek on ");
|
||||
sb.append(" tek.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" and tek.activo = 1 and t.CANTKMREAL <= tek.kmate ");
|
||||
sb.append("where ");
|
||||
sb.append(" tek.kmate= ");
|
||||
sb.append(" (select min(tek1.KMATE) ");
|
||||
sb.append(" from ");
|
||||
sb.append(" taxa_embarque_km tek1 ");
|
||||
sb.append(" where ");
|
||||
sb.append(" tek1.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID and t.CANTKMREAL <= tek1.kmate and tek1.activo = 1 ");
|
||||
sb.append(" tek1.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" and t.CANTKMREAL <= tek1.kmate and tek1.activo = 1 ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" ");
|
||||
sb.append(" and tao.marca_id = tarifa_oficial.marca_id ");
|
||||
|
@ -253,7 +279,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getSQLAtualizarTaxaEmbarquePorParadaFixo(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLAtualizarTaxaEmbarquePorParadaFixo(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
|
||||
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
|
||||
|
@ -265,7 +292,9 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id ");
|
||||
sb.append(" inner join TAXA_EMBARQUE_PARADA tepFixo on tepFixo.parada_id = t.origen_id and tepFixo.indtipo = 'F' and tepFixo.activo = 1 ");
|
||||
sb.append(" inner join TAXA_EMBARQUE_PARADA tepFixo on ");
|
||||
sb.append(" tepFixo.parada_id = t.origen_id ");
|
||||
sb.append(" and tepFixo.indtipo = 'F' and tepFixo.activo = 1 ");
|
||||
sb.append("where ");
|
||||
sb.append(" tao.marca_id = tarifa_oficial.marca_id ");
|
||||
sb.append(" and tao.orgaoconcedente_id = tepFixo.orgaoconcedente_id ");
|
||||
|
@ -289,7 +318,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getSQLAtualizarSeguroPorKm(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLAtualizarSeguroPorKm(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append("update tarifa_oficial set IMPORTESEGURO = ");
|
||||
sb.append("( ");
|
||||
|
@ -298,14 +328,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id ");
|
||||
sb.append(" inner join seguro_km sk on sk.KMATE >= t.CANTKMREAL and sk.activo = 1 and tao.ORGAOCONCEDENTE_ID = sk.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" inner join seguro_km sk on ");
|
||||
sb.append(" sk.KMATE >= t.CANTKMREAL and sk.activo = 1 ");
|
||||
sb.append(" and tao.ORGAOCONCEDENTE_ID = sk.ORGAOCONCEDENTE_ID ");
|
||||
sb.append("where ");
|
||||
sb.append(" sk.kmate= ");
|
||||
sb.append(" (select min(sk1.KMATE) ");
|
||||
sb.append(" from ");
|
||||
sb.append(" seguro_km sk1 ");
|
||||
sb.append(" where ");
|
||||
sb.append(" sk1.KMATE >= t.CANTKMREAL and sk1.activo = 1 and tao.ORGAOCONCEDENTE_ID = sk1.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" sk1.KMATE >= t.CANTKMREAL and sk1.activo = 1 ");
|
||||
sb.append(" and tao.ORGAOCONCEDENTE_ID = sk1.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" and tao.marca_id = tarifa_oficial.marca_id ");
|
||||
sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id ");
|
||||
|
@ -329,7 +362,8 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getSQLAtualizarSeguroPorTarifa(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
|
||||
public String getSQLAtualizarSeguroPorTarifa(final Integer rutaId, final Integer usuarioId,
|
||||
final Integer orgaoConcedenteId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append("update tarifa_oficial set IMPORTESEGURO = ");
|
||||
sb.append("( ");
|
||||
|
@ -337,14 +371,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append(" st.VALORTAXA ");
|
||||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
sb.append(" inner join seguro_tarifa st on st.VALORTARIFAATE >= tao.precio and st.activo = 1 and tao.ORGAOCONCEDENTE_ID = st.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" inner join seguro_tarifa st on ");
|
||||
sb.append(" st.VALORTARIFAATE >= tao.precio and st.activo = 1 ");
|
||||
sb.append(" and tao.ORGAOCONCEDENTE_ID = st.ORGAOCONCEDENTE_ID ");
|
||||
sb.append("where ");
|
||||
sb.append(" st.VALORTARIFAATE= ");
|
||||
sb.append(" (select min(st1.VALORTARIFAATE) ");
|
||||
sb.append(" from ");
|
||||
sb.append(" seguro_tarifa st1 ");
|
||||
sb.append(" where ");
|
||||
sb.append(" st1.VALORTARIFAATE >= tao.precio and st1.activo = 1 and tao.ORGAOCONCEDENTE_ID = st1.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" st1.VALORTARIFAATE >= tao.precio and st1.activo = 1 ");
|
||||
sb.append(" and tao.ORGAOCONCEDENTE_ID = st1.ORGAOCONCEDENTE_ID ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" and tao.marca_id = tarifa_oficial.marca_id ");
|
||||
sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id ");
|
||||
|
@ -368,15 +405,24 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getSQLAtualizarTarifaPorTarifaOfical(Integer vigenciaTarifaId, Integer usuarioId, Boolean calculaPegagio) {
|
||||
public String getSQLAtualizarTarifaPorTarifaOfical(final Integer vigenciaTarifaId, final Integer usuarioId,
|
||||
final Boolean calculaPegagio) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append("update ( ");
|
||||
sb.append(" ");
|
||||
sb.append("select ");
|
||||
sb.append(" ta.precio as taprecio,ta.preciooriginal as tapreciooriginal,ta.importetaxaembarque as taimportetaxaembarque, ");
|
||||
sb.append(" ta.importepedagio as taimportepedagio,ta.importeoutros as taimporteoutros,ta.importeseguro as taimporteseguro, ");
|
||||
sb.append(" tao.precio as taoprecio,tao.preciooriginal as taopreciooriginal,tao.importetaxaembarque as taoimportetaxaembarque, ");
|
||||
sb.append(" tao.importepedagio as taoimportepedagio,tao.importeoutros as taoimporteoutros,tao.importeseguro as taoimporteseguro, ");
|
||||
sb.append(" ta.precio as taprecio, ");
|
||||
sb.append(" ta.preciooriginal as tapreciooriginal, ");
|
||||
sb.append(" ta.importetaxaembarque as taimportetaxaembarque, ");
|
||||
sb.append(" ta.importepedagio as taimportepedagio, ");
|
||||
sb.append(" ta.importeoutros as taimporteoutros, ");
|
||||
sb.append(" ta.importeseguro as taimporteseguro, ");
|
||||
sb.append(" tao.precio as taoprecio, ");
|
||||
sb.append(" tao.preciooriginal as taopreciooriginal, ");
|
||||
sb.append(" tao.importetaxaembarque as taoimportetaxaembarque, ");
|
||||
sb.append(" tao.importepedagio as taoimportepedagio, ");
|
||||
sb.append(" tao.importeoutros as taoimporteoutros, ");
|
||||
sb.append(" tao.importeseguro as taoimporteseguro, ");
|
||||
sb.append(" ta.fecmodif as tafecmodif,ta.usuario_id as tausuario_id ");
|
||||
sb.append("from ");
|
||||
sb.append(" tarifa_oficial tao ");
|
||||
|
@ -390,7 +436,9 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
sb.append("where ");
|
||||
sb.append(" ta.vigenciatarifa_id = ").append(vigenciaTarifaId);
|
||||
sb.append(" ) set ");
|
||||
sb.append(" taprecio = taoprecio , tapreciooriginal = taopreciooriginal,taimportetaxaembarque = taoimportetaxaembarque, ");
|
||||
sb.append(" taprecio = taoprecio, ");
|
||||
sb.append(" tapreciooriginal = taopreciooriginal, ");
|
||||
sb.append(" taimportetaxaembarque = taoimportetaxaembarque, ");
|
||||
if (calculaPegagio) {
|
||||
sb.append(" taimportepedagio = taoimportepedagio,");
|
||||
}
|
||||
|
@ -400,12 +448,17 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getSQLInserirTarifaPelaTarifaOficial(Integer vigenciaTarifaId, Integer usuarioId) {
|
||||
public String getSQLInserirTarifaPelaTarifaOficial(final Integer vigenciaTarifaId, final Integer usuarioId) {
|
||||
StringBuilder sb = new StringBuilder("");
|
||||
sb.append(" insert ");
|
||||
sb.append(" into ");
|
||||
sb.append(" TARIFA ");
|
||||
sb.append(" ( TARIFA_ID, PRECIO, PRECIOREDABIERTO, TRAMO_ID, MARCA_ID, CLASESERVICIO_ID, PRECIOORIGINAL, MONEDA_ID, VIGENCIATARIFA_ID, STATUSTARIFA, ACTIVO, FECMODIF, USUARIO_ID, IMPORTETAXAEMBARQUE, IMPORTEPEDAGIO, IMPORTEOUTROS, IMPORTESEGURO, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID ) select ");
|
||||
sb.append(" ( TARIFA_ID, PRECIO, PRECIOREDABIERTO, TRAMO_ID, ");
|
||||
sb.append(" MARCA_ID, CLASESERVICIO_ID, PRECIOORIGINAL, MONEDA_ID, ");
|
||||
sb.append(" VIGENCIATARIFA_ID, STATUSTARIFA, ACTIVO, FECMODIF, ");
|
||||
sb.append(" USUARIO_ID, IMPORTETAXAEMBARQUE, IMPORTEPEDAGIO, IMPORTEOUTROS, ");
|
||||
sb.append(" IMPORTESEGURO, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID ) ");
|
||||
sb.append(" select ");
|
||||
sb.append(" TARIFA_SEQ.nextval, ");
|
||||
sb.append(" tao.PRECIO , ");
|
||||
sb.append(" tao.PRECIOREDABIERTO , ");
|
||||
|
@ -450,4 +503,94 @@ public class SQLBuilderOracle implements SQLBuilder {
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getSQLActualizarCorridaFecHusoFecVerano(final Integer corridaId, final Date feccorrida) {
|
||||
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
||||
sb.append(" update Corrida cq ");
|
||||
sb.append(" set cq.fechorSalidaOriginalH = ");
|
||||
sb.append(" ( ");
|
||||
sb.append(" select ");
|
||||
sb.append(" c.fechorSalidaOriginal ");
|
||||
sb.append(" + nvl((c.origem.ciudad.estado.tiempoHorHuso/").append(HORAS_NO_DIA).append("), 0) ");
|
||||
sb.append(" + nvl( case when ");
|
||||
sb.append(" c.fechorSalidaOriginal between ");
|
||||
sb.append(" c.origem.ciudad.estado.fecInicioHorVerano ");
|
||||
sb.append(" and c.origem.ciudad.estado.fecFinoHorVerano ");
|
||||
sb.append(" then (c.origem.ciudad.estado.tiempoHorVerano/").append(HORAS_NO_DIA).append(") ");
|
||||
sb.append(" else 0 end, 0) ");
|
||||
sb.append(" from Corrida c ");
|
||||
sb.append(" where c.id.corridaId = :corridaId ");
|
||||
sb.append(" and c.id.feccorrida = :feccorrida ");
|
||||
sb.append(" and c.id.corridaId = cq.id.corridaId ");
|
||||
sb.append(" and c.id.feccorrida = cq.id.feccorrida ");
|
||||
sb.append(" ) ");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getSQLActualizarCorridaTramoFecHusoFecVerano(final Integer corridaId, final Date feccorrida) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
||||
sb.append(" update CorridaTramo ctq ");
|
||||
sb.append(" set ctq.fechorSalidaOriginalH = ");
|
||||
sb.append(" ( ");
|
||||
sb.append(" select ");
|
||||
sb.append(" ct.fechorSalidaOriginal ");
|
||||
sb.append(" + nvl((ct.origem.ciudad.estado.tiempoHorHuso/").append(HORAS_NO_DIA).append("), 0) ");
|
||||
sb.append(" + nvl( case when ");
|
||||
sb.append(" ct.fechorSalidaOriginal between ");
|
||||
sb.append(" ct.origem.ciudad.estado.fecInicioHorVerano ");
|
||||
sb.append(" and ct.origem.ciudad.estado.fecFinoHorVerano ");
|
||||
sb.append(" then (ct.origem.ciudad.estado.tiempoHorVerano/").append(HORAS_NO_DIA).append(") ");
|
||||
sb.append(" else 0 end, 0) ");
|
||||
sb.append(" from CorridaTramo ct ");
|
||||
sb.append(" where ct.corrida.id.corridaId = :corridaId ");
|
||||
sb.append(" and ct.corrida.id.feccorrida = :feccorrida ");
|
||||
sb.append(" and ctq.corridatramoId = ct.corridatramoId ");
|
||||
sb.append(" ) ");
|
||||
|
||||
sb.append(" , ");
|
||||
|
||||
sb.append(" ctq.fechorsalidaH = ");
|
||||
|
||||
sb.append(" ( ");
|
||||
sb.append(" select ");
|
||||
sb.append(" ct.fechorsalida ");
|
||||
sb.append(" + nvl((ct.origem.ciudad.estado.tiempoHorHuso/").append(HORAS_NO_DIA).append("), 0) ");
|
||||
sb.append(" + nvl( case when ");
|
||||
sb.append(" ct.fechorsalida between ");
|
||||
sb.append(" ct.origem.ciudad.estado.fecInicioHorVerano ");
|
||||
sb.append(" and ct.origem.ciudad.estado.fecFinoHorVerano ");
|
||||
sb.append(" then (ct.origem.ciudad.estado.tiempoHorVerano/").append(HORAS_NO_DIA).append(") ");
|
||||
sb.append(" else 0 end, 0) ");
|
||||
sb.append(" from CorridaTramo ct ");
|
||||
sb.append(" where ct.corrida.id.corridaId = :corridaId ");
|
||||
sb.append(" and ct.corrida.id.feccorrida = :feccorrida ");
|
||||
sb.append(" and ctq.corridatramoId = ct.corridatramoId ");
|
||||
sb.append(" ) ");
|
||||
|
||||
sb.append(" , ");
|
||||
|
||||
sb.append(" ctq.fechorllegadaH = ");
|
||||
|
||||
sb.append(" ( ");
|
||||
sb.append(" select ");
|
||||
sb.append(" ct.fechorllegada ");
|
||||
sb.append(" + nvl((ct.destino.ciudad.estado.tiempoHorHuso/").append(HORAS_NO_DIA).append("), 0) ");
|
||||
sb.append(" + nvl( case when ");
|
||||
sb.append(" ct.fechorllegada between ");
|
||||
sb.append(" ct.destino.ciudad.estado.fecInicioHorVerano ");
|
||||
sb.append(" and ct.destino.ciudad.estado.fecFinoHorVerano ");
|
||||
sb.append(" then (ct.destino.ciudad.estado.tiempoHorVerano/").append(HORAS_NO_DIA).append(") ");
|
||||
sb.append(" else 0 end, 0) ");
|
||||
sb.append(" from CorridaTramo ct ");
|
||||
sb.append(" where ct.corrida.id.corridaId = :corridaId ");
|
||||
sb.append(" and ct.corrida.id.feccorrida = :feccorrida ");
|
||||
sb.append(" and ctq.corridatramoId = ct.corridatramoId ");
|
||||
sb.append(" ) ");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -199,6 +199,10 @@ public class Corrida implements Serializable {
|
|||
@Column(name = "NUMPISO")
|
||||
private Integer numPiso;
|
||||
|
||||
@Column(name = "fechorsalidaoriginalh")
|
||||
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
|
||||
private Date fechorSalidaOriginalH;
|
||||
|
||||
public String getIndTipoVenta() {
|
||||
return indTipoVenta;
|
||||
}
|
||||
|
@ -474,6 +478,14 @@ public class Corrida implements Serializable {
|
|||
this.numPiso = numPiso;
|
||||
}
|
||||
|
||||
public Date getFechorSalidaOriginalH() {
|
||||
return fechorSalidaOriginalH;
|
||||
}
|
||||
|
||||
public void setFechorSalidaOriginalH(Date fechorSalidaOriginalH) {
|
||||
this.fechorSalidaOriginalH = fechorSalidaOriginalH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return id.toString();
|
||||
|
|
|
@ -105,6 +105,17 @@ public class CorridaTramo implements Serializable {
|
|||
@Column(name = "PLATAFORMA")
|
||||
private String plataforma;
|
||||
|
||||
@Column(name = "FECHORSALIDAH")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date fechorsalidaH;
|
||||
@Column(name = "FECHORLLEGADAH")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date fechorllegadaH;
|
||||
|
||||
@Column(name = "fechorsalidaoriginalh")
|
||||
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
|
||||
private Date fechorSalidaOriginalH;
|
||||
|
||||
public Boolean getIndmanttarjeta() {
|
||||
return indmanttarjeta;
|
||||
}
|
||||
|
@ -313,6 +324,30 @@ public class CorridaTramo implements Serializable {
|
|||
this.plataforma = plataforma;
|
||||
}
|
||||
|
||||
public Date getFechorsalidaH() {
|
||||
return fechorsalidaH;
|
||||
}
|
||||
|
||||
public void setFechorsalidaH(Date fechorsalidaH) {
|
||||
this.fechorsalidaH = fechorsalidaH;
|
||||
}
|
||||
|
||||
public Date getFechorllegadaH() {
|
||||
return fechorllegadaH;
|
||||
}
|
||||
|
||||
public void setFechorllegadaH(Date fechorllegadaH) {
|
||||
this.fechorllegadaH = fechorllegadaH;
|
||||
}
|
||||
|
||||
public Date getFechorSalidaOriginalH() {
|
||||
return fechorSalidaOriginalH;
|
||||
}
|
||||
|
||||
public void setFechorSalidaOriginalH(Date fechorSalidaOriginalH) {
|
||||
this.fechorSalidaOriginalH = fechorSalidaOriginalH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hash = 0;
|
||||
|
|
|
@ -58,6 +58,16 @@ public class Estado implements Serializable {
|
|||
private List<Ciudad> ciudadList;
|
||||
@Column(name = "ICMS")
|
||||
private BigDecimal icms;
|
||||
@Column(name = "TIEMPOHORHUSO")
|
||||
private Integer tiempoHorHuso;
|
||||
@Column(name = "FECINICIOHORVERANO")
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date fecInicioHorVerano;
|
||||
@Column(name = "FECFINOHORVERANO")
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date fecFinoHorVerano;
|
||||
@Column(name = "TIEMPOHORVERANO")
|
||||
private Integer tiempoHorVerano;
|
||||
@OneToMany(mappedBy = "estado")
|
||||
private List<EmpresaImposto> empresaImpostoList;
|
||||
|
||||
|
@ -148,6 +158,38 @@ public class Estado implements Serializable {
|
|||
this.icms = icms;
|
||||
}
|
||||
|
||||
public Integer getTiempoHorHuso() {
|
||||
return tiempoHorHuso;
|
||||
}
|
||||
|
||||
public void setTiempoHorHuso(Integer tiempoHorHuso) {
|
||||
this.tiempoHorHuso = tiempoHorHuso;
|
||||
}
|
||||
|
||||
public Date getFecInicioHorVerano() {
|
||||
return fecInicioHorVerano;
|
||||
}
|
||||
|
||||
public void setFecInicioHorVerano(Date fecInicioHorVerano) {
|
||||
this.fecInicioHorVerano = fecInicioHorVerano;
|
||||
}
|
||||
|
||||
public Date getFecFinoHorVerano() {
|
||||
return fecFinoHorVerano;
|
||||
}
|
||||
|
||||
public void setFecFinoHorVerano(Date fecFinoHorVerano) {
|
||||
this.fecFinoHorVerano = fecFinoHorVerano;
|
||||
}
|
||||
|
||||
public Integer getTiempoHorVerano() {
|
||||
return tiempoHorVerano;
|
||||
}
|
||||
|
||||
public void setTiempoHorVerano(Integer tiempoHorVerano) {
|
||||
this.tiempoHorVerano = tiempoHorVerano;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hash = 0;
|
||||
|
|
|
@ -586,6 +586,9 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
corrida.setIndTipoVenta(null);
|
||||
|
||||
corrida = corridaDAO.suscribir(corrida);
|
||||
|
||||
corridaDAO.actualizaFecHusoFecVerano(corrida);
|
||||
|
||||
cantCorridaGenerada++;
|
||||
|
||||
List<EsquemaAsiento> lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
|
||||
|
|
Loading…
Reference in New Issue