diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java index 82bb3a0e1..6ccee5cb9 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java @@ -56,6 +56,7 @@ import com.rjconsultores.ventaboletos.service.TarjetaFidelidadService; import com.rjconsultores.ventaboletos.service.TipoDomicilioService; import com.rjconsultores.ventaboletos.service.TipoOcupacionService; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; @@ -1210,7 +1211,19 @@ public class EditarClienteController extends MyGenericForwardComposer { Messagebox.OK, Messagebox.ERROR); return; } - + + if(isFecFimBeforeFecIni(clienteDescuento)){ + try { + Messagebox.show(Labels.getLabel("editarClienteController.msg.fecFinBeforeFecIni"), + Labels.getLabel("editarClienteController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } catch (InterruptedException e) { + log.error(e); + return; + } + return; + } + clienteDescuento.setActivo(1); clienteDescuento.setFecmodif(Calendar.getInstance().getTime()); clienteDescuento.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); @@ -1219,13 +1232,51 @@ public class EditarClienteController extends MyGenericForwardComposer { lsClienteDescuento = new ArrayList(); lsClienteDescuento.add(clienteDescuento); clienteDescuentoMyListBox.setData(lsClienteDescuento); + limparInput(); } else { - lsClienteDescuento.add(clienteDescuento); - clienteDescuentoMyListBox.setData(lsClienteDescuento); + if(!isVigenciaConflitante(clienteDescuento)){ + lsClienteDescuento.add(clienteDescuento); + clienteDescuentoMyListBox.setData(lsClienteDescuento); + limparInput(); + } } - - limparInput(); - + } + + private boolean isFecFimBeforeFecIni(ClienteDescuento clienteDescuento){ + if(clienteDescuento.getFecFin().before(clienteDescuento.getFecIni())){ + return true; + } + return false; + } + + private boolean isVigenciaConflitante(ClienteDescuento clienteDescuento) { + if(lsClienteDescuento.size() > 0){ + for(ClienteDescuento cd : lsClienteDescuento){ + if(cd.getRuta().getRutaId().intValue() == clienteDescuento.getRuta().getRutaId().intValue() + && cd.getOrigem().getParadaId().intValue() == clienteDescuento.getOrigem().getParadaId().intValue() + && cd.getDestino().getParadaId().intValue() == clienteDescuento.getDestino().getParadaId().intValue()){ + + if((DateUtil.inicioFecha(clienteDescuento.getFecIni()).after(DateUtil.inicioFecha(cd.getFecIni()))) + &&(DateUtil.inicioFecha(clienteDescuento.getFecIni()).before(DateUtil.fimFecha( cd.getFecFin()))) + || + (DateUtil.fimFecha(clienteDescuento.getFecFin()).before(DateUtil.fimFecha(cd.getFecFin()))) + &&(DateUtil.fimFecha(clienteDescuento.getFecFin()).after(DateUtil.inicioFecha( cd.getFecIni()))) + ){ + try { + Messagebox.show( + Labels.getLabel("editarClienteController.msg.conflitoVigencia", new Object[] { cd.getClienteDescuentoId().intValue() }), + Labels.getLabel("editarClienteController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return true; + } catch (InterruptedException e) { + log.error(e); + return true; + } + } + } + } + } + return false; } public void onClick$btnAdicionarFidelidade(Event ev) throws InterruptedException { diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 4d6d7f464..cce4954d3 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -5166,6 +5166,8 @@ editarClienteController.msg.noEmpresa = Favor selecionar uma empresa editarClienteController.msg.noFidelidade = Favor digitar o número de fidelidade editarClienteController.msg.empresa.cadastrada = Empresa já cadastrada editarClienteController.msg.edicao.nao.permitida = Edição não é permitida +editarClienteController.msg.conflitoVigencia = Este Desconto com esta Linha, Origem e Destino e com esta Vigência, esta conflitando com outra já existente de ID = {0} +editarClienteController.msg.fecFinBeforeFecIni = A Data Final não pode ser anterior a Data Inicial # EditarEmpleado editarEmpleadoController.window.title = Empleado diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 08f333669..2c5d959f9 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -5225,6 +5225,8 @@ editarClienteController.msg.noEmpresa = Favor selecionar uma empresa editarClienteController.msg.noFidelidade = Favor digitar o número de fidelidade editarClienteController.msg.empresa.cadastrada = Empresa já cadastrada editarClienteController.msg.edicao.nao.permitida = Edição não é permitida +editarClienteController.msg.conflitoVigencia = Este Desconto com esta Linha, Origem e Destino e com esta Vigência, esta conflitando com outra já existente de ID = {0} +editarClienteController.msg.fecFinBeforeFecIni = A Data Final não pode ser anterior a Data Inicial # EditarEmpleado editarEmpleadoController.window.title = Empregado