From d16c64c630b1c1efddfbda7281a22244079a8ef1 Mon Sep 17 00:00:00 2001 From: valdir Date: Tue, 15 Dec 2020 13:33:42 +0000 Subject: [PATCH] =?UTF-8?q?0020761:=20ESPEC=20-=20Cria=C3=A7=C3=A3o=20de?= =?UTF-8?q?=203=20tr=C3=AAs=20servi=C3=A7os=20no=20Doble=20Decker=20bug#20?= =?UTF-8?q?761=20dev:fabio=20qua:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@104724 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/entidad/EsquemaCorrida.java | 12 ++- .../service/impl/CorridaServiceImpl.java | 87 +++++++++++++------ 2 files changed, 73 insertions(+), 26 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java index a3cdb9709..25d426a7c 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java @@ -158,6 +158,9 @@ public class EsquemaCorrida implements Serializable, Auditavel { @Column(name = "NUMCORRIDAPISOEXTRA") private Integer numCorridaPisoExtra; + @Column(name = "NUMCORRIDAPISOEXTRA2") + private Integer numCorridaPisoExtra2; + @Column(name = "INDGENERAFERIADO") private String indGeneraFeriado; @@ -758,5 +761,12 @@ public class EsquemaCorrida implements Serializable, Auditavel { public String getTextoInclusaoExclusao() { return String.format("ID [%s] - Número Serviço [%s]", getEsquemacorridaId(), getNumCorrida()); } - + + public Integer getNumCorridaPisoExtra2() { + return numCorridaPisoExtra2; + } + + public void setNumCorridaPisoExtra2(Integer numCorridaPisoExtra2) { + this.numCorridaPisoExtra2 = numCorridaPisoExtra2; + } } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 403104ed9..6e0944cd0 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -847,6 +847,7 @@ public class CorridaServiceImpl implements CorridaService { Corrida corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado); Corrida corridaPisoExtra = null; + Corrida corridaPisoExtra2 = null; if (corrida == null) {// Si no genera la corrida, no va a // generar el rebote @@ -866,34 +867,28 @@ public class CorridaServiceImpl implements CorridaService { Boolean atualizarPisoExtra = false; // caso corrida segundo piso for gerada antes, atualizar - if(corridaPisoExtra == null) { - Id id = new Id(); - id.setCorridaId(esquemaCorridaSegundoPiso.getNumCorrida()); - id.setFeccorrida(data); - - corridaPisoExtra = corridaDAO.buscarPorId(id); - - atualizarPisoExtra = corridaPisoExtra == null ? false : true; - log.info(mensagemLog + "; atualizarPisoExtra=" + atualizarPisoExtra); - } + atualizarPisoExtra = atualizarCorridaPisoExtra(corridaPisoExtra, esquemaCorridaSegundoPiso, data, mensagemLog, atualizarPisoExtra); + + alterarNumPisoCorridaPisoExtra(corrida, corridaPisoExtra, mensagemLog, atualizarPisoExtra, false); - - if (corrida != null && corridaPisoExtra != null) { - log.info(mensagemLog + "; atualizando as corridas do piso 1 e 2"); - // Salvando Referencia da Corrida no piso extra - corridaPisoExtra.setCorridaPiso(corrida); - corridaPisoExtra.setNumPiso(2); - corridaPisoExtra = corridaDAO.actualizacion(corridaPisoExtra); - // Referencia do Piso extra na Corrida - corrida.setCorridaPiso(corridaPisoExtra); - corrida.setNumPiso(1); - corrida = corridaDAO.actualizacion(corrida); + if(esquemaCorrida.getNumCorridaPisoExtra2() != null) { - if(atualizarPisoExtra) { - corridaDAO.actualizacion(corridaPisoExtra); + EsquemaCorrida esquemaCorridaTerceiroPiso = esquemaCorridaDAO.buscarPeloNumCorrida(esquemaCorrida.getNumCorridaPisoExtra2()); + + if(esquemaCorridaTerceiroPiso != null) { + + mensagemLog = String.format("Esquema/Corrida primeiro piso: %s/%s ; Esquema/Corrida terceiro piso: %s/%s ",esquemaCorrida.getEsquemacorridaId(),esquemaCorrida.getNumCorrida(), esquemaCorridaTerceiroPiso.getEsquemacorridaId(),esquemaCorridaTerceiroPiso.getNumCorrida() ); + log.info(mensagemLog); + + corridaPisoExtra2 = generarCorrida(esquemaCorridaTerceiroPiso, dataGeracao, true, isFeriado); + atualizarPisoExtra = false; + + // caso corrida segundo piso for gerada antes, atualizar + atualizarPisoExtra = atualizarCorridaPisoExtra(corridaPisoExtra2, esquemaCorridaTerceiroPiso, data, mensagemLog, atualizarPisoExtra); + + // caso corrida segundo piso for gerada antes, atualizar + alterarNumPisoCorridaPisoExtra(corrida, corridaPisoExtra2, mensagemLog, atualizarPisoExtra, true); } - } else { - log.info(mensagemLog + "; nao foram atualizadas as corridas do piso 1 e 2"); } } @@ -964,6 +959,12 @@ public class CorridaServiceImpl implements CorridaService { corridaPisoExtra.setCorridaRebote(corridaPisoExtraRebote); corridaDAO.actualizacion(corridaPisoExtra); } + + if (corridaPisoExtraRebote != null && corridaPisoExtra2 != null) { + log.info("Rebote Piso Extra Generado=" + corridaPisoExtraRebote.getId()); + corridaPisoExtra2.setCorridaRebote(corridaPisoExtraRebote); + corridaDAO.actualizacion(corridaPisoExtra2); + } } @@ -980,6 +981,42 @@ public class CorridaServiceImpl implements CorridaService { } } + private void alterarNumPisoCorridaPisoExtra(Corrida corrida, Corrida corridaPisoExtra, String mensagemLog, Boolean atualizarPisoExtra, boolean isPiso3) { + if (corrida != null && corridaPisoExtra != null) { + log.info(mensagemLog + "; atualizando as corridas do piso 1 e 2"); + // Salvando Referencia da Corrida no piso extra + corridaPisoExtra.setCorridaPiso(corrida); + corridaPisoExtra.setNumPiso(isPiso3 ? 3 : 2); + corridaPisoExtra = corridaDAO.actualizacion(corridaPisoExtra); + // Referencia do Piso extra na Corrida + corrida.setCorridaPiso(corridaPisoExtra); + corrida.setNumPiso(1); + corrida = corridaDAO.actualizacion(corrida); + + if(atualizarPisoExtra) { + corridaDAO.actualizacion(corridaPisoExtra); + } + } else { + log.info(mensagemLog + "; nao foram atualizadas as corridas do piso 1 e 2"); + } + } + + private Boolean atualizarCorridaPisoExtra(Corrida corridaPisoExtra, EsquemaCorrida esquemaCorridaSegundoPiso, java.sql.Date data, String mensagemLog, Boolean atualizarPisoExtra) { + // caso corrida segundo piso for gerada antes, atualizar + if(corridaPisoExtra == null) { + Id id = new Id(); + id.setCorridaId(esquemaCorridaSegundoPiso.getNumCorrida()); + id.setFeccorrida(data); + + corridaPisoExtra = corridaDAO.buscarPorId(id); + + atualizarPisoExtra = corridaPisoExtra == null ? false : true; + log.info(mensagemLog + "; atualizarPisoExtra=" + atualizarPisoExtra); + } + + return atualizarPisoExtra; + } + /** * Verifica se hay una excepcione de tiempo para el tramo informado. *