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.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; 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.MarcaService;
import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.MonedaService;
import com.rjconsultores.ventaboletos.service.ParadaService; import com.rjconsultores.ventaboletos.service.ParadaService;
import com.rjconsultores.ventaboletos.service.PricingEspecificoOcupacionService;
import com.rjconsultores.ventaboletos.service.PricingEspecificoService; import com.rjconsultores.ventaboletos.service.PricingEspecificoService;
import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@ -77,6 +77,9 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
private MonedaService monedaService; private MonedaService monedaService;
@Autowired @Autowired
private CorridaCtrlService corridaCtrlService; private CorridaCtrlService corridaCtrlService;
@Autowired
private PricingEspecificoOcupacionService pricingEspecificoOcupacionService;
private PricingEspecifico pricingEspecifico; private PricingEspecifico pricingEspecifico;
private MyListbox pricingList; private MyListbox pricingList;
private Combobox cmbPtovta; private Combobox cmbPtovta;
@ -98,6 +101,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
private Textbox tarifaAbierto; private Textbox tarifaAbierto;
private MyListbox pricingListEspOcupacion; private MyListbox pricingListEspOcupacion;
private List<PricingEspecificoOcupacion> pricingEspecificoADesativar;
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
@ -108,6 +112,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
lsclaseServicio = claseServicioService.obtenerTodos(); lsclaseServicio = claseServicioService.obtenerTodos();
pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico"); pricingEspecifico = (PricingEspecifico) Executions.getCurrent().getArg().get("pricingEspecifico");
pricingList = (MyListbox) Executions.getCurrent().getArg().get("pricingList"); pricingList = (MyListbox) Executions.getCurrent().getArg().get("pricingList");
pricingEspecificoADesativar = new ArrayList<PricingEspecificoOcupacion>();
super.doAfterCompose(comp); super.doAfterCompose(comp);
@ -134,7 +139,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
@Override @Override
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected(); PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
verPricingEspecificoOcupacion(especificoOcupacion); verPricingEspecificoOcupacion(especificoOcupacion, true);
} }
}); });
} }
@ -143,11 +148,12 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
} }
@SuppressWarnings({ "unchecked", "rawtypes" }) @SuppressWarnings({ "unchecked", "rawtypes" })
public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion) { public void verPricingEspecificoOcupacion(PricingEspecificoOcupacion especificoOcupacion, Boolean isEdicao) {
Map args = new HashMap(); Map args = new HashMap();
args.put("pricingEspecifico", pricingEspecifico); args.put("pricingEspecifico", pricingEspecifico);
args.put("pricingEspecificoOcupacion", especificoOcupacion); args.put("pricingEspecificoOcupacion", especificoOcupacion);
args.put("isEdicao", isEdicao);
args.put("pricingListEspOcupacion", pricingListEspOcupacion); args.put("pricingListEspOcupacion", pricingListEspOcupacion);
openWindow("/gui/pricing/editarPricingEspecificoOcupacion.zul", openWindow("/gui/pricing/editarPricingEspecificoOcupacion.zul",
@ -155,11 +161,11 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
} }
public void onClick$btnNovoPricingEspOcup(Event ev) throws InterruptedException { public void onClick$btnNovoPricingEspOcup(Event ev) throws InterruptedException {
verPricingEspecificoOcupacion(new PricingEspecificoOcupacion()); verPricingEspecificoOcupacion(new PricingEspecificoOcupacion(), false);
} }
public void onClick$btnApagarPricingEspOcup(Event ev) throws InterruptedException { public void onClick$btnApagarPricingEspOcup(Event ev) throws InterruptedException {
if(pricingListEspOcupacion.getSelected() == null) { if (pricingListEspOcupacion.getSelected() == null) {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"), Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"),
Labels.getLabel("editarPricingController.window.title"), Labels.getLabel("editarPricingController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
@ -169,36 +175,33 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
if (resp == Messagebox.YES) { if (resp == Messagebox.YES) {
PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected(); PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) { if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
especificoOcupacion.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
especificoOcupacion.setFecmodif(Calendar.getInstance().getTime());
especificoOcupacion.setActivo(false); especificoOcupacion.setActivo(false);
pricingListEspOcupacion.removeItem(especificoOcupacion);
pricingListEspOcupacion.updateItem(especificoOcupacion); pricingEspecificoADesativar.add(especificoOcupacion);
} else { } else {
pricingListEspOcupacion.removeSelectedItem(); pricingListEspOcupacion.removeSelectedItem();
removerPricingOcupacion(especificoOcupacion); removerPricingOcupacion(especificoOcupacion);
} }
} }
} }
} }
private void removerPricingOcupacion(PricingEspecificoOcupacion especificoOcupacion) { private void removerPricingOcupacion(PricingEspecificoOcupacion especificoOcupacion) {
if(especificoOcupacion.getPricingEspecificoOcupacionId() != null) { if (especificoOcupacion.getPricingEspecificoOcupacionId() != null) {
pricingEspecifico.getPricingEspecificoOcupacionsList().remove(especificoOcupacion); pricingEspecifico.getPricingEspecificoOcupacionsList().remove(especificoOcupacion);
} else { } else {
int index = 0; int index = 0;
for (PricingEspecificoOcupacion pricingEspecificoOcupacion : pricingEspecifico.getPricingEspecificoOcupacionsList()) { for (PricingEspecificoOcupacion pricingEspecificoOcupacion : pricingEspecifico.getPricingEspecificoOcupacionsList()) {
if(pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) && if (pricingEspecificoOcupacion.getOcupacionfinal().equals(especificoOcupacion.getOcupacionfinal()) &&
pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) && pricingEspecificoOcupacion.getOcupacioninicial().equals(especificoOcupacion.getOcupacioninicial()) &&
pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) { pricingEspecificoOcupacion.getTarifa().equals(especificoOcupacion.getTarifa())) {
break; 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(); PricingEspecificoOcupacion especificoOcupacion = (PricingEspecificoOcupacion) pricingListEspOcupacion.getSelected();
if (especificoOcupacion != null) { if (especificoOcupacion != null) {
verPricingEspecificoOcupacion(especificoOcupacion); verPricingEspecificoOcupacion(especificoOcupacion, true);
} else { } else {
try { try {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"), Messagebox.show(Labels.getLabel("editarPricingController.MSG.selectItem"),
@ -248,11 +251,16 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
fechaFin.getValue(); fechaFin.getValue();
tarifaAbierto.getValue(); tarifaAbierto.getValue();
pricingEspecifico.getPricingEspecificoOcupacionsList().clear();
for (Object o : pricingListEspOcupacion.getData()) {
PricingEspecificoOcupacion p = (PricingEspecificoOcupacion) o;
pricingEspecifico.getPricingEspecificoOcupacionsList().add(p);
}
if (pricingEspecifico.getTipoPtovta() == null) { if (pricingEspecifico.getTipoPtovta() == null) {
Messagebox.show(Labels.getLabel("editarPricingController.MSG.tipoPtoVta"), Messagebox.show(Labels.getLabel("editarPricingController.MSG.tipoPtoVta"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
return; return;
} }
@ -315,7 +323,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
if (pricingEspecifico.getCorridaId() != null) { if (pricingEspecifico.getCorridaId() != null) {
CorridaCtrl corridaCtrlId = corridaCtrlService.obtenerID(pricingEspecifico.getCorridaId()); CorridaCtrl corridaCtrlId = corridaCtrlService.obtenerID(pricingEspecifico.getCorridaId());
if (corridaCtrlId == null) { 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"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
@ -329,7 +337,7 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
pricingEspecifico.getMarca()); pricingEspecifico.getMarca());
if (corridaCtrlFinal == null) { 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"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
@ -339,8 +347,8 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
} }
} }
} }
if(!validarPricingEspecificoOcupacion()) { if (!validarPricingEspecificoOcupacion()) {
return; return;
} }
@ -365,6 +373,8 @@ public class EditarPricingEspecificoController extends MyGenericForwardComposer
pricingList.updateItem(pricingEspecifico); pricingList.updateItem(pricingEspecifico);
} }
desativarPricingEspecificoOcupacionDesativados();
Messagebox.show(Labels.getLabel("editarPricingController.MSG.suscribirOK"), Messagebox.show(Labels.getLabel("editarPricingController.MSG.suscribirOK"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.INFORMATION); 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. * Valida se a lista de ocupações são subsequentes e se a primeira ocupação possui ocupação inicial igual a 1.
*
* @return * @return
* @throws InterruptedException * @throws InterruptedException
*/ */
private boolean validarPricingEspecificoOcupacion() throws InterruptedException { private boolean validarPricingEspecificoOcupacion() throws InterruptedException {
if(pricingEspecifico.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) { if (pricingEspecifico.getPricingEspecificoOcupacionsListActivos() == null || pricingEspecifico.getPricingEspecificoOcupacionsListActivos().isEmpty()) {
Messagebox.show( Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion"), Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.noPricingEspecificoOcupacion"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
return false; return false;
} }
List<PricingEspecificoOcupacion> sOcupacionInicial = new ArrayList<PricingEspecificoOcupacion>(pricingEspecifico.getPricingEspecificoOcupacionsListActivos()); List<PricingEspecificoOcupacion> sOcupacionInicial = new ArrayList<PricingEspecificoOcupacion>(pricingEspecifico.getPricingEspecificoOcupacionsListActivos());
Collections.sort(sOcupacionInicial,new Comparator<PricingEspecificoOcupacion>() { Collections.sort(sOcupacionInicial, new Comparator<PricingEspecificoOcupacion>() {
@Override @Override
public int compare(PricingEspecificoOcupacion o1, PricingEspecificoOcupacion o2) { public int compare(PricingEspecificoOcupacion o1, PricingEspecificoOcupacion o2) {
return o1.getOcupacioninicial().compareTo(o2.getOcupacioninicial()); return o1.getOcupacioninicial().compareTo(o2.getOcupacioninicial());
} }
}); });
if(sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) { if (sOcupacionInicial.iterator().next().getOcupacioninicial().intValue() != 1) {
Messagebox.show( Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial"), Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionInicial"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
return false; return false;
} }
boolean pricingEspecificoOcupacionNoSubsequente = false; boolean pricingEspecificoOcupacionNoSubsequente = false;
for (int i = 0; i < sOcupacionInicial.size(); i++) { for (int i = 0; i < sOcupacionInicial.size(); i++) {
PricingEspecificoOcupacion pricingEspecificoOcupacion = sOcupacionInicial.get(i); PricingEspecificoOcupacion pricingEspecificoOcupacion = sOcupacionInicial.get(i);
PricingEspecificoOcupacion pricingEspecificoOcupacionAnterior = null; PricingEspecificoOcupacion pricingEspecificoOcupacionAnterior = null;
if(i > 0) { if (i > 0) {
pricingEspecificoOcupacionAnterior = sOcupacionInicial.get(i - 1); 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; pricingEspecificoOcupacionNoSubsequente = true;
break; break;
} }
} }
if(pricingEspecificoOcupacionNoSubsequente) { if (pricingEspecificoOcupacionNoSubsequente) {
Messagebox.show( Messagebox.show(
Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente"), Labels.getLabel("editarPricingEspecificoOcupacionController.MSG.pricingEspecificoOcupacionNoSubsequente"),
Labels.getLabel("busquedaPricingEspecificoController.window.title"), Labels.getLabel("busquedaPricingEspecificoController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
return false; return false;
} }
return true; return true;
} }

View File

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