package gcom.gui.cadastro.imovel;
import gcom.cadastro.cliente.ClienteImovelSimplificado;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.imovel.EntidadeBeneficente;
import gcom.cadastro.imovel.FiltroEntidadeBeneficente;
import gcom.cadastro.imovel.FiltroImovelDoacao;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelDoacao;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC0389] - Inserir Im�vel Doa��o Action respons�vel pela pre-exibi��o da
* pagina de inserir ImovelDoacao
*
* @author C�sar Ara�jo
* @created 22 de agosto de 2006
*/
public class ExibirManterImovelDoacaoAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
/*** Declara e inicializa vari�veis ***/
String idImovel = null;
Fachada fachada = null;
String nomeCliente = null;
String situacaoAgua = null;
String situacaoEsgoto = null;
ActionForward retorno = null;
Imovel imovelEncontrado = null;
FiltroImovelDoacao filtroImovelDoacao = null;
FiltroClienteImovel filtroClienteImovel = null;
Collection<ImovelDoacao> colecaoImovelDoacao = null;
Collection<ClienteImovelSimplificado> colecaoClienteImovel = null;
/*** Procedimentos b�sicos para execu��o do m�todo ***/
retorno = actionMapping.findForward("manterImovelDoacao");
fachada = Fachada.getInstancia();
/*** Testa se � um reload ou se est� vindo da tela de sucesso de inser��o de imovel doacao ***/
if (httpServletRequest.getParameter("idRegistroAtualizacao") != null) {
idImovel = httpServletRequest.getParameter("idRegistroAtualizacao");
} else {
idImovel = (String)httpServletRequest.getParameter("idImovel");
}
if (idImovel != null && !idImovel.trim().equals("")) {
imovelEncontrado = (Imovel)fachada.pesquisarImovelDigitado(new Integer(idImovel));
if (imovelEncontrado != null) {
httpServletRequest.setAttribute("idImovelEncontrado", imovelEncontrado.getId().toString());
httpServletRequest.setAttribute("inscricaoImovelEncontrado", imovelEncontrado.getInscricaoFormatada());
/*** Prepara o filtro de cliente imovel para a pesquisa ***/
filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.IMOVEL_ID, imovelEncontrado.getId()));
colecaoClienteImovel = (Collection<ClienteImovelSimplificado>)fachada.pesquisarClienteImovel(filtroClienteImovel);
/*** Percorre a cole��o para identificar o cliente v�lido,
* ou seja, que tem data de fim rela�ao nula ***/
for (ClienteImovelSimplificado clienteImovel: colecaoClienteImovel) {
if (clienteImovel.getDataFimRelacao() == null) {
nomeCliente = clienteImovel.getCliente().getNome();
}
}
/*** Define filtro pra pesquisar e alimenta a colecao de entidade beneficente ***/
//--------------------------------------------------------------
// CRC933
// Autor: Yara T. Souza
// Data : 06/01/2009
//--------------------------------------------------------------
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
FiltroEntidadeBeneficente filtroEntidadeBeneficente = new FiltroEntidadeBeneficente();
filtroEntidadeBeneficente.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroEntidadeBeneficente.adicionarParametro(new ParametroSimples(FiltroEntidadeBeneficente.ID_EMPRESA, usuarioLogado.getEmpresa().getId()));
Collection collEntidadeBeneficente = fachada.pesquisar(filtroEntidadeBeneficente, EntidadeBeneficente.class.getName());
EntidadeBeneficente entidadeBeneficente = (EntidadeBeneficente)Util.retonarObjetoDeColecao(collEntidadeBeneficente);
//--------------------------------------------------------------
/*** Atribui os de situa��o �gua esgoto***/
situacaoAgua = imovelEncontrado.getLigacaoAguaSituacao().getDescricao();
situacaoEsgoto = imovelEncontrado.getLigacaoEsgotoSituacao().getDescricao();
/*** Seta um atributo no request para cor do campo de inscricao do im�vel para preto***/
httpServletRequest.setAttribute("corInscricao", "#000000");
/*** Prepara o filtro de im�vel doacao para a pesquisa ***/
filtroImovelDoacao = new FiltroImovelDoacao();
filtroImovelDoacao.adicionarParametro(new ParametroSimples(FiltroImovelDoacao.ID_IMOVEL, imovelEncontrado.getId()));
if(entidadeBeneficente != null){
filtroImovelDoacao.adicionarParametro(new ParametroSimples(FiltroImovelDoacao.ID_ENTIDADE_BENEFICENTE, entidadeBeneficente.getId()));
}
filtroImovelDoacao.adicionarCaminhoParaCarregamentoEntidade("entidadeBeneficente.cliente");
filtroImovelDoacao.adicionarCaminhoParaCarregamentoEntidade("usuarioAdesao");
filtroImovelDoacao.adicionarCaminhoParaCarregamentoEntidade("usuarioCancelamento");
colecaoImovelDoacao = (Collection<ImovelDoacao>)fachada.pesquisar(filtroImovelDoacao, ImovelDoacao.class.getName());
/*** Valida se a cole��o est� preenchida ***/
if (colecaoImovelDoacao != null && colecaoImovelDoacao.size() == 0) {
throw new ActionServletException("atencao.naocadastrado", null, "Im�vel(eis) Doa��o(�os)");
}
httpServletRequest.setAttribute("colecaoImovelDoacao", colecaoImovelDoacao);
} else {
/*** Caso a pesquisa de im�vel tenha n�o tenha um resultado adequado ***/
/*** Seta um atributo no request para cor do campo de inscricao do im�vel para preto***/
httpServletRequest.setAttribute("corInscricao", "#ff0000");
httpServletRequest.setAttribute("inscricaoImovelEncontrado", ConstantesSistema.CODIGO_IMOVEL_INEXISTENTE);
}
} else {
httpServletRequest.setAttribute("idImovelEncontrado", null);
httpServletRequest.setAttribute("inscricaoImovelEncontrado", null);
}
/*** Atribui os dados do im�vel ***/
httpServletRequest.setAttribute("nomeCliente", nomeCliente);
httpServletRequest.setAttribute("situacaoAgua", situacaoAgua);
httpServletRequest.setAttribute("situacaoEsgoto", situacaoEsgoto);
return retorno;
}
}