package gcom.gui.cadastro.tarifasocial; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteImovelEconomia; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroClienteImovelEconomia; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.tarifasocial.FiltroTarifaSocialDadoEconomia; import gcom.cadastro.tarifasocial.TarifaSocialDadoEconomia; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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 ExibirInserirTarifaSocialDadosUmaEconomiaAction 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("inserirTarifaSocialUmaEconomia"); // Instancia da Fachada Fachada fachada = Fachada.getInstancia(); //Pega uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); //Pega uma instancia do actionform DynaValidatorForm inserirTarifaSocialActionForm = (DynaValidatorForm) actionForm; String valorConfirmacao = httpServletRequest.getParameter("confirmado"); if (valorConfirmacao == null || valorConfirmacao.equals("")) { //Pega o id do imovel selecionado String idImovel = (String) inserirTarifaSocialActionForm .get("idImovel"); Collection colecaoTarifaSocialDadoEconomia = null; //Faz a verifica��o de [FS00004] fachada.verificarProprietarioImovel(new Integer(idImovel)); //Faz a verifica��o de [FS0005] Cliente cliente = fachada.verificarUsuarioImovel(new Integer(idImovel)); // Realiza uma pesquisa pelos parametros fornecidos Collection clienteImoveis = fachada.pesquisarClienteImovelPeloClienteTarifaSocial(cliente.getId()); Collection colecaoIdImovel = new ArrayList(); Collection colecaoIdImovelEconomia = new ArrayList(); //colecao com os ids dos imoveis if(clienteImoveis != null && !clienteImoveis.isEmpty()){ Iterator iteratorClienteImoveis = clienteImoveis.iterator(); while (iteratorClienteImoveis.hasNext()) { ClienteImovel clienteImovel = (ClienteImovel) iteratorClienteImoveis.next(); sessao.setAttribute("clienteImovel", clienteImovel); colecaoIdImovel.add(clienteImovel.getImovel().getId()); } } FiltroClienteImovelEconomia filtroClienteImovelEconomia = new FiltroClienteImovelEconomia(); filtroClienteImovelEconomia .adicionarCaminhoParaCarregamentoEntidade("imovelEconomia.imovelSubcategoria.comp_id.imovel"); filtroClienteImovelEconomia .adicionarParametro(new ParametroSimples("imovelEconomia.imovelSubcategoria.comp_id.imovel.imovelPerfil.id",ImovelPerfil.TARIFA_SOCIAL)); filtroClienteImovelEconomia .adicionarParametro(new ParametroSimples("cliente.id",cliente.getId())); filtroClienteImovelEconomia.adicionarParametro(new ParametroNulo( FiltroClienteImovelEconomia.FIM_RELACAO_MOTIVO)); filtroClienteImovelEconomia .adicionarParametro(new ParametroSimples( FiltroClienteImovelEconomia.CLIENTE_RELACAO_TIPO, ClienteRelacaoTipo.USUARIO)); // Realiza uma pesquisa pelos parametros fornecidos Collection clienteImoveisEconomias = fachada.pesquisar( filtroClienteImovelEconomia, ClienteImovelEconomia.class.getName()); //colecao com os ids dos imoveis if(clienteImoveisEconomias != null && !clienteImoveisEconomias.isEmpty()){ Iterator iteratorClienteImoveisEconomias = clienteImoveisEconomias.iterator(); while (iteratorClienteImoveisEconomias.hasNext()) { ClienteImovelEconomia clienteImovelEconomia = (ClienteImovelEconomia) iteratorClienteImoveisEconomias.next(); colecaoIdImovelEconomia.add(clienteImovelEconomia.getImovelEconomia().getId()); } } colecaoTarifaSocialDadoEconomia = fachada.pesquisarTarifaSocialDadoEconomia( new Integer(idImovel)); if(colecaoIdImovel != null && !colecaoIdImovel.isEmpty()){ Iterator iteratorColecaoImovel = colecaoIdImovel.iterator(); while (iteratorColecaoImovel.hasNext()) { Integer matriculaImovel = (Integer) iteratorColecaoImovel.next(); // Realiza uma pesquisa pelos parametros fornecidos Collection colecaoTarifaSocialDadoEconomiaVerificar = null; colecaoTarifaSocialDadoEconomiaVerificar = fachada.pesquisarTarifaSocialDadoEconomia( matriculaImovel); if (colecaoTarifaSocialDadoEconomiaVerificar != null && !colecaoTarifaSocialDadoEconomiaVerificar.isEmpty()) { TarifaSocialDadoEconomia tarifaSocialDadoEconomia = (TarifaSocialDadoEconomia) colecaoTarifaSocialDadoEconomiaVerificar.iterator().next(); fachada.verificarClienteMotivoExclusaoRecadastramento(cliente.getId()); if (tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() != null && tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() .getIndicadorPermiteRecadastramentoImovel() == 2) { throw new ActionServletException( "atencao.motivo_exclusao_imovel_nao_permite_recadastramento"); } if (tarifaSocialDadoEconomia .getTarifaSocialRevisaoMotivo() == null && tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() == null) { sessao.setAttribute("prerequisito",""); httpServletRequest.setAttribute("atencao.cliente.usuario.tarifa.social", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); sessao.setAttribute("prerequisito",""); return montarPaginaConfirmacaoWizard("atencao.cliente.usuario.tarifa.social", httpServletRequest, actionMapping,matriculaImovel.toString()); }else{ if (tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() == null && tarifaSocialDadoEconomia .getTarifaSocialRevisaoMotivo() .getIndicadorPermiteRecadastramento() .intValue() == 2) { sessao.setAttribute("prerequisito",""); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); sessao.setAttribute("prerequisito",""); return montarPaginaConfirmacaoWizard("atencao.cliente.usuario.tarifa.social", httpServletRequest, actionMapping,matriculaImovel.toString()); } } } } } if(colecaoIdImovelEconomia != null && !colecaoIdImovelEconomia.isEmpty()){ Iterator iteratorColecaoIdImovelEconomia = colecaoIdImovelEconomia.iterator(); while (iteratorColecaoIdImovelEconomia.hasNext()) { Integer idImovelEconomia = (Integer) iteratorColecaoIdImovelEconomia.next(); // Realiza uma pesquisa pelos parametros fornecidos Collection colecaoTarifaSocialDadoEconomiaVerificar = null; colecaoTarifaSocialDadoEconomiaVerificar = fachada.pesquisarTarifaSocialDadoEconomiaImovelEconomia( idImovelEconomia); if (colecaoTarifaSocialDadoEconomiaVerificar != null && !colecaoTarifaSocialDadoEconomiaVerificar.isEmpty()) { TarifaSocialDadoEconomia tarifaSocialDadoEconomia = (TarifaSocialDadoEconomia) colecaoTarifaSocialDadoEconomiaVerificar.iterator().next(); fachada.verificarClienteMotivoExclusaoRecadastramento(cliente.getId()); if (tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() != null && tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() .getIndicadorPermiteRecadastramentoImovel() == 2) { throw new ActionServletException( "atencao.motivo_exclusao_imovel_nao_permite_recadastramento"); } if (tarifaSocialDadoEconomia .getTarifaSocialRevisaoMotivo() == null && tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() == null) { sessao.setAttribute("prerequisito",""); httpServletRequest.setAttribute("atencao.cliente.usuario.tarifa.social", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); sessao.setAttribute("prerequisito",""); return montarPaginaConfirmacaoWizard("atencao.cliente.usuario.tarifa.social", httpServletRequest, actionMapping, tarifaSocialDadoEconomia.getImovel().getId().toString()); }else{ if (tarifaSocialDadoEconomia .getTarifaSocialExclusaoMotivo() == null && tarifaSocialDadoEconomia .getTarifaSocialRevisaoMotivo() .getIndicadorPermiteRecadastramento() .intValue() == 2) { sessao.setAttribute("prerequisito",""); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); sessao.setAttribute("prerequisito",""); return montarPaginaConfirmacaoWizard("atencao.cliente.usuario.tarifa.social", httpServletRequest, actionMapping, tarifaSocialDadoEconomia.getImovel().getId().toString()); } } } } } //[FS0003] - Verificar pr�-requisitos para cadastramento na tarifa // social String[] dados = fachada.verificarPreRequisitosCadastramentoTarifaSocial(new Integer(idImovel)); int prerequisito = new Integer(dados[0]).intValue(); String parametroMensagem = dados[1]; switch (prerequisito) { //CATEGORIA RESIDENCIAL - E case 1: sessao.setAttribute("prerequisito","1"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifasocial.nao_imovel_residencial", httpServletRequest, actionMapping); //SUBCATEGORIA CASA DE VERANEIO - E case 2: sessao.setAttribute("prerequisito","2"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifasocial.nao_imovel.com.subcategorias", httpServletRequest, actionMapping, parametroMensagem, "provoca o encerramento","Encerramento"); //SUBCATEGORIA IGREJA, CHAFARIZ, TERRENO - T case 3: sessao.setAttribute("prerequisito","3"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifasocial.nao_imovel.com.subcategorias", httpServletRequest, actionMapping, parametroMensagem, "exige a tramita��o", "Tramita��o"); //PERIL GRANDE CONSUMIDOR case 4: sessao.setAttribute("prerequisito","4"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifasocial.imovel.perfil.grande_consumidor", httpServletRequest, actionMapping); //LIGACAO DIFERENTE DE CORTADO OU SUPRIMIDO - T case 5: sessao.setAttribute("prerequisito","5"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifasocial.agua_nao_ligada", httpServletRequest, actionMapping); //ANORMAIDADE DE LEITURA - T case 6: sessao.setAttribute("prerequisito","6"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.anormalidade.leitura.tarifasocial", httpServletRequest, actionMapping, parametroMensagem); //EXISTENCIA DE DEBITOS DO CLIENTE case 7: sessao.setAttribute("prerequisito","7"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifa_social.permitida.apenas.imovel.sem_debitos", httpServletRequest, actionMapping); //CONSUMO MEDIO MAIOR QUE 10M3 - E case 8: sessao.setAttribute("prerequisito","8"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifa_social.permitida.imoveis.consumo_medio", httpServletRequest, actionMapping, parametroMensagem); // CONSUMO M�NIMO FIXADO MAIOR QUE 10M3 - E case 9: sessao.setAttribute("prerequisito","9"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosMultiplasEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifa_social.permitida.imoveis.consumo_minimo_fixado", httpServletRequest, actionMapping, parametroMensagem); default: break; } //Pesquisa na fachada a cole��o Collection colecaoClienteImovel = fachada.pesquisarClienteImovelPeloImovelTarifaSocial(new Integer(idImovel)); //Carregando todos os objetos da cole��o de TarifaSocialDadoEconomia carregarObjetosClienteImovel(clienteImoveis); ClienteImovel clienteImovel = null; Iterator colecaoClienteImovelIterator = colecaoClienteImovel.iterator(); while (colecaoClienteImovelIterator.hasNext()) { clienteImovel = (ClienteImovel) colecaoClienteImovelIterator.next(); if (clienteImovel.getClienteRelacaoTipo().getId().toString() .equals(ClienteRelacaoTipo.USUARIO.toString())) { break; } } //Manda pela sessao o clienteImovel para a p�gina sessao.setAttribute("clienteImovel", clienteImovel); if(colecaoTarifaSocialDadoEconomia != null && !colecaoTarifaSocialDadoEconomia.isEmpty()){ sessao.setAttribute("colecaoTarifaSocialDadoEconomia", colecaoTarifaSocialDadoEconomia); } sessao.setAttribute("prerequisito",null); }else{ if(sessao.getAttribute("prerequisito") != null ){ String prerequisito = (String)sessao.getAttribute("prerequisito"); httpServletRequest.setAttribute("numeroRA", inserirTarifaSocialActionForm.get("registroAtendimento")); //[FS0005] Verificar o cliente usu�rio do im�vel if(prerequisito.equals("")){ retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("1")){ //CATEGORIA RESIDENCIAL - E retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("2")){ //CATEGORIA RESIDENCIAL - E retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("3")){ //SUBCATEGORIA IGREJA, CHAFARIZ, TERRENO - T retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("4")){ //PERIFL GRANDE CONSUMIDOR retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("5")){ //LIGACAO DIFERENTE DE CORTADO OU SUPRIMIDO - T retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("6")){ //ANORMALIDAE DE LEITURA - T retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("7")){ //EXISTENCIA DE DEBITOS DO CLIENTE - T retorno = actionMapping .findForward("exibirTramitarRegistroAtendimentoAction"); }else if(prerequisito.equals("8")){ //CONSUMO M�DIO MAIOR QUE 10M3 - E retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("9")){ // CONSUMO M�NIMO FIXADO MAIOR QUE 10M3 - E retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("10")){ retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("11")){ retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("12")){ retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); }else if(prerequisito.equals("13")){ retorno = actionMapping .findForward("exibirEncerrarRegistroAtendimentoAction"); } } } String codigo = httpServletRequest.getParameter("codigo"); String valor = httpServletRequest.getParameter("valor"); if(codigo != null && !codigo.equals("")){ if(codigo.equals("9")){ sessao.setAttribute("prerequisito","9"); }else if(codigo.equals("10")){ sessao.setAttribute("prerequisito","10"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.tarifa_social.renda_familiar.maior.salario_minimo", httpServletRequest, actionMapping,valor); }else if(codigo.equals("11")){ sessao.setAttribute("prerequisito","11"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.preencher.tarifa_social.valor.consumo_energia", httpServletRequest, actionMapping,valor); }else if(codigo.equals("12")){ sessao.setAttribute("prerequisito","12"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do?action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.preencher.tarifa_social.requisitos", httpServletRequest, actionMapping,valor); }else if(codigo.equals("13")){ sessao.setAttribute("prerequisito","13"); httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/inserirTarifaSocialWizardAction.do&action=exibirInserirTarifaSocialDadosUmaEconomiaAction"); return montarPaginaConfirmacaoWizard("atencao.preencher.tarifa_social.requisitos", httpServletRequest, actionMapping,valor); } } return retorno; } private void carregarObjetosClienteImovel(Collection clienteImoveis){ Fachada fachada = Fachada.getInstancia(); Iterator clienteImoveisIt = clienteImoveis.iterator(); while (clienteImoveisIt.hasNext()){ ClienteImovel clienteImovelObject = (ClienteImovel) clienteImoveisIt.next(); FiltroTarifaSocialDadoEconomia filtroTarifaSocialDadoEconomia = new FiltroTarifaSocialDadoEconomia(); filtroTarifaSocialDadoEconomia.adicionarParametro(new ParametroSimples("imovel.id", clienteImovelObject.getImovel().getId())); filtroTarifaSocialDadoEconomia.adicionarCaminhoParaCarregamentoEntidade("tarifaSocialCartaoTipo"); filtroTarifaSocialDadoEconomia.adicionarCaminhoParaCarregamentoEntidade("rendaTipo"); Collection tarifaSocialDadoEconomias = fachada.pesquisar(filtroTarifaSocialDadoEconomia,TarifaSocialDadoEconomia.class.getName()); if(tarifaSocialDadoEconomias != null && !tarifaSocialDadoEconomias.isEmpty()){ Iterator tarifaSocialDadoEconomiasIt = tarifaSocialDadoEconomias.iterator(); while (tarifaSocialDadoEconomiasIt.hasNext()){ TarifaSocialDadoEconomia tarifaSocialDadoEconomiaObject = (TarifaSocialDadoEconomia) tarifaSocialDadoEconomiasIt.next(); //TarifaSocialCartaoTipo tarifaSocialDadoEconomiaObject.setTarifaSocialCartaoTipo( tarifaSocialDadoEconomiaObject.getTarifaSocialCartaoTipo()); //RendaTipo tarifaSocialDadoEconomiaObject.setRendaTipo(tarifaSocialDadoEconomiaObject.getRendaTipo()); } } } } }