diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java
index 273e53d4c..3793dac7d 100644
--- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java
+++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java
@@ -249,7 +249,7 @@ public class CorridaServiceImpl implements CorridaService {
} else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
}
- }else{
+ } else {
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
}
@@ -265,8 +265,8 @@ public class CorridaServiceImpl implements CorridaService {
for (TramoServicio ts : lsTramoServicio) {
HoraSistema hs = new HoraSistema(ts.getTiemporecorrido());
-
- gHoraChegada.add(Calendar.HOUR_OF_DAY, hs.getHora());
+
+ gHoraChegada.add(Calendar.HOUR_OF_DAY, hs.getHora());
gHoraChegada.add(Calendar.MINUTE, hs.getMinuto());
}
@@ -286,10 +286,10 @@ public class CorridaServiceImpl implements CorridaService {
log.debug("Tempo Recorrido : " + sdf.format(gHoraSaidaProximo.getTime()));
if (tiempoEstanciaAnterior != null) {
-
+
gHoraSaidaProximo.add(Calendar.MINUTE, tiempoEstanciaAnterior.getMinutes());
gHoraSaidaProximo.add(Calendar.HOUR_OF_DAY, tiempoEstanciaAnterior.getHours());
-
+
log.debug("Tempo Recorrido + Estancia: " + sdf.format(gHoraSaidaProximo.getTime()));
}
@@ -333,10 +333,29 @@ public class CorridaServiceImpl implements CorridaService {
}
/**
- * Genera una corrida para el esquemaCorrida informado en el dia y fecha
- * informados.
+ * Indica si el esquemaCorrida informado tiene una vigencia válida para la data de generacion
*
- * Es validado si la corrida ya existe
+ * @param esquemaCorrida
+ * @param dataGeracao
+ * @return
+ */
+ private boolean vigenciaValida(EsquemaCorrida esquemaCorrida, Date dataGeracao) {
+ if ((DateUtil.compareOnlyDate(dataGeracao, esquemaCorrida.getEsquemaOperacional().getFecfinvigencia()) <= 0) &&
+ (DateUtil.compareOnlyDate(dataGeracao, esquemaCorrida.getEsquemaOperacional().getFecniciovigencia()) >= 0)) {
+
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Genera una corrida para el esquemaCorrida informado en el dia y fecha informados.
+ *
+ * Cuando la corrida no es generada :
+ * - corrida ya existe : eso es checado por el numCorrida e dataGeneracion
+ * - la fecha de generacion no tiene una vigencia válida
+ * - el status del esquema corrida no es autorizado ("A")
+ *
*
* @param esquemaCorrida
* @param diaSemana
@@ -349,218 +368,228 @@ public class CorridaServiceImpl implements CorridaService {
Integer diaSemana = calendario.get(Calendar.DAY_OF_WEEK);
Corrida corrida = null;
- if ((esquemaCorrida.getStatusCorrida() != null) && (esquemaCorrida.getStatusCorrida().equals("A"))) {
- if (temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) {
- try {
- Ruta ruta = esquemaCorrida.getRuta();
- ClaseServicio claseServicio = esquemaCorrida.getClaseServicio();
- Marca marca = esquemaCorrida.getMarca();
- Date horario = esquemaCorrida.getHorasalida();
- horario = DateUtil.normalizar(horario);
- Integer numCorrida = (!isPisoExtra)?esquemaCorrida.getNumCorrida():esquemaCorrida.getNumCorridaPisoExtra();
- Corrida.Id id = new Corrida.Id();
-
- id.setCorridaId(numCorrida);
- id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
-
- if (corridaDAO.existe(id)) {
- log.info("corrida existe = " + numCorrida +";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
- return null;
- }
+ if (!vigenciaValida(esquemaCorrida, dataGeracao)) {
+ log.debug("vigencia invalida=" + dataGeracao);
- //Como o numCorrida corresponde ao corrida_id do corridaCtrl, ou seja, à chave primaria, temos que buscar somente por esse campo
- //Caso o registro já exista, atualizamos os dados dele.
- //Sendo assim, o que vai indicar a "duplicidade" de uma corrida será apenas o número dela e não mais o conjunto : clase + marca + horario + ruta
-
- CorridaCtrl corridaCtrl = corridaCtrlService.obtenerID(numCorrida);
-
- boolean novoRegistro = false;
-
- if (corridaCtrl == null) {
- corridaCtrl = new CorridaCtrl();
- novoRegistro = true;
- }
-
- corridaCtrl.setCorridaId(numCorrida);
- corridaCtrl.setMarca(marca);
- corridaCtrl.setRuta(ruta);
- corridaCtrl.setClaseServicio(claseServicio);
- corridaCtrl.setHorario(horario);
+ return null;
+ }
- // parada origem
- Parada origen = rutaService.getOrigem(ruta);
- if (origen == null) {
- log.info("origen nao encontrado para a ruta = " + ruta.getRutaId());
- }
- corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
+ if (!((esquemaCorrida.getStatusCorrida() != null) && (esquemaCorrida.getStatusCorrida().equals("A")))) {
+ log.debug("status corrida invalido=" + esquemaCorrida.getStatusCorrida());
- corridaCtrl.setActivo(Boolean.TRUE);
- corridaCtrl.setFecmodif(Calendar.getInstance().getTime());
-
- if (UsuarioLogado.getUsuarioLogado() != null) {
- corridaCtrl.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- }
+ return null;
+ }
- corridaCtrl.setPisoExtra(isPisoExtra);
- if (novoRegistro){
- corridaCtrl = corridaCtrlService.suscribir(corridaCtrl);
- }else{
- corridaCtrl = corridaCtrlService.actualizacion(corridaCtrl);
- }
-
- corrida = new Corrida();
- corrida.setId(id);
- corrida.setEsquemaCorrida(esquemaCorrida);
- corrida.setCorridaCtrl(corridaCtrl);
- corrida.setAutobus(null);
- corrida.setClaseServicio(esquemaCorrida.getClaseServicio());
- corrida.setConductor(null);
- corrida.setTipoServicio(new Short("1"));
- Integer cantparados = esquemaCorrida.getCantparados();
- if (cantparados != null) {
- corrida.setCantParados(cantparados.shortValue());
- }
+ if (!temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) {
+ log.debug("dia semana no valido=" + diaSemana);
- Parada destino = rutaService.getDestino(ruta);
- if (destino == null) {
- return null;
- }
- corrida.setDestino(destino);
+ return null;
+ }
- corrida.setEmpresa(esquemaCorrida.getEmpresa());
- corrida.setEmpresa1(esquemaCorrida.getEmpresa1());
+ try {
+ Ruta ruta = esquemaCorrida.getRuta();
+ ClaseServicio claseServicio = esquemaCorrida.getClaseServicio();
+ Marca marca = esquemaCorrida.getMarca();
+ Date horario = esquemaCorrida.getHorasalida();
+ horario = DateUtil.normalizar(horario);
+ Integer numCorrida = (!isPisoExtra) ? esquemaCorrida.getNumCorrida() : esquemaCorrida.getNumCorridaPisoExtra();
- corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida()));
- corrida.setFechorSalidaOriginal(corrida.getFechorsalida());
- corrida.setIndstatuscorrida("H");
- corrida.setMarca(esquemaCorrida.getMarca());
- corrida.setNodo(corridaCtrl.getNodo());
- corrida.setDivision(esquemaCorrida.getDivision());
+ Corrida.Id id = new Corrida.Id();
- Parada origem = rutaService.getOrigem(ruta);
- if (origem == null) {
- return null;
- }
- corrida.setOrigem(origem);
+ id.setCorridaId(numCorrida);
+ id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
- corrida.setRuta(esquemaCorrida.getRuta());
- corrida.setRolOperativo(esquemaCorrida.getRolOperativo());
- corrida.setZona(null);
+ if (corridaDAO.existe(id)) {
+ log.info("corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
+ return null;
+ }
- boolean hayCorrida = corridaDAO.count(corrida.getOrigem(), corrida.getDestino(), corrida.getId().getFeccorrida(), corrida.getClaseServicio(), isPisoExtra);
+ // Como o numCorrida corresponde ao corrida_id do corridaCtrl, ou seja, à chave primaria, temos que buscar somente por esse campo
+ // Caso o registro já exista, atualizamos os dados dele.
+ // Sendo assim, o que vai indicar a "duplicidade" de uma corrida será apenas o número dela e não mais o conjunto : clase + marca + horario + ruta
- if (hayCorrida) {
- return null;
- }
+ CorridaCtrl corridaCtrl = corridaCtrlService.obtenerID(numCorrida);
- // corrida Tramo:
- List lsCorridaTramo = new ArrayList();
- Integer numSec = 1;
- List lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
- Date horaChegadaAnterior = null;
- Date tiempoInstanciaAnterior = null; // indica o tempo
- // de instancia
- // que fica no
- // tramo
- // anterior ao
- // atual
- for (EsquemaTramo esquemaTramo : lsEsquemaTramo) {
- CorridaTramo corridaTramo = new CorridaTramo();
- corridaTramo.setAutobus(null);
- corridaTramo.setConductor(null);
- corridaTramo.setConductor1(null);
- corridaTramo.setPlataforma(esquemaTramo.getPlataforma());
+ boolean novoRegistro = false;
- corridaTramo.setTiempoEstancia(esquemaTramo.getTiempoEstancia());
+ if (corridaCtrl == null) {
+ corridaCtrl = new CorridaCtrl();
+ novoRegistro = true;
+ }
- // numSec: 1-2, 2-3, 3-4...
- corridaTramo.setNumsecorigen(numSec.shortValue());
- numSec = numSec + 1;
- corridaTramo.setNumsecdestino(numSec.shortValue());
+ corridaCtrl.setCorridaId(numCorrida);
+ corridaCtrl.setMarca(marca);
+ corridaCtrl.setRuta(ruta);
+ corridaCtrl.setClaseServicio(claseServicio);
+ corridaCtrl.setHorario(horario);
- Date fecHorSalida = calcularFechorsalida(esquemaTramo, dataGeracao, horaChegadaAnterior, tiempoInstanciaAnterior);
- fecHorSalida.setSeconds(0);
- corridaTramo.setFechorsalida(fecHorSalida);
+ // parada origem
+ Parada origen = rutaService.getOrigem(ruta);
+ if (origen == null) {
+ log.info("origen nao encontrado para a ruta = " + ruta.getRutaId());
+ }
+ corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
- Date fecHorallegada = calcularFechorllegada(esquemaTramo, corrida.getClaseServicio(), dataGeracao, fecHorSalida);
- fecHorallegada.setSeconds(0);
- corridaTramo.setFechorllegada(fecHorallegada);
- horaChegadaAnterior = fecHorallegada;
- tiempoInstanciaAnterior = esquemaTramo.getTiempoEstancia();
+ corridaCtrl.setActivo(Boolean.TRUE);
+ corridaCtrl.setFecmodif(Calendar.getInstance().getTime());
- corridaTramo.setFechortarjetaviaje(null);
- corridaTramo.setNodo(corridaCtrl.getNodo());
+ if (UsuarioLogado.getUsuarioLogado() != null) {
+ corridaCtrl.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ }
- corridaTramo.setNumsecuencia(esquemaTramo.getNumsecuencia());
- Tramo tramo = esquemaTramo.getTramo();
- if (tramo != null) {
- corridaTramo.setOrigem(tramo.getOrigem());
- corridaTramo.setDestino(tramo.getDestino());
- }
- corridaTramo.setTramo(tramo);
- corridaTramo.setUsuariotarjetaviajeId(null);
+ corridaCtrl.setPisoExtra(isPisoExtra);
+ if (novoRegistro) {
+ corridaCtrl = corridaCtrlService.suscribir(corridaCtrl);
+ } else {
+ corridaCtrl = corridaCtrlService.actualizacion(corridaCtrl);
+ }
- Date excepcionTiempo = arreglaExcepcionTiempo(corridaTramo, corrida.getClaseServicio());
- if (excepcionTiempo != null) {
- corridaTramo.setFechorllegada(excepcionTiempo);
- horaChegadaAnterior = excepcionTiempo;
- }
+ corrida = new Corrida();
+ corrida.setId(id);
+ corrida.setEsquemaCorrida(esquemaCorrida);
+ corrida.setCorridaCtrl(corridaCtrl);
+ corrida.setAutobus(null);
+ corrida.setClaseServicio(esquemaCorrida.getClaseServicio());
+ corrida.setConductor(null);
+ corrida.setTipoServicio(new Short("1"));
+ Integer cantparados = esquemaCorrida.getCantparados();
+ if (cantparados != null) {
+ corrida.setCantParados(cantparados.shortValue());
+ }
- corridaTramo.setActivo(Boolean.TRUE);
- corridaTramo.setFecmodif(Calendar.getInstance().getTime());
- if (UsuarioLogado.getUsuarioLogado() != null) {
- corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- }
- corridaTramo.setCorrida(corrida);
- corridaTramo.setFechorSalidaOriginal(fecHorSalida);
+ Parada destino = rutaService.getDestino(ruta);
+ if (destino == null) {
+ return null;
+ }
+ corrida.setDestino(destino);
- lsCorridaTramo.add(corridaTramo);
- }
- corrida.setCorridaTramoList(lsCorridaTramo);
+ corrida.setEmpresa(esquemaCorrida.getEmpresa());
+ corrida.setEmpresa1(esquemaCorrida.getEmpresa1());
- corrida.setActivo(Boolean.TRUE);
- corrida.setFecmodif(Calendar.getInstance().getTime());
- if (UsuarioLogado.getUsuarioLogado() != null) {
- corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- } else {
- corrida.setUsuarioId(1);
- }
- corrida.setIndTipoVenta(null);
+ corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida()));
+ corrida.setFechorSalidaOriginal(corrida.getFechorsalida());
+ corrida.setIndstatuscorrida("H");
+ corrida.setMarca(esquemaCorrida.getMarca());
+ corrida.setNodo(corridaCtrl.getNodo());
+ corrida.setDivision(esquemaCorrida.getDivision());
- corrida = corridaDAO.suscribir(corrida);
- cantCorridaGenerada++;
+ Parada origem = rutaService.getOrigem(ruta);
+ if (origem == null) {
+ return null;
+ }
+ corrida.setOrigem(origem);
- List lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
- for (EsquemaAsiento ea : lsEsquemaAsiento) {
- AsientoExclusivo asientoExclusivo = new AsientoExclusivo();
- asientoExclusivo.setCorrida(corrida);
- asientoExclusivo.setMotivobloqueo(null);
- asientoExclusivo.setNodo(corrida.getNodo());
- asientoExclusivo.setNumasiento(ea.getNumasiento());
- asientoExclusivo.setVendible(ea.getIndvendible());
- asientoExclusivo.setParada(ea.getParada());
- if (ea.getIndvendible()) {
- asientoExclusivo.setMotivobloqueo(null);
- } else {
- asientoExclusivo.setMotivobloqueo(ea.getMotivobloqueo());
- asientoExclusivo.setDestino(ea.getDestino());
- }
+ corrida.setRuta(esquemaCorrida.getRuta());
+ corrida.setRolOperativo(esquemaCorrida.getRolOperativo());
+ corrida.setZona(null);
- asientoExclusivo.setActivo(Boolean.TRUE);
- asientoExclusivo.setFecmodif(Calendar.getInstance().getTime());
- if (UsuarioLogado.getUsuarioLogado() != null) {
- asientoExclusivo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- }
+ boolean hayCorrida = corridaDAO.count(corrida.getOrigem(), corrida.getDestino(), corrida.getId().getFeccorrida(), corrida.getClaseServicio(), isPisoExtra);
- asientoExclusivo = asientoExclusivoService.suscribir(asientoExclusivo);
- }
-
- } catch (org.springframework.dao.DataIntegrityViolationException ex) {
- log.error(ex);
+ if (hayCorrida) {
+ return null;
+ }
+
+ // corrida Tramo:
+ List lsCorridaTramo = new ArrayList();
+ Integer numSec = 1;
+ List lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
+ Date horaChegadaAnterior = null;
+ Date tiempoInstanciaAnterior = null; // indica o tempo de instancia que fica no tramo anterior ao atual
+ for (EsquemaTramo esquemaTramo : lsEsquemaTramo) {
+ CorridaTramo corridaTramo = new CorridaTramo();
+ corridaTramo.setAutobus(null);
+ corridaTramo.setConductor(null);
+ corridaTramo.setConductor1(null);
+ corridaTramo.setPlataforma(esquemaTramo.getPlataforma());
+
+ corridaTramo.setTiempoEstancia(esquemaTramo.getTiempoEstancia());
+
+ // numSec: 1-2, 2-3, 3-4...
+ corridaTramo.setNumsecorigen(numSec.shortValue());
+ numSec = numSec + 1;
+ corridaTramo.setNumsecdestino(numSec.shortValue());
+
+ Date fecHorSalida = calcularFechorsalida(esquemaTramo, dataGeracao, horaChegadaAnterior, tiempoInstanciaAnterior);
+ fecHorSalida.setSeconds(0);
+ corridaTramo.setFechorsalida(fecHorSalida);
+
+ Date fecHorallegada = calcularFechorllegada(esquemaTramo, corrida.getClaseServicio(), dataGeracao, fecHorSalida);
+ fecHorallegada.setSeconds(0);
+ corridaTramo.setFechorllegada(fecHorallegada);
+ horaChegadaAnterior = fecHorallegada;
+ tiempoInstanciaAnterior = esquemaTramo.getTiempoEstancia();
+
+ corridaTramo.setFechortarjetaviaje(null);
+ corridaTramo.setNodo(corridaCtrl.getNodo());
+
+ corridaTramo.setNumsecuencia(esquemaTramo.getNumsecuencia());
+ Tramo tramo = esquemaTramo.getTramo();
+ if (tramo != null) {
+ corridaTramo.setOrigem(tramo.getOrigem());
+ corridaTramo.setDestino(tramo.getDestino());
}
- } // if (temCorridaDiaSemana(diaSemana, esquemaCorrida))
- } // if (esquemaCorrida.getStatusCorrida().equals("A"))
+ corridaTramo.setTramo(tramo);
+ corridaTramo.setUsuariotarjetaviajeId(null);
+
+ Date excepcionTiempo = arreglaExcepcionTiempo(corridaTramo, corrida.getClaseServicio());
+ if (excepcionTiempo != null) {
+ corridaTramo.setFechorllegada(excepcionTiempo);
+ horaChegadaAnterior = excepcionTiempo;
+ }
+
+ corridaTramo.setActivo(Boolean.TRUE);
+ corridaTramo.setFecmodif(Calendar.getInstance().getTime());
+ if (UsuarioLogado.getUsuarioLogado() != null) {
+ corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ }
+ corridaTramo.setCorrida(corrida);
+ corridaTramo.setFechorSalidaOriginal(fecHorSalida);
+
+ lsCorridaTramo.add(corridaTramo);
+ }
+ corrida.setCorridaTramoList(lsCorridaTramo);
+
+ corrida.setActivo(Boolean.TRUE);
+ corrida.setFecmodif(Calendar.getInstance().getTime());
+ if (UsuarioLogado.getUsuarioLogado() != null) {
+ corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ } else {
+ corrida.setUsuarioId(1);
+ }
+ corrida.setIndTipoVenta(null);
+
+ corrida = corridaDAO.suscribir(corrida);
+ cantCorridaGenerada++;
+
+ List lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
+ for (EsquemaAsiento ea : lsEsquemaAsiento) {
+ AsientoExclusivo asientoExclusivo = new AsientoExclusivo();
+ asientoExclusivo.setCorrida(corrida);
+ asientoExclusivo.setMotivobloqueo(null);
+ asientoExclusivo.setNodo(corrida.getNodo());
+ asientoExclusivo.setNumasiento(ea.getNumasiento());
+ asientoExclusivo.setVendible(ea.getIndvendible());
+ asientoExclusivo.setParada(ea.getParada());
+ if (ea.getIndvendible()) {
+ asientoExclusivo.setMotivobloqueo(null);
+ } else {
+ asientoExclusivo.setMotivobloqueo(ea.getMotivobloqueo());
+ asientoExclusivo.setDestino(ea.getDestino());
+ }
+
+ asientoExclusivo.setActivo(Boolean.TRUE);
+ asientoExclusivo.setFecmodif(Calendar.getInstance().getTime());
+ if (UsuarioLogado.getUsuarioLogado() != null) {
+ asientoExclusivo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ }
+
+ asientoExclusivo = asientoExclusivoService.suscribir(asientoExclusivo);
+ }
+
+ } catch (org.springframework.dao.DataIntegrityViolationException ex) {
+ log.error(ex);
+ }
return corrida;
}
@@ -710,8 +739,7 @@ public class CorridaServiceImpl implements CorridaService {
*
* @param corridaTramo
* @param claseServicio
- * @return - Si existe una excepcion, regresa la nueva fecLlegada para el
- * tramo, sino, regreso null
+ * @return - Si existe una excepcion, regresa la nueva fecLlegada para el tramo, sino, regreso null
*/
private Date arreglaExcepcionTiempo(CorridaTramo corridaTramo, ClaseServicio claseServicio) {
Date nuevaFecLlegada = null;
@@ -729,7 +757,7 @@ public class CorridaServiceImpl implements CorridaService {
if (diasSemana.contains(fecCorrida.get(Calendar.DAY_OF_WEEK))) {
log.info("Hay Excepcione de tiempo");
-
+
Calendar fechorsalida = Calendar.getInstance();
fechorsalida.setTime(corridaTramo.getFechorsalida());
@@ -799,16 +827,16 @@ public class CorridaServiceImpl implements CorridaService {
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public boolean generarCorridaAutomatica() {
feriadoCache.limpar();
-
+
Date dataDe = Calendar.getInstance().getTime();
Date dataAteConstante = calcularDataFinalGeneracionCorrida();
Boolean hayErroConstante = !generarCorridaAutomaticaConstanteDias(dataDe, dataAteConstante);
-
+
log.debug("corrida generadas por la constante. hayError=" + hayErroConstante);
Boolean hayErroQtdeDias = !generarCorridaAutomaticaQtdeDias(dataDe);
-
+
log.debug("corrida generadas por la cant de dias.hayError=" + hayErroQtdeDias);
return hayErroConstante && hayErroQtdeDias;
@@ -816,43 +844,43 @@ public class CorridaServiceImpl implements CorridaService {
private boolean generarCorridaAutomaticaQtdeDias(Date dataDeOriginal) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
-
- log.debug(" Generacion cant dias "+ sdf.format(dataDeOriginal));
-
+
+ log.debug(" Generacion cant dias " + sdf.format(dataDeOriginal));
+
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def);
List lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigenciaQtdeDiasNotNull(dataDeOriginal);
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
- log.debug("esquemaCorrida="+esquemaCorrida.getEsquemacorridaId());
-
+ log.debug("esquemaCorrida=" + esquemaCorrida.getEsquemacorridaId());
+
Integer qtdeDiasGerar = esquemaCorrida.getCantDiasGeneracion();
-
- if (qtdeDiasGerar <=0){
+
+ if (qtdeDiasGerar <= 0) {
log.debug("cant dias <=0");
-
+
continue;
}
-
- log.debug("cantDiasGenerar="+qtdeDiasGerar);
+
+ log.debug("cantDiasGenerar=" + qtdeDiasGerar);
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataDeOriginal);
- calendarData.add(Calendar.DATE, qtdeDiasGerar-1);
-
+ calendarData.add(Calendar.DATE, qtdeDiasGerar - 1);
+
Date dataAte = calendarData.getTime();
Date dataDe = new Date(dataDeOriginal.getTime());
-
+
log.debug("Periodo generacion = " + sdf.format(dataDe) + " hasta " + sdf.format(dataAte));
-
- if(DateUtil.compareOnlyDate(dataAte, esquemaCorrida.getEsquemaOperacional().getFecfinvigencia()) > 0){
+
+ if (DateUtil.compareOnlyDate(dataAte, esquemaCorrida.getEsquemaOperacional().getFecfinvigencia()) > 0) {
log.info("Cant dias excede final de la vigencia");
-
+
dataAte = esquemaCorrida.getEsquemaOperacional().getFecfinvigencia();
}
-
- while (DateUtil.compareOnlyDate(dataDe,dataAte) <= 0) {
-
+
+ while (DateUtil.compareOnlyDate(dataDe, dataAte) <= 0) {
+
Boolean isFeriado = this.isFeriado(new java.sql.Date(dataDe.getTime()));
generarCorrida(esquemaCorrida, dataDe, false, isFeriado);
@@ -915,8 +943,8 @@ public class CorridaServiceImpl implements CorridaService {
calendarData.setTime(dataDe);
Long cantInicio = corridaDAO.cantCorridaGeneradasHoy();
-
- while (DateUtil.compareOnlyDate(dataDe,dataAte) <= 0) {
+
+ while (DateUtil.compareOnlyDate(dataDe, dataAte) <= 0) {
log.info("*** Data: " + sdfData.format(dataDe));
this.generarCorrida(dataDe, lsEsquemaCorrida);
@@ -924,10 +952,9 @@ public class CorridaServiceImpl implements CorridaService {
calendarData.add(Calendar.DATE, 1);
dataDe = calendarData.getTime();
}
-
+
Long cantFim = corridaDAO.cantCorridaGeneradasHoy();
-
-
+
return cantFim - cantInicio;
}
}