package gcom.gui.cadastro.imovel;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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;
public class ExibirFiltrarImovelCurvaAbcDebitosLocalizacao extends
GcomAction {
private Collection colecaoPesquisa = null;
private String localidadeID = null;
private String municipioID = null;
private String nomeMunicipio = "";
private String setorComercialCD = null;
private String localidadeInicial = "";
private String localidadeFinal = "";
private String setorComercialInicial = "";
private String setorComercialFinal = "";
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("filtrarImovelCurvaAbcDebitosLocalizacao");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm = (ImovelCurvaAbcDebitosActionForm) actionForm;
// Caso o usu�rio selecionar ESTADO esconder a Aba de Localiza��o
// Vai direto para a terceira aba
if (imovelCurvaAbcDebitosActionForm.getClassificacao().equalsIgnoreCase("ESTADO")) {
FiltrarImovelCurvaAbcDebitosWizardAction filtrar = new FiltrarImovelCurvaAbcDebitosWizardAction();
if (sessao.getAttribute("abaAtual") == "PARAMETROS") {
retorno = actionMapping.findForward("filtrarImovelCurvaAbcDebitosLigacaoAguaEsgoto");
filtrar.exibirFiltrarImovelCurvaAbcDebitosLigacaoAguaEsgoto(actionMapping, actionForm,
httpServletRequest, httpServletResponse);
}else if (sessao.getAttribute("abaAtual") == "LIGACAOAGUAESGOTO") {
retorno = actionMapping.findForward("filtrarImovelCurvaAbcDebitosParametros");
filtrar.exibirFiltrarImovelCurvaAbcDebitosParametros(actionMapping, actionForm,
httpServletRequest, httpServletResponse);
}
}else {
// Pesquisar Ger�ncias Regionais
if(sessao.getAttribute("colecaoGerenciasRegionais") == null){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME_ABREVIADO);
Collection<GerenciaRegional> colecaoGerenciasRegionais = fachada
.pesquisar(filtroGerenciaRegional, GerenciaRegional.class
.getName());
// [FS0001 - Verificar Existencia de dados]
if ( (colecaoGerenciasRegionais == null) || (colecaoGerenciasRegionais.size() == 0) ) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null, GerenciaRegional.class.getName());
}else {
sessao.setAttribute("colecaoGerenciasRegionais", colecaoGerenciasRegionais);
}
}
String objetoConsulta = (String) httpServletRequest
.getParameter("objetoConsulta");
String inscricaoTipo = (String) httpServletRequest
.getParameter("inscricaoTipo");
if (objetoConsulta != null
&& !objetoConsulta.trim().equalsIgnoreCase("")
&& inscricaoTipo != null
&& !inscricaoTipo.trim().equalsIgnoreCase("")) {
switch (Integer.parseInt(objetoConsulta)) {
// Localidade
case 1:
pesquisarLocalidade(inscricaoTipo, imovelCurvaAbcDebitosActionForm, fachada, httpServletRequest);
break;
// Setor Comercial
case 2:
pesquisarLocalidade(inscricaoTipo, imovelCurvaAbcDebitosActionForm, fachada, httpServletRequest);
pesquisarSetorComercial(inscricaoTipo, imovelCurvaAbcDebitosActionForm, fachada, httpServletRequest);
break;
case 3:
pesquisarMunicipio(imovelCurvaAbcDebitosActionForm, fachada, httpServletRequest);
break;
default:
break;
}
} else {
sessao.removeAttribute("imovelCurvaAbcDebitosActionForm");
}
}
if (imovelCurvaAbcDebitosActionForm.getClassificacao() != null) {
httpServletRequest.setAttribute("classificacao", imovelCurvaAbcDebitosActionForm.getClassificacao());
}
sessao.setAttribute("localidadeInicial",localidadeInicial);
sessao.setAttribute("localidadeFinal",localidadeFinal);
sessao.setAttribute("setorComercialInicial",setorComercialInicial);
sessao.setAttribute("setorComercialFinal",setorComercialFinal);
sessao.setAttribute("nomeMunicipio",nomeMunicipio);
return retorno;
}
/***
*
* @param inscricaoTipo
* @param imovelCurvaAbcDebitosActionForm
* @param fachada
* @param httpServletRequest
*/
private void pesquisarLocalidade(String inscricaoTipo,
ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm,
Fachada fachada, HttpServletRequest httpServletRequest) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
if (inscricaoTipo.equalsIgnoreCase("origem")) {
imovelCurvaAbcDebitosActionForm.setInscricaoTipo("origem");
// Recebe o valor do campo localidadeOrigemID do formul�rio.
localidadeID = (String) imovelCurvaAbcDebitosActionForm.getIdLocalidadeInicial();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, localidadeID));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna localidade
colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Localidade nao encontrada
// Limpa os campos localidadeOrigemID e nomeLocalidadeOrigem do
// formul�rio
imovelCurvaAbcDebitosActionForm.setIdLocalidadeInicial("");
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeInicial("Localidade inexistente.");
imovelCurvaAbcDebitosActionForm.setIdLocalidadeFinal("");
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeFinal("");
httpServletRequest.setAttribute("corLocalidadeOrigem", "exception");
httpServletRequest.setAttribute("nomeCampo","idLocalidadeInicial");
} else {
Localidade objetoLocalidade = (Localidade) Util.retonarObjetoDeColecao(colecaoPesquisa);
imovelCurvaAbcDebitosActionForm.setIdLocalidadeInicial(String.valueOf(objetoLocalidade.getId()));
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeInicial(objetoLocalidade.getDescricao());
httpServletRequest.setAttribute("corLocalidadeOrigem", "valor");
httpServletRequest.setAttribute("nomeCampo","codigoSetorComercialInicial");
localidadeInicial = objetoLocalidade.getDescricao();
//destino
imovelCurvaAbcDebitosActionForm.setIdLocalidadeFinal(String.valueOf(objetoLocalidade.getId()));
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeFinal(objetoLocalidade.getDescricao());
httpServletRequest.setAttribute("corLocalidadeDestino", "valor");
}
} else {
// Recebe o valor do campo localidadeDestinoID do formul�rio.
localidadeID = (String) imovelCurvaAbcDebitosActionForm.getIdLocalidadeFinal();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, localidadeID));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna localidade
colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
imovelCurvaAbcDebitosActionForm.setInscricaoTipo("destino");
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Localidade nao encontrada
// Limpa os campos localidadeDestinoID e nomeLocalidadeDestino
// do formul�rio
imovelCurvaAbcDebitosActionForm.setIdLocalidadeFinal("");
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeFinal("Localidade inexistente.");
httpServletRequest.setAttribute("corLocalidadeDestino", "exception");
httpServletRequest.setAttribute("nomeCampo","idLocalidadeFinal");
} else {
Localidade objetoLocalidade = (Localidade) Util.retonarObjetoDeColecao(colecaoPesquisa);
imovelCurvaAbcDebitosActionForm.setIdLocalidadeFinal(String.valueOf(objetoLocalidade.getId()));
imovelCurvaAbcDebitosActionForm.setNomeLocalidadeFinal(objetoLocalidade.getDescricao());
localidadeFinal = objetoLocalidade.getDescricao();
httpServletRequest.setAttribute("corLocalidadeDestino", "valor");
httpServletRequest.setAttribute("nomeCampo","codigoSetorComercialFinal");
}
}
}
/***
*
* @param inscricaoTipo
* @param imovelCurvaAbcDebitosActionForm
* @param fachada
* @param httpServletRequest
*/
private void pesquisarSetorComercial(String inscricaoTipo,
ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm,
Fachada fachada, HttpServletRequest httpServletRequest) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
if (inscricaoTipo.equalsIgnoreCase("origem")) {
imovelCurvaAbcDebitosActionForm.setInscricaoTipo("origem");
// Recebe o valor do campo localidadeOrigemID do formul�rio.
localidadeID = (String) imovelCurvaAbcDebitosActionForm.getIdLocalidadeInicial();
// O campo localidadeOrigemID ser� obrigat�rio
if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) {
setorComercialCD = (String) imovelCurvaAbcDebitosActionForm.getCodigoSetorComercialInicial();
// Adiciona o id da localidade que est� no formul�rio para
// compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, localidadeID));
// Adiciona o c�digo do setor comercial que esta no formul�rio
// para compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
setorComercialCD));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna setorComercial
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Setor Comercial nao encontrado
// Limpa os campos setorComercialOrigemCD,
// nomeSetorComercialOrigem e setorComercialOrigemID do
// formul�rio
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialInicial("");
imovelCurvaAbcDebitosActionForm.setIdSetorComercialInicial("");
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialInicial("Setor comercial inexistente.");
httpServletRequest.setAttribute("corSetorComercialOrigem", "exception");
httpServletRequest.setAttribute("nomeCampo","setorComercialOrigemCD");
//destino
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialFinal("");
imovelCurvaAbcDebitosActionForm.setIdSetorComercialFinal("");
} else {
SetorComercial objetoSetorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoPesquisa);
//setorComercialOrigem
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialInicial(String
.valueOf(objetoSetorComercial.getCodigo()));
imovelCurvaAbcDebitosActionForm.setIdSetorComercialInicial(String
.valueOf(objetoSetorComercial.getId()));
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialInicial(objetoSetorComercial
.getDescricao());
setorComercialInicial = objetoSetorComercial.getDescricao();
//httpServletRequest.setAttribute("nomeCampo","quadraOrigemNM");
//setorComercialOrigem
//setorComercialDestino
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialFinal(String
.valueOf(objetoSetorComercial.getCodigo()));
imovelCurvaAbcDebitosActionForm.setIdSetorComercialFinal(String
.valueOf(objetoSetorComercial.getId()));
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialFinal(objetoSetorComercial
.getDescricao());
//setorComercialDestino
httpServletRequest.setAttribute("corSetorComercialDestino", "valor");
}
} else {
// Limpa o campo setorComercialOrigemCD do formul�rio
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialInicial("");
imovelCurvaAbcDebitosActionForm
.setNomeSetorComercialInicial("Informe a localidade da inscri��o de origem.");
httpServletRequest.setAttribute("corSetorComercialOrigem", "exception");
}
} else {
imovelCurvaAbcDebitosActionForm.setInscricaoTipo("destino");
// Recebe o valor do campo localidadeDestinoID do formul�rio.
localidadeID = (String) imovelCurvaAbcDebitosActionForm.getIdLocalidadeFinal();
// O campo localidadeOrigem ser� obrigat�rio
if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) {
setorComercialCD = (String) imovelCurvaAbcDebitosActionForm.getCodigoSetorComercialFinal();
// Adiciona o id da localidade que est� no formul�rio para
// compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, localidadeID));
// Adiciona o c�digo do setor comercial que esta no formul�rio
// para compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
setorComercialCD));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna setorComercial
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Setor Comercial nao encontrado
// Limpa os campos setorComercialDestinoCD,
// nomeSetorComercialDestino e setorComercialDestinoID do
// formul�rio
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialFinal("");
imovelCurvaAbcDebitosActionForm.setIdSetorComercialFinal("");
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialFinal("Setor comercial inexistente.");
httpServletRequest.setAttribute("corSetorComercialDestino", "exception");
httpServletRequest.setAttribute("nomeCampo","codigoSetorComercialFinal");
} else {
SetorComercial objetoSetorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoPesquisa);
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialFinal(String
.valueOf(objetoSetorComercial.getCodigo()));
imovelCurvaAbcDebitosActionForm.setIdSetorComercialFinal(String
.valueOf(objetoSetorComercial.getId()));
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialFinal(objetoSetorComercial
.getDescricao());
setorComercialFinal = objetoSetorComercial.getDescricao();
httpServletRequest.setAttribute("corSetorComercialDestino", "valor");
//httpServletRequest.setAttribute("nomeCampo","quadraDestinoNM");
}
} else {
// Limpa o campo setorComercialDestinoCD do formul�rio
imovelCurvaAbcDebitosActionForm.setCodigoSetorComercialFinal("");
imovelCurvaAbcDebitosActionForm.setNomeSetorComercialFinal("Informe a localidade da inscri��o de destino.");
httpServletRequest.setAttribute("corSetorComercialDestino", "exception");
}
}
}
/***
*
* @param imovelCurvaAbcDebitosActionForm
* @param fachada
* @param httpServletRequest
*/
private void pesquisarMunicipio(ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm,
Fachada fachada, HttpServletRequest httpServletRequest) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
municipioID = (String) imovelCurvaAbcDebitosActionForm.getIdMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, municipioID));
// Retorna localidade
colecaoPesquisa = fachada.pesquisar(filtroMunicipio, Municipio.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
Municipio objetoMunicipio = (Municipio) Util.retonarObjetoDeColecao(colecaoPesquisa);
imovelCurvaAbcDebitosActionForm.setIdMunicipio(String.valueOf(objetoMunicipio.getId()));
imovelCurvaAbcDebitosActionForm.setNomeMunicipio(objetoMunicipio.getNome());
httpServletRequest.setAttribute("corMunicipio", "valor");
nomeMunicipio = objetoMunicipio.getNome();
} else {
//Munic�pio n�o encontrado
imovelCurvaAbcDebitosActionForm.setIdMunicipio("");
imovelCurvaAbcDebitosActionForm.setNomeMunicipio("Munic�pio inexistente.");
httpServletRequest.setAttribute("corMunicipio", "exception");
httpServletRequest.setAttribute("nomeCampo","idMunicipio");
}
}
}