fixed bug #7142 - correções tela de pricing específico

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@53678 d1611594-4594-4d17-8e1d-87c2c4800839
master
frederico 2016-03-08 14:05:46 +00:00
parent 7cb2f0857e
commit cb839a1426
2 changed files with 63 additions and 41 deletions

View File

@ -6,7 +6,6 @@ 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;
@ -43,6 +42,7 @@ import com.rjconsultores.ventaboletos.service.CorridaCtrlService;
import com.rjconsultores.ventaboletos.service.MarcaService;
import com.rjconsultores.ventaboletos.service.MonedaService;
import com.rjconsultores.ventaboletos.service.ParadaService;
import com.rjconsultores.ventaboletos.service.PricingEspecificoOcupacionService;
import com.rjconsultores.ventaboletos.service.PricingEspecificoService;
import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@ -77,6 +77,9 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
private MonedaService monedaService;
@Autowired
private CorridaCtrlService corridaCtrlService;
@Autowired
private PricingEspecificoOcupacionService pricingEspecificoOcupacionService;
private PricingEspecifico pricingEspecifico;
private MyListbox pricingList;
private Combobox cmbPtovta;
@ -98,6 +101,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
private Textbox tarifaAbierto;
private MyListbox pricingListEspOcupacion;
private List<PricingEspecificoOcupacion> pricingEspecificoADesativar;
@Override
public void doAfterCompose(Component comp) throws Exception {
@ -108,6 +112,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
lsclaseServicio = claseServicioService.obtenerTodos();
pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico");
pricingList = (MyListbox) Executions.getCurrent().getArg().get("pricingList");
pricingEspecificoADesativar = new ArrayList<PricingEspecificoOcupacion>();
super.doAfterCompose(comp);
@ -134,7 +139,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
@Override
public void onEvent(Event event) throws Exception {
PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
verPricingEspecificoOcupacion(especificoOcupacion);
verPricingEspecificoOcupacion(especificoOcupacion, true);
}
});
}
@ -143,11 +148,12 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion) {
public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion, Boolean isEdicao) {
Map args = new HashMap();
args.put("pricingEspecifico", pricingEspecifico);
args.put("pricingEspecificoOcupacion", especificoOcupacion);
args.put("isEdicao", isEdicao);
args.put("pricingListEspOcupacion", pricingListEspOcupacion);
openWindow("/gui/pricing/editarPricingEspecificoOcupacion.zul",
@ -155,11 +161,11 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
public void onClick$btnNovoPricingEspOcup(Event ev) throws InterruptedException {
verPricingEspecificoOcupacion(new PricingEspecificoOcupacion());
verPricingEspecificoOcupacion(new PricingEspecificoOcupacion(), false);
}
public void onClick$btnApagarPricingEspOcup(Event ev) throws InterruptedException {
if(pricingListEspOcupacion.getSelected() == null) {
if (pricingListEspOcupacion.getSelected() == null) {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"),
Labels.getLabel("editarPricingController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION);
@ -170,35 +176,32 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
if (resp == Messagebox.YES) {
PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
especificoOcupacion.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
especificoOcupacion.setFecmodif(Calendar.getInstance().getTime());
if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
especificoOcupacion.setActivo(false);
pricingListEspOcupacion.updateItem(especificoOcupacion);
pricingListEspOcupacion.removeItem(especificoOcupacion);
pricingEspecificoADesativar.add(especificoOcupacion);
} else {
pricingListEspOcupacion.removeSelectedItem();
removerPricingOcupacion(especificoOcupacion);
}
}
}
}
private void removerPricingOcupacion(PricingEspecificoOcupacion especificoOcupacion) {
if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
pricingEspecifico.getPricingEspecificoOcupacionsList().remove(especificoOcupacion);
} else {
int index = 0;
for (PricingEspecificoOcupacion pricingEspecificoOcupacion : pricingEspecifico.getPricingEspecificoOcupacionsList()) {
if(pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) &&
if (pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) &&
pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) &&
pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) {
break;
}
index ++;
index++;
}
pricingEspecifico.getPricingEspecificoOcupacionsList().remove(index);
pricingEspecifico.getPricingEspecificoOcupacionsList().remove(index - 1);
}
}
@ -206,7 +209,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
if (especificoOcupacion != null) {
verPricingEspecificoOcupacion(especificoOcupacion);
verPricingEspecificoOcupacion(especificoOcupacion, true);
} else {
try {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"),
@ -248,11 +251,16 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
fechaFin.getValue();
tarifaAbierto.getValue();
pricingEspecifico.getPricingEspecificoOcupacionsList().clear();
for (Object o : pricingListEspOcupacion.getData()) {
PricingEspecificoOcupacion p = (PricingEspecificoOcupacion) o;
pricingEspecifico.getPricingEspecificoOcupacionsList().add(p);
}
if (pricingEspecifico.getTipoPtovta() == null) {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.tipoPtoVta"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION);
return;
}
@ -315,7 +323,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
if (pricingEspecifico.getCorridaId() != null) {
CorridaCtrl corridaCtrlId = corridaCtrlService.obtenerID(pricingEspecifico.getCorridaId());
if (corridaCtrlId == null) {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaId", new Object[]{pricingEspecifico.getCorridaId()}),
Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaId", new Object[] { pricingEspecifico.getCorridaId() }),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION);
@ -329,7 +337,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
pricingEspecifico.getMarca());
if (corridaCtrlFinal == null) {
Integer opcao = Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaIdFinalNaoExiste", new Object[]{pricingEspecifico.getCorridaId()}),
Integer opcao = Messagebox.show(Labels.getLabel("editarPricingController.MSG.corridaIdFinalNaoExiste", new Object[] { pricingEspecifico.getCorridaId() }),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
@ -340,7 +348,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
}
if(!validarPricingEspecificoOcupacion()) {
if (!validarPricingEspecificoOcupacion()) {
return;
}
@ -365,6 +373,8 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
pricingList.updateItem(pricingEspecifico);
}
desativarPricingEspecificoOcupacionDesativados();
Messagebox.show(Labels.getLabel("editarPricingController.MSG.suscribirOK"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.INFORMATION);
@ -379,13 +389,20 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
private void desativarPricingEspecificoOcupacionDesativados() {
for (PricingEspecificoOcupacion p : pricingEspecificoADesativar) {
pricingEspecificoOcupacionService.actualizacion(p);
}
}
/**
* 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.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) {
if (pricingEspecifico.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) {
Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
@ -394,7 +411,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
List<PricingEspecificoOcupacion> sOcupacionInicial = new ArrayList<PricingEspecificoOcupacion>(pricingEspecifico.getPricingEspecificoOcupacionsListActivos());
Collections.sort(sOcupacionInicial,new Comparator<PricingEspecificoOcupacion>() {
Collections.sort(sOcupacionInicial, new Comparator<PricingEspecificoOcupacion>() {
@Override
public int compare(PricingEspecificoOcupacion o1, PricingEspecificoOcupacion o2) {
@ -402,7 +419,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
}
});
if(sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) {
if (sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) {
Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),
@ -415,17 +432,18 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
PricingEspecificoOcupacion pricingEspecificoOcupacion = sOcupacionInicial.get(i);
PricingEspecificoOcupacion pricingEspecificoOcupacionAnterior = null;
if(i > 0) {
if (i > 0) {
pricingEspecificoOcupacionAnterior = sOcupacionInicial.get(i - 1);
}
if(pricingEspecificoOcupacionAnterior != null && pricingEspecificoOcupacionAnterior.getOcupacionfinal().add(new BigDecimal(1)).doubleValue() != pricingEspecificoOcupacion.getOcupacioninicial().doubleValue()) {
if (pricingEspecificoOcupacionAnterior != null
&& pricingEspecificoOcupacionAnterior.getOcupacionfinal().add(new BigDecimal(1)).doubleValue() != pricingEspecificoOcupacion.getOcupacioninicial().doubleValue()) {
pricingEspecificoOcupacionNoSubsequente = true;
break;
}
}
if(pricingEspecificoOcupacionNoSubsequente) {
if (pricingEspecificoOcupacionNoSubsequente) {
Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"),

View File

@ -1,6 +1,7 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.pricing;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;
@ -39,6 +40,8 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
private MyTextboxDecimal ocupacioninicial;
private MyTextboxDecimal ocupacionfinal;
private Boolean isEdicao;
@Autowired
private PricingEspecificoService pricingEspecificoService;
@ -47,11 +50,12 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico");
pricingEspecificoOcupacion = (PricingEspecificoOcupacion) Executions.getCurrent().getArg().get("pricingEspecificoOcupacion");
pricingListEspOcupacion = (MyListbox) Executions.getCurrent().getArg().get("pricingListEspOcupacion");
isEdicao = (Boolean) Executions.getCurrent().getArg().get("isEdicao");
super.doAfterCompose(comp);
if (pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
Locale locale = new Locale("pt", "BR");
if (pricingEspecificoOcupacion.getTarifa() != null) {
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));
@ -101,7 +105,7 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
pricingEspecifico.setPricingEspecificoOcupacionsList(peoList);
if(pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
if(isEdicao){
pricingListEspOcupacion.updateItem(pricingEspecificoOcupacion);
} else {
pricingListEspOcupacion.addItemNovo(pricingEspecificoOcupacion);