diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoController.java index d1f0328de..950f80d13 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoController.java @@ -6,7 +6,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.pricing; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -43,6 +42,7 @@ import com.rjconsultores.ventaboletos.service.CorridaCtrlService; import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.ParadaService; +import com.rjconsultores.ventaboletos.service.PricingEspecificoOcupacionService; import com.rjconsultores.ventaboletos.service.PricingEspecificoService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -77,6 +77,9 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer private MonedaService monedaService; @Autowired private CorridaCtrlService corridaCtrlService; + @Autowired + private PricingEspecificoOcupacionService pricingEspecificoOcupacionService; + private PricingEspecifico pricingEspecifico; private MyListbox pricingList; private Combobox cmbPtovta; @@ -98,6 +101,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer private Textbox tarifaAbierto; private MyListbox pricingListEspOcupacion; + private List pricingEspecificoADesativar; @Override public void doAfterCompose(Component comp) throws Exception { @@ -108,6 +112,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer lsclaseServicio = claseServicioService.obtenerTodos(); pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico"); pricingList = (MyListbox) Executions.getCurrent().getArg().get("pricingList"); + pricingEspecificoADesativar = new ArrayList(); super.doAfterCompose(comp); @@ -134,7 +139,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer @Override public void onEvent(Event event) throws Exception { PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected(); - verPricingEspecificoOcupacion(especificoOcupacion); + verPricingEspecificoOcupacion(especificoOcupacion, true); } }); } @@ -143,11 +148,12 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer } @SuppressWarnings({ "unchecked", "rawtypes" }) - public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion) { + public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion, Boolean isEdicao) { Map args = new HashMap(); args.put("pricingEspecifico", pricingEspecifico); args.put("pricingEspecificoOcupacion", especificoOcupacion); + args.put("isEdicao", isEdicao); args.put("pricingListEspOcupacion", pricingListEspOcupacion); openWindow("/gui/pricing/editarPricingEspecificoOcupacion.zul", @@ -155,11 +161,11 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer } public void onClick$btnNovoPricingEspOcup(Event ev) throws InterruptedException { - verPricingEspecificoOcupacion(new PricingEspecificoOcupacion()); + verPricingEspecificoOcupacion(new PricingEspecificoOcupacion(), false); } public void onClick$btnApagarPricingEspOcup(Event ev) throws InterruptedException { - if(pricingListEspOcupacion.getSelected() == null) { + if (pricingListEspOcupacion.getSelected() == null) { Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"), Labels.getLabel("editarPricingController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); @@ -169,36 +175,33 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); if (resp == Messagebox.YES) { PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected(); - - if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) { - especificoOcupacion.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); - especificoOcupacion.setFecmodif(Calendar.getInstance().getTime()); + + if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) { especificoOcupacion.setActivo(false); - - pricingListEspOcupacion.updateItem(especificoOcupacion); + pricingListEspOcupacion.removeItem(especificoOcupacion); + pricingEspecificoADesativar.add(especificoOcupacion); } else { pricingListEspOcupacion.removeSelectedItem(); removerPricingOcupacion(especificoOcupacion); } - } } } private void removerPricingOcupacion(PricingEspecificoOcupacion especificoOcupacion) { - if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) { + if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) { pricingEspecifico.getPricingEspecificoOcupacionsList().remove(especificoOcupacion); } else { int index = 0; for (PricingEspecificoOcupacion pricingEspecificoOcupacion : pricingEspecifico.getPricingEspecificoOcupacionsList()) { - if(pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) && - pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) && - pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) { + if (pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) && + pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) && + pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) { break; } - index ++; + index++; } - pricingEspecifico.getPricingEspecificoOcupacionsList().remove(index); + pricingEspecifico.getPricingEspecificoOcupacionsList().remove(index - 1); } } @@ -206,7 +209,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected(); if (especificoOcupacion != null) { - verPricingEspecificoOcupacion(especificoOcupacion); + verPricingEspecificoOcupacion(especificoOcupacion, true); } else { try { Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"), @@ -248,11 +251,16 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer fechaFin.getValue(); tarifaAbierto.getValue(); + pricingEspecifico.getPricingEspecificoOcupacionsList().clear(); + for (Object o : pricingListEspOcupacion.getData()) { + PricingEspecificoOcupacion p = (PricingEspecificoOcupacion) o; + pricingEspecifico.getPricingEspecificoOcupacionsList().add(p); + } + if (pricingEspecifico.getTipoPtovta() == null) { Messagebox.show(Labels.getLabel("editarPricingController.MSG.tipoPtoVta"), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); - return; } @@ -315,7 +323,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer if (pricingEspecifico.getCorridaId() != null) { CorridaCtrl corridaCtrlId = corridaCtrlService.obtenerID(pricingEspecifico.getCorridaId()); if (corridaCtrlId == null) { - Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaId", new Object[]{pricingEspecifico.getCorridaId()}), + Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaId", new Object[] { pricingEspecifico.getCorridaId() }), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); @@ -329,7 +337,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer pricingEspecifico.getMarca()); if (corridaCtrlFinal == null) { - Integer opcao = Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaIdFinalNaoExiste", new Object[]{pricingEspecifico.getCorridaId()}), + Integer opcao = Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaIdFinalNaoExiste", new Object[] { pricingEspecifico.getCorridaId() }), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); @@ -339,8 +347,8 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer } } } - - if(!validarPricingEspecificoOcupacion()) { + + if (!validarPricingEspecificoOcupacion()) { return; } @@ -365,6 +373,8 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer pricingList.updateItem(pricingEspecifico); } + desativarPricingEspecificoOcupacionDesativados(); + Messagebox.show(Labels.getLabel("editarPricingController.MSG.suscribirOK"), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.INFORMATION); @@ -379,60 +389,68 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer } + private void desativarPricingEspecificoOcupacionDesativados() { + for (PricingEspecificoOcupacion p : pricingEspecificoADesativar) { + pricingEspecificoOcupacionService.actualizacion(p); + } + } + /** * Valida se a lista de ocupações são subsequentes e se a primeira ocupação possui ocupação inicial igual a 1. + * * @return * @throws InterruptedException */ private boolean validarPricingEspecificoOcupacion() throws InterruptedException { - if(pricingEspecifico.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) { + if (pricingEspecifico.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) { Messagebox.show( Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion"), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); return false; } - + List sOcupacionInicial = new ArrayList(pricingEspecifico.getPricingEspecificoOcupacionsListActivos()); - Collections.sort(sOcupacionInicial,new Comparator() { + Collections.sort(sOcupacionInicial, new Comparator() { @Override public int compare(PricingEspecificoOcupacion o1, PricingEspecificoOcupacion o2) { return o1.getOcupacioninicial().compareTo(o2.getOcupacioninicial()); } }); - - if(sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) { + + if (sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) { Messagebox.show( Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial"), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); return false; } - + boolean pricingEspecificoOcupacionNoSubsequente = false; for (int i = 0; i < sOcupacionInicial.size(); i++) { PricingEspecificoOcupacion pricingEspecificoOcupacion = sOcupacionInicial.get(i); PricingEspecificoOcupacion pricingEspecificoOcupacionAnterior = null; - - if(i > 0) { + + if (i > 0) { pricingEspecificoOcupacionAnterior = sOcupacionInicial.get(i - 1); } - - if(pricingEspecificoOcupacionAnterior != null && pricingEspecificoOcupacionAnterior.getOcupacionfinal().add(new BigDecimal(1)).doubleValue() != pricingEspecificoOcupacion.getOcupacioninicial().doubleValue()) { + + if (pricingEspecificoOcupacionAnterior != null + && pricingEspecificoOcupacionAnterior.getOcupacionfinal().add(new BigDecimal(1)).doubleValue() != pricingEspecificoOcupacion.getOcupacioninicial().doubleValue()) { pricingEspecificoOcupacionNoSubsequente = true; break; } } - - if(pricingEspecificoOcupacionNoSubsequente) { + + if (pricingEspecificoOcupacionNoSubsequente) { Messagebox.show( Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente"), Labels.getLabel("busquedaPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); return false; } - + return true; } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoOcupacionController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoOcupacionController.java index f9caf7eb6..e21ca6374 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoOcupacionController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingEspecificoOcupacionController.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.pricing; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.List; import java.util.Locale; @@ -39,6 +40,8 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward private MyTextboxDecimal ocupacioninicial; private MyTextboxDecimal ocupacionfinal; + private Boolean isEdicao; + @Autowired private PricingEspecificoService pricingEspecificoService; @@ -47,11 +50,12 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico"); pricingEspecificoOcupacion = (PricingEspecificoOcupacion) Executions.getCurrent().getArg().get("pricingEspecificoOcupacion"); pricingListEspOcupacion = (MyListbox) Executions.getCurrent().getArg().get("pricingListEspOcupacion"); + isEdicao = (Boolean) Executions.getCurrent().getArg().get("isEdicao"); super.doAfterCompose(comp); - if (pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) { - Locale locale = new Locale("pt", "BR"); + Locale locale = new Locale("pt", "BR"); + if (pricingEspecificoOcupacion.getTarifa() != null) { tarifa.setValue(pricingEspecificoOcupacion.getTarifa() == null ? StringUtils.EMPTY : BigDecimalUtil.getBigDecimalToStringDouble2CasasDecimaisFormatado(pricingEspecificoOcupacion.getTarifa(), locale)); ocupacioninicial.setValue(pricingEspecificoOcupacion.getOcupacioninicial() == null ? StringUtils.EMPTY : BigDecimalUtil.getBigDecimalToStringDouble2CasasDecimaisFormatado(pricingEspecificoOcupacion.getOcupacioninicial(), locale)); ocupacionfinal.setValue(pricingEspecificoOcupacion.getOcupacionfinal() == null ? StringUtils.EMPTY : BigDecimalUtil.getBigDecimalToStringDouble2CasasDecimaisFormatado(pricingEspecificoOcupacion.getOcupacionfinal(), locale)); @@ -100,8 +104,8 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward } pricingEspecifico.setPricingEspecificoOcupacionsList(peoList); - - if(pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) { + + if(isEdicao){ pricingListEspOcupacion.updateItem(pricingEspecificoOcupacion); } else { pricingListEspOcupacion.addItemNovo(pricingEspecificoOcupacion);