package gcom.gui.relatorio.cadastro;
import gcom.cadastro.imovel.EntidadeBeneficente;
import gcom.cadastro.imovel.FiltroEntidadeBeneficente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
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;
/**
* [UC1174] - Gerar Relatorio Imoveis com Doa��es.
*
* @author Erivan Sousa
*
* @date 01/06/2011,17/06/2011
*/
public class ExibirGerarRelatorioImoveisDoacoesAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioImoveisDoacoes");
HttpSession sessao = httpServletRequest.getSession(false);
GerarRelatorioImoveisDoacoesActionForm form = (GerarRelatorioImoveisDoacoesActionForm) actionForm;
// Verifica se entrou apartir
// do menu
if (httpServletRequest.getParameter("menu") != null
&& httpServletRequest.getParameter("menu").toString()
.equalsIgnoreCase("sim")) {
this.limpar(form, sessao);
}
// Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter
String objetoConsulta = httpServletRequest
.getParameter("objetoConsulta");
// Pesquisar Imovel
if (objetoConsulta != null && !objetoConsulta.trim().equals("")) {
if (objetoConsulta.trim().equals("1")) {
// Faz a consulta do Imovel
this.pesquisarImovel(form);
}
if (objetoConsulta.trim().equals("2")) {
// Faz a consulta do Imovel
this.pesquisarUsuarioAdesao(form);
}
if (objetoConsulta.trim().equals("3")) {
// Faz a consulta do Imovel
this.pesquisarUsuarioCancelamento(form);
}
}
this.pesquisarEntidadeBeneficente(httpServletRequest);
this.setaRequest(httpServletRequest, form);
return retorno;
}
private void limpar(GerarRelatorioImoveisDoacoesActionForm form,
HttpSession sessao) {
form.setEntidadeBeneficente("" + ConstantesSistema.NUMERO_NAO_INFORMADO);
form.setImovel("");
form.setPeriodoAdesaoFinal("");
form.setPeriodoAdesaoInicial("");
form.setPeriodoCancelamentoFinal("");
form.setPeriodoCancelamentoInicial("");
form.setReferenciaFimDoacaoInicial("");
form.setReferenciaFimDoacaoFinal("");
form.setReferenciaInicioDoacaoInicial("");
form.setReferenciaInicioDoacaoFinal("");
form.setOpcaoRelatorio("1");
sessao.removeAttribute("imovelEncontrado");
sessao.removeAttribute("usuarioAdesaoEncontrado");
sessao.removeAttribute("usuarioCancelamentoEncontrado");
}
/**
* Pesquisa Entidade Beneficente
*
* @author Erivan Sousa
* @date 01/06/2011
*/
private void pesquisarEntidadeBeneficente(
HttpServletRequest httpServletRequest) {
FiltroEntidadeBeneficente filtroEntidadeBeneficente = new FiltroEntidadeBeneficente();
filtroEntidadeBeneficente.setConsultaSemLimites(true);
filtroEntidadeBeneficente.setCampoOrderBy(FiltroEntidadeBeneficente.ID);
filtroEntidadeBeneficente
.adicionarCaminhoParaCarregamentoEntidade(FiltroEntidadeBeneficente.CLIENTE);
Collection colecaoEntidadeBeneficente = this.getFachada().pesquisar(
filtroEntidadeBeneficente, EntidadeBeneficente.class.getName());
if (colecaoEntidadeBeneficente == null
|| colecaoEntidadeBeneficente.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,
"Entidade Beneficente");
} else {
httpServletRequest.setAttribute("colecaoEntidadeBeneficente",
colecaoEntidadeBeneficente);
}
}
/**
* Pesquisa Imovel
*
* @author Erivan Sousa
* @date 24/05/2011
*/
private void pesquisarImovel(GerarRelatorioImoveisDoacoesActionForm form) {
Object local = form.getImovel();
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, local));
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra");
// Recupera Localidade
Collection colecaoImovel = this.getFachada().pesquisar(filtroImovel,
Imovel.class.getName());
if (colecaoImovel != null && !colecaoImovel.isEmpty()) {
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImovel);
form.setImovel(imovel.getId().toString());
form.setNomeImovel(imovel.getInscricaoFormatada());
} else {
form.setImovel("");
form.setNomeImovel("Im�vel inexistente");
}
}
/**
* Pesquisa Usuario Ades�o
*
* @author Erivan Sousa
* @date 24/05/2011
*/
private void pesquisarUsuarioAdesao(
GerarRelatorioImoveisDoacoesActionForm form) {
Object local = form.getUsuarioAdesao();
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.LOGIN, local));
// Recupera Localidade
Collection colecaoUsuario = this.getFachada().pesquisar(filtroUsuario,
Usuario.class.getName());
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
Usuario usuario = (Usuario) Util
.retonarObjetoDeColecao(colecaoUsuario);
form.setUsuarioAdesao(usuario.getLogin().toString());
form.setNomeUsuarioAdesao(usuario.getNomeUsuario());
} else {
form.setUsuarioAdesao("");
form.setNomeUsuarioAdesao("Usu�rio inexistente");
}
}
/**
* Pesquisa Usuario Cancelamento
*
* @author Erivan Sousa
* @date 24/05/2011
*/
private void pesquisarUsuarioCancelamento(
GerarRelatorioImoveisDoacoesActionForm form) {
Object local = form.getUsuarioCancelamento();
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.LOGIN, local));
// Recupera Localidade
Collection colecaoUsuario = this.getFachada().pesquisar(filtroUsuario,
Usuario.class.getName());
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
Usuario usuario = (Usuario) Util
.retonarObjetoDeColecao(colecaoUsuario);
form.setUsuarioCancelamento(usuario.getLogin().toString());
form.setNomeUsuarioCancelamento(usuario.getNomeUsuario());
} else {
form.setUsuarioCancelamento("");
form.setNomeUsuarioCancelamento("Usu�rio inexistente");
}
}
private void setaRequest(HttpServletRequest httpServletRequest,
GerarRelatorioImoveisDoacoesActionForm form) {
// Imovel
if (form.getImovel() != null && !form.getImovel().equals("")) {
httpServletRequest.setAttribute("imovelEncontrado", "true");
}
if (form.getUsuarioAdesao() != null
&& !form.getUsuarioAdesao().equals("")) {
httpServletRequest.setAttribute("usuarioAdesaoEncontrado", "true");
}
if (form.getUsuarioCancelamento() != null
&& !form.getUsuarioCancelamento().equals("")) {
httpServletRequest.setAttribute("usuarioCancelamentoEncontrado",
"true");
}
}
}