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-87c2c4800839master
parent
7cb2f0857e
commit
cb839a1426
|
@ -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);
|
||||
|
@ -169,36 +175,33 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
|
|||
Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
|
||||
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()) &&
|
||||
pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) &&
|
||||
pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) {
|
||||
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);
|
||||
|
||||
|
@ -339,8 +347,8 @@ 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,60 +389,68 @@ 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"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
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) {
|
||||
return o1.getOcupacioninicial().compareTo(o2.getOcupacioninicial());
|
||||
}
|
||||
});
|
||||
|
||||
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"),
|
||||
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) {
|
||||
|
||||
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"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
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));
|
||||
|
@ -100,8 +104,8 @@ public class EditarPricingEspecificoOcupacionController extends MyGenericForward
|
|||
}
|
||||
|
||||
pricingEspecifico.setPricingEspecificoOcupacionsList(peoList);
|
||||
|
||||
if(pricingEspecificoOcupacion.getPricingEspecificoOcupacionId() != null) {
|
||||
|
||||
if(isEdicao){
|
||||
pricingListEspOcupacion.updateItem(pricingEspecificoOcupacion);
|
||||
} else {
|
||||
pricingListEspOcupacion.addItemNovo(pricingEspecificoOcupacion);
|
||||
|
|
Loading…
Reference in New Issue