package gcom.gui.cadastro.imovel;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroQuadraFace;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.QuadraFace;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.HashSet;
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.DynaValidatorForm;
/**
* Classe respon�vel pelo recebimento dos dados que formar�o a inscri��o do im�vel
*
* @author Raphael Rossiter
* @date 12/05/2009
*/
public class ExibirAtualizarImovelLocalidadeAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("atualizarImovelLocalidade");
HttpSession sessao = httpServletRequest.getSession(false);
DynaValidatorForm atualizarImovelLocalidadeActionForm = (DynaValidatorForm) actionForm;
Fachada fachada = Fachada.getInstancia();
sessao.removeAttribute("gis");
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
((DynaValidatorForm) actionForm).set("usaRota", sistemaParametro.getIndicadorUsaRota().toString());
if (sistemaParametro.getIndicadorUsaRota().toString().equals("1") ) {
sessao.setAttribute("usaRota", sistemaParametro.getIndicadorUsaRota().toString());
} else {
sessao.setAttribute("usaRota", null);
}
String idLocalidade = null;
String idSetorComercial = null;
String idQuadra = null;
String idQuadraFace = null;
// LOCALIDADE
if (atualizarImovelLocalidadeActionForm.get("idLocalidade") != null &&
!atualizarImovelLocalidadeActionForm.get("idLocalidade").toString().trim().equalsIgnoreCase("")) {
idLocalidade = (String) atualizarImovelLocalidadeActionForm.get("idLocalidade");
}
//SETOR COMERCIAL
if (atualizarImovelLocalidadeActionForm.get("idSetorComercial") != null &&
!atualizarImovelLocalidadeActionForm.get("idSetorComercial").toString().trim().equalsIgnoreCase("")) {
idSetorComercial = (String) atualizarImovelLocalidadeActionForm.get("idSetorComercial");
}
//QUADRA
if (atualizarImovelLocalidadeActionForm.get("idQuadra") != null &&
!atualizarImovelLocalidadeActionForm.get("idQuadra").toString().trim().equalsIgnoreCase("")) {
idQuadra = (String) atualizarImovelLocalidadeActionForm.get("idQuadra");
}
/*
* Caso a empresa utilize o conceito de face da quadra (PARM_ICQUADRAFACE = 1 da tabela SISTEMA_PARAMETROS)
* O campo face da quadra ficar� dispon�vel para atualiza��o;
*
* QUADRA_FACE
*/
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM) &&
atualizarImovelLocalidadeActionForm.get("idQuadraFace") != null &&
!atualizarImovelLocalidadeActionForm.get("idQuadraFace").toString().trim().equalsIgnoreCase("")){
idQuadraFace = (String) atualizarImovelLocalidadeActionForm.get("idQuadraFace");
}
//FILTROS E COLE��ES
FiltroQuadra filtroQuadra = new FiltroQuadra();
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
FiltroQuadraFace filtroQuadraFace = new FiltroQuadraFace();
Collection localidades = new HashSet();
Collection setorComerciais = new HashSet();
Collection quadras = new HashSet();
Collection facesQuadra = new HashSet();
//PESQUISANDO LOCALIDADE...
if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) {
filtroLocalidade.limparListaParametros();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, new Integer(idLocalidade)));
localidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
if (localidades != null && !localidades.isEmpty()) {
// LOCALIDADE ENCONTRADA
atualizarImovelLocalidadeActionForm.set("idLocalidade", Util
.adicionarZerosEsquedaNumero(3, new Integer(((Localidade) ((List) localidades).get(0))
.getId().toString()).toString()));
atualizarImovelLocalidadeActionForm.set("localidadeDescricao",
((Localidade) ((List) localidades).get(0)).getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idSetorComercial");
}
else {
httpServletRequest.setAttribute("codigoLocalidadeNaoEncontrada", "true");
atualizarImovelLocalidadeActionForm.set("localidadeDescricao","LOCALIDADE INEXISTENTE");
atualizarImovelLocalidadeActionForm.set("idLocalidade", "");
atualizarImovelLocalidadeActionForm.set("idSetorComercial", "");
atualizarImovelLocalidadeActionForm.set("setorComercialDescricao", "");
atualizarImovelLocalidadeActionForm.set("idQuadra", "");
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");
}
}
//PESQUISANDO SETOR COMERCIAL...
if (idSetorComercial != null && !idSetorComercial.toString().trim().equalsIgnoreCase("")) {
if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) {
filtroSetorComercial.limparListaParametros();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, new Integer(idLocalidade)));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, new Integer(idSetorComercial)));
setorComerciais = fachada.pesquisar(filtroSetorComercial,SetorComercial.class.getName());
if (setorComerciais != null && !setorComerciais.isEmpty()) {
// SETOR COMERCIAL ENCONTRADO
atualizarImovelLocalidadeActionForm.set("idSetorComercial",""
+ Util.adicionarZerosEsquedaNumero(3, new Integer(
((SetorComercial) ((List) setorComerciais).get(0)).getCodigo()).toString()));
atualizarImovelLocalidadeActionForm.set("setorComercialDescricao",
((SetorComercial) ((List) setorComerciais).get(0)).getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idQuadra");
}
else {
atualizarImovelLocalidadeActionForm.set("idSetorComercial","");
atualizarImovelLocalidadeActionForm.set("setorComercialDescricao", "SETOR COMERCIAL INEXISTENTE");
atualizarImovelLocalidadeActionForm.set("idQuadra", "");
httpServletRequest.setAttribute("codigoSetorComercialNaoEncontrada", "true");
httpServletRequest.setAttribute("nomeCampo","idSetorComercial");
}
}
}
else {
atualizarImovelLocalidadeActionForm.set("idSetorComercial", "");
atualizarImovelLocalidadeActionForm.set("setorComercialDescricao", "");
}
//PESQUISANDO QUADRA...
if (idQuadra != null && !idQuadra.toString().trim().equalsIgnoreCase("")) {
if (idSetorComercial != null && !idSetorComercial.toString().trim().equalsIgnoreCase("")) {
filtroQuadra.limparListaParametros();
filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("rota");
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_LOCALIDADE, new Integer(idLocalidade)));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.CODIGO_SETORCOMERCIAL, new Integer(idSetorComercial)));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, new Integer(idQuadra)));
quadras = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
if (quadras != null && !quadras.isEmpty()) {
// QUADRA ENCONTRADA
Quadra quadra = (Quadra) Util.retonarObjetoDeColecao(quadras);
atualizarImovelLocalidadeActionForm.set("idQuadra", ""
+ Util.adicionarZerosEsquedaNumero(3, "" + quadra.getNumeroQuadra()));
sessao.setAttribute("idQuadraInicial", quadra.getId());
sessao.setAttribute("quadraCaracteristicas", quadras.iterator().next());
//ROTA QUE EST� ASSOCIADA COM A QUADRA
String msg = "Rota:" + quadra.getRota().getCodigo().toString();
httpServletRequest.setAttribute("msgQuadra", msg);
//CARREGANDO AS FACES ASSOCIADAS A QUADRA SELECIONADA
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM)){
filtroQuadraFace.limparListaParametros();
filtroQuadraFace.adicionarParametro(new ParametroSimples(
FiltroQuadraFace.ID_QUADRA, quadra.getId()));
facesQuadra = fachada.pesquisar(filtroQuadraFace, QuadraFace.class.getName());
if (facesQuadra != null && !facesQuadra.isEmpty()) {
if (idQuadraFace != null && !idQuadraFace.toString().trim().equalsIgnoreCase("")) {
atualizarImovelLocalidadeActionForm.set("idQuadraFace", idQuadraFace);
}
//FACE(S) DA QUADRA ENCONTRADA(S)
httpServletRequest.setAttribute("facesQuadra", facesQuadra);
}
else{
//FACE(S) DA QUADRA N�O ENCONTRADA(S)
httpServletRequest.setAttribute("msgQuadraFace","Face(s) da Quadra inexistente(s)");
}
httpServletRequest.setAttribute("nomeCampo", "idQuadraFace");
}
else{
httpServletRequest.setAttribute("nomeCampo", "lote");
}
}
else {
atualizarImovelLocalidadeActionForm.set("idQuadra", "");
atualizarImovelLocalidadeActionForm.set("idQuadraFace", "");
httpServletRequest.setAttribute("codigoQuadraNaoEncontrada", "true");
httpServletRequest.setAttribute("msgQuadra", "QUADRA INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "idQuadra");
}
}
}
else {
atualizarImovelLocalidadeActionForm.set("idQuadra", "");
atualizarImovelLocalidadeActionForm.set("idQuadraFace", "");
}
//VERIFICA��O PARA DEFINIR SE O CAMPO DE FACE DA QUADRA FICAR� DISPON�VEL
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM)){
httpServletRequest.setAttribute("exibirQuadraFace", "SIM");
}
return retorno;
}
}