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;
|
package com.rjconsultores.ventaboletos.web.gui.controladores.pricing;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -321,6 +325,10 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!validarPricingEspecificoOcupacion()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
List<PricingEspecifico> lsPricing = pricingEspecificoService.buscarPorNome(pricingEspecifico);
|
List<PricingEspecifico> lsPricing = pricingEspecificoService.buscarPorNome(pricingEspecifico);
|
||||||
boolean podeSalvar = false;
|
boolean podeSalvar = false;
|
||||||
if (lsPricing.isEmpty()) {
|
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
|
* @return the pricingEspecificoService
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.pricing;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.log4j.Logger;
|
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.PricingEspecifico;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoOcupacion;
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoOcupacion;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
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.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;
|
||||||
|
@ -43,9 +45,11 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
||||||
super.doAfterCompose(comp);
|
super.doAfterCompose(comp);
|
||||||
|
|
||||||
if (pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
|
if (pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
|
||||||
tarifa.setValue(pricingEspecificoOcupacion.getTarifa() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getTarifa().toString());
|
Locale locale = new Locale("pt", "BR");
|
||||||
ocupacioninicial.setValue(pricingEspecificoOcupacion.getOcupacioninicial() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getOcupacioninicial().toString());
|
|
||||||
ocupacionfinal.setValue(pricingEspecificoOcupacion.getOcupacionfinal() == null ? StringUtils.EMPTY : pricingEspecificoOcupacion.getOcupacionfinal().toString());
|
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) {
|
for (PricingEspecificoOcupacion peo : peoList) {
|
||||||
if (peo.equals(pricingEspecificoOcupacion)) {
|
if (peo.equals(pricingEspecificoOcupacion)) {
|
||||||
index = peoList.indexOf(peo);
|
index = peoList.indexOf(peo);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
peoList.set(index, pricingEspecificoOcupacion);
|
peoList.set(index, pricingEspecificoOcupacion);
|
||||||
|
@ -91,7 +96,6 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
||||||
|
|
||||||
pricingEspecifico.setPricingEspecificoOcupacionsList(peoList);
|
pricingEspecifico.setPricingEspecificoOcupacionsList(peoList);
|
||||||
pricingListEspOcupacion.setData(peoList);
|
pricingListEspOcupacion.setData(peoList);
|
||||||
pricingListEspOcupacion.updateItem(pricingEspecificoOcupacion);
|
|
||||||
|
|
||||||
closeWindow();
|
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.ocupacionFinal.label=Ocupación Final
|
||||||
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseas eliminar ocupacion?
|
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseas eliminar ocupacion?
|
||||||
editarPricingEspecificoOcupacionController.ocupacao.label = 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
|
# Búsqueda Sistema
|
||||||
busquedaSistemaController.window.title = Sistema
|
busquedaSistemaController.window.title = Sistema
|
||||||
|
|
|
@ -2302,6 +2302,9 @@ editarPricingEspecificoOcupacionController.ocupacionInicial.label=Ocupação Ini
|
||||||
editarPricingEspecificoOcupacionController.ocupacionFinal.label=Ocupação Final
|
editarPricingEspecificoOcupacionController.ocupacionFinal.label=Ocupação Final
|
||||||
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseja Eliminar Ocupação?
|
editarPricingEspecificoOcupacionController.MSG.borrarPergunta = Deseja Eliminar Ocupação?
|
||||||
editarPricingEspecificoOcupacionController.ocupacao.label = 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
|
# Pesquisa Sistema
|
||||||
busquedaSistemaController.window.title = Sistema
|
busquedaSistemaController.window.title = Sistema
|
||||||
|
|
Loading…
Reference in New Issue