package gcom.gui.cadastro.imovel;
import gcom.cadastro.endereco.FiltroLogradouro;
import gcom.cadastro.endereco.Logradouro;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.geografico.FiltroBairro;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
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;
import org.apache.struts.validator.DynaValidatorActionForm;
public class ExibirFiltrarImovelLocalizacaoAction extends GcomAction {
/**
* < <Descri��o do m�todo>>
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("filtrarClienteOutrosCriterios");
DynaValidatorActionForm pesquisarActionForm = (DynaValidatorActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
// Parte que pega as cole��es da sess�o
// Ger�ncia Regional
if(sessao.getAttribute("gerenciasRegionais") == null){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection gerenciasRegionais = fachada.pesquisar(filtroGerenciaRegional,
GerenciaRegional.class.getName());
if (gerenciasRegionais == null || gerenciasRegionais.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,
"Ger�ncia Regional");
} else {
sessao.setAttribute("gerenciasRegionais", gerenciasRegionais);
}
}
// Unidade Negocio
if(sessao.getAttribute("colecaoUnidadeNegocio") == null){
sessao.setAttribute("colecaoUnidadeNegocio", fachada
.obterColecaoUnidadeNegocio());
}
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// C�digo do Munic�pio
String codigoDigitadoMunicipioEnter = (String) pesquisarActionForm
.get("idMunicipio");
// Verifica se o c�digo foi digitado
if (codigoDigitadoMunicipioEnter != null
&& !codigoDigitadoMunicipioEnter.trim().equals("")
&& Integer.parseInt(codigoDigitadoMunicipioEnter) > 0) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.ID, codigoDigitadoMunicipioEnter));
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection municipioEncontrado = fachada.pesquisar(filtroMunicipio,
Municipio.class.getName());
if (municipioEncontrado != null && !municipioEncontrado.isEmpty()) {
// O municipio foi encontrado
pesquisarActionForm.set("idMunicipio", ""
+ ((Municipio) ((List) municipioEncontrado).get(0))
.getId());
pesquisarActionForm.set("descricaoMunicipioCliente",
((Municipio) ((List) municipioEncontrado).get(0))
.getNome());
//httpServletRequest.setAttribute("municipioNaoEncontrado",
// "true");
} else {
pesquisarActionForm.set("idMunicipioCliente", "");
httpServletRequest.setAttribute("municipioNaoEncontrado",
"exception");
pesquisarActionForm.set("descricaoMunicipioCliente",
"C�digo inexistente");
}
}
// C�digo do Bairro
String codigoDigitadoBairroEnter = (String) pesquisarActionForm
.get("codigoBairro");
// Verifica se o c�digo foi digitado
if (codigoDigitadoBairroEnter != null
&& !codigoDigitadoBairroEnter.trim().equals("")
&& Integer.parseInt(codigoDigitadoBairroEnter) > 0) {
FiltroBairro filtroBairro = new FiltroBairro();
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.CODIGO, codigoDigitadoBairroEnter));
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Adiciona a busca por munic�pio se ele foi digitado na p�gina
if (codigoDigitadoMunicipioEnter != null
&& !codigoDigitadoMunicipioEnter.equalsIgnoreCase("")) {
filtroBairro
.adicionarParametro(new ParametroSimples(
FiltroBairro.MUNICIPIO_ID,
codigoDigitadoMunicipioEnter));
}
Collection bairroEncontrado = fachada.pesquisar(filtroBairro,
Bairro.class.getName());
if (bairroEncontrado != null && !bairroEncontrado.isEmpty()) {
// O bairro foi encontrado
pesquisarActionForm.set("codigoBairro", ""
+ ((Bairro) ((List) bairroEncontrado).get(0))
.getId());
pesquisarActionForm.set("descricaoMunicipioCliente",
((Bairro) ((List) bairroEncontrado).get(0))
.getNome());
//httpServletRequest.setAttribute("bairroNaoEncontrado",
// "true");
} else {
pesquisarActionForm.set("codigoBairro", "");
httpServletRequest.setAttribute("bairroNaoEncontrado",
"exception");
pesquisarActionForm.set("descricaoBairroCliente",
"C�digo inexistente");
}
}
// C�digo do Logradouro
String codigoDigitadoLogradouroEnter = (String) pesquisarActionForm
.get("idLogradouro");
// Verifica se o c�digo foi digitado
if (codigoDigitadoLogradouroEnter != null
&& !codigoDigitadoLogradouroEnter.trim().equals("")
&& Integer.parseInt(codigoDigitadoLogradouroEnter) > 0) {
FiltroLogradouro filtroLogradouro = new FiltroLogradouro();
filtroLogradouro.adicionarParametro(new ParametroSimples(
FiltroLogradouro.ID, codigoDigitadoLogradouroEnter));
filtroLogradouro.adicionarParametro(new ParametroSimples(
FiltroLogradouro.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Adiciona a busca por munic�pio se ele foi digitado na p�gina
// if (codigoDigitadoMunicipioEnter != null
// && !codigoDigitadoMunicipioEnter.equalsIgnoreCase("")) {
// filtroLogradouro.adicionarParametro(new
// ParametroSimples(FiltroLogradouro.ID_MUNICIPIO,
// codigoDigitadoMunicipioEnter));
// }
Collection logradouroEncontrado = fachada.pesquisar(
filtroLogradouro, Logradouro.class.getName());
if (logradouroEncontrado != null && !logradouroEncontrado.isEmpty()) {
// O logradouro foi encontrado
pesquisarActionForm.set("idLogradouro", ""
+ ((Logradouro) ((List) logradouroEncontrado).get(0))
.getId());
pesquisarActionForm.set("descricaoMunicipioCliente",
((Logradouro) ((List) logradouroEncontrado).get(0))
.getNome());
//httpServletRequest.setAttribute("bairroNaoEncontrado",
// "true");
} else {
pesquisarActionForm.set("idLogradouro", "");
httpServletRequest.setAttribute("logradouroNaoEncontrado",
"exception");
pesquisarActionForm.set("descricaoLogradouroCliente",
"C�digo inexistente");
}
}
return retorno;
}
}