lucas.calixto 2017-03-16 19:13:16 +00:00
parent 4e4cc81826
commit e81103a0d6
1 changed files with 19 additions and 19 deletions

View File

@ -91,7 +91,7 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
lsPricingOcupaAntecipa = new ArrayList<PricingOcupaAntecipa>();
try {
Collections.sort(argList, Collections.reverseOrder(new PricingOcupaAntecipaComparator()));
Collections.sort(argList, new PricingOcupaAntecipaComparator());
} catch (Exception e) {
Messagebox.show(Labels.getLabel("editarPricingOcupaAntecipaAutomaticoController.MSG.FormatoDados"),
Labels.getLabel("editarPricingController.windowOcupacion.title"),
@ -138,31 +138,33 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
public void onClick$btnAdicionarOcupaAntecipa(Event ev) throws Exception {
List<PricingOcupaAntecipa> parentList = new ArrayList<PricingOcupaAntecipa>();
Collections.sort(lsPricingOcupaAntecipa, new PricingOcupaAntecipaComparator());
calculaCantDiasMax();
Integer cantDiasMin = 0;
try {
apagarRegistros();
for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) {
if(!cantDiasMin.equals(lsPricingOcupaAntecipa.get(i).getCantdiasmin())){
PricingOcupaAntecipa pricingOcupaAntecipa = lsPricingOcupaAntecipa.get(i);
if(!cantDiasMin.equals(pricingOcupaAntecipa.getCantdiasmin())){
if(rdOcupacao.isChecked()){
lsPricingOcupaAntecipa.get(i).setOcupacioninicial(BigDecimal.ZERO);
pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO);
}else{
lsPricingOcupaAntecipa.get(i).setCantasientosmin(0);
pricingOcupaAntecipa.setCantasientosmin(0);
}
}
if(lsPricingOcupaAntecipa.get(i).getOcupacioninicial() == null){
lsPricingOcupaAntecipa.get(i).setOcupacioninicial(BigDecimal.ZERO);
if(pricingOcupaAntecipa.getOcupacioninicial() == null){
pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO);
}
if (lsPricingOcupaAntecipa.get(i).getPricingocupaantecipaId() == null) {
pricingOcupaAntecipaService.suscribir(lsPricingOcupaAntecipa.get(i));
if (pricingOcupaAntecipa.getPricingocupaantecipaId() == null) {
pricingOcupaAntecipaService.suscribir(pricingOcupaAntecipa);
} else {
pricingOcupaAntecipaService.actualizacion(lsPricingOcupaAntecipa.get(i));
pricingOcupaAntecipaService.actualizacion(pricingOcupaAntecipa);
}
parentList.add(lsPricingOcupaAntecipa.get(i));
parentList.add(pricingOcupaAntecipa);
cantDiasMin = lsPricingOcupaAntecipa.get(i).getCantdiasmin();
cantDiasMin = pricingOcupaAntecipa.getCantdiasmin();
if(validaPricingOcupa(i)){
continue;
}
@ -171,8 +173,8 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
p.setPricingocupaantecipaId(lsPricingOcupaAntecipa.get(j).getPricingocupaantecipaId());
p.setCantasientosmax(lsPricingOcupaAntecipa.get(j).getCantasientosmax());
p.setCantasientosmin(lsPricingOcupaAntecipa.get(j).getCantasientosmin());
p.setCantdiasmax(lsPricingOcupaAntecipa.get(i).getCantdiasmax());
p.setCantdiasmin(lsPricingOcupaAntecipa.get(i).getCantdiasmin());
p.setCantdiasmax(pricingOcupaAntecipa.getCantdiasmax());
p.setCantdiasmin(pricingOcupaAntecipa.getCantdiasmin());
p.setOcupacionfinal(lsPricingOcupaAntecipa.get(j).getOcupacionfinal());
p.setOcupacioninicial(lsPricingOcupaAntecipa.get(j).getOcupacioninicial());
p.setPorcentaje(lsPricingOcupaAntecipa.get(j).getPorcentaje());
@ -199,17 +201,15 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
private class PricingOcupaAntecipaComparator implements Comparator<PricingOcupaAntecipa> {
public int compare(PricingOcupaAntecipa pricing, PricingOcupaAntecipa outroPricing) {
if(pricing.getCantdiasmin().compareTo(outroPricing.getCantdiasmin()) == 0){
//Compara o valor absoluto do numero para ordenar mesmo se a porcentagem for negativa.
return pricing.getPorcentaje().abs().compareTo(outroPricing.getPorcentaje().abs());
Integer cantDiasMinComp = outroPricing.getCantdiasmin().compareTo(pricing.getCantdiasmin());
if (cantDiasMinComp != 0) {
return cantDiasMinComp;
}
return pricing.getCantdiasmin().
compareTo(outroPricing.getCantdiasmin());
return pricing.getCantasientosmin().compareTo(outroPricing.getCantasientosmin());
}
}
private void calculaCantDiasMax() {
Collections.sort(lsPricingOcupaAntecipa, Collections.reverseOrder(new PricingOcupaAntecipaComparator()));
PricingOcupaAntecipa poa;
int cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin();
int cantDiasMaxAnterior = CANTDIASMAXDEFAULT;