package gcom.gui.cadastro.imovel;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Action ConsultarRelacaoClienteImovelAction
*
* @author thiago toscano
* @date 10/03/2006
*/
public class ConsultarRelacaoClienteImovelAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse httpServletResponse) {
ConsultarRelacaoClienteImovelActionForm form = (ConsultarRelacaoClienteImovelActionForm) actionForm;
validarPeriodosInformados(form);
setarAtributosNaSessao(request, form);
if ( Util.verificarNaoVazio(form.getIdCliente()) ) {
return actionMapping.findForward("cliente");
}
return actionMapping.findForward("imovel");
}
/**
*M�todo coloca alguns atributos na sess�o para uso posterior
*dos actions que v�o exibir os dados da consulta.
*
*@since 11/09/2009
*@author Marlon Patrick
*/
private void setarAtributosNaSessao(HttpServletRequest request,
ConsultarRelacaoClienteImovelActionForm form) {
HttpSession sessao = request.getSession(false);
sessao.setAttribute("manterDadosSesao", "true");
sessao.setAttribute("idCliente", form.getIdCliente());
sessao.setAttribute("idImovel", form.getIdImovel());
sessao.setAttribute("periodoInicialDataInicioRelacao", form.getPeriodoInicialDataInicioRelacao());
sessao.setAttribute("periodoFinalDataInicioRelacao", form.getPeriodoFinalDataInicioRelacao());
sessao.setAttribute("periodoInicialDataFimRelacao", form.getPeriodoInicialDataFimRelacao());
sessao.setAttribute("periodoFinalDataFimRelacao", form.getPeriodoFinalDataFimRelacao());
sessao.setAttribute("idClienteImovelFimRelacaoMotivo", form.getIdClienteImovelFimRelacaoMotivo());
sessao.setAttribute("idClienteRelacaoTipo", form.getIdClienteRelacaoTipo());
sessao.setAttribute("situacaoRelacao", form.getSituacaoRelacao());
}
/**
*Este m�todo valida os periodos de datas informados pelo usuario.
*Se alguma data inicial for maior que uma data final ent�o uma exce��o
*ser� lan�ada.
*
*@since 11/09/2009
*@author Marlon Patrick
*/
private void validarPeriodosInformados(ConsultarRelacaoClienteImovelActionForm form) {
if ( Util.verificarNaoVazio(form.getPeriodoFinalDataInicioRelacao()) ) {
if ( Util.verificarNaoVazio(form.getPeriodoFinalDataInicioRelacao())) {
Date periodoInicialDataInicioRelacao = Util.converteStringParaDate(form.getPeriodoInicialDataInicioRelacao());
Date periodoFinalDataInicioRelacao = Util.converteStringParaDate(form.getPeriodoFinalDataInicioRelacao());
if (periodoInicialDataInicioRelacao.compareTo(periodoFinalDataInicioRelacao) > 0) {
throw new ActionServletException("atencao.data.inicio.posterior.data.fim", null, "In�cio");
}
}
}
if (Util.verificarNaoVazio(form.getPeriodoInicialDataFimRelacao())) {
if (Util.verificarNaoVazio(form.getPeriodoFinalDataFimRelacao())) {
Date periodoInicialDataFimRelacao = Util.converteStringParaDate(form.getPeriodoInicialDataFimRelacao());
Date periodoFinalDataFimRelacao = Util.converteStringParaDate(form.getPeriodoFinalDataFimRelacao());
if (periodoInicialDataFimRelacao.compareTo(periodoFinalDataFimRelacao) > 0) {
throw new ActionServletException("atencao.data.inicio.posterior.data.fim", null, "Fim");
}
}
}
}
}