fixes bug #7587 - reajuste automatico de vigencia - merge
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@58379 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
c0be1873a4
commit
a92c7fb3cd
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -20,6 +21,8 @@ import org.zkoss.zk.ui.event.Event;
|
|||
import org.zkoss.zul.Button;
|
||||
import org.zkoss.zul.Datebox;
|
||||
|
||||
import com.ctc.wstx.util.DataUtil;
|
||||
import com.rjconsultores.ventaboletos.dao.VigenciaTarifaDAO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Tarifa;
|
||||
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||
import com.rjconsultores.ventaboletos.service.TarifaService;
|
||||
|
@ -29,6 +32,8 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|||
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
|
||||
|
||||
import bsh.org.objectweb.asm.Label;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author rodrigo
|
||||
|
@ -115,67 +120,47 @@ public class EditarVigenciaTarifaController extends MyGenericForwardComposer {
|
|||
Date inicio = fecInicio.getValue();
|
||||
Date fim = fecFinal.getValue();
|
||||
|
||||
// checando se o fim da vigencia eh menor que o inicio:
|
||||
if (!fim.before(inicio)) {
|
||||
vigenciaTarifa.setFeciniciovigencia(DateUtil.inicioFecha(inicio));
|
||||
vigenciaTarifa.setFecfinvigencia(DateUtil.fimFecha(fim));
|
||||
|
||||
// checando se a vigencia pode ser salva. A data de inicio de uma
|
||||
// nova vigencia tem q ser maior que a da fim da vigencia anterior
|
||||
// para que não tenha tarifas com duas vigencias:
|
||||
// Não traga ela mesma se em edição
|
||||
List<VigenciaTarifa> lsVigencias = vigenciaTarifaService.buscarVigenciasIntervalo(vigenciaTarifa);
|
||||
Boolean podeSalvar = lsVigencias.isEmpty() ? true : false;
|
||||
// Se for ele mesmo pode salvar.
|
||||
if (lsVigencias.size() == 1) {
|
||||
// Somente eição
|
||||
if (vigenciaTarifa.getVigenciatarifaId() != null) {
|
||||
if (vigenciaTarifa.getVigenciatarifaId().equals(lsVigencias.get(0).getVigenciatarifaId())) {
|
||||
podeSalvar = true;
|
||||
|
||||
// Nova Tarifa ou em edição e sem conflitos
|
||||
if ((lsVigencias.isEmpty() && vigenciaTarifa.getVigenciatarifaId() == null)
|
||||
|| (lsVigencias.isEmpty() && vigenciaTarifa.getVigenciatarifaId() != null)) {
|
||||
|
||||
salvarVigencia();
|
||||
} else {
|
||||
StringBuilder msgConflito = new StringBuilder(Labels.getLabel("editarVigenciaTarifaController.MSG.conflitoVigencias"));
|
||||
msgConflito.append(". ");
|
||||
VigenciaTarifa vigenciaBase = lsVigencias.get(0);
|
||||
|
||||
if (vigenciaTarifa.getVigenciatarifaId() == null
|
||||
&& vigenciaTarifa.getFeciniciovigencia().equals(vigenciaBase.getFeciniciovigencia())) {
|
||||
Messagebox.show(getMsgDataInicioIgual(msgConflito, vigenciaBase));
|
||||
return;
|
||||
}
|
||||
|
||||
Boolean indDataInicialConflitante = indDataInicialConflitante(vigenciaBase, msgConflito);
|
||||
if (indDataInicialConflitante && lsVigencias.size() > 1) {
|
||||
VigenciaTarifa vigenciaPosterior = lsVigencias.get(1);
|
||||
setDataFinalAntesVigenciaParam(vigenciaPosterior, msgConflito);
|
||||
}
|
||||
|
||||
msgConflito.append("\n");
|
||||
msgConflito.append(Labels.getLabel("editarVigenciaTarifaController.MSG.continuar"));
|
||||
int opcao = Messagebox.show(msgConflito.toString(), "", Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION);
|
||||
|
||||
if (opcao == Messagebox.OK) {
|
||||
salvarVigencia();
|
||||
if (indDataInicialConflitante) {
|
||||
atualizarItem(vigenciaBase);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (podeSalvar) {
|
||||
if (vigenciaTarifa.getVigenciatarifaId() == null) {
|
||||
if (lsVigencias.isEmpty()) {
|
||||
vigenciaTarifaService.suscribir(vigenciaTarifa);
|
||||
vigenciaList.addItem(vigenciaTarifa);
|
||||
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.btnFechar.MSG.SuscbrirOK"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
|
||||
closeWindow();
|
||||
}
|
||||
else {
|
||||
Messagebox.show(
|
||||
Labels.getLabel("MSG.Registro.Existe"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
}
|
||||
}
|
||||
else {
|
||||
vigenciaTarifaService.actualizacion(vigenciaTarifa);
|
||||
vigenciaList.updateItem(vigenciaTarifa);
|
||||
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.btnFechar.MSG.SuscbrirOK"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.MSG.conflitoVigencias"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.MSG.FimMenorInicio"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
|
@ -183,6 +168,89 @@ public class EditarVigenciaTarifaController extends MyGenericForwardComposer {
|
|||
}
|
||||
}
|
||||
|
||||
private Boolean indDataInicialConflitante(VigenciaTarifa vigenciaBase, StringBuilder msgConflito) {
|
||||
|
||||
if (vigenciaTarifa.getFeciniciovigencia().before(vigenciaBase.getFeciniciovigencia())) {
|
||||
// Apenas data final é conflitante...
|
||||
// Reduzir a data final da nova vigencia para um dia anterior
|
||||
// a data inicial da vigencia conflitante(Posterior, a entrar em vigencia)
|
||||
|
||||
setDataFinalAntesVigenciaParam(vigenciaBase, msgConflito);
|
||||
return false;
|
||||
|
||||
} else {
|
||||
// Nova vigencia tem data inicial conflitante mas nao igual
|
||||
// a data inicial da vigencia conflitante(Anteriormente em vigencia)...
|
||||
// Reduza a data final da vigencia conflitante para um dia anterior a nova vigencia (tire sua vigencia)
|
||||
|
||||
vigenciaBase.setFecfinvigencia(DateUtil.somarMinutos(vigenciaTarifa.getFeciniciovigencia(), -1));
|
||||
setMsgDataInicioConflitante(msgConflito, vigenciaBase);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void setDataFinalAntesVigenciaParam(VigenciaTarifa vigenciaBase, StringBuilder msgConflito) {
|
||||
vigenciaTarifa.setFecfinvigencia(DateUtil.somarMinutos(vigenciaBase.getFeciniciovigencia(), -1));
|
||||
setMegDataFinalConflitante(msgConflito);
|
||||
}
|
||||
|
||||
private void setMsgDataInicioConflitante(StringBuilder msgConflito, VigenciaTarifa vigenciaBase) {
|
||||
msgConflito.append(" ");
|
||||
msgConflito.append(Labels.getLabel("editarVigenciaTarifaController.MSG.dataInicialConflitante"));
|
||||
msgConflito.append(" ");
|
||||
msgConflito.append(SimpleDateFormat.getInstance().format(vigenciaBase.getFecfinvigencia()));
|
||||
msgConflito.append(". ");
|
||||
}
|
||||
|
||||
private void setMegDataFinalConflitante(StringBuilder msgConflito) {
|
||||
msgConflito.append(" ");
|
||||
msgConflito.append(Labels.getLabel("editarVigenciaTarifaController.MSG.dataFinalConflitante"));
|
||||
msgConflito.append(" ");
|
||||
msgConflito.append(SimpleDateFormat.getInstance().format(vigenciaTarifa.getFecfinvigencia()));
|
||||
msgConflito.append(". ");
|
||||
}
|
||||
|
||||
private String getMsgDataInicioIgual(StringBuilder msgConflito, VigenciaTarifa vigenciaBase) {
|
||||
msgConflito.append(Labels.getLabel("editarVigenciaTarifaController.MSG.dataInicialIgual"));
|
||||
msgConflito.append(" ");
|
||||
msgConflito.append(vigenciaBase.getVigenciatarifaId());
|
||||
return msgConflito.toString();
|
||||
}
|
||||
|
||||
private void salvarVigencia() throws InterruptedException {
|
||||
if (vigenciaTarifa.getVigenciatarifaId() == null) {
|
||||
salvarItemNovo();
|
||||
} else {
|
||||
atualizarItem(vigenciaTarifa);
|
||||
}
|
||||
}
|
||||
|
||||
private void atualizarItem(VigenciaTarifa vigencia) throws InterruptedException {
|
||||
vigenciaTarifaService.actualizacion(vigencia);
|
||||
vigenciaList.updateItem(vigencia);
|
||||
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.btnFechar.MSG.SuscbrirOK"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
|
||||
closeWindow();
|
||||
|
||||
}
|
||||
|
||||
private void salvarItemNovo() throws InterruptedException {
|
||||
vigenciaTarifaService.suscribir(vigenciaTarifa);
|
||||
vigenciaList.addItemNovo(vigenciaTarifa);
|
||||
|
||||
Messagebox.show(
|
||||
Labels.getLabel("editarVigenciaTarifaController.btnFechar.MSG.SuscbrirOK"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
|
||||
closeWindow();
|
||||
|
||||
}
|
||||
|
||||
public void onClick$btnApagar(Event ev) throws InterruptedException {
|
||||
vigenciaTarifa.setFecmodif(Calendar.getInstance().getTime());
|
||||
vigenciaTarifa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
|
@ -202,8 +270,7 @@ public class EditarVigenciaTarifaController extends MyGenericForwardComposer {
|
|||
Labels.getLabel("editarVigenciaTarifaController.MSG.podeApagar"),
|
||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
vigenciaTarifaService.borrar(vigenciaTarifa);
|
||||
vigenciaList.removeItem(vigenciaTarifa);
|
||||
|
||||
|
|
|
@ -2265,7 +2265,11 @@ editarVigenciaTarifaController.btnApagar.tooltiptext = Eliminar
|
|||
editarVigenciaTarifaController.btnSalvar.tooltiptext = Guardar
|
||||
editarVigenciaTarifaController.btnFechar.tooltiptext = Cerrar
|
||||
editarVigenciaTarifaController.MSG.FimMenorInicio = Vigencia final menor que inicial
|
||||
editarVigenciaTarifaController.MSG.conflitoVigencias = La vigencia informada se traslapa con otra ya existente
|
||||
editarVigenciaTarifaController.MSG.conflitoVigencias = La vigencia informada se traslapa con otras ya existente
|
||||
editarVigenciaTarifaController.MSG.dataInicialConflitante = A vigência de data conflitante terá a data final ajustada para o dia
|
||||
editarVigenciaTarifaController.MSG.dataFinalConflitante = A data final da nova vigência será ajustada para
|
||||
editarVigenciaTarifaController.MSG.dataInicialIgual= Ha uma vigência de mesma data inicial com id
|
||||
editarVigenciaTarifaController.MSG.continuar=Deseja continuar?
|
||||
editarVigenciaTarifaController.MSG.podeApagar = Hay tarifas con esta vigencia, no es posible elimimar
|
||||
editarVigenciaTarifaController.MSG.fecVenta = Fecha vigencia venta debe de estar entre fecha início y fecha fin
|
||||
|
||||
|
|
|
@ -2318,7 +2318,11 @@ editarVigenciaTarifaController.btnApagar.tooltiptext = Eliminar
|
|||
editarVigenciaTarifaController.btnSalvar.tooltiptext = Salvar
|
||||
editarVigenciaTarifaController.btnFechar.tooltiptext = Fechar
|
||||
editarVigenciaTarifaController.MSG.FimMenorInicio = Vigência Final menor que Inicial.
|
||||
editarVigenciaTarifaController.MSG.conflitoVigencias = A vigência informada se sobrepõe com outra já existente.
|
||||
editarVigenciaTarifaController.MSG.conflitoVigencias = A vigência informada se sobrepõe outras já existentes
|
||||
editarVigenciaTarifaController.MSG.dataInicialConflitante = A vigência de data conflitante terá a data final ajustada para o dia
|
||||
editarVigenciaTarifaController.MSG.dataFinalConflitante = A data final da nova vigência será ajustada para
|
||||
editarVigenciaTarifaController.MSG.dataInicialIgual= Ha uma vigência de mesma data inicial com id
|
||||
editarVigenciaTarifaController.MSG.continuar=Deseja continuar?
|
||||
editarVigenciaTarifaController.MSG.podeApagar = Há tarifas com esta vigência, não é possível elimimar.
|
||||
editarVigenciaTarifaController.MSG.fecVenta = Data vigência Venda deve estar entre data início e data Fim.
|
||||
|
||||
|
|
Loading…
Reference in New Issue