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.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,17 +140,19 @@ 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;
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);
}
}
@ -188,6 +190,7 @@ public class EditarPricingOcupaAntecipaAutomaticoController extends MyGenericFor
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<PricingOcupaAntecipa> {
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());
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);
}
lsPricingOcupaAntecipa.add(poa);
pricingOcupaAntecipaList.setData(lsPricingOcupaAntecipa);
}
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.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

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.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.