igor.rodrigo 2015-09-30 21:40:13 +00:00
parent 1ead24798b
commit 44e77220a3
4 changed files with 157 additions and 58 deletions

View File

@ -6,10 +6,13 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.configuracioneccome
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@ -26,7 +29,6 @@ import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Decimalbox;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.Radio;
@ -598,6 +600,43 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp
Messagebox.ERROR);
}
}
private Boolean validarCampoAssentosReservados() throws InterruptedException{
//Verifica se o campo possui números separados por ponto e vírgula.
//Não permite que outros caracteres sejam digitados.
if (!asientosReservados.getValue().equals("") && !asientosReservados.getValue().toString().matches("(([1-9]([0-9])+;)|([1-9]([0-9])+)|([1-9];)|([1-9][1-9][1-9])|[1-9])+")){
Messagebox.show(
Labels.getLabel("editarConfiguracionCategoriaController.msg.validacaoAssentosReservadosPontoeVirgula"),
Labels.getLabel("editarConfiguracionCategoriaController.window.title"),
Messagebox.OK, Messagebox.ERROR);
return false;
}
//Verifica se a quantidade de assentos reservados é menor que a quantidade de assentos autorizados.
String assentosReservados[] = asientosReservados.getValue().toString().split(";");
if(assentosReservados.length > cantAutorizada.getValue()){
Messagebox.show(
Labels.getLabel("editarConfiguracionCategoriaController.msg.validacaoAssentosReservados"),
Labels.getLabel("editarConfiguracionCategoriaController.window.title"),
Messagebox.OK, Messagebox.ERROR);
return false;
}
//Retira possíveis assentos em duplicidade utilizando Set
if(!asientosReservados.getValue().equals("") && assentosReservados.length > 0){
Set<String> assentosSemDuplicacao = new HashSet<String>();
StringBuilder assentos = new StringBuilder();
assentosSemDuplicacao.addAll(Arrays.asList(assentosReservados));
assentosReservados = assentosSemDuplicacao.toArray(new String[assentosSemDuplicacao.size()]);
for(String assento :assentosReservados){
assentos.append(assento.trim()).append(";");
}
assentos.replace(assentos.length()-1, assentos.length(),"");
asientosReservados.setValue(assentos.toString());
}
return true;
}
public void onClick$btnAdicionarDesconto(Event ev) throws InterruptedException {
if (cmbCategorias.getSelectedItem() == null) {
@ -639,65 +678,67 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp
}
if (!existe) {
CategoriaDescuento cDescuento = new CategoriaDescuento();
cDescuento.setCategoriaCtrl(categoriaCtrl);
cDescuento.setActivo(Boolean.TRUE);
cDescuento.setFecmodif(Calendar.getInstance().getTime());
cDescuento.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
cDescuento.setCategoria((Categoria) cmbCategorias.getSelectedItem().getValue());
cDescuento.setCantautorizada(cantAutorizada.getValue());
cDescuento.setDescuentoimporte(descuentoImporte.getValue());
cDescuento.setDescuentoporc(descuentoPorc.getValue());
cDescuento.setIndImporteOutros(chkPrecoOutros.isChecked());
cDescuento.setIndImportePedagio(chkPrecoPedagio.isChecked());
cDescuento.setIndImporteSeguro(chkPrecoSeguro.isChecked());
cDescuento.setIndImporteTxEmbarque(chkPrecoTxEmbarque.isChecked());
cDescuento.setIndVentaAbierto(rdVendeAbertoSim.isSelected());
cDescuento.setIndLiberacionSolamenteEnvasado(chkLiberacionSolamenteEnvasado.isChecked());
cDescuento.setAsientosReservados(asientosReservados.getValue());
if(validarCampoAssentosReservados()){
CategoriaDescuento cDescuento = new CategoriaDescuento();
cDescuento.setCategoriaCtrl(categoriaCtrl);
cDescuento.setActivo(Boolean.TRUE);
cDescuento.setFecmodif(Calendar.getInstance().getTime());
cDescuento.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
cDescuento.setCategoria((Categoria) cmbCategorias.getSelectedItem().getValue());
cDescuento.setCantautorizada(cantAutorizada.getValue());
cDescuento.setDescuentoimporte(descuentoImporte.getValue());
cDescuento.setDescuentoporc(descuentoPorc.getValue());
cDescuento.setIndImporteOutros(chkPrecoOutros.isChecked());
cDescuento.setIndImportePedagio(chkPrecoPedagio.isChecked());
cDescuento.setIndImporteSeguro(chkPrecoSeguro.isChecked());
cDescuento.setIndImporteTxEmbarque(chkPrecoTxEmbarque.isChecked());
cDescuento.setIndVentaAbierto(rdVendeAbertoSim.isSelected());
cDescuento.setIndLiberacionSolamenteEnvasado(chkLiberacionSolamenteEnvasado.isChecked());
cDescuento.setAsientosReservados(asientosReservados.getValue());
if (rdVendaAntecipadaSi.isChecked()) {
cDescuento.setTiempoDesactivar(spnHora.getValue(), spnMinuto.getValue());
} else {
cDescuento.setTiempoActivar(spnHora.getValue(), spnMinuto.getValue());
}
if (cmbIndGeneraFeriado.getSelectedItem() != null) {
cDescuento.setIndAplicaFeriado((String) cmbIndGeneraFeriado.getSelectedItem().getValue());
}
if (radioImprimePassagem.isSelected()) {
cDescuento.setIndImprimeBoleto(Boolean.TRUE);
} else if (radioNaoImprimePassagem.isSelected()) {
cDescuento.setIndImprimeBoleto(Boolean.FALSE);
}
cDescuento.setIndCuota(false);
cDescuento.setIndCuotaTramo(false);
if (rdCuotaSi.isChecked()) {
if (timeTempoPermitir.getValue() == null) {
throw new WrongValueException(timeTempoPermitir, Labels.getLabel("MSG.CONSTRAINT.CONSTRAINTNUMBERBDOBLIGATORIO"));
if (rdVendaAntecipadaSi.isChecked()) {
cDescuento.setTiempoDesactivar(spnHora.getValue(), spnMinuto.getValue());
} else {
cDescuento.setTiempoActivar(spnHora.getValue(), spnMinuto.getValue());
}
cDescuento.setIndCuota(true);
cDescuento.setIndCuotaTramo(rdTrecho.isChecked());
cDescuento.setTiempoCuota(timeTempoPermitir.getValue());
}
if (cmbIndGeneraFeriado.getSelectedItem() != null) {
cDescuento.setIndAplicaFeriado((String) cmbIndGeneraFeriado.getSelectedItem().getValue());
}
lsCategoriaDescuento.add(cDescuento);
categoriaDescuentoList.addItemNovo(cDescuento);
categoriaCtrl.setCategoriaDescuentoList(lsCategoriaDescuento);
if (radioImprimePassagem.isSelected()) {
cDescuento.setIndImprimeBoleto(Boolean.TRUE);
} else if (radioNaoImprimePassagem.isSelected()) {
cDescuento.setIndImprimeBoleto(Boolean.FALSE);
}
cmbCategorias.setSelectedItem(null);
cantAutorizada.setRawValue(null);
if (radioImp.isChecked()) {
onClick$radioImp(null);
} else {
onClick$radioPor(null);
}
onClick$rdVendaAntecipadaNo(null);
rdVendaAntecipadaNo.setChecked(true);
cDescuento.setIndCuota(false);
cDescuento.setIndCuotaTramo(false);
if (rdCuotaSi.isChecked()) {
if (timeTempoPermitir.getValue() == null) {
throw new WrongValueException(timeTempoPermitir, Labels.getLabel("MSG.CONSTRAINT.CONSTRAINTNUMBERBDOBLIGATORIO"));
}
cDescuento.setIndCuota(true);
cDescuento.setIndCuotaTramo(rdTrecho.isChecked());
cDescuento.setTiempoCuota(timeTempoPermitir.getValue());
}
lsCategoriaDescuento.add(cDescuento);
categoriaDescuentoList.addItemNovo(cDescuento);
categoriaCtrl.setCategoriaDescuentoList(lsCategoriaDescuento);
cmbCategorias.setSelectedItem(null);
cantAutorizada.setRawValue(null);
if (radioImp.isChecked()) {
onClick$radioImp(null);
} else {
onClick$radioPor(null);
}
onClick$rdVendaAntecipadaNo(null);
rdVendaAntecipadaNo.setChecked(true);
}
} else {
Messagebox.show(
Labels.getLabel("MSG.Registro.Existe"),

View File

@ -5,6 +5,9 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.configuracioneccomerciales;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@ -17,6 +20,7 @@ import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Row;
@ -62,6 +66,8 @@ public class EditarConfiguracionCategoriaDatosCategoriaController extends MyGene
private Radio radioNaoVentaSolamenteReserva;
private Row linhaLiberarPoltronasQuandoOnibus;
private Row linhaAssentosReservados;
private Textbox asientosReservados;
private Intbox cantAutorizada;
@Override
public void doAfterCompose(Component comp) throws Exception {
@ -132,9 +138,13 @@ public class EditarConfiguracionCategoriaDatosCategoriaController extends MyGene
rdVendaAbertoNao.setChecked(true);
}
linhaLiberarPoltronasQuandoOnibus.setVisible(false);
linhaAssentosReservados.setVisible(false);
if(categoriaDescuento.getIndCuota()== true){
linhaLiberarPoltronasQuandoOnibus.setVisible(true);
linhaAssentosReservados.setVisible(true);
}else{
linhaLiberarPoltronasQuandoOnibus.setVisible(false);
linhaAssentosReservados.setVisible(false);
}
}
private void preencherDataHora(Integer tiempoMinutos){
if (tiempoMinutos != null){
@ -190,9 +200,51 @@ public class EditarConfiguracionCategoriaDatosCategoriaController extends MyGene
categoriaDescuento.setTiempoCuota(timeTempoPermitir.getValue());
}
if(!validarCampoAssentosReservados()){
return;
}
categoriaDescuento.setAsientosReservados(asientosReservados.getValue());
categoriaDescuentoList.updateItem(categoriaDescuento);
this.closeWindow();
}
private Boolean validarCampoAssentosReservados() throws InterruptedException{
//Verifica se o campo possui números separados por ponto e vírgula.
//Não permite que outros caracteres sejam digitados.
if (!asientosReservados.getValue().equals("") && !asientosReservados.getValue().toString().matches("(([1-9]([0-9])+;)|([1-9]([0-9])+)|([1-9];)|([1-9][1-9][1-9])|[1-9])+")){
Messagebox.show(
Labels.getLabel("editarConfiguracionCategoriaController.msg.validacaoAssentosReservadosPontoeVirgula"),
Labels.getLabel("editarConfiguracionCategoriaController.window.title"),
Messagebox.OK, Messagebox.ERROR);
return false;
}
//Verifica se a quantidade de assentos reservados é menor que a quantidade de assentos autorizados.
String assentosReservados[] = asientosReservados.getValue().toString().split(";");
if(assentosReservados.length > cantAutorizada.getValue()){
Messagebox.show(
Labels.getLabel("editarConfiguracionCategoriaController.msg.validacaoAssentosReservados"),
Labels.getLabel("editarConfiguracionCategoriaController.window.title"),
Messagebox.OK, Messagebox.ERROR);
return false;
}
//Retira possíveis assentos em duplicidade utilizando Set
if(!asientosReservados.getValue().equals("") && assentosReservados.length > 0){
Set<String> assentosSemDuplicacao = new HashSet<String>();
StringBuilder assentos = new StringBuilder();
assentosSemDuplicacao.addAll(Arrays.asList(assentosReservados));
assentosReservados = assentosSemDuplicacao.toArray(new String[assentosSemDuplicacao.size()]);
for(String assento :assentosReservados){
assentos.append(assento.trim()).append(";");
}
assentos.replace(assentos.length()-1, assentos.length(),"");
asientosReservados.setValue(assentos.toString());
}
return true;
}
public CategoriaDescuento getCategoriaDescuento() {
return categoriaDescuento;

View File

@ -1511,6 +1511,9 @@ editarConfiguracionCategoriaController.lblSimVentaSolamenteReserva.value = Si
editarConfiguracionCategoriaController.lblNaoVentaSolamenteReserva.value = No
editarConfiguracionCategoriaController.lblHeaderVentaSolamenteReserva.value = V. So. Reserva
editarConfiguracionCategoriaController.msg.validacaoAssentosReservados = O número de assentos reservados não pode ser maior que a quantidade autorizada
editarConfiguracionCategoriaController.msg.validacaoAssentosReservadosPontoeVirgula = Digite assentos separados por ponto e virgula. Assentos não devem conter zeros à esquerda
# Detener a pantalla de Búsqueda
busquedaCatalogoDeParadaController.window.title = Parada
busquedaCatalogoDeParadaController.btnRefresh.tooltiptext = Actualizar

View File

@ -1550,6 +1550,9 @@ editarConfiguracionCategoriaController.lblSimVentaSolamenteReserva.value = Sim
editarConfiguracionCategoriaController.lblNaoVentaSolamenteReserva.value = Não
editarConfiguracionCategoriaController.lblHeaderVentaSolamenteReserva.value = V. So. Reserva
editarConfiguracionCategoriaController.msg.validacaoAssentosReservados = O número de assentos reservados não pode ser maior que a quantidade autorizada
editarConfiguracionCategoriaController.msg.validacaoAssentosReservadosPontoeVirgula = Digite assentos separados por ponto e virgula. Assentos não devem conter zeros à esquerda
# Detener a pantalla de Pesquisa
busquedaCatalogoDeParadaController.window.title = Localidade
busquedaCatalogoDeParadaController.btnRefresh.tooltiptext = Atualizar