From 3614ec401c50f34db6cd47e2e22866f39586dbe2 Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 12 Mar 2019 13:11:22 +0000 Subject: [PATCH] =?UTF-8?q?0013646:=20Erro=20cadastro=20Pricing=20de=20Pre?= =?UTF-8?q?=C3=A7os=20fixes=20bug#0013646=20dev:marcelo=20qua:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@90642 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...cingOcupaAntecipaAutomaticoController.java | 85 +++++++++++++------ web/WEB-INF/i3-label_es_MX.label | 5 ++ web/WEB-INF/i3-label_pt_BR.label | 5 ++ 3 files changed, 68 insertions(+), 27 deletions(-) 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 08c7f25ec..81163eeed 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 @@ -25,6 +25,7 @@ import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.PricingOcupaAntecipaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.ConstraintPorcentagem; +import com.rjconsultores.ventaboletos.web.utilerias.MensagensUtils; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal; @@ -102,9 +103,8 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor } int diaMin = -1; - for (PricingOcupaAntecipa p : argList) { - if (diaMin != p.getCantdiasmin()) { + if (p.getCantdiasmin() != null || diaMin != p.getCantdiasmin()) { lsPricingOcupaAntecipa.add(p); diaMin = p.getCantdiasmin(); } @@ -140,29 +140,31 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor public void onClick$btnAdicionarOcupaAntecipa(Event ev) throws Exception { List parentList = new ArrayList(); Collections.sort(lsPricingOcupaAntecipa, new PricingOcupaAntecipaComparator()); - calculaCantDiasMax(); - Integer cantDiasMin = 0; + Integer cantDiasMin = lsPricingOcupaAntecipa.isEmpty() || lsPricingOcupaAntecipa.get(0).getCantdiasmin() == null ? 0 : lsPricingOcupaAntecipa.get(0).getCantdiasmin(); + if(cantDiasMin > 0){ + calculaCantDiasMax(); + } try { apagarRegistros(); for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) { PricingOcupaAntecipa pricingOcupaAntecipa = lsPricingOcupaAntecipa.get(i); if(!cantDiasMin.equals(pricingOcupaAntecipa.getCantdiasmin())){ if(rdOcupacao.isChecked()){ - pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO); - }else{ pricingOcupaAntecipa.setCantasientosmin(0); + }else{ + pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO); } } if(pricingOcupaAntecipa.getOcupacioninicial() == null){ pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO); - } + } if (pricingOcupaAntecipa.getPricingocupaantecipaId() == null) { pricingOcupaAntecipaService.suscribir(pricingOcupaAntecipa); } else { pricingOcupaAntecipaService.actualizacion(pricingOcupaAntecipa); } - + parentList.add(pricingOcupaAntecipa); cantDiasMin = pricingOcupaAntecipa.getCantdiasmin(); @@ -184,10 +186,11 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor parentList.add(p); } } - + parentPricingOcupaAntecipaList.setData(parentList); closeWindow(); } catch (Exception e) { + log.error("", e); Messagebox.show(e.getLocalizedMessage(), Labels.getLabel("editarPricingController.windowOcupacion.title"), Messagebox.OK, Messagebox.EXCLAMATION); @@ -202,7 +205,7 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor private class PricingOcupaAntecipaComparator implements Comparator { public int compare(PricingOcupaAntecipa pricing, PricingOcupaAntecipa outroPricing) { - Integer cantDiasMinComp = outroPricing.getCantdiasmin().compareTo(pricing.getCantdiasmin()); + Integer cantDiasMinComp = outroPricing.getCantdiasmin() != null ? outroPricing.getCantdiasmin().compareTo(pricing.getCantdiasmin()) : 0; if (cantDiasMinComp != 0) { return cantDiasMinComp; } @@ -212,8 +215,12 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor private void calculaCantDiasMax() { PricingOcupaAntecipa poa; - int cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin(); - int cantDiasMaxAnterior = CANTDIASMAXDEFAULT; + int cantDiasMinAnterior; + if (lsPricingOcupaAntecipa.get(0).getCantdiasmin() == null){ + cantDiasMinAnterior = 0; + }else{ + cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin(); + int cantDiasMaxAnterior = CANTDIASMAXDEFAULT; for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) { poa = lsPricingOcupaAntecipa.get(i); if (i == 0) { @@ -228,24 +235,48 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor } } } + } } public void onClick$btnlancar(Event ev) throws Exception { - - PricingOcupaAntecipa poa = new PricingOcupaAntecipa(); - poa.setPricing(pricing); - poa.setCantdiasmin(cantdiasmin.getValue()); - poa.setPorcentaje(porcentaje.getValueDecimal()); - if (rdOcupacao.isChecked()) { - poa.setOcupacioninicial(new BigDecimal(ocupacioninicial.getValue())); - poa.setOcupacionfinal(new BigDecimal(ocupacionfinal.getValue())); - } else { - poa.setCantasientosmin(ocupacioninicial.getValue()); - poa.setCantasientosmax(ocupacionfinal.getValue()); - } - - lsPricingOcupaAntecipa.add(poa); - pricingOcupaAntecipaList.setData(lsPricingOcupaAntecipa); + try{ + PricingOcupaAntecipa poa = new PricingOcupaAntecipa(); + poa.setPricing(pricing); + poa.setCantdiasmin(cantdiasmin.getValue()); + if(!porcentaje.getValue().isEmpty()){ + poa.setPorcentaje(porcentaje.getValueDecimal()); + if( cantdiasmin.getValue() == null || (cantdiasmin.getValue() <= 365 && cantdiasmin.getValue() >= 0)){ + if ((ocupacionfinal.getValue() >= ocupacioninicial.getValue()) && ocupacionfinal.getValue() > 0 && ocupacioninicial.getValue() >= 0){ + if (rdOcupacao.isChecked()) { + poa.setOcupacioninicial(new BigDecimal(ocupacioninicial.getValue())); + poa.setOcupacionfinal(new BigDecimal(ocupacionfinal.getValue())); + }else{ + poa.setCantasientosmin(ocupacioninicial.getValue()); + poa.setCantasientosmax(ocupacionfinal.getValue()); + } + lsPricingOcupaAntecipa.add(poa); + pricingOcupaAntecipaList.setData(lsPricingOcupaAntecipa); + }else if(ocupacionfinal.getValue() == 0){ + MensagensUtils.showMessageExclamation("editarPricingEspecificoOcupacionController.MSG.opucMaxAut","editarPricingController.windowOcupacion.title"); + ocupacionfinal.focus(); + }else if(ocupacioninicial.getValue() == null || ocupacionfinal.getValue() == null){ + MensagensUtils.showMessageExclamation("editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMaxVazio","editarPricingController.windowOcupacion.title"); + ocupacioninicial.focus(); + } + if(ocupacionfinal.getValue() < ocupacioninicial.getValue()) { + MensagensUtils.showMessageExclamation("editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMax","editarPricingController.windowOcupacion.title"); + ocupacioninicial.focus(); + } + }else{ + MensagensUtils.showMessageExclamation("editarPricingEspecificoOcupacionController.MSG.quantDiasOcup","editarPricingController.windowOcupacion.title"); + } + }else{ + MensagensUtils.showMessageExclamation("editarPricingEspecificoOcupacionController.MSG.porcOcupaAutVazio", "editarPricingController.windowOcupacion.title"); + porcentaje.focus(); + } + }catch(Exception ex) { + log.error("Ocupação mínimo ou máxima = null",ex); + } } public void onClick$btnRemoverOcupaAntecipa(Event ev) { diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b84598c29..332b572cd 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -3328,6 +3328,11 @@ editarPricingController.MSG.datasFecha = Fecha y hora início posterior a la fec editarPricingController.MSG.datas1 = La fecha de início de venta tem que ser menor ou igual a fecha de início de viaje editarPricingController.MSG.datas2 = La fecha de fin da venta no pode ser mayor que a fecha de fin del viaje editarPricingController.MSG.tipoPtoVtaVazio = Necesita informar un canal de venta en la pestaña de filtro +editarPricingEspecificoOcupacionController.MSG.porcOcupaAutVazio = Necesita informar porcentaje mayor que CERO! +editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMaxVazio = Necessita informar ocupação máxima maior que ZERO ou ocupação mínima ou ocupação máximo vazio! +editarPricingEspecificoOcupacionController.MSG.opucMaxAut = Necesita informar ocupación máxima mayor que CERO! +editarPricingEspecificoOcupacionController.MSG.quantDiasOcup = Quantidade de dias mínimo deve ser entre 0 e 365! +editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMax = Valor ocupación mínima mayor ou igual a ocupación máxima! editarPricingController.MSG.categoriaVazio = Necesita informar un tipo pasajero en la pestaña de filtro editarPricingController.MSG.marcaVazio = Necesita informar una marca en la pestaña de filtro editarPricingController.MSG.rutaVazio = Necesita informar una linea en la pestaña de filtro o seleccionar la linea TODAS diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index a21fc918a..f45dfc025 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3637,6 +3637,11 @@ editarPricingEspecificoAgenciaController.MSG.agenciaVazio = Agência está vazia editarPricingEspecificoCanalVendaController.MSG.perguntaAdicionarTodosCanalVendas = Canal de vendas está vazio! Deseja adicionar "Todos"? editarPricingEspecificoCanalVendaController.MSG.canalVendasVazio = Canal de vendas está vazio! Favor adicionar canal de vendas. editarPricingEspecificoOcupacionController.ocupacao.label = Ocupação +editarPricingEspecificoOcupacionController.MSG.porcOcupaAutVazio = Necessita informar porcentagem maior que ZERO! +editarPricingEspecificoOcupacionController.MSG.opucMaxAut = Necessita informar ocupação máxima maior que ZERO! +editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMaxVazio = Necessita informar ocupação máxima maior que ZERO ou ocupação mínima ou ocupação máximo vazio! +editarPricingEspecificoOcupacionController.MSG.quantDiasOcup = Quantidade de dias mínimo deve ser entre 0 e 365! +editarPricingEspecificoOcupacionController.MSG.ocupMinOpucMax = Valor ocupação mínina maior ou igual a ocupação máxima! editarPricingEspecificoOcupacionController.categoria.label = Tipo Passageiro editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion = Ocupação não informado. editarPricingEspecificoAgenciaController.MSG.noPricingEspecificoAgencia = Agência não informada.