package gcom.gui.arrecadacao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.Localidade;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.List;
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 que define o pr�-processamento da p�gina de pesquisa de arrecadador
*
* @author S�vio Luiz
* @created 24 de janeiro de 2006
*/
public class ExibirPesquisarArrecadadorAction 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) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("pesquisarArrecadador");
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarArrecadadorActionForm pesquisarArrecadadorActionForm = (PesquisarArrecadadorActionForm) actionForm;
// Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo
// consulta vem do
// localidade_resultado_pesquisa.jsp ou do
// cliente_resultado_pesquisa.jsp ou do imovel_resultado_pesquisa.jsp.
// � feita essa verifica��o pois pode ser que ainda n�o tenha
// feito a pesquisa de cliente,imovel ou localidade.
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
// Verifica se o tipo da consulta de arrecadador � de localidade
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina arrecadador_pesuisar.jsp
if (httpServletRequest.getParameter("tipoConsulta").equals(
"localidade")) {
pesquisarArrecadadorActionForm
.setIdLocalidade(httpServletRequest
.getParameter("idCampoEnviarDados"));
pesquisarArrecadadorActionForm
.setDescricaoLocalidade(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
// Verifica se o tipo da consulta de arrecadador � de imovel
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina arrecadador_pesuisar.jsp
if (httpServletRequest.getParameter("tipoConsulta")
.equals("imovel")) {
pesquisarArrecadadorActionForm.setIdImovel(httpServletRequest
.getParameter("idCampoEnviarDados"));
pesquisarArrecadadorActionForm
.setInscricaoImovel(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
// Verifica se o tipo da consulta de arrecadador � de cliente
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina arrecadador_pesuisar.jsp
if (httpServletRequest.getParameter("tipoConsulta").equals(
"cliente")) {
pesquisarArrecadadorActionForm.setIdCliente(httpServletRequest
.getParameter("idCampoEnviarDados"));
pesquisarArrecadadorActionForm
.setNomeCliente(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
} else {
if (httpServletRequest.getParameter("objetoConsulta") == null
|| httpServletRequest.getParameter("objetoConsulta")
.equals("")) {
pesquisarArrecadadorActionForm.setIdLocalidade("");
pesquisarArrecadadorActionForm.setDescricaoLocalidade("");
pesquisarArrecadadorActionForm.setIdCliente("");
pesquisarArrecadadorActionForm.setIdImovel("");
pesquisarArrecadadorActionForm.setNomeCliente("");
pesquisarArrecadadorActionForm.setInscricaoEstadual("");
sessao.removeAttribute("caminhoRetornoTelaPesquisa");
sessao.removeAttribute("caminhoRetornoTelaPesquisaCliente");
sessao.removeAttribute("caminhoRetornoTelaPesquisaImovel");
}
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// caso seja o id da localidade
String idDigitadoEnterLocalidade = pesquisarArrecadadorActionForm
.getIdLocalidade();
String descricaoLocalidade = pesquisarArrecadadorActionForm
.getDescricaoLocalidade();
// caso seja o id do cliente
String idDigitadoEnterCliente = pesquisarArrecadadorActionForm
.getIdCliente();
String nomeCliente = pesquisarArrecadadorActionForm
.getNomeCliente();
String idDigitadoImovel = pesquisarArrecadadorActionForm
.getIdImovel();
String inscricaoImovel = pesquisarArrecadadorActionForm
.getInscricaoImovel();
// Verifica se o c�digo foi digitado
if ((idDigitadoEnterLocalidade != null
&& !idDigitadoEnterLocalidade.trim().equals(""))
&& (descricaoLocalidade == null
|| descricaoLocalidade.trim().equals(""))) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idDigitadoEnterLocalidade));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection localidadeEncontrado = fachada.pesquisar(
filtroLocalidade, Localidade.class.getName());
if (localidadeEncontrado != null
&& !localidadeEncontrado.isEmpty()) {
// A localidade foi encontrado
pesquisarArrecadadorActionForm.setIdLocalidade(""
+ ((Localidade) ((List) localidadeEncontrado)
.get(0)).getId());
pesquisarArrecadadorActionForm.setDescricaoLocalidade(""
+ ((Localidade) ((List) localidadeEncontrado)
.get(0)).getDescricao());
httpServletRequest.setAttribute(
"idLocalidadeNaoEncontrado", "true");
httpServletRequest.setAttribute("nomeCampo","idCliente");
} else {
pesquisarArrecadadorActionForm.setIdLocalidade("");
httpServletRequest.setAttribute(
"idLocalidadeNaoEncontrado", "exception");
pesquisarArrecadadorActionForm
.setDescricaoLocalidade("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","idLocalidade");
}
}
// Verifica se o c�digo foi digitado
if ((idDigitadoEnterCliente != null
&& !idDigitadoEnterCliente.trim().equals(""))
&& (nomeCliente == null
|| nomeCliente.trim().equals(""))) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idDigitadoEnterCliente));
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection clienteEncontrado = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) {
// O cliente foi encontrado
pesquisarArrecadadorActionForm.setIdCliente(""
+ ((Cliente) ((List) clienteEncontrado).get(0))
.getId());
pesquisarArrecadadorActionForm
.setNomeCliente(((Cliente) ((List) clienteEncontrado)
.get(0)).getNome());
httpServletRequest.setAttribute("idClienteNaoEncontrado",
"true");
httpServletRequest.setAttribute("nomeCampo","idImovel");
} else {
pesquisarArrecadadorActionForm.setIdCliente("");
httpServletRequest.setAttribute("idClienteNaoEncontrado",
"exception");
pesquisarArrecadadorActionForm
.setNomeCliente("CLIENTE INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","idCliente");
}
}
// Verifica se o c�digo foi digitado
if ((idDigitadoImovel != null && !idDigitadoImovel.trim().equals(""))
&& (inscricaoImovel == null || inscricaoImovel.trim().equals(""))) {
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idDigitadoImovel));
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra");
Collection imovelEncontrado = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
if (imovelEncontrado != null && !imovelEncontrado.isEmpty()) {
// O imovel foi encontrado
pesquisarArrecadadorActionForm.setIdImovel(""
+ ((Imovel) ((List) imovelEncontrado).get(0))
.getId());
pesquisarArrecadadorActionForm
.setInscricaoImovel(((Imovel) ((List) imovelEncontrado)
.get(0)).getInscricaoFormatada());
httpServletRequest.setAttribute("idImovelNaoEncontrado",
"true");
httpServletRequest.setAttribute("nomeCampo","Button");
} else {
pesquisarArrecadadorActionForm.setIdCliente("");
httpServletRequest.setAttribute("idImovelNaoEncontrado",
"exception");
pesquisarArrecadadorActionForm
.setNomeCliente("IM�VEL INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","idImovel");
}
}
}
// -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter
// envia uma flag que ser� verificado no cliente_resultado_pesquisa.jsp
// para saber se ir� usar o enviar dados ou o enviar dados parametros
if (httpServletRequest
.getParameter("caminhoRetornoTelaPesquisaArrecadador") != null) {
sessao
.setAttribute(
"caminhoRetornoTelaPesquisaArrecadador",
httpServletRequest
.getParameter("caminhoRetornoTelaPesquisaArrecadador"));
}
return retorno;
}
}