diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java index 6073d7dfc..58dd2aa01 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java @@ -13,12 +13,18 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; + import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; +import org.hibernate.Hibernate; +import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.zkoss.util.resource.Labels; import org.zkoss.zhtml.Messagebox; import org.zkoss.zk.ui.Component; @@ -56,6 +62,7 @@ import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.entidad.Tramo; import com.rjconsultores.ventaboletos.entidad.TramoServicio; import com.rjconsultores.ventaboletos.service.ClaseServicioService; +import com.rjconsultores.ventaboletos.service.CorridaService; import com.rjconsultores.ventaboletos.service.DivisionService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; @@ -108,6 +115,8 @@ public class EditarCorridaController extends MyGenericForwardComposer { private BusquedaCorridaController busquedaCorridaController; @Autowired private TramoServicioService tramoServicioService; + @Autowired + CorridaService corridaService; private DivisionService divisionService; private List lsDivision; private List lsEmpresa; @@ -190,6 +199,10 @@ public class EditarCorridaController extends MyGenericForwardComposer { popularCombobox(cmbIndGeneraFeriado); esquemaCorrida = (EsquemaCorrida) Executions.getCurrent().getArg().get("esquemaCorrida"); + if(esquemaCorrida.getEsquemacorridaId() != null){ + esquemaCorrida = esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId()); + esquemaCorrida.getEsquemaTramoList(); + } esquemaCorridaList = (MyListbox) Executions.getCurrent().getArg().get("esquemaCorridaList"); busquedaCorridaController = (BusquedaCorridaController) Executions.getCurrent().getArg().get("busquedaCorridaController"); @@ -486,6 +499,10 @@ public class EditarCorridaController extends MyGenericForwardComposer { if (chkDoblePiso.isChecked()) { txtNumCorridaPisoExtra.getValue(); } + + if(!validarPisoExtra()){ + return; + } try { Comboitem ciRuta = cmbRuta.getSelectedItem(); @@ -1727,7 +1744,68 @@ public class EditarCorridaController extends MyGenericForwardComposer { public void onClick$dom(Event e) throws InterruptedException { habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked()); } + + private Boolean validarPisoExtra() throws InterruptedException{ + EsquemaCorrida esquemaCorrida = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaPisoExtra.getValue()); + + if(esquemaCorrida == null){ + Messagebox.show(Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraExistente"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()){ + Messagebox.show(Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraJaEPisoExtra"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(!esquemaCorrida.getMarca().equals(this.esquemaCorrida.getMarca())){ + Messagebox.show(Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraEmpresaDiferente"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(!esquemaCorrida.getRuta().getOrgaoConcedente().equals(this.esquemaCorrida.getRuta().getOrgaoConcedente())){ + Messagebox.show(Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraOrgaoDiferente"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(validarEsquemaTramo(esquemaCorrida)){ + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraLocalidadeDiferente"), + Labels.getLabel("MSG.Error"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + return true; + } + + public void onChange$txtNumCorridaPisoExtra() throws InterruptedException{ + validarPisoExtra(); + } + + private boolean validarEsquemaTramo(EsquemaCorrida esquemaCorrida) { + + if (this.esquemaCorrida.getEsquemaTramoList().size() != esquemaCorrida.getEsquemaTramoList().size()) { + return true; + } + + for(int i = 0; i < this.esquemaCorrida.getEsquemaTramoList().size(); i++){ + if(!this.esquemaCorrida.getEsquemaTramoList().get(i).getTramo() + .equals(esquemaCorrida.getEsquemaTramoList().get(i).getTramo())){ + return true; + } + } + + return false; + } + private void habilitaDiasDaSemana(Boolean isChecked) { if (isChecked) { lun.setChecked(!isChecked); diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b819db51b..b0aae3a6c 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -1975,6 +1975,11 @@ editarConfiguracionCorridaController.MSG.NumAgrupacion = Ya existe un tren con e editarConfiguracionCorridaController.MSG.AgrupacionCorrida = Ya existe un vagon con ese número. editarConfiguracionCorridaController.btnCopiar.tooltiptext=Generar Servicio igual a este editarConfiguracionCorridaController.lbDiaSimDiaNao = Dia sim dia não +editarConfiguracionCorridaController.MSG.servicoPisoExtraExistente = Serviço para piso extra não existente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraJaEPisoExtra = Serviço para piso extra já é um piso extra. +editarConfiguracionCorridaController.MSG.servicoPisoExtraEmpresaDiferente = Serviço para piso extra não é da mesma empresa do que o serviço corrente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraOrgaoDiferente = Serviço para piso extra não possui o mesmo orgão concedente do que o serviço corrente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraLocalidadeDiferente = Servico para piso extra não possui as mesmas localidades do que o serviço corrente. #Planeacion de Poltrona Controller editarConfiguracionCorridaAsientoController.window.title = Planificación de asientos diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 7104afcf4..f34fd6ede 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -2019,6 +2019,11 @@ editarConfiguracionCorridaController.MSG.NumAgrupacion = Já existe este número editarConfiguracionCorridaController.MSG.AgrupacionCorrida = Já existe este número de serviço cadastrado para outro Trem. editarConfiguracionCorridaController.btnCopiar.tooltiptext=Gerar Serviço igual a este editarConfiguracionCorridaController.lbDiaSimDiaNao = Dia sim dia não +editarConfiguracionCorridaController.MSG.servicoPisoExtraExistente = Serviço para piso extra não existente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraJaEPisoExtra = Serviço para piso extra já é um piso extra. +editarConfiguracionCorridaController.MSG.servicoPisoExtraEmpresaDiferente = Serviço para piso extra não é da mesma empresa do que o serviço corrente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraOrgaoDiferente = Serviço para piso extra não possui o mesmo orgão concedente do que o serviço corrente. +editarConfiguracionCorridaController.MSG.servicoPisoExtraLocalidadeDiferente = Servico para piso extra não possui as mesmas localidades do que o serviço corrente. #Planeacion de Poltrona Controller editarConfiguracionCorridaAsientoController.window.title = Planejamento de poltronas