diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingOcupaAntecipaAutomaticoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingOcupaAntecipaAutomaticoController.java index 0e30d13ad..9d179d2f9 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingOcupaAntecipaAutomaticoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingOcupaAntecipaAutomaticoController.java @@ -151,6 +151,9 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor parentList.add(lsPricingOcupaAntecipa.get(i)); + if(validaPricingOcupa(i)){ + continue; + } for (int j = i + 1; j < lsPricingOcupaAntecipa.size(); j++) { PricingOcupaAntecipa p = new PricingOcupaAntecipa(); p.setPricingocupaantecipaId(lsPricingOcupaAntecipa.get(j).getPricingocupaantecipaId()); @@ -176,8 +179,17 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor } } + private boolean validaPricingOcupa(int i) { + return (i+1) < lsPricingOcupaAntecipa.size() && lsPricingOcupaAntecipa.get(i).getCantdiasmin().equals(lsPricingOcupaAntecipa.get(i + 1).getCantdiasmin()); + } + + + private class PricingOcupaAntecipaComparator implements Comparator { public int compare(PricingOcupaAntecipa pricing, PricingOcupaAntecipa outroPricing) { + if(pricing.getCantdiasmin().compareTo(outroPricing.getCantdiasmin()) == 0){ + return pricing.getPorcentaje().compareTo(outroPricing.getPorcentaje()); + } return pricing.getCantdiasmin(). compareTo(outroPricing.getCantdiasmin()); } @@ -187,28 +199,25 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor Collections.sort(lsPricingOcupaAntecipa, Collections.reverseOrder(new PricingOcupaAntecipaComparator())); PricingOcupaAntecipa poa; int cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin(); + int cantDiasMaxAnterior = CANTDIASMAXDEFAULT; for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) { poa = lsPricingOcupaAntecipa.get(i); if (i == 0) { poa.setCantdiasmax(CANTDIASMAXDEFAULT); } else { - poa.setCantdiasmax(cantDiasMinAnterior - 1); - cantDiasMinAnterior = poa.getCantdiasmin(); + if(poa.getCantdiasmin().intValue() == cantDiasMinAnterior){ + poa.setCantdiasmax(cantDiasMaxAnterior); + }else{ + poa.setCantdiasmax(cantDiasMinAnterior - 1); + cantDiasMinAnterior = poa.getCantdiasmin(); + cantDiasMaxAnterior = poa.getCantdiasmax(); + } } } } public void onClick$btnlancar(Event ev) throws Exception { - - for (PricingOcupaAntecipa poa : lsPricingOcupaAntecipa) { - if (poa.getCantdiasmin().equals(cantdiasmin.getValue())) { - Messagebox.show(Labels.getLabel("editarPricingAutomaticoController.msg.cantDias.erro"), - Labels.getLabel("editarPricingController.windowOcupacion.title"), - Messagebox.OK, Messagebox.EXCLAMATION); - return; - } - } - + PricingOcupaAntecipa poa = new PricingOcupaAntecipa(); poa.setPricing(pricing); poa.setCantdiasmin(cantdiasmin.getValue());