package gcom.gui.cadastro.tarifasocial; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelPerfil; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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; import org.apache.struts.validator.DynaValidatorForm; /** * < <Descri��o da Classe>> * * @author rodrigo */ public class InserirTarifaSocialImovelAction 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("gerenciadorProcesso"); HttpSession sessao = httpServletRequest.getSession(false); //Instancia da fachada Fachada fachada = Fachada.getInstancia(); DynaValidatorForm inserirTarifaSocialActionForm = (DynaValidatorForm) actionForm; String idImovel = (String) inserirTarifaSocialActionForm .get("idImovel"); if (idImovel != null && !idImovel.equals("")) { //Filtro para pesquisa dos im�veis FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); //Filtro para pesquisa de subcategorias para calculo de economias //FiltroImovelSubCategoria filtroImovelSubcategoria = new // FiltroImovelSubCategoria(); //Adiciona os parametros para pesquisa de imovel filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.IMOVEL_ID, idImovel)); filtroClienteImovel.setInitializeLazy(true); //Objetos que ser�o retornados pelo Hibernate filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.localidade"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.quadra"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroBairro.bairro.municipio.unidadeFederacao"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.cep"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.logradouro.logradouroTipo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.logradouro.logradouroTitulo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.enderecoReferencia"); //Adicionar os parametros para pesquisa de economias //filtroImovelSubcategoria.adicionarParametro(new // ParametroSimples(FiltroImovelSubCategoria.IMOVEL_ID, idImovel)); //filtroImovelSubcategoria.adicionarColecaoParaSerCarregada("imovelEconomias"); //Pesquisa e monta uma cole��o de cliente im�veis Collection clienteImoveis = fachada.pesquisar(filtroClienteImovel, ClienteImovel.class.getName()); //Pesquisa e monta uma cole��o de im�veis //Collection imovelSubcategorias = // fachada.pesquisar(filtroImovelSubcategoria, // ImovelSubcategoria.class.getName()); ClienteImovel clienteImovelObj = null; //ImovelSubcategoria imovelSubcategoriaObj = new // ImovelSubcategoria(); //Collection imovelEconomias = null; //Verifica se o resultado da busca de im�vel foi vazia if (clienteImoveis == null || clienteImoveis.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "imovel"); } else { //Verifica se o im�vel j� est� com a tarifa social clienteImovelObj = (ClienteImovel) clienteImoveis.iterator() .next(); if (clienteImovelObj.getImovel().getImovelPerfil() != null && clienteImovelObj.getImovel().getImovelPerfil().getId() .equals(ImovelPerfil.TARIFA_SOCIAL)) { throw new ActionServletException("atencao.imovel.ja_tarifasocial"); } } //Obter quantidade de economias do im�vel para determinar qual o // pr�ximo caso de uso //ser� executado //[UC0065 - Inserir dados tarifa social - Uma economia] //[UC0066 - Inserir dados tarifa social - Mais de uma economia] Imovel imovel = new Imovel(); imovel.setId(new Integer(idImovel)); int quantidadeEconomiasImovel = fachada .obterQuantidadeEconomias(imovel); if (!(quantidadeEconomiasImovel > 0)) { //O imovel n�o possui nenhuma economia throw new ActionServletException( "atencao.imovel.economias_nao_cadastradas"); } //manda o clienteimovel para sessao para JSP carregar seus dados //sessao.setAttribute("clienteImovel", clienteImovelObj); //manda a cole��o de Imovel Economia para sess�o //sessao.setAttribute("colecaoImovelEconomia", imovelEconomias); // observar isso, ta indo so o ultimo //manda a cole��o de Imovel Subcategoria para sess�o //sessao.setAttribute("colecaoImovelSubcategoria", // imovelSubcategorias); //atualiza a quantidade de economias do ActionForm inserirTarifaSocialActionForm.set("qtdEconomia", new Integer( quantidadeEconomiasImovel)); //Coloca o imovel na sessao sessao.setAttribute("imovelTarifa", clienteImovelObj.getImovel()); } return retorno; } }