diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java index 20f657381..d8c34c313 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java @@ -20,6 +20,7 @@ import org.zkoss.zul.Messagebox; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoCanalVenta; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoExcecao; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoPtovta; +import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; @@ -129,9 +130,13 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom } if (cmbOrigen.getSelectedItem() == null) { confRestricaoCanalVenta.setOrigem(null); + }else{ + confRestricaoCanalVenta.setOrigem((Parada)cmbOrigen.getSelectedItem().getValue()); } if (cmbDestino.getSelectedItem() == null) { confRestricaoCanalVenta.setDestino(null); + }else{ + confRestricaoCanalVenta.setDestino((Parada)cmbDestino.getSelectedItem().getValue()); } if (cmbTipoPtoVta.getSelectedItem() == null) { confRestricaoCanalVenta.setTipoPuntoVenta(null); @@ -143,6 +148,10 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom } } + if(isBloqueoExistente(confRestricaoCanalVenta, confRestricaoCanalVentaList)){ + throw new BusinessException("editarConfRestricaoCanalVentaController.MSG.bloqueoExistente"); + } + confRestricaoCanalVentaService.suscribirActualizar(confRestricaoCanalVenta); confRestricaoCanalVentaList.updateItem(confRestricaoCanalVenta); @@ -180,6 +189,75 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom closeWindow(); } } + + private boolean isBloqueoExistente(ConfRestricaoCanalVenta c , MyListbox confRestricaoCanalVentaList){ + + List ls = new ArrayList() ; + + for (int i = 0; i < confRestricaoCanalVentaList.getData().length; i++){ + ConfRestricaoCanalVenta listElement = (ConfRestricaoCanalVenta)confRestricaoCanalVentaList.getData()[i]; + if(isConfRestricaoCanalVentasEquivalentes(c , listElement)){ + return true; + } + } + + return false; + } + + private boolean isConfRestricaoCanalVentasEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getRuta().equals(b.getRuta()) + && a.getTipoPuntoVenta().equals(b.getTipoPuntoVenta()) + && a.getCorridaId().equals(b.getCorridaId()) + && a.getOrigem().equals(b.getOrigem()) + && a.getDestino().equals(b.getDestino()) + && (((a.getFecCorrida() != null) != (b.getFecCorrida() != null)) ? false : true) + && ((a.getFecCorrida() != null ) && (b.getFecCorrida() != null) ? true : false ) + && ((((a.getFecCorrida().compareTo(b.getFecCorrida())) == 0)) ? true : false ) + && isIntercessaoDiasSemana(a,b) + ){ + return true; + } + if(a.getRuta().equals(b.getRuta()) + && a.getTipoPuntoVenta().equals(b.getTipoPuntoVenta()) + && a.getCorridaId().equals(b.getCorridaId()) + && a.getOrigem().equals(b.getOrigem()) + && a.getDestino().equals(b.getDestino()) + && (a.getFecCorrida() == null) == (b.getFecCorrida() == null) == (true) + && isIntercessaoDiasSemana(a,b) + ){ + return true; + } + return false; + } + private boolean isIntercessaoDiasSemana(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if( ((a.getDomingo() != null ? a.getDomingo() : false) && (b.getDomingo() != null ? b.getDomingo() : false )) + || (a.getSegunda()!= null ? a.getSegunda() : false) && (b.getSegunda() != null ? b.getSegunda() : false) + || (a.getTerca() != null ? a.getTerca() : false ) && (b.getTerca() != null ? b.getTerca() : false) + || (a.getQuarta()!= null ? a.getQuarta() : false ) && (b.getQuarta() != null ? b.getQuarta() : false) + || (a.getQuinta() != null ? a.getQuinta() : false) && (b.getQuinta() != null ? b.getQuinta() : false) + || (a.getSexta() != null ? a.getSexta() : false) && (b.getSexta() != null ? b.getSexta() : false ) + || (a.getSabado() != null ? a.getSabado() : false ) && (b.getSabado() != null ? b.getSabado() : false) ){ + return true; + } + if(null == a.getSegunda() + && null == b.getSegunda() + && null == a.getTerca() + && null == b.getTerca() + && null == a.getQuarta() + && null == b.getQuarta() + && null == a.getQuinta() + && null == b.getQuinta() + && null == a.getSexta() + && null == b.getSexta() + && null == a.getSabado() + && null == b.getSabado() + && null == a.getDomingo() + && null == b.getDomingo()){ + return true; + } + + return false; + } public void onClick$btnAddRestricaoPtovta(Event ev) throws InterruptedException { diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index ce460a7c2..b829d0700 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -4641,6 +4641,7 @@ editarConfRestricaoCanalVentaController.comb.Ptovta = Punto de Ventas editarConfRestricaoCanalVentaController.MSG.restricaoPtovta = Informe lo punto de venta. editarConfRestricaoCanalVentaController.MSG.restricaoPtovtaJaCadastrada=Punto de venta ya registrado. editarConfRestricaoCanalVentaController.MSG.selecionarrestricaoPtovta = Seleccione uno punto de venta. +editarConfRestricaoCanalVentaController.MSG.bloqueoExistente = Bloqueo ya existente. # Busqueda Orgao Concedente busquedaOrgaoConcedenteController.window.title = Instituición concedente diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 1c11eff78..30dec27b4 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -4704,6 +4704,7 @@ editarConfRestricaoCanalVentaController.comb.Ptovta = Ponto de Venda editarConfRestricaoCanalVentaController.MSG.restricaoPtovta = Informe o ponto de venda. editarConfRestricaoCanalVentaController.MSG.restricaoPtovtaJaCadastrada=Ponto de venda já cadastrado. editarConfRestricaoCanalVentaController.MSG.selecionarrestricaoPtovta = Selecione um ponto de venda. +editarConfRestricaoCanalVentaController.MSG.bloqueoExistente = Bloqueio já existente. # Busqueda Orgao Concedente busquedaOrgaoConcedenteController.window.title = Órgão Concedente