Correção cadastro de ocupação no pricing especifico ( fixes bug #5763 )
Tempo: 03 horas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@39640 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
6d333ebe39
commit
c924c83381
|
@ -4,7 +4,11 @@
|
|||
*/
|
||||
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;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -321,6 +325,10 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
|
|||
}
|
||||
}
|
||||
|
||||
if(!validarPricingEspecificoOcupacion()) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<PricingEspecifico> lsPricing = pricingEspecificoService.buscarPorNome(pricingEspecifico);
|
||||
boolean podeSalvar = false;
|
||||
if (lsPricing.isEmpty()) {
|
||||
|
@ -356,6 +364,63 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.getPricingEspecificoOcupacionsList() == null || pricingEspecifico.getPricingEspecificoOcupacionsList().isEmpty()) {
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion"),
|
||||
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
List<PricingEspecificoOcupacion> sOcupacionInicial = new ArrayList<PricingEspecificoOcupacion>(pricingEspecifico.getPricingEspecificoOcupacionsList());
|
||||
Collections.sort(sOcupacionInicial,new Comparator<PricingEspecificoOcupacion>() {
|
||||
|
||||
@Override
|
||||
public int compare(PricingEspecificoOcupacion o1, PricingEspecificoOcupacion o2) {
|
||||
return o1.getOcupacioninicial().compareTo(o2.getOcupacioninicial());
|
||||
}
|
||||
});
|
||||
|
||||
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) {
|
||||
pricingEspecificoOcupacionAnterior = sOcupacionInicial.get(i - 1);
|
||||
}
|
||||
|
||||
if(pricingEspecificoOcupacionAnterior != null && pricingEspecificoOcupacionAnterior.getOcupacionfinal().add(new BigDecimal(1)).doubleValue() != pricingEspecificoOcupacion.getOcupacioninicial().doubleValue()) {
|
||||
pricingEspecificoOcupacionNoSubsequente = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(pricingEspecificoOcupacionNoSubsequente) {
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente"),
|
||||
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pricingEspecificoService
|
||||
*/
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.pricing;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
@ -15,6 +16,7 @@ import org.zkoss.zk.ui.event.Event;
|
|||
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoOcupacion;
|
||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.BigDecimalUtil;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal;
|
||||
|
@ -43,9 +45,11 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
|||
super.doAfterCompose(comp);
|
||||
|
||||
if (pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
|
||||
tarifa.setValue(pricingEspecificoOcupacion.getTarifa() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getTarifa().toString());
|
||||
ocupacioninicial.setValue(pricingEspecificoOcupacion.getOcupacioninicial() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getOcupacioninicial().toString());
|
||||
ocupacionfinal.setValue(pricingEspecificoOcupacion.getOcupacionfinal() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getOcupacionfinal().toString());
|
||||
Locale locale = new Locale("pt", "BR");
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,6 +85,7 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
|||
for (PricingEspecificoOcupacion peo : peoList) {
|
||||
if (peo.equals(pricingEspecificoOcupacion)) {
|
||||
index = peoList.indexOf(peo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
peoList.set(index, pricingEspecificoOcupacion);
|
||||
|
@ -91,7 +96,6 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
|||
|
||||
pricingEspecifico.setPricingEspecificoOcupacionsList(peoList);
|
||||
pricingListEspOcupacion.setData(peoList);
|
||||
pricingListEspOcupacion.updateItem(pricingEspecificoOcupacion);
|
||||
|
||||
closeWindow();
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package com.rjconsultores.ventaboletos.web.utilerias;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Wilian
|
||||
*
|
||||
*/
|
||||
public class BigDecimalUtil {
|
||||
|
||||
public static BigDecimal getStringToBigDecimal(String value, Locale locale) throws ParseException {
|
||||
if(value != null && StringUtils.isNotBlank(value)) {
|
||||
NumberFormat nf = NumberFormat.getInstance(locale);
|
||||
return new BigDecimal(nf.parse(value).toString());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getBigDecimalToStringDouble2CasasDecimaisFormatado(BigDecimal value, Locale locale) {
|
||||
if(value != null) {
|
||||
NumberFormat nf = NumberFormat.getInstance(locale);
|
||||
nf.setMinimumFractionDigits(2);
|
||||
nf.setMaximumFractionDigits(2);
|
||||
return nf.format(value.doubleValue());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -2255,6 +2255,9 @@ editarPricingEspecificoOcupacionController.ocupacionInicial.label=Ocupación Ini
|
|||
editarPricingEspecificoOcupacionController.ocupacionFinal.label=Ocupación Final
|
||||
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseas eliminar ocupacion?
|
||||
editarPricingEspecificoOcupacionController.ocupacao.label = Ocupacion
|
||||
editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion = Ocupación no informado.
|
||||
editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial = La lista de ocupaciones debería comenzar con la ocupación inicial igual a 1.
|
||||
editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente = La lista de ocupaciones debe ser posterior.
|
||||
|
||||
# Búsqueda Sistema
|
||||
busquedaSistemaController.window.title = Sistema
|
||||
|
|
|
@ -2302,6 +2302,9 @@ editarPricingEspecificoOcupacionController.ocupacionInicial.label=Ocupação Ini
|
|||
editarPricingEspecificoOcupacionController.ocupacionFinal.label=Ocupação Final
|
||||
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseja Eliminar Ocupação?
|
||||
editarPricingEspecificoOcupacionController.ocupacao.label = Ocupação
|
||||
editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion = Ocupação não informado.
|
||||
editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial = A primeira ocupação deverá ter valor de ocupação inicial igual a 1.
|
||||
editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente = A lista de ocupações deverão ser subsequentes.
|
||||
|
||||
# Pesquisa Sistema
|
||||
busquedaSistemaController.window.title = Sistema
|
||||
|
|
Loading…
Reference in New Issue