diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java index 17b474d5e..ef90de65f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java @@ -572,15 +572,48 @@ public class EditarConexionController extends MyGenericForwardComposer { private List getConexoesDesconto(Conexion conexion) { List lsConexaoDesconto = new ArrayList(); - //Caso já houve alterações de desconto na tela de configurações da conexão não prenche com descontos salvos em banco. + //Caso seja a mesma conexão sendo editada novamente e já houve alterações de desconto na tela de configurações da conexão não prenche com descontos salvos em banco. if ((conexoesDescontoAdicionadas!=null && !conexoesDescontoAdicionadas.isEmpty())|| (conexoesDescontoRemovidas!=null && !conexoesDescontoRemovidas.isEmpty())) { - lsConexaoDesconto = conexion.getConexionesDescuentos(); + lsConexaoDesconto = validaMensaConexaoEditada(conexion); + if(lsConexaoDesconto !=null ) { + return lsConexaoDesconto; + }else { + lsConexaoDesconto = conexionDescuentoService.buscarPorConexion(conexion); + } } else { - lsConexaoDesconto.addAll(conexionDescuentoService.buscarPorConexion(conexion)); + lsConexaoDesconto = conexionDescuentoService.buscarPorConexion(conexion); } return lsConexaoDesconto; } + /** + * Caso seja a mesma conexão sendo editada novamente e já houve alterações de desconto (listas de adicionadas ou removida estejam preenchidas) + * na tela de configurações retorna as mesma conexões desconto. + + * @param conexion + * @return + */ + private List validaMensaConexaoEditada(Conexion conexion) { + List lsConexaoDesconto = new ArrayList(); + if(conexoesDescontoAdicionadas!=null && !conexoesDescontoAdicionadas.isEmpty()) { + for (ConexionDescuento conexionDescuento : conexoesDescontoAdicionadas) { + if(conexionDescuento.getConexion().getConexionId().longValue() == conexion.getCorridaId().longValue() ) { + lsConexaoDesconto = conexion.getConexionesDescuentos(); + return lsConexaoDesconto; + } + } + } + if(conexoesDescontoRemovidas!=null && !conexoesDescontoRemovidas.isEmpty()) { + for (ConexionDescuento conexionDescuento : conexoesDescontoRemovidas) { + if(conexionDescuento.getConexion().getConexionId().longValue() == conexion.getCorridaId().longValue() ) { + lsConexaoDesconto = conexion.getConexionesDescuentos(); + return lsConexaoDesconto; + } + } + } + return null; + } + public void onClick$btnAddConexaoExcepcion(Event ev) throws InterruptedException { ConexionExcepcion ce = new ConexionExcepcion(); selectConexaoExcepcion(ce);