package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.bean.ObterDadosIdentificacaoLocalOcorrenciaHelper; import gcom.atendimentopublico.registroatendimento.bean.RegistroAtendimentoEncerradoLocalOcorrenciaHelper; import gcom.atendimentopublico.registroatendimento.bean.VerificarRAFaltaAguaHelper; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.BairroArea; import gcom.cadastro.geografico.FiltroBairro; import gcom.cadastro.geografico.FiltroBairroArea; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.DivisaoEsgoto; import gcom.seguranca.acesso.usuario.Usuario; 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 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 validar as informa��es da segunda aba do * processo de inser��o de um registro de atendimento * * @author Raphael Rossiter * @date 25/07/2006 */ public class InserirRegistroAtendimentoDadosLocalOcorrenciaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm = (InserirRegistroAtendimentoActionForm) actionForm; // ----------------------------------------------------------------------- // [FS0040] - Validar Preenchimento dos campos String idImovel = inserirRegistroAtendimentoActionForm.getIdImovel(); String pontoReferencia = inserirRegistroAtendimentoActionForm .getPontoReferencia(); String idMunicipio = inserirRegistroAtendimentoActionForm .getIdMunicipio(); String descricaoMunicipio = inserirRegistroAtendimentoActionForm .getDescricaoMunicipio(); String cdBairro = inserirRegistroAtendimentoActionForm.getCdBairro(); String descricaoBairro = inserirRegistroAtendimentoActionForm .getDescricaoBairro(); String idAreaBairro = inserirRegistroAtendimentoActionForm .getIdBairroArea(); String idlocalidade = inserirRegistroAtendimentoActionForm .getIdLocalidade(); String descricaoLocalidade = inserirRegistroAtendimentoActionForm .getDescricaoLocalidade(); String cdSetorComercial = inserirRegistroAtendimentoActionForm .getCdSetorComercial(); String descricaoSetorComercial = inserirRegistroAtendimentoActionForm .getDescricaoSetorComercial(); String numeroQuadra = inserirRegistroAtendimentoActionForm .getNnQuadra(); String idDivisaoEsgoto = inserirRegistroAtendimentoActionForm .getIdDivisaoEsgoto(); String idUnidade = inserirRegistroAtendimentoActionForm .getIdUnidadeDestino(); String descricaoUnidade = inserirRegistroAtendimentoActionForm .getDescricaoUnidadeDestino(); String idLocalOcorrencia = inserirRegistroAtendimentoActionForm .getIdLocalOcorrencia(); String idPavimentoRua = inserirRegistroAtendimentoActionForm .getIdPavimentoRua(); String idPavimentoCalcada = inserirRegistroAtendimentoActionForm .getIdPavimentoCalcada(); String descricaoLocalOcorrencia = inserirRegistroAtendimentoActionForm .getDescricaoLocalOcorrencia(); String imovelObrigatorio = inserirRegistroAtendimentoActionForm .getImovelObrigatorio(); String pavimentoRuaObrigatorio = inserirRegistroAtendimentoActionForm .getPavimentoRuaObrigatorio(); String pavimentoCalcadaObrigatorio = inserirRegistroAtendimentoActionForm .getPavimentoCalcadaObrigatorio(); String solicitacaoTipoRelativoFaltaAgua = (String) sessao .getAttribute("solicitacaoTipoRelativoFaltaAgua"); String solicitacaoTipoRelativoAreaEsgoto = (String) sessao .getAttribute("solicitacaoTipoRelativoAreaEsgoto"); String desabilitarMunicipioBairro = (String) sessao .getAttribute("desabilitarMunicipioBairro"); String indRuaLocalOcorrencia = inserirRegistroAtendimentoActionForm .getIndRuaLocalOcorrencia(); String indCalcadaLocalOcorrencia = inserirRegistroAtendimentoActionForm .getIndCalcadaLocalOcorrencia(); String idEspecificacao = inserirRegistroAtendimentoActionForm.getEspecificacao(); Collection colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecos"); if (idUnidade != null && ! idUnidade.equals("")){ FiltroUnidadeOrganizacional filtroUnidadeDestino = new FiltroUnidadeOrganizacional(); filtroUnidadeDestino.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, new Integer(idUnidade))); Collection colecaoUnidadeDestino = fachada.pesquisar( filtroUnidadeDestino, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeDestino != null && ! colecaoUnidadeDestino.isEmpty()) { UnidadeOrganizacional unidadeDestino = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidadeDestino); // [FS0021] - Verificar possibilidade de encaminhamento para a // unidade destino fachada.verificaPossibilidadeEncaminhamentoUnidadeDestino(unidadeDestino); } } if(inserirRegistroAtendimentoActionForm.getParecerUnidadeDestino() != null && !inserirRegistroAtendimentoActionForm.getParecerUnidadeDestino().equals("") && inserirRegistroAtendimentoActionForm.getParecerUnidadeDestino().length() > 400){ String[] msg = new String[2]; msg[0]="Parecer"; msg[1]="400"; throw new ActionServletException("atencao.execedeu_limit_observacao",null,msg); } FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro( new ParametroSimples( FiltroSolicitacaoTipoEspecificacao.ID, inserirRegistroAtendimentoActionForm.getEspecificacao())); Collection colecaoSolicitacaoTipoEspecificacao = this.getFachada() .pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); SolicitacaoTipoEspecificacao especificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecaoSolicitacaoTipoEspecificacao); Collection colecaoPagamento = null; if (sessao.getAttribute("colecaoPagamentosDuplicidade") != null){ colecaoPagamento = (Collection) sessao.getAttribute("colecaoPagamentosDuplicidade"); } fachada.validarCamposObrigatoriosRA_2ABA(idImovel, pontoReferencia, idMunicipio, descricaoMunicipio, cdBairro, descricaoBairro, idAreaBairro, idlocalidade, descricaoLocalidade, cdSetorComercial, descricaoSetorComercial, numeroQuadra, idDivisaoEsgoto, idUnidade, descricaoUnidade, idLocalOcorrencia, idPavimentoRua, idPavimentoCalcada, descricaoLocalOcorrencia, imovelObrigatorio, pavimentoRuaObrigatorio, pavimentoCalcadaObrigatorio, solicitacaoTipoRelativoFaltaAgua, solicitacaoTipoRelativoAreaEsgoto, desabilitarMunicipioBairro, indRuaLocalOcorrencia, indCalcadaLocalOcorrencia, new Integer(idEspecificacao), null, colecaoEnderecos, especificacao, colecaoPagamento, usuarioLogado); // ----------------------------------------------------------------------- // valida os campos de enter(caso tenha mudado algum valor validar) ActionForward retornoAtencao = validarCamposEnter( inserirRegistroAtendimentoActionForm, fachada, httpServletRequest, actionMapping, sessao); if (retornoAtencao != null) { retorno = retornoAtencao; } else { // caso seja a primeira vez ent�o continua est� nulo // caso seja a segunda vez continua est� com SIM, ai chama o // sub-fluxo // [SB0017] denovo // na terceira vez em diante continua recebe o valor N�O e ai n�o // chama // mais o // subFluxo String continua = httpServletRequest.getParameter("continua"); // Verificando direcionamento do processo String telaOpcaoConsulta = httpServletRequest .getParameter("telaOpcao"); if (telaOpcaoConsulta != null && !telaOpcaoConsulta.equals("")) { Collection colecaoEndereco = (Collection) sessao .getAttribute("colecaoEnderecos"); Integer idLogradouroBairro = null; Integer idLogradouroCep = null; if (colecaoEndereco != null && !colecaoEndereco.isEmpty()) { Object endereco = (Object) Util .retonarObjetoDeColecao(colecaoEndereco); if (endereco instanceof Imovel) { Imovel imovel = (Imovel) endereco; idLogradouroBairro = imovel.getLogradouroBairro() .getId(); idLogradouroCep = imovel.getLogradouroCep().getId(); } else { if (endereco instanceof RegistroAtendimento) { RegistroAtendimento ra = (RegistroAtendimento) endereco; idLogradouroBairro = ra.getLogradouroBairro() .getId(); idLogradouroCep = ra.getLogradouroCep().getId(); } } // [SB0008] Verifica Exist�ncia de Registro de Atendimento // Pendente para o Local da Ocorr�ncia RegistroAtendimento ra = fachada .verificaExistenciaRAPendenteLocalOcorrencia( new Integer( inserirRegistroAtendimentoActionForm .getEspecificacao()), idLogradouroBairro, idLogradouroCep); if (ra != null) { httpServletRequest.setAttribute("atencao", "Existe Registro de Atendimento de " + ra.getSolicitacaoTipoEspecificacao() .getDescricao() + " em aberto para este endere�o " + ra.getEnderecoFormatadoAbreviado()); // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?destino=3&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "popup"); // Label bot�o utilit�rio httpServletRequest.setAttribute("labelBotao", "Consultar RAs Pendentes"); // URL bot�o utilit�rio httpServletRequest .setAttribute( "urlBotao", "pesquisarRegitrosAtendimentoPendentesLocalOcorrenciaAction.do?idEspecificacao=" + ra .getSolicitacaoTipoEspecificacao() .getId() + "&idLogradouroBairro=" + ra.getLogradouroBairro() .getId() + "&idLogradouroCep=" + ra.getLogradouroCep().getId()); retorno = actionMapping .findForward("telaOpcaoConsultar"); } } //[SB0015] Verifica Registro de Atendimento Encerrado para o Local da Ocorr�ncia RegistroAtendimentoEncerradoLocalOcorrenciaHelper raEncerradoHelper = fachada .verificarRegistroAtendimentoEncerradoLocalOcorrencia(Util.converterStringParaInteger(idImovel), Util.converterStringParaInteger(inserirRegistroAtendimentoActionForm.getEspecificacao()), idLogradouroBairro, idLogradouroCep); if (raEncerradoHelper != null) { SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); if (raEncerradoHelper.getImovel() != null){ httpServletRequest.setAttribute("atencao", "Existe Registro de Atendimento de " + raEncerradoHelper.getSolicitacaoTipoEspecificacao() .getDescricao() + " encerrado nos �ltimos " + sistemaParametro.getDiasReativacao().toString() + " dias para este im�vel " + raEncerradoHelper.getImovel().getId().toString()); } else{ httpServletRequest.setAttribute("atencao", "Existe Registro de Atendimento de " + raEncerradoHelper.getSolicitacaoTipoEspecificacao() .getDescricao() + " encerrado nos �ltimos " + sistemaParametro.getDiasReativacao().toString() + " dias para este endere�o " + raEncerradoHelper.getEnderecoLocalOcorrencia()); } // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?destino=3&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "popup"); // Label bot�o utilit�rio httpServletRequest.setAttribute("labelBotao", "Consultar RAs Encerrados"); // URL bot�o utilit�rio if (raEncerradoHelper.getImovel() != null){ httpServletRequest .setAttribute( "urlBotao", "pesquisarRegistrosAtendimentoEncerradosLocalOcorrenciaAction.do?idEspecificacao=" + raEncerradoHelper .getSolicitacaoTipoEspecificacao() .getId() + "&idImovel=" + raEncerradoHelper.getImovel().getId().toString()); } else{ httpServletRequest .setAttribute( "urlBotao", "pesquisarRegistrosAtendimentoEncerradosLocalOcorrenciaAction.do?idEspecificacao=" + raEncerradoHelper .getSolicitacaoTipoEspecificacao() .getId() + "&idLogradouroBairro=" + idLogradouroBairro + "&idLogradouroCep=" + idLogradouroCep); } retorno = actionMapping .findForward("telaOpcaoConsultar"); } if (httpServletRequest.getAttribute("urlBotao") == null || httpServletRequest.getAttribute("urlBotao").equals( "")) { // [SB0017] - Verifica Registro de Atendimento de Falta de // �gua /* * S� para os casos em que o local de ocorr�ncia for informado */ if (inserirRegistroAtendimentoActionForm.getIdBairroArea() != null && !inserirRegistroAtendimentoActionForm.getIdBairroArea().equalsIgnoreCase("") && !inserirRegistroAtendimentoActionForm.getIdBairroArea().equalsIgnoreCase( String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))){ retorno = registroAtendimentoFaltaAgua(actionMapping, httpServletRequest, inserirRegistroAtendimentoActionForm, fachada, continua); } } } else { // [SB0017] - Verifica Registro de Atendimento de Falta de �gua if (continua != null && continua.equals("SIM")) { /* * S� para os casos em que o local de ocorr�ncia for informado */ if (inserirRegistroAtendimentoActionForm.getIdBairroArea() != null && !inserirRegistroAtendimentoActionForm.getIdBairroArea().equalsIgnoreCase("") && !inserirRegistroAtendimentoActionForm.getIdBairroArea().equalsIgnoreCase( String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))){ retorno = registroAtendimentoFaltaAgua(actionMapping, httpServletRequest, inserirRegistroAtendimentoActionForm, fachada, continua); } } } } if (retorno != null) { httpServletRequest.setAttribute("telaOpcaoConsultar", "OK"); } return retorno; } private ActionForward registroAtendimentoFaltaAgua( ActionMapping actionMapping, HttpServletRequest httpServletRequest, InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm, Fachada fachada, String continua) { ActionForward retorno = null; // [SB0017] - Verifica Registro de Atendimento de Falta de �gua Date dataAtendimento = null; if (inserirRegistroAtendimentoActionForm.getDataAtendimento() != null && !inserirRegistroAtendimentoActionForm.getDataAtendimento() .equals("")) { dataAtendimento = Util .converteStringParaDateHora(inserirRegistroAtendimentoActionForm .getDataAtendimento() + " " + inserirRegistroAtendimentoActionForm.getHora() + ":00"); } Integer idBairroArea = null; if (inserirRegistroAtendimentoActionForm.getIdBairroArea() != null && !inserirRegistroAtendimentoActionForm.getIdBairroArea() .equals("") && !inserirRegistroAtendimentoActionForm.getIdBairroArea().equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) { idBairroArea = new Integer(inserirRegistroAtendimentoActionForm .getIdBairroArea()); } Integer idEspecificacao = null; if (inserirRegistroAtendimentoActionForm.getEspecificacao() != null && !inserirRegistroAtendimentoActionForm.getEspecificacao() .equals("")) { idEspecificacao = new Integer(inserirRegistroAtendimentoActionForm .getEspecificacao()); } Integer idBairro = null; if (inserirRegistroAtendimentoActionForm.getIdBairro() != null && !inserirRegistroAtendimentoActionForm.getIdBairro().equals( "")) { idBairro = new Integer(inserirRegistroAtendimentoActionForm .getIdBairro()); } Short indicadorFaltaAgua = null; if (inserirRegistroAtendimentoActionForm.getIndFaltaAgua() != null && !inserirRegistroAtendimentoActionForm.getIndFaltaAgua() .equals("")) { indicadorFaltaAgua = new Short(inserirRegistroAtendimentoActionForm .getIndFaltaAgua()); } Integer indicadorMatricula = null; if (inserirRegistroAtendimentoActionForm.getIndMatricula() != null && !inserirRegistroAtendimentoActionForm.getIndMatricula() .equals("")) { indicadorMatricula = new Integer( inserirRegistroAtendimentoActionForm.getIndMatricula()); } VerificarRAFaltaAguaHelper verificarRAFaltaAguaHelper = fachada .verificarRegistroAtendimentoFaltaAguaInserir(dataAtendimento, idBairroArea, idBairro, idEspecificacao, indicadorFaltaAgua, indicadorMatricula, continua); if (verificarRAFaltaAguaHelper != null && !verificarRAFaltaAguaHelper.equals("")) { // caso o caso de uso seja [UC0440] - Consultar Programa��o de // Abastecimento/Manuten��o if (verificarRAFaltaAguaHelper.getCasoUso1() != null && verificarRAFaltaAguaHelper.getCasoUso1().equals( VerificarRAFaltaAguaHelper.CONSULTAR_PROGRAMACAO)) { httpServletRequest.setAttribute("atencao", verificarRAFaltaAguaHelper.getMensagem()); if (continua == null) { // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?destino=3&continua=SIM&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); } else { // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?continua=NAO&destino=3&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); } // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "popup"); // Label bot�o utilit�t�rio httpServletRequest.setAttribute("labelBotao", "Abastecimento/Manuten��o"); // URL bot�o utilit�rio // [UC0440] - Consultar Programa��o de Abastecimento/Manuten��o httpServletRequest.setAttribute("urlBotao", "exibirConsultarProgramacaoAbastecimentoManutencaoAction.do?idMunicipio=" + inserirRegistroAtendimentoActionForm.getIdMunicipio() + "&codigoBairro=" + inserirRegistroAtendimentoActionForm.getCdBairro() + "&areaBairro=" + inserirRegistroAtendimentoActionForm.getIdBairroArea()); retorno = actionMapping.findForward("telaOpcaoConsultar"); } // Adicionar um solicitante ao RA de falta de �gua generalizada if (verificarRAFaltaAguaHelper.getCasoUso1() != null && verificarRAFaltaAguaHelper .getCasoUso1() .equals( VerificarRAFaltaAguaHelper.EXIBIR_ADICIONAR_SOLICITANTE)) { httpServletRequest.setAttribute("atencao", verificarRAFaltaAguaHelper.getMensagem()); // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?continua=NAO&destino=3&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "popup"); // Label bot�o utilit�tio httpServletRequest.setAttribute("labelBotao", "Adicionar Solicitante"); // URL bot�o utilit�rio // Adicionar um solicitante ao RA de falta de �gua generalizada httpServletRequest.setAttribute("urlBotao", "exibirAdicionarSolicitanteRegistroAtendimentoAction.do?idRegistroAtendimento=" + verificarRAFaltaAguaHelper.getIdRAReferencia().toString()); retorno = actionMapping.findForward("telaOpcaoConsultar"); } // caso o caso de uso seja [SB0019] - Exibir Registros de // Atendimento de Falta de �gua no Im�vel da �rea do Bairro if (verificarRAFaltaAguaHelper.getCasoUso1() != null && verificarRAFaltaAguaHelper .getCasoUso1() .equals( VerificarRAFaltaAguaHelper.EXIBIR_RA_FALTA_AGUA_IMOVEL)) { httpServletRequest.setAttribute("atencao", verificarRAFaltaAguaHelper.getMensagem()); // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?continua=NAO&destino=3&action=inserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "popup"); // Label bot�o utilit�rio httpServletRequest.setAttribute("labelBotao", "Consultar RAs"); // URL bot�o utilit�rio // [SB0019] - Exibir Registros de // Atendimento de Falta de �gua no Im�vel da �rea do Bairro httpServletRequest .setAttribute("urlBotao", "pesquisarRegistrosAtendimentoFaltaAguaImovelLocalOcorrenciaAction.do?idBairroArea=" + inserirRegistroAtendimentoActionForm.getIdBairroArea() + "&idEspecificacao=" + inserirRegistroAtendimentoActionForm.getEspecificacao()); retorno = actionMapping.findForward("telaOpcaoConsultar"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada2", "tela"); // Label bot�o utilit�rio httpServletRequest.setAttribute("labelBotao2", "Abrir RA de Falta de �gua Geral"); // URL bot�o utilit�rio // [UC0366] - Inserir Registro de Atendimento httpServletRequest .setAttribute("urlBotao2", "exibirInserirRegistroAtendimentoAction.do?raFaltaAguaGeneralizada=1&menu=sim"); retorno = actionMapping.findForward("telaOpcaoConsultar"); } } return retorno; } private ActionForward validarCamposEnter( InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm, Fachada fachada, HttpServletRequest httpServletRequest, ActionMapping actionMapping, HttpSession sessao) { ActionForward retornoAtencao = null; /* * [SB0004] Obt�m e Habilita/Desabilita Dados da Identifica��o do * Local da Ocorr�ncia e Dados do Solicitante * * [FS0019] Verificar endere�o do im�vel [FS0020] - Verificar * exist�ncia de registro de atendimento para o im�vel com a mesma * especifica��o * * [SB0020] Verifica Situa��o do Im�vel e Especifica��o * */ // [SB0002] Habilita/Desabilita Munic�pio, Bairro, �rea do Bairro e // Divis�o de Esgoto ObterDadosIdentificacaoLocalOcorrenciaHelper habilitaGeograficoDivisaoEsgoto = fachada .habilitarGeograficoDivisaoEsgoto(new Integer( inserirRegistroAtendimentoActionForm .getTipoSolicitacao())); String idImovel = inserirRegistroAtendimentoActionForm.getIdImovel(); String inscricaoImovel = inserirRegistroAtendimentoActionForm .getInscricaoImovel(); // caso seja a pesquisa do enter do im�vel ou o indicador de // valida��o de matr�cula do im�vel seja 1 if (idImovel != null && !idImovel.equalsIgnoreCase("") && (inscricaoImovel == null || inscricaoImovel.equals(""))) { ObterDadosIdentificacaoLocalOcorrenciaHelper dadosIdentificacaoLocalOcorrencia = fachada .obterDadosIdentificacaoLocalOcorrencia(new Integer( inserirRegistroAtendimentoActionForm.getIdImovel()), new Integer(inserirRegistroAtendimentoActionForm .getEspecificacao()), new Integer( inserirRegistroAtendimentoActionForm .getTipoSolicitacao()), true); if (dadosIdentificacaoLocalOcorrencia.getImovel() != null) { // [SB0021] Verifica Exist�ncia de Registro de // Atendimento // Pendente para o Im�vel boolean raPendente = fachada .verificaExistenciaRAPendenteImovel(dadosIdentificacaoLocalOcorrencia .getImovel().getId()); if (raPendente) { httpServletRequest.setAttribute("atencao", "Existe Registro de Atendimento pendente para o im�vel " + dadosIdentificacaoLocalOcorrencia .getImovel().getId().toString()); // Label bot�o utilit�rio httpServletRequest.setAttribute("labelBotao", "RAs Pendentes"); // URL bot�o utilit�rio // [SB0019] - Exibir Registros de // Atendimento de Falta de �gua no Im�vel da �rea do Bairro httpServletRequest .setAttribute("urlBotao", "pesquisarRegitrosAtendimentoPendentesImovelLocalOcorrenciaAction.do"); // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosSolicitanteAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "tela"); retornoAtencao = actionMapping .findForward("telaOpcaoConsultar"); } // [FS0020] - Verificar exist�ncia de registro de // atendimento // para o im�vel com a mesma especifica��o fachada.verificarExistenciaRAImovelMesmaEspecificacao( dadosIdentificacaoLocalOcorrencia.getImovel().getId(), new Integer(inserirRegistroAtendimentoActionForm .getEspecificacao())); // [SB0020] Verifica Situa��o do Im�vel e // Especifica��o fachada.verificarSituacaoImovelEspecificacao( dadosIdentificacaoLocalOcorrencia.getImovel(), new Integer(inserirRegistroAtendimentoActionForm .getEspecificacao())); inserirRegistroAtendimentoActionForm .setIdImovel(dadosIdentificacaoLocalOcorrencia .getImovel().getId().toString()); inserirRegistroAtendimentoActionForm .setInscricaoImovel(dadosIdentificacaoLocalOcorrencia .getImovel().getInscricaoFormatada()); if (!dadosIdentificacaoLocalOcorrencia.isInformarEndereco()) { Collection colecaoEnderecos = new ArrayList(); colecaoEnderecos.add(dadosIdentificacaoLocalOcorrencia .getImovel()); sessao.setAttribute("colecaoEnderecos", colecaoEnderecos); } else if (dadosIdentificacaoLocalOcorrencia .getEnderecoDescritivo() != null) { inserirRegistroAtendimentoActionForm .setDescricaoLocalOcorrencia(dadosIdentificacaoLocalOcorrencia .getEnderecoDescritivo()); if (retornoAtencao == null) { httpServletRequest .setAttribute( "atencao", "O Registro de Atendimento ficar� bloqueado at� " + " que seja informado o logradouro para o im�vel"); // URL da pr�xima ABA httpServletRequest .setAttribute( "proximaAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosSolicitanteAction"); // URL da ABA anterior httpServletRequest .setAttribute( "voltarAba", "/gsan/inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction"); // Tipo chamada (Popup ou tela convencional) httpServletRequest.setAttribute("tipoChamada", "tela"); retornoAtencao = actionMapping .findForward("telaOpcaoConsultar"); } sessao.removeAttribute("colecaoEnderecos"); } else { sessao.removeAttribute("colecaoEnderecos"); } this.carregarMunicipioBairroParaImovel( habilitaGeograficoDivisaoEsgoto, dadosIdentificacaoLocalOcorrencia, inserirRegistroAtendimentoActionForm, sessao, fachada); inserirRegistroAtendimentoActionForm .setIdLocalidade(dadosIdentificacaoLocalOcorrencia .getImovel().getLocalidade().getId().toString()); inserirRegistroAtendimentoActionForm .setDescricaoLocalidade(dadosIdentificacaoLocalOcorrencia .getImovel().getLocalidade().getDescricao()); inserirRegistroAtendimentoActionForm .setIdSetorComercial(dadosIdentificacaoLocalOcorrencia .getImovel().getSetorComercial().getId() .toString()); inserirRegistroAtendimentoActionForm.setCdSetorComercial(String .valueOf(dadosIdentificacaoLocalOcorrencia.getImovel() .getSetorComercial().getCodigo())); inserirRegistroAtendimentoActionForm .setDescricaoSetorComercial(dadosIdentificacaoLocalOcorrencia .getImovel().getSetorComercial().getDescricao()); inserirRegistroAtendimentoActionForm.setIdQuadra(String .valueOf(dadosIdentificacaoLocalOcorrencia.getImovel() .getQuadra().getId())); inserirRegistroAtendimentoActionForm.setNnQuadra(String .valueOf(dadosIdentificacaoLocalOcorrencia.getImovel() .getQuadra().getNumeroQuadra())); } } String idMunicipio = inserirRegistroAtendimentoActionForm .getIdMunicipio(); String descricaoMunicipio = inserirRegistroAtendimentoActionForm .getDescricaoMunicipio(); if (idMunicipio != null && !idMunicipio.equalsIgnoreCase("") && (descricaoMunicipio == null || descricaoMunicipio.equals(""))) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, inserirRegistroAtendimentoActionForm .getIdMunicipio())); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoMunicipio = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (colecaoMunicipio == null || colecaoMunicipio.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Munic�pio"); } else { Municipio municipio = (Municipio) Util .retonarObjetoDeColecao(colecaoMunicipio); inserirRegistroAtendimentoActionForm.setIdMunicipio(municipio .getId().toString()); inserirRegistroAtendimentoActionForm .setDescricaoMunicipio(municipio.getNome()); httpServletRequest.setAttribute("nomeCampo", "cdBairro"); } } String codigoBairro = inserirRegistroAtendimentoActionForm .getCdBairro(); String descricaoBairro = inserirRegistroAtendimentoActionForm .getDescricaoBairro(); if (codigoBairro != null && !codigoBairro.equalsIgnoreCase("")) { if ((descricaoBairro == null || descricaoBairro.equals(""))) { FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, inserirRegistroAtendimentoActionForm.getCdBairro())); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, inserirRegistroAtendimentoActionForm.getIdMunicipio())); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoBairro = fachada.pesquisar(filtroBairro, Bairro.class.getName()); if (colecaoBairro == null || colecaoBairro.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Bairro"); } else { Bairro bairro = (Bairro) Util .retonarObjetoDeColecao(colecaoBairro); inserirRegistroAtendimentoActionForm.setCdBairro(String .valueOf(bairro.getCodigo())); inserirRegistroAtendimentoActionForm.setCdBairro(String .valueOf(bairro.getId())); inserirRegistroAtendimentoActionForm .setDescricaoBairro(bairro.getNome()); this.pesquisarBairroArea( new Integer(inserirRegistroAtendimentoActionForm .getIdBairro()), fachada, sessao); } } } String idLocalidade = inserirRegistroAtendimentoActionForm .getIdLocalidade(); String descricaoLocalidade = inserirRegistroAtendimentoActionForm .getDescricaoLocalidade(); if (idLocalidade != null && !idLocalidade.equalsIgnoreCase("") && (descricaoLocalidade == null || descricaoLocalidade .equals(""))) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, inserirRegistroAtendimentoActionForm .getIdLocalidade())); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoLocalidade == null || colecaoLocalidade.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", "inserirRegistroAtendimentoWizardAction.do?action=exibirInserirRegistroAtendimentoDadosGeraisAction", new Exception(), "Localidade"); } else { Localidade localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); inserirRegistroAtendimentoActionForm.setIdLocalidade(localidade .getId().toString()); inserirRegistroAtendimentoActionForm .setDescricaoLocalidade(localidade.getDescricao()); httpServletRequest .setAttribute("nomeCampo", "cdSetorComercial"); } } String cdSetorComercial = inserirRegistroAtendimentoActionForm .getCdSetorComercial(); /*String descricaoSetorComercial = inserirRegistroAtendimentoActionForm .getDescricaoSetorComercial();*/ if (cdSetorComercial != null && !cdSetorComercial.equalsIgnoreCase("")) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, inserirRegistroAtendimentoActionForm.getIdLocalidade())); filtroSetorComercial .adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, inserirRegistroAtendimentoActionForm .getCdSetorComercial())); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoSetorComercial = fachada.pesquisar( filtroSetorComercial, SetorComercial.class.getName()); if (colecaoSetorComercial == null || colecaoSetorComercial.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Setor Comercial"); } else { SetorComercial setorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoSetorComercial); inserirRegistroAtendimentoActionForm .setIdSetorComercial(setorComercial.getId().toString()); inserirRegistroAtendimentoActionForm.setCdSetorComercial(String .valueOf(setorComercial.getCodigo())); inserirRegistroAtendimentoActionForm .setDescricaoSetorComercial(setorComercial .getDescricao()); httpServletRequest.setAttribute("nomeCampo", "nnQuadra"); } } String nnQuadra = inserirRegistroAtendimentoActionForm.getNnQuadra(); if (nnQuadra != null && !nnQuadra.equalsIgnoreCase("")) { FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra .adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, inserirRegistroAtendimentoActionForm .getIdSetorComercial())); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, inserirRegistroAtendimentoActionForm.getNnQuadra())); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName()); if (colecaoQuadra == null || colecaoQuadra.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Quadra"); } else { Quadra quadra = (Quadra) Util .retonarObjetoDeColecao(colecaoQuadra); inserirRegistroAtendimentoActionForm.setIdQuadra(quadra.getId() .toString()); inserirRegistroAtendimentoActionForm.setNnQuadra(String .valueOf(quadra.getNumeroQuadra())); // [SB0006] Obt�m Divis�o de Esgoto DivisaoEsgoto divisaoEsgoto = fachada.obterDivisaoEsgoto(quadra .getId(), habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoAreaEsgoto()); if (divisaoEsgoto != null) { inserirRegistroAtendimentoActionForm .setIdDivisaoEsgoto(divisaoEsgoto.getId() .toString()); /* * [FS0013] Verificar compatibilidade entre divis�o de * esgoto e localidade/setor/quadra [SB0007] Define * Unidade Destino da Divis�o de Esgoto */ this .verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto( fachada, inserirRegistroAtendimentoActionForm, habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoAreaEsgoto()); } } } return retornoAtencao; } public void pesquisarBairroArea(Integer idBairro, Fachada fachada, HttpSession sessao) { FiltroBairroArea filtroBairroArea = new FiltroBairroArea(); filtroBairroArea.adicionarParametro(new ParametroSimples( FiltroBairroArea.ID_BAIRRO, idBairro)); Collection colecaoBairroArea = fachada.pesquisar(filtroBairroArea, BairroArea.class.getName()); if (colecaoBairroArea == null || colecaoBairroArea.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "BAIRRO_AREA"); } else { sessao.setAttribute("colecaoBairroArea", colecaoBairroArea); } } public void carregarMunicipioBairroParaImovel( ObterDadosIdentificacaoLocalOcorrenciaHelper habilitaGeograficoDivisaoEsgoto, ObterDadosIdentificacaoLocalOcorrenciaHelper obterDadosIdentificacaoLocalOcorrenciaHelper, InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm, HttpSession sessao, Fachada fachada) { if (habilitaGeograficoDivisaoEsgoto != null && habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoFaltaAgua() && obterDadosIdentificacaoLocalOcorrenciaHelper .getEnderecoDescritivo() == null) { inserirRegistroAtendimentoActionForm .setIdMunicipio(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getMunicipio().getId().toString()); inserirRegistroAtendimentoActionForm .setDescricaoMunicipio(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getMunicipio().getNome()); inserirRegistroAtendimentoActionForm .setIdBairro(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getId().toString()); inserirRegistroAtendimentoActionForm.setCdBairro(String .valueOf(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getCodigo())); inserirRegistroAtendimentoActionForm .setDescricaoBairro(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getNome()); this.pesquisarBairroArea( obterDadosIdentificacaoLocalOcorrenciaHelper.getImovel() .getLogradouroBairro().getBairro().getId(), fachada, sessao); sessao.setAttribute("desabilitarMunicipioBairro", "OK"); } else { inserirRegistroAtendimentoActionForm.setIdMunicipio(""); inserirRegistroAtendimentoActionForm.setDescricaoMunicipio(""); inserirRegistroAtendimentoActionForm.setIdBairro(""); inserirRegistroAtendimentoActionForm.setCdBairro(""); inserirRegistroAtendimentoActionForm.setDescricaoBairro(""); sessao.removeAttribute("colecaoBairroArea"); } } public void verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto( Fachada fachada, InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm, boolean solicitacaoTipoRelativoAreaEsgoto) { fachada .verificarCompatibilidadeDivisaoEsgotoLocalidadeSetorQuadra( Util .converterStringParaInteger(inserirRegistroAtendimentoActionForm .getIdLocalidade()), Util .converterStringParaInteger(inserirRegistroAtendimentoActionForm .getIdSetorComercial()), Util .converterStringParaInteger(inserirRegistroAtendimentoActionForm .getIdQuadra()), Util .converterStringParaInteger(inserirRegistroAtendimentoActionForm .getIdDivisaoEsgoto())); } }