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 5be1b97df..68660a3d6 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 @@ -31,6 +31,7 @@ import com.rjconsultores.ventaboletos.service.ConfRestricaoPtovtaService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; @@ -57,10 +58,11 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom private List lsTipoPtoVta; private List lsRuta; private MyListbox confRestricaoCanalVentaList; + private List lsConfRestricaoCanalVenta; private MyListbox excecaoDataList; private Button btnApagar; - private Combobox cmbOrigen; - private Combobox cmbDestino; + private MyComboboxParada cmbOrigen; + private MyComboboxParada cmbDestino; private Combobox cmbRuta; private Combobox cmbTipoPtoVta; private Datebox dtExcecaoServicio; @@ -129,14 +131,10 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom confRestricaoCanalVenta.setRuta(null); } if (cmbOrigen.getSelectedItem() == null) { - confRestricaoCanalVenta.setOrigem(null); - }else{ - confRestricaoCanalVenta.setOrigem((Parada)cmbOrigen.getSelectedItem().getValue()); + cmbOrigen.getValue(true); } if (cmbDestino.getSelectedItem() == null) { - confRestricaoCanalVenta.setDestino(null); - }else{ - confRestricaoCanalVenta.setDestino((Parada)cmbDestino.getSelectedItem().getValue()); + cmbDestino.getValue(true); } if (cmbTipoPtoVta.getSelectedItem() == null) { confRestricaoCanalVenta.setTipoPuntoVenta(null); @@ -147,10 +145,12 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom cre.setConfRestricaoCanalVenta(confRestricaoCanalVenta); } } + + lsConfRestricaoCanalVenta = confRestricaoCanalVentaService.obtenerTodos(); -// if(isBloqueoExistente(confRestricaoCanalVenta, confRestricaoCanalVentaList)){ -// throw new BusinessException("editarConfRestricaoCanalVentaController.MSG.bloqueoExistente"); -// } + if(isBloqueoExistente(confRestricaoCanalVenta, lsConfRestricaoCanalVenta)){ + throw new BusinessException("editarConfRestricaoCanalVentaController.MSG.bloqueoExistente"); + } confRestricaoCanalVentaService.suscribirActualizar(confRestricaoCanalVenta); confRestricaoCanalVentaList.updateItem(confRestricaoCanalVenta); @@ -190,12 +190,12 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom } } - private boolean isBloqueoExistente(ConfRestricaoCanalVenta c , MyListbox confRestricaoCanalVentaList){ + private boolean isBloqueoExistente(ConfRestricaoCanalVenta c , List confRestricaoCanalVentaList){ List ls = new ArrayList() ; - for (int i = 0; i < confRestricaoCanalVentaList.getData().length; i++){ - ConfRestricaoCanalVenta elementList = (ConfRestricaoCanalVenta)confRestricaoCanalVentaList.getData()[i]; + for (int i = 0; i < confRestricaoCanalVentaList.size(); i++){ + ConfRestricaoCanalVenta elementList = (ConfRestricaoCanalVenta)confRestricaoCanalVentaList.get(i); if(c.getConfRestricaoCanalVentaId() == null){ if(isConfRestricaoCanalVentasEquivalentes(c , elementList)){ return true; @@ -211,23 +211,107 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom return false; } + private boolean isRutasEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getRuta() == null && b.getRuta() == null ){ + return true; + } + if(a.getRuta() == null && b.getRuta() != null ){ + return false; + } + if(a.getRuta() != null && b.getRuta() == null ){ + return false; + } + if(a.getRuta() != null && b.getRuta() != null ){ + return a.getRuta().equals(b.getRuta()); + } + return false; + } + + private boolean isTipoPVEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getTipoPuntoVenta() == null && b.getTipoPuntoVenta() == null ){ + return true; + } + if(a.getTipoPuntoVenta() == null && b.getTipoPuntoVenta() != null ){ + return false; + } + if(a.getTipoPuntoVenta() != null && b.getTipoPuntoVenta() == null ){ + return false; + } + if(a.getTipoPuntoVenta() != null && b.getTipoPuntoVenta() != null ){ + return a.getTipoPuntoVenta().equals(b.getTipoPuntoVenta()); + } + return false; + } + + private boolean isCorridaIdEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getCorridaId() == null && b.getCorridaId() == null ){ + return true; + } + if(a.getCorridaId() == null && b.getCorridaId() != null ){ + return false; + } + if(a.getCorridaId() != null && b.getCorridaId() == null ){ + return false; + } + if(a.getCorridaId() != null && b.getCorridaId() != null ){ + return a.getCorridaId().equals(b.getCorridaId()); + } + return false; + } + + private boolean isOrigemEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getOrigem() == null && b.getOrigem() == null ){ + return true; + } + if(a.getOrigem() == null && b.getOrigem() != null ){ + return false; + } + if(a.getOrigem() != null && b.getOrigem() == null ){ + return false; + } + if(a.getOrigem() != null && b.getOrigem() != null ){ + return a.getOrigem().equals(b.getOrigem()); + } + return false; + } + + private boolean isDestinoEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(a.getDestino() == null && b.getDestino() == null ){ + return true; + } + if(a.getDestino() == null && b.getDestino() != null ){ + return false; + } + if(a.getDestino() != null && b.getDestino() == null ){ + return false; + } + if(a.getDestino() != null && b.getDestino() != null ){ + return a.getDestino().equals(b.getDestino()); + } + return false; + } + + private boolean isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){ + if(isRutasEquivalentes(a,b) + && isTipoPVEquivalentes(a,b) + && isCorridaIdEquivalentes(a,b) + && isOrigemEquivalentes(a,b) + && isDestinoEquivalentes(a,b)){ + return true; + }else{ + 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()) + if(isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(a,b) && (((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; - }else 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()) + }else if(isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(a,b) && (a.getFecCorrida() == null) == (b.getFecCorrida() == null) == (true) && isIntercessaoDiasSemana(a,b) ){