0013646: Erro cadastro Pricing de Preços

fixes bug#0013646
dev:marcelo
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@90642 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2019-03-12 13:11:22 +00:00
parent 6a9e100eb9
commit 3614ec401c
3 changed files with 68 additions and 27 deletions

View File

@ -25,6 +25,7 @@ import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.PricingOcupaAntecipaService; import com.rjconsultores.ventaboletos.service.PricingOcupaAntecipaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.ConstraintPorcentagem; 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.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal; import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal;
@ -102,9 +103,8 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
} }
int diaMin = -1; int diaMin = -1;
for (PricingOcupaAntecipa p : argList) { for (PricingOcupaAntecipa p : argList) {
if (diaMin != p.getCantdiasmin()) { if (p.getCantdiasmin() != null || diaMin != p.getCantdiasmin()) {
lsPricingOcupaAntecipa.add(p); lsPricingOcupaAntecipa.add(p);
diaMin = p.getCantdiasmin(); diaMin = p.getCantdiasmin();
} }
@ -140,17 +140,19 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
public void onClick$btnAdicionarOcupaAntecipa(Event ev) throws Exception { public void onClick$btnAdicionarOcupaAntecipa(Event ev) throws Exception {
List<PricingOcupaAntecipa> parentList = new ArrayList<PricingOcupaAntecipa>(); List<PricingOcupaAntecipa> parentList = new ArrayList<PricingOcupaAntecipa>();
Collections.sort(lsPricingOcupaAntecipa, new PricingOcupaAntecipaComparator()); Collections.sort(lsPricingOcupaAntecipa, new PricingOcupaAntecipaComparator());
Integer cantDiasMin = lsPricingOcupaAntecipa.isEmpty() || lsPricingOcupaAntecipa.get(0).getCantdiasmin() == null ? 0 : lsPricingOcupaAntecipa.get(0).getCantdiasmin();
if(cantDiasMin > 0){
calculaCantDiasMax(); calculaCantDiasMax();
Integer cantDiasMin = 0; }
try { try {
apagarRegistros(); apagarRegistros();
for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) { for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) {
PricingOcupaAntecipa pricingOcupaAntecipa = lsPricingOcupaAntecipa.get(i); PricingOcupaAntecipa pricingOcupaAntecipa = lsPricingOcupaAntecipa.get(i);
if(!cantDiasMin.equals(pricingOcupaAntecipa.getCantdiasmin())){ if(!cantDiasMin.equals(pricingOcupaAntecipa.getCantdiasmin())){
if(rdOcupacao.isChecked()){ if(rdOcupacao.isChecked()){
pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO);
}else{
pricingOcupaAntecipa.setCantasientosmin(0); pricingOcupaAntecipa.setCantasientosmin(0);
}else{
pricingOcupaAntecipa.setOcupacioninicial(BigDecimal.ZERO);
} }
} }
@ -188,6 +190,7 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
parentPricingOcupaAntecipaList.setData(parentList); parentPricingOcupaAntecipaList.setData(parentList);
closeWindow(); closeWindow();
} catch (Exception e) { } catch (Exception e) {
log.error("", e);
Messagebox.show(e.getLocalizedMessage(), Messagebox.show(e.getLocalizedMessage(),
Labels.getLabel("editarPricingController.windowOcupacion.title"), Labels.getLabel("editarPricingController.windowOcupacion.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
@ -202,7 +205,7 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
private class PricingOcupaAntecipaComparator implements Comparator<PricingOcupaAntecipa> { private class PricingOcupaAntecipaComparator implements Comparator<PricingOcupaAntecipa> {
public int compare(PricingOcupaAntecipa pricing, PricingOcupaAntecipa outroPricing) { 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) { if (cantDiasMinComp != 0) {
return cantDiasMinComp; return cantDiasMinComp;
} }
@ -212,7 +215,11 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
private void calculaCantDiasMax() { private void calculaCantDiasMax() {
PricingOcupaAntecipa poa; PricingOcupaAntecipa poa;
int cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin(); int cantDiasMinAnterior;
if (lsPricingOcupaAntecipa.get(0).getCantdiasmin() == null){
cantDiasMinAnterior = 0;
}else{
cantDiasMinAnterior = lsPricingOcupaAntecipa.get(0).getCantdiasmin();
int cantDiasMaxAnterior = CANTDIASMAXDEFAULT; int cantDiasMaxAnterior = CANTDIASMAXDEFAULT;
for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) { for (int i = 0; i < lsPricingOcupaAntecipa.size(); i++) {
poa = lsPricingOcupaAntecipa.get(i); poa = lsPricingOcupaAntecipa.get(i);
@ -229,23 +236,47 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
} }
} }
} }
}
public void onClick$btnlancar(Event ev) throws Exception { public void onClick$btnlancar(Event ev) throws Exception {
try{
PricingOcupaAntecipa poa = new PricingOcupaAntecipa(); PricingOcupaAntecipa poa = new PricingOcupaAntecipa();
poa.setPricing(pricing); poa.setPricing(pricing);
poa.setCantdiasmin(cantdiasmin.getValue()); poa.setCantdiasmin(cantdiasmin.getValue());
if(!porcentaje.getValue().isEmpty()){
poa.setPorcentaje(porcentaje.getValueDecimal()); 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()) { if (rdOcupacao.isChecked()) {
poa.setOcupacioninicial(new BigDecimal(ocupacioninicial.getValue())); poa.setOcupacioninicial(new BigDecimal(ocupacioninicial.getValue()));
poa.setOcupacionfinal(new BigDecimal(ocupacionfinal.getValue())); poa.setOcupacionfinal(new BigDecimal(ocupacionfinal.getValue()));
} else { }else{
poa.setCantasientosmin(ocupacioninicial.getValue()); poa.setCantasientosmin(ocupacioninicial.getValue());
poa.setCantasientosmax(ocupacionfinal.getValue()); poa.setCantasientosmax(ocupacionfinal.getValue());
} }
lsPricingOcupaAntecipa.add(poa); lsPricingOcupaAntecipa.add(poa);
pricingOcupaAntecipaList.setData(lsPricingOcupaAntecipa); 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) { public void onClick$btnRemoverOcupaAntecipa(Event ev) {

View File

@ -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.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.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 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.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.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 editarPricingController.MSG.rutaVazio = Necesita informar una linea en la pestaña de filtro o seleccionar la linea TODAS

View File

@ -3637,6 +3637,11 @@ editarPricingEspecificoAgenciaController.MSG.agenciaVazio = Agência está vazia
editarPricingEspecificoCanalVendaController.MSG.perguntaAdicionarTodosCanalVendas = Canal de vendas está vazio! Deseja adicionar "Todos"? editarPricingEspecificoCanalVendaController.MSG.perguntaAdicionarTodosCanalVendas = Canal de vendas está vazio! Deseja adicionar "Todos"?
editarPricingEspecificoCanalVendaController.MSG.canalVendasVazio = Canal de vendas está vazio! Favor adicionar canal de vendas. editarPricingEspecificoCanalVendaController.MSG.canalVendasVazio = Canal de vendas está vazio! Favor adicionar canal de vendas.
editarPricingEspecificoOcupacionController.ocupacao.label = Ocupação 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.categoria.label = Tipo Passageiro
editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion = Ocupação não informado. editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion = Ocupação não informado.
editarPricingEspecificoAgenciaController.MSG.noPricingEspecificoAgencia = Agência não informada. editarPricingEspecificoAgenciaController.MSG.noPricingEspecificoAgencia = Agência não informada.