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;
|
package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -20,6 +21,8 @@ import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zul.Button;
|
import org.zkoss.zul.Button;
|
||||||
import org.zkoss.zul.Datebox;
|
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.Tarifa;
|
||||||
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||||
import com.rjconsultores.ventaboletos.service.TarifaService;
|
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.MyGenericForwardComposer;
|
||||||
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
|
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
|
||||||
|
|
||||||
|
import bsh.org.objectweb.asm.Label;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author rodrigo
|
* @author rodrigo
|
||||||
|
@ -115,67 +120,47 @@ public class EditarVigenciaTarifaController extends MyGenericForwardComposer {
|
||||||
Date inicio = fecInicio.getValue();
|
Date inicio = fecInicio.getValue();
|
||||||
Date fim = fecFinal.getValue();
|
Date fim = fecFinal.getValue();
|
||||||
|
|
||||||
// checando se o fim da vigencia eh menor que o inicio:
|
|
||||||
if (!fim.before(inicio)) {
|
if (!fim.before(inicio)) {
|
||||||
vigenciaTarifa.setFeciniciovigencia(DateUtil.inicioFecha(inicio));
|
vigenciaTarifa.setFeciniciovigencia(DateUtil.inicioFecha(inicio));
|
||||||
vigenciaTarifa.setFecfinvigencia(DateUtil.fimFecha(fim));
|
vigenciaTarifa.setFecfinvigencia(DateUtil.fimFecha(fim));
|
||||||
|
|
||||||
// checando se a vigencia pode ser salva. A data de inicio de uma
|
// Não traga ela mesma se em edição
|
||||||
// nova vigencia tem q ser maior que a da fim da vigencia anterior
|
|
||||||
// para que não tenha tarifas com duas vigencias:
|
|
||||||
List<VigenciaTarifa> lsVigencias = vigenciaTarifaService.buscarVigenciasIntervalo(vigenciaTarifa);
|
List<VigenciaTarifa> lsVigencias = vigenciaTarifaService.buscarVigenciasIntervalo(vigenciaTarifa);
|
||||||
Boolean podeSalvar = lsVigencias.isEmpty() ? true : false;
|
|
||||||
// Se for ele mesmo pode salvar.
|
// Nova Tarifa ou em edição e sem conflitos
|
||||||
if (lsVigencias.size() == 1) {
|
if ((lsVigencias.isEmpty() && vigenciaTarifa.getVigenciatarifaId() == null)
|
||||||
// Somente eição
|
|| (lsVigencias.isEmpty() && vigenciaTarifa.getVigenciatarifaId() != null)) {
|
||||||
if (vigenciaTarifa.getVigenciatarifaId() != null) {
|
|
||||||
if (vigenciaTarifa.getVigenciatarifaId().equals(lsVigencias.get(0).getVigenciatarifaId())) {
|
salvarVigencia();
|
||||||
podeSalvar = true;
|
} 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (podeSalvar) {
|
Boolean indDataInicialConflitante = indDataInicialConflitante(vigenciaBase, msgConflito);
|
||||||
if (vigenciaTarifa.getVigenciatarifaId() == null) {
|
if (indDataInicialConflitante && lsVigencias.size() > 1) {
|
||||||
if (lsVigencias.isEmpty()) {
|
VigenciaTarifa vigenciaPosterior = lsVigencias.get(1);
|
||||||
vigenciaTarifaService.suscribir(vigenciaTarifa);
|
setDataFinalAntesVigenciaParam(vigenciaPosterior, msgConflito);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
msgConflito.append("\n");
|
||||||
else {
|
msgConflito.append(Labels.getLabel("editarVigenciaTarifaController.MSG.continuar"));
|
||||||
Messagebox.show(
|
int opcao = Messagebox.show(msgConflito.toString(), "", Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION);
|
||||||
Labels.getLabel("editarVigenciaTarifaController.MSG.conflitoVigencias"),
|
|
||||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
if (opcao == Messagebox.OK) {
|
||||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
salvarVigencia();
|
||||||
|
if (indDataInicialConflitante) {
|
||||||
|
atualizarItem(vigenciaBase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
|
} else {
|
||||||
Messagebox.show(
|
Messagebox.show(
|
||||||
Labels.getLabel("editarVigenciaTarifaController.MSG.FimMenorInicio"),
|
Labels.getLabel("editarVigenciaTarifaController.MSG.FimMenorInicio"),
|
||||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
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 {
|
public void onClick$btnApagar(Event ev) throws InterruptedException {
|
||||||
vigenciaTarifa.setFecmodif(Calendar.getInstance().getTime());
|
vigenciaTarifa.setFecmodif(Calendar.getInstance().getTime());
|
||||||
vigenciaTarifa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
vigenciaTarifa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
@ -202,8 +270,7 @@ public class EditarVigenciaTarifaController extends MyGenericForwardComposer {
|
||||||
Labels.getLabel("editarVigenciaTarifaController.MSG.podeApagar"),
|
Labels.getLabel("editarVigenciaTarifaController.MSG.podeApagar"),
|
||||||
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
Labels.getLabel("editarVigenciaTarifaController.window.title"),
|
||||||
Messagebox.OK, Messagebox.EXCLAMATION);
|
Messagebox.OK, Messagebox.EXCLAMATION);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
vigenciaTarifaService.borrar(vigenciaTarifa);
|
vigenciaTarifaService.borrar(vigenciaTarifa);
|
||||||
vigenciaList.removeItem(vigenciaTarifa);
|
vigenciaList.removeItem(vigenciaTarifa);
|
||||||
|
|
||||||
|
|
|
@ -2265,7 +2265,11 @@ editarVigenciaTarifaController.btnApagar.tooltiptext = Eliminar
|
||||||
editarVigenciaTarifaController.btnSalvar.tooltiptext = Guardar
|
editarVigenciaTarifaController.btnSalvar.tooltiptext = Guardar
|
||||||
editarVigenciaTarifaController.btnFechar.tooltiptext = Cerrar
|
editarVigenciaTarifaController.btnFechar.tooltiptext = Cerrar
|
||||||
editarVigenciaTarifaController.MSG.FimMenorInicio = Vigencia final menor que inicial
|
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.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
|
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.btnSalvar.tooltiptext = Salvar
|
||||||
editarVigenciaTarifaController.btnFechar.tooltiptext = Fechar
|
editarVigenciaTarifaController.btnFechar.tooltiptext = Fechar
|
||||||
editarVigenciaTarifaController.MSG.FimMenorInicio = Vigência Final menor que Inicial.
|
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.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.
|
editarVigenciaTarifaController.MSG.fecVenta = Data vigência Venda deve estar entre data início e data Fim.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue