package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteEndereco; import gcom.cadastro.cliente.ClienteFone; import gcom.cadastro.cliente.IClienteFone; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; 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; /** * Esta classe tem por finalidade exibir para o usu�rio a tela que receber� os par�metros para realiza��o * da inser��o de um R.A (Aba n� 03 - Dados do solicitante) * * @author Raphael Rossiter * @date 25/07/2006 */ public class ExibirInserirRegistroAtendimentoDadosSolicitanteAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("inserirRegistroAtendimentoDadosSolicitante"); InserirRegistroAtendimentoActionForm form = (InserirRegistroAtendimentoActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); httpServletRequest.setAttribute("nomeCampo", "idCliente"); sessao.removeAttribute("gis"); /* * Pesquisas realizadas a partir do ENTER * =========================================================================================================== */ String pesquisarCliente = httpServletRequest .getParameter("pesquisarCliente"); if (pesquisarCliente != null && !pesquisarCliente.equalsIgnoreCase("")) { //[FS0027] - Verificar informa��o do im�vel Cliente cliente = fachada.verificarInformacaoImovel(Util.converterStringParaInteger(form.getIdCliente()), Util.converterStringParaInteger(form.getIdImovel()), false); if (cliente == null) { form.setIdCliente(""); form.setNomeCliente("Cliente inexistente"); httpServletRequest.setAttribute("corCliente", "exception"); httpServletRequest.setAttribute("nomeCampo", "idCliente"); } else { form.setIdCliente(cliente.getId().toString()); form.setNomeCliente(cliente.getNome()); Collection colecaoEnderecos = fachada.pesquisarEnderecosClienteAbreviado(cliente.getId()); if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()){ Iterator endCorrespondencia = colecaoEnderecos.iterator(); ClienteEndereco endereco = null; while(endCorrespondencia.hasNext()){ endereco = (ClienteEndereco) endCorrespondencia.next(); if (endereco.getIndicadorEnderecoCorrespondencia() != null && endereco.getIndicadorEnderecoCorrespondencia() .equals(ConstantesSistema.INDICADOR_ENDERECO_CORRESPONDENCIA)){ form.setClienteEnderecoSelected(endereco.getId().toString()); break; } } sessao.setAttribute("colecaoEnderecosAbaSolicitante", colecaoEnderecos); sessao.setAttribute("enderecoPertenceCliente", "OK"); } Collection colecaoFones = fachada.pesquisarClienteFone(cliente.getId()); if (colecaoFones != null && !colecaoFones.isEmpty()){ Iterator fonePrincipal = colecaoFones.iterator(); ClienteFone fone = null; while(fonePrincipal.hasNext()){ fone = (ClienteFone) fonePrincipal.next(); if (fone.getIndicadorTelefonePadrao() != null && fone.getIndicadorTelefonePadrao() .equals(ConstantesSistema.INDICADOR_TELEFONE_PRINCIPAL)){ form.setClienteFoneSelected(fone.getId().toString()); break; } } sessao.setAttribute("colecaoFonesAbaSolicitante", colecaoFones); } this.limparUnidadeSolicitante(sessao); this.limparNomeSolicitante(sessao); sessao.setAttribute("desabilitarDadosSolicitanteUnidade", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteFuncionario", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteNome", "OK"); sessao.setAttribute("habilitarAlteracaoEnderecoSolicitante", "NAO"); } } String pesquisarUnidade = httpServletRequest.getParameter("pesquisarUnidade"); if (pesquisarUnidade != null && !pesquisarUnidade.equalsIgnoreCase("")) { FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, form.getIdUnidadeSolicitante())); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUnidade = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidade == null || colecaoUnidade.isEmpty()) { form.setIdUnidadeSolicitante(""); form.setDescricaoUnidadeSolicitante("Unidade Solicitante inexistente"); httpServletRequest.setAttribute("corUnidadeSolicitante", "exception"); httpServletRequest.setAttribute("nomeCampo", "idUnidadeSolicitante"); } else { UnidadeOrganizacional unidade = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidade); sessao.setAttribute("enderecoPertenceCliente", "OK"); form.setIdUnidadeSolicitante(unidade.getId().toString()); form.setDescricaoUnidadeSolicitante(unidade.getDescricao()); this.limparCliente(sessao); this.limparNomeSolicitante(sessao); httpServletRequest.setAttribute("nomeCampo", "idFuncionarioResponsavel"); sessao.setAttribute("desabilitarDadosSolicitanteCliente", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteNome", "OK"); sessao.setAttribute("habilitarAlteracaoEnderecoSolicitante", "NAO"); sessao.setAttribute("habilitarAlteracaoEnderecoAbaSolicitante", "NAO"); } } String pesquisarFuncionario = httpServletRequest.getParameter("pesquisarFuncionario"); if (pesquisarFuncionario != null && !pesquisarFuncionario.equalsIgnoreCase("")) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, form.getIdFuncionarioResponsavel())); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.UNIDADE_ORGANIZACIONAL_ID, form.getIdUnidadeSolicitante())); Collection colecaoFuncionario = fachada.pesquisar(filtroFuncionario, Funcionario.class.getName()); if (colecaoFuncionario == null || colecaoFuncionario.isEmpty()) { form.setIdFuncionarioResponsavel(""); form.setNomeFuncionarioResponsavel("Funcion�rio inexistente"); httpServletRequest.setAttribute("corFuncionario", "exception"); httpServletRequest.setAttribute("nomeCampo", "idUnidadeSolicitanteInformar"); } else { Funcionario funcionario = (Funcionario) Util .retonarObjetoDeColecao(colecaoFuncionario); form.setIdFuncionarioResponsavel(funcionario.getId().toString()); form.setNomeFuncionarioResponsavel(funcionario.getNome()); this.limparCliente(sessao); this.limparNomeSolicitante(sessao); sessao.setAttribute("desabilitarDadosSolicitanteCliente", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteNome", "OK"); sessao.setAttribute("habilitarAlteracaoEnderecoSolicitante", "SIM"); } } /* * Fim das pesquisas realizadas pelo ENTER * =========================================================================================================== * =========================================================================================================== */ String informadoNomeSolicitante = httpServletRequest .getParameter("informadoNomeSolicitante"); if (informadoNomeSolicitante != null && !informadoNomeSolicitante.equalsIgnoreCase("")){ this.limparCliente(sessao); this.limparUnidadeSolicitante(sessao); sessao.setAttribute("desabilitarDadosSolicitanteCliente", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteUnidade", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteFuncionario", "OK"); sessao.setAttribute("habilitarAlteracaoEnderecoSolicitante", "SIM"); httpServletRequest.setAttribute("nomeCampo", "nomeSolicitante"); } String limparCliente = httpServletRequest .getParameter("limparClienteSolicitante"); if (limparCliente != null && !limparCliente.equalsIgnoreCase("")){ this.limparCliente(sessao); httpServletRequest.setAttribute("nomeCampo", "idCliente"); } String limparUnidadeSolicitante = httpServletRequest .getParameter("limparUnidadeSolicitante"); if (limparUnidadeSolicitante != null && !limparUnidadeSolicitante.equalsIgnoreCase("")){ this.limparUnidadeSolicitante(sessao); httpServletRequest.setAttribute("nomeCampo", "idCliente"); } String limparNomeSolicitante = httpServletRequest .getParameter("limparNomeSolicitante"); if (limparNomeSolicitante != null && !limparNomeSolicitante.equalsIgnoreCase("")){ this.limparNomeSolicitante(sessao); httpServletRequest.setAttribute("nomeCampo", "idCliente"); } //Remover Telefone String removerFone = httpServletRequest .getParameter("removerFone"); if (removerFone != null && !removerFone.equalsIgnoreCase("")){ long objetoRemocao = (Long.valueOf(httpServletRequest.getParameter("removerFone"))).longValue(); Collection colecaoFones = (Collection) sessao.getAttribute("colecaoFonesAbaSolicitante"); Iterator iteratorColecaoFones = colecaoFones.iterator(); IClienteFone clienteFone = null; while (iteratorColecaoFones.hasNext()){ clienteFone = (IClienteFone) iteratorColecaoFones.next(); if (obterTimestampIdObjeto(clienteFone) == objetoRemocao){ colecaoFones.remove(clienteFone); break; } } } /* * Adicionar Fone */ String adicionarFone = httpServletRequest .getParameter("telaRetorno"); if (adicionarFone != null && !adicionarFone.trim().equalsIgnoreCase("")) { retorno = actionMapping .findForward("informarFone"); } /* * Removendo endere�o */ String removerEndereco = httpServletRequest.getParameter("removerEndereco"); if (removerEndereco != null && !removerEndereco.trim().equalsIgnoreCase("")) { if (sessao.getAttribute("colecaoEnderecosAbaSolicitante") != null) { Collection enderecos = (Collection) sessao .getAttribute("colecaoEnderecosAbaSolicitante"); if (!enderecos.isEmpty()) { enderecos.remove(enderecos.iterator().next()); } } } /* * Adicionar endere�o */ String adicionarEndereco = httpServletRequest .getParameter("tipoPesquisaEndereco"); if (adicionarEndereco != null && !adicionarEndereco.trim().equalsIgnoreCase("")) { retorno = actionMapping.findForward("informarEndereco"); httpServletRequest.setAttribute("mostrarPerimetro", "sim"); } //Selecionar Fone com indicador padr�o String foneIndicadorPadrao = httpServletRequest.getParameter("clienteFoneSelected"); this.selecionarFoneComIndicadorPadrao(foneIndicadorPadrao, sessao); //Disponibilizando os dados do cliente usu�rio do im�vel String retornoEndereco = httpServletRequest.getParameter("retornoEndereco"); String retornoFone = httpServletRequest.getParameter("retornoFone"); if (form.getIdImovel() != null && !form.getIdImovel().equalsIgnoreCase("") && (pesquisarCliente == null || pesquisarCliente.equalsIgnoreCase("")) && (pesquisarUnidade == null || pesquisarUnidade.equalsIgnoreCase("")) && (pesquisarFuncionario == null || pesquisarFuncionario.equalsIgnoreCase("")) && (informadoNomeSolicitante == null || informadoNomeSolicitante.equalsIgnoreCase("")) && (limparCliente == null || limparCliente.equalsIgnoreCase("")) && (limparUnidadeSolicitante == null || limparUnidadeSolicitante.equalsIgnoreCase("")) && (limparNomeSolicitante == null || limparNomeSolicitante.equalsIgnoreCase("")) && (removerFone == null || removerFone.equalsIgnoreCase("")) && (removerEndereco == null || removerEndereco.equalsIgnoreCase("")) && (retornoEndereco == null || retornoEndereco.equalsIgnoreCase("")) && (adicionarEndereco == null || adicionarEndereco.equalsIgnoreCase("")) && (adicionarFone == null || adicionarFone.equalsIgnoreCase("")) && (retornoFone == null || retornoFone.equalsIgnoreCase("")) && // (form.getIdCliente() == null || form.getIdCliente().equalsIgnoreCase("")) && (form.getIdUnidadeSolicitante() == null || form.getIdUnidadeSolicitante().equalsIgnoreCase("")) && (form.getIdFuncionarioResponsavel() == null || form.getIdUnidadeSolicitante().equalsIgnoreCase("")) && (form.getNomeSolicitante() == null || form.getNomeSolicitante().equalsIgnoreCase(""))){ Cliente clienteUsuarioImovel = fachada.pesquisarClienteUsuarioImovel( Util.converterStringParaInteger(form.getIdImovel())); if (clienteUsuarioImovel != null && ( //(form.getIdCliente() == null || form.getIdCliente().equalsIgnoreCase("")) && (form.getIdUnidadeSolicitante() == null || form.getIdUnidadeSolicitante().equalsIgnoreCase("")) && (form.getIdFuncionarioResponsavel() == null || form.getIdFuncionarioResponsavel() .equalsIgnoreCase("")) && (form.getNomeSolicitante() == null || form.getNomeSolicitante() .equalsIgnoreCase(""))) || form.getIdImovel().equalsIgnoreCase(form.getIdImovelAssociacaoCliente())){ form.setIdCliente(clienteUsuarioImovel.getId().toString()); form.setNomeCliente(clienteUsuarioImovel.getNome()); form.setIdImovelAssociacaoCliente(form.getIdImovel()); Collection colecaoEnderecos = fachada.pesquisarEnderecosClienteAbreviado(clienteUsuarioImovel.getId()); if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()){ Iterator endCorrespondencia = colecaoEnderecos.iterator(); ClienteEndereco endereco = null; while(endCorrespondencia.hasNext()){ endereco = (ClienteEndereco) endCorrespondencia.next(); if (endereco.getIndicadorEnderecoCorrespondencia() != null && endereco.getIndicadorEnderecoCorrespondencia() .equals(ConstantesSistema.INDICADOR_ENDERECO_CORRESPONDENCIA)){ form.setClienteEnderecoSelected(endereco.getId().toString()); break; } } sessao.setAttribute("colecaoEnderecosAbaSolicitante", colecaoEnderecos); sessao.setAttribute("enderecoPertenceCliente", "OK"); } Collection colecaoFones = fachada.pesquisarClienteFone(clienteUsuarioImovel.getId()); if (colecaoFones != null && !colecaoFones.isEmpty()){ Iterator fonePrincipal = colecaoFones.iterator(); ClienteFone fone = null; while(fonePrincipal.hasNext()){ fone = (ClienteFone) fonePrincipal.next(); if (fone.getIndicadorTelefonePadrao() != null && fone.getIndicadorTelefonePadrao() .equals(ConstantesSistema.INDICADOR_TELEFONE_PRINCIPAL)){ form.setClienteFoneSelected(fone.getId().toString()); break; } } sessao.setAttribute("colecaoFonesAbaSolicitante", colecaoFones); } this.limparUnidadeSolicitante(sessao); this.limparNomeSolicitante(sessao); sessao.setAttribute("desabilitarDadosSolicitanteUnidade", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteFuncionario", "OK"); sessao.setAttribute("desabilitarDadosSolicitanteNome", "OK"); sessao.setAttribute("habilitarAlteracaoEnderecoSolicitante", "NAO"); } } if (form.getIdImovel() == null || form.getIdImovel().equalsIgnoreCase("") && (pesquisarCliente == null || pesquisarCliente.equalsIgnoreCase("")) && (pesquisarUnidade == null || pesquisarUnidade.equalsIgnoreCase("")) && (pesquisarFuncionario == null || pesquisarFuncionario.equalsIgnoreCase("")) && (informadoNomeSolicitante == null || informadoNomeSolicitante.equalsIgnoreCase("")) && (limparCliente == null || limparCliente.equalsIgnoreCase("")) && (limparUnidadeSolicitante == null || limparUnidadeSolicitante.equalsIgnoreCase("")) && (limparNomeSolicitante == null || limparNomeSolicitante.equalsIgnoreCase("")) && (removerFone == null || removerFone.equalsIgnoreCase("")) && (removerEndereco == null || removerEndereco.equalsIgnoreCase("")) && (retornoEndereco == null || retornoEndereco.equalsIgnoreCase("")) && (retornoFone == null || retornoFone.equalsIgnoreCase("")) && (adicionarEndereco == null || adicionarEndereco.equalsIgnoreCase("")) && (adicionarFone == null || adicionarFone.equalsIgnoreCase("")) && sessao.getAttribute("colecaoEnderecos") != null && (sessao.getAttribute("colecaoEnderecosAbaSolicitante") == null || (sessao.getAttribute("colecaoEnderecosAbaSolicitante") != null && ((Collection) sessao.getAttribute("colecaoEnderecosAbaSolicitante")).isEmpty()))){ Collection colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecos"); Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoEnderecos); ClienteEndereco clienteEndereco = new ClienteEndereco(); clienteEndereco.setComplemento(imovel.getComplementoEndereco()); clienteEndereco.setEnderecoReferencia(imovel.getEnderecoReferencia()); clienteEndereco.setLogradouroBairro(imovel.getLogradouroBairro()); clienteEndereco.setLogradouroCep(imovel.getLogradouroCep()); clienteEndereco.setNumero(imovel.getNumeroImovel()); clienteEndereco.setPerimetroInicial(imovel.getPerimetroInicial()); clienteEndereco.setPerimetroFinal(imovel.getPerimetroFinal()); clienteEndereco.setUltimaAlteracao(new Date()); Collection colecaoEnderecosAbaSolicitante = new ArrayList(); colecaoEnderecosAbaSolicitante.add(clienteEndereco); sessao.setAttribute("colecaoEnderecosAbaSolicitante", colecaoEnderecosAbaSolicitante); } //[SB0011] 1.5 Verifica Indicador de Envio de email para ServicoTipo if(form != null && form.getEspecificacao() != null && !form.getEspecificacao().equals("")){ int idEspecificacao = Integer.parseInt(form.getEspecificacao()); FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarCaminhoParaCarregamentoEntidade(FiltroSolicitacaoTipoEspecificacao.SERVICO_TIPO); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.ID, idEspecificacao)); List<SolicitacaoTipoEspecificacao> listaSolicitacaoTipoEspecificacao = new ArrayList<SolicitacaoTipoEspecificacao>(fachada.pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName())); if(listaSolicitacaoTipoEspecificacao != null && !listaSolicitacaoTipoEspecificacao.isEmpty()){ SolicitacaoTipoEspecificacao especificacao = listaSolicitacaoTipoEspecificacao.get(0); if(especificacao.getServicoTipo()!=null && especificacao.getServicoTipo().getIndicadorEnvioPesquisaSatisfacao().intValue() == 1){ sessao.setAttribute("habilitarCampoSatisfacaoEmail", true); }else{ sessao.setAttribute("habilitarCampoSatisfacaoEmail", false); } } } return retorno; } private void limparCliente(HttpSession sessao){ if (sessao.getAttribute("enderecoPertenceCliente") != null){ sessao.removeAttribute("colecaoEnderecosAbaSolicitante"); sessao.removeAttribute("colecaoFonesAbaSolicitante"); } sessao.removeAttribute("enderecoPertenceCliente"); sessao.removeAttribute("desabilitarDadosSolicitanteUnidade"); sessao.removeAttribute("desabilitarDadosSolicitanteFuncionario"); sessao.removeAttribute("desabilitarDadosSolicitanteNome"); sessao.removeAttribute("habilitarAlteracaoEnderecoSolicitante"); } private void limparUnidadeSolicitante(HttpSession sessao){ sessao.removeAttribute("desabilitarDadosSolicitanteCliente"); sessao.removeAttribute("desabilitarDadosSolicitanteNome"); sessao.removeAttribute("habilitarAlteracaoEnderecoSolicitante"); sessao.removeAttribute("habilitarAlteracaoEnderecoAbaSolicitante"); } private void limparNomeSolicitante(HttpSession sessao){ sessao.removeAttribute("desabilitarDadosSolicitanteCliente"); sessao.removeAttribute("desabilitarDadosSolicitanteUnidade"); sessao.removeAttribute("desabilitarDadosSolicitanteFuncionario"); sessao.removeAttribute("habilitarAlteracaoEnderecoSolicitante"); } private void selecionarFoneComIndicadorPadrao(String objetoFoneIndicadorPadrao, HttpSession sessao){ if (objetoFoneIndicadorPadrao != null && !objetoFoneIndicadorPadrao.equalsIgnoreCase("")){ long objetoPadrao = (Long.valueOf(objetoFoneIndicadorPadrao)).longValue(); if (sessao.getAttribute("colecaoFonesAbaSolicitante") != null){ Collection colecaoFones = (Collection) sessao.getAttribute("colecaoFonesAbaSolicitante"); Iterator iteratorColecaoFones = colecaoFones.iterator(); ClienteFone clienteFone = null; while (iteratorColecaoFones.hasNext()){ clienteFone = (ClienteFone) iteratorColecaoFones.next(); if (obterTimestampIdObjeto(clienteFone) == objetoPadrao){ clienteFone.setIndicadorTelefonePadrao(new Short("1")); } else{ clienteFone.setIndicadorTelefonePadrao(null); } } } } } }