package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento; import gcom.atendimentopublico.registroatendimento.AtendimentoRelacaoTipo; import gcom.atendimentopublico.registroatendimento.FiltroAtendimentoMotivoEncerramento; import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimento; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoSolicitante; import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoUnidade; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.bean.ObterDadosIdentificacaoLocalOcorrenciaHelper; 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.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.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.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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; /** * Esta classe tem por finalidade validar as informa��es das tr�s abas do * processo de atualiza��o de um registro de atendimento e chamar o m�todo que * ir� concluir a mesma * * @author S�vio Luiz * @date 10/08/2006 */ public class ConcluirAtualizarRegistroAtendimentoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); AtualizarRegistroAtendimentoActionForm form = (AtualizarRegistroAtendimentoActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); // recupara o id da especifica��o para verificar se // ser� gerado a ordem de servi�o ou n�o dependendo da mudan�a // da especifica��o Integer idEspecificacaoBase = (Integer) sessao .getAttribute("idEspecificacaoBase"); /* * Valida��o Aba 01 * ====================================================================================================== */ fachada.validarInserirRegistroAtendimentoDadosGerais(form .getDataAtendimento(), form.getHora(), form .getTempoEsperaInicial(), form.getTempoEsperaFinal(), form .getUnidade(), null); /* * ====================================================================================================== * ====================================================================================================== */ /* * Valida��o Aba 02 * ====================================================================================================== */ // [FS0040] - Validar Preenchimento dos campos String idImovel = form.getIdImovel(); String pontoReferencia = form.getPontoReferencia(); String idMunicipio = form.getIdMunicipio(); String descricaoMunicipio = form.getDescricaoMunicipio(); String cdBairro = form.getCdBairro(); String descricaoBairro = form.getDescricaoBairro(); String idAreaBairro = form.getIdBairroArea(); String idlocalidade = form.getIdLocalidade(); String descricaoLocalidade = form.getDescricaoLocalidade(); String cdSetorComercial = form.getCdSetorComercial(); String descricaoSetorComercial = form.getDescricaoSetorComercial(); String numeroQuadra = form.getNnQuadra(); String idDivisaoEsgoto = form.getIdDivisaoEsgoto(); String idUnidade = form.getIdUnidadeAtual(); String descricaoUnidade = form.getDescricaoUnidadeAtual(); String idLocalOcorrencia = form.getIdLocalOcorrencia(); String idPavimentoRua = form.getIdPavimentoRua(); String idPavimentoCalcada = form.getIdPavimentoCalcada(); String descricaoLocalOcorrencia = form.getDescricaoLocalOcorrencia(); String imovelObrigatorio = form.getImovelObrigatorio(); String pavimentoRuaObrigatorio = form.getPavimentoRuaObrigatorio(); String pavimentoCalcadaObrigatorio = form .getPavimentoCalcadaObrigatorio(); String solicitacaoTipoRelativoFaltaAgua = (String) sessao .getAttribute("solicitacaoTipoRelativoFaltaAgua"); String solicitacaoTipoRelativoAreaEsgoto = (String) sessao .getAttribute("solicitacaoTipoRelativoAreaEsgoto"); String desabilitarMunicipioBairro = (String) sessao .getAttribute("desabilitarMunicipioBairro"); String indRuaLocalOcorrencia = form.getIndRuaLocalOcorrencia(); String indCalcadaLocalOcorrencia = form.getIndCalcadaLocalOcorrencia(); String idEspecificacao = form.getEspecificacao(); String numeroRA = form.getNumeroRA(); Collection colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecos"); Collection colecaoPagamento = null; if (sessao.getAttribute("colecaoPagamentosDuplicidade") != null){ colecaoPagamento = (Collection) sessao.getAttribute("colecaoPagamentosDuplicidade"); } FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro( new ParametroSimples( FiltroSolicitacaoTipoEspecificacao.ID, form.getEspecificacao())); Collection colecaoSolicitacaoTipoEspecificacao = this.getFachada() .pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); SolicitacaoTipoEspecificacao especificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecaoSolicitacaoTipoEspecificacao); 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), new Integer(numeroRA), colecaoEnderecos,especificacao,colecaoPagamento, usuarioLogado); // ----------------------------------------------------------------------- // valida os campos de enter(caso tenha mudado algum valor // validar) validarCamposEnter(form, fachada, httpServletRequest, actionMapping, sessao); /* * ====================================================================================================== * ====================================================================================================== */ /* * Valida��o Aba 03 * ====================================================================================================== */ // recupera a cole��o de RA solicitante Collection colecaoRASolicitante = (Collection) sessao .getAttribute("colecaoRASolicitante"); Collection colecaoRASolicitanteRemovida = (Collection) sessao .getAttribute("colecaoRASolicitanteRemovidas"); String idSolicitantePrincipal = form.getIdSolicitantePrincipal(); if (idSolicitantePrincipal != null && !idSolicitantePrincipal.equals("")) { // respons�vel pera troca do solicitante principal // caso tenha sido trocado ent�o sai da cole��o boolean trocaPrincipal = false; if (colecaoRASolicitante != null && !colecaoRASolicitante.isEmpty()) { Iterator iteratorRASolicitante = colecaoRASolicitante .iterator(); while (iteratorRASolicitante.hasNext()) { RegistroAtendimentoSolicitante registroAtendimentoSolicitante = (RegistroAtendimentoSolicitante) iteratorRASolicitante .next(); // caso a colecao s� tenha um solicitante ent�o o // solicitante ser� o principal if (colecaoRASolicitante.size() == 1) { registroAtendimentoSolicitante .setIndicadorSolicitantePrincipal(new Short("1")); } else { // sen�o se o id socilitante seja igual ao o id // do solicitante que foi escolhido como // principal if (registroAtendimentoSolicitante.getUltimaAlteracao() .getTime() == Long .parseLong(idSolicitantePrincipal)) { // se for diferente de 1, ou seja se o // solicitante n�o era o principal if (registroAtendimentoSolicitante .getIndicadorSolicitantePrincipal() != 1) { // seta o valor 1 ao indicador principal do // solicitante registroAtendimentoSolicitante .setIndicadorSolicitantePrincipal(new Short( "1")); // verifica se o indicador principal do // solicitante que era 1 anteriormente j� // foi mudado para 2(nesse caso o boolean // trocaPrincipal est� com o valor true). if (trocaPrincipal) { break; } trocaPrincipal = true; } else { break; } } else { // parte que muda o indicador principal do // solicitante(que n�o � mais principal) // para 2 if (registroAtendimentoSolicitante .getIndicadorSolicitantePrincipal() == 1) { registroAtendimentoSolicitante .setIndicadorSolicitantePrincipal(new Short( "2")); if (trocaPrincipal) { break; } trocaPrincipal = true; } } } } } else { // [FS0021] - Verificar registro atendimento sem // solicitante throw new ActionServletException( "atencao.informar_registro_atendimento_solicitante"); } } /* * ====================================================================================================== * ====================================================================================================== */ /* * Valida��o Aba 04 - Anexos * ====================================================================================================== */ Collection colecaoRegistroAtendimentoAnexo = null; if (sessao.getAttribute("colecaoRegistroAtendimentoAnexo") != null){ colecaoRegistroAtendimentoAnexo = (Collection) sessao.getAttribute("colecaoRegistroAtendimentoAnexo"); } boolean indicadorEncerramentoAutomatico = false; if (especificacao.getIndicadorEncerramentoAutomatico() == SolicitacaoTipoEspecificacao.INDICADOR_COM_ENCERRAMENTO_AUTOMATICO.shortValue()) { indicadorEncerramentoAutomatico = true; if (form.getObservacao() == null || form.getObservacao().trim().equals("")) { throw new ActionServletException("atencao.campo_selecionado.obrigatorio", null, "Observa��o"); } } //Comentado por Raphael Rossiter /*OrdemServico os = null; if (sessao.getAttribute("ordemServico") != null) { os = (OrdemServico) sessao.getAttribute("ordemServico"); }*/ Collection colecaoEnderecoLocalOcorrencia = null; if (sessao.getAttribute("colecaoEnderecos") != null) { colecaoEnderecoLocalOcorrencia = (Collection) sessao .getAttribute("colecaoEnderecos"); } Collection colecaoRegistroAtendimentoConta = null; if (sessao.getAttribute("colecaoRAContasAtualizar") != null) { colecaoRegistroAtendimentoConta = (Collection) sessao .getAttribute("colecaoRAContasAtualizar"); } Collection colecaoRegistroAtendimentoContaRemover = null; if (sessao.getAttribute("colecaoRAContasRemover") != null) { colecaoRegistroAtendimentoContaRemover = (Collection) sessao .getAttribute("colecaoRAContasRemover"); } Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); Date ultimaAlteracao = (Date) sessao.getAttribute("ultimaAlteracao"); // Colocado por Raphael Rossiter em 01/03/2007 //ServicoTipo Integer idServicoTipo = null; if (sessao.getAttribute("servicoTipo") != null){ idServicoTipo = (Integer) sessao.getAttribute("servicoTipo"); } BigDecimal valorNnCoordenadaNorte = null; if (form.getNnCoordenadaNorte() != null){ String valorNnCoordenadaNorteStr = form.getNnCoordenadaNorte().replace(',','.'); if (valorNnCoordenadaNorteStr != null && !valorNnCoordenadaNorteStr.trim().equals("")){ valorNnCoordenadaNorte = new BigDecimal(valorNnCoordenadaNorteStr); } } BigDecimal valorNnCoordenadaLeste = null; if (form.getNnCoordenadaLeste() != null){ String valorNnCoordenadaLesteStr = form.getNnCoordenadaLeste().replace(',','.'); if (valorNnCoordenadaLesteStr != null && !valorNnCoordenadaLesteStr.trim().equals("")){ valorNnCoordenadaLeste = new BigDecimal(valorNnCoordenadaLesteStr); } } BigDecimal nnDiametro = null; if(form.getNnDiametro()!=null && !form.getNnDiametro().equals("")){ nnDiametro = new BigDecimal(form.getNnDiametro()); } // [SB0028] Inclui Registro de Atendimento Integer[] idsGerados = fachada.atualizarRegistroAtendimento( new Integer(form.getNumeroRA()), Short.parseShort(form.getTipo()), form.getDataAtendimento(), form.getHora(), form.getTempoEsperaInicial(), form.getTempoEsperaFinal(), Util.converterStringParaInteger(form.getMeioSolicitacao()), Util.converterStringParaInteger(form.getEspecificacao()), form.getDataPrevista(), form.getObservacao(), Util.converterStringParaInteger(form.getIdImovel()), form.getDescricaoLocalOcorrencia(), Util.converterStringParaInteger(form.getTipoSolicitacao()), colecaoEnderecoLocalOcorrencia, form.getPontoReferencia(), Util.converterStringParaInteger(form.getIdBairroArea()), Util.converterStringParaInteger(form.getIdLocalidade()), Util.converterStringParaInteger(form.getIdSetorComercial()), Util.converterStringParaInteger(form.getIdQuadra()), Util.converterStringParaInteger(form.getIdDivisaoEsgoto()), Util.converterStringParaInteger(form.getIdLocalOcorrencia()), Util.converterStringParaInteger(form.getIdPavimentoRua()), Util.converterStringParaInteger(form.getIdPavimentoCalcada()), Util.converterStringParaInteger(form.getUnidade()), usuario, Util.converterStringParaInteger(form.getIndMatricula()), ultimaAlteracao, colecaoRASolicitante, colecaoRASolicitanteRemovida, idServicoTipo, (Integer)sessao.getAttribute("idEspecificacaoBase"), Util.converterStringParaInteger(form.getIdUnidadeAtual()), valorNnCoordenadaNorte, valorNnCoordenadaLeste, colecaoRegistroAtendimentoAnexo, colecaoRegistroAtendimentoConta, colecaoRegistroAtendimentoContaRemover, colecaoPagamento, nnDiametro); // Caso a especifica��o seja de encerramento autom�tico, encerra o ra if (indicadorEncerramentoAutomatico) { RegistroAtendimentoUnidade registroAtendimentoUnidade = this.montarRegistroAtendimentoParaEncerramento(new Integer(form.getNumeroRA()), usuario); fachada.encerrarRegistroAtendimento(registroAtendimentoUnidade.getRegistroAtendimento(), registroAtendimentoUnidade, usuario, null, null, null, null, false,null,false); } // Colocado por Raphael Rossiter em 01/03/2007 //Montando a pagina de sucesso if (!fachada.gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao())) && fachada.gerarOrdemServicoOpcional(Util.converterStringParaInteger(form.getEspecificacao())) && !idEspecificacaoBase.equals(new Integer(form.getEspecificacao()))){ montarPaginaSucesso(httpServletRequest, "Registro de Atendimento de c�digo " + form.getNumeroRA() + " atualizado com sucesso.", "Atualizar outro Registro de Atendimento", "exibirFiltrarRegistroAtendimentoAction.do?menu=sim", "exibirGerarOrdemServicoAction.do?menu=sim&forward=exibirGerarOrdemServico&veioRA=OK&idRegistroAtendimento=" + form.getNumeroRA(), "Gerar OS", "Voltar", "exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + form.getNumeroRA()); } else{ if (fachada.gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao())) && !idEspecificacaoBase.equals(new Integer(form.getEspecificacao()))){ montarPaginaSucessoUmRelatorio(httpServletRequest, "Registro de Atendimento de c�digo " + form.getNumeroRA()+ " atualizado com sucesso.", "Atualizar outro Registro de Atendimento", "exibirFiltrarRegistroAtendimentoAction.do?menu=sim", "exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + form.getNumeroRA(), null,null, null,"Imprimir OS" ,"gerarRelatorioOrdemServicoAction.do?idsOS=" + idsGerados[1]); } else{ montarPaginaSucesso(httpServletRequest, "Registro de Atendimento de c�digo " + form.getNumeroRA() + " atualizado com sucesso.", "Atualizar outro Registro de Atendimento", "exibirFiltrarRegistroAtendimentoAction.do?menu=sim", "exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + form.getNumeroRA(), "Voltar"); } } // Comentado por Raphael Rossiter em 01/03/2007 // Montando a p�gina de sucesso /*if ((!fachada.gerarOrdemServicoOpcional(Util.converterStringParaInteger(form.getEspecificacao()))) && fachada.gerarOrdemServicoOpcional(Util.converterStringParaInteger(form.getEspecificacao())) && !(idEspecificacaoBase.equals(new Integer(form .getEspecificacao())))) { montarPaginaSucesso(httpServletRequest, "Registro de Atendimento de c�digo " + form.getNumeroRA() + " atualizado com sucesso.", "Atualizar outro Registro de Atendimento", "exibirFiltrarRegistroAtendimentoAction.do?menu=sim", "exibirGerarOrdemServicoAction.do?menu=sim&forward=exibirGerarOrdemServico&veioRA=OK&idRegistroAtendimento=" + form.getNumeroRA(), "Gerar OS", "Voltar", "exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + form.getNumeroRA()); } else { montarPaginaSucesso(httpServletRequest, "Registro de Atendimento de c�digo " + form.getNumeroRA() + " atualizado com sucesso.", "Atualizar outro Registro de Atendimento", "exibirFiltrarRegistroAtendimentoAction.do?menu=sim", "exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + form.getNumeroRA(), "Voltar"); }*/ // remove as cole��es da sess�o sessao.removeAttribute("AtualizarRegistroAtendimentoActionForm"); sessao.removeAttribute("colecaoMeioSolicitacao"); sessao.removeAttribute("colecaoSolicitacaoTipo"); sessao.removeAttribute("colecaoSolicitacaoTipoEspecificacao"); sessao.removeAttribute("colecaoEnderecos"); sessao.removeAttribute("idEspecificacaoBase"); sessao.removeAttribute("ultimaAlteracao"); sessao.removeAttribute("ordemServico"); sessao.removeAttribute("colecaoDivisaoEsgoto"); sessao.removeAttribute("colecaoLocalOcorrencia"); sessao.removeAttribute("colecaoPavimentoRua"); sessao.removeAttribute("colecaoPavimentoCalcada"); sessao.removeAttribute("solicitacaoTipoRelativoFaltaAgua"); sessao.removeAttribute("solicitacaoTipoRelativoAreaEsgoto"); sessao.removeAttribute("colecaoBairroArea"); sessao.removeAttribute("habilitarAlteracaoEndereco"); sessao.removeAttribute("desabilitarMunicipioBairro"); sessao.removeAttribute("desabilitarDescricaoLocalOcorrencia"); sessao.removeAttribute("colecaoRASolicitanteRemovidas"); sessao.removeAttribute("colecaoRASolicitante"); sessao.removeAttribute("osAutomatica"); sessao.removeAttribute("colecaoRAContasAtualizar"); sessao.removeAttribute("colecaoRAContasRemover"); return retorno; } private void validarCamposEnter( AtualizarRegistroAtendimentoActionForm atualizarRegistroAtendimentoActionForm, Fachada fachada, HttpServletRequest httpServletRequest, ActionMapping actionMapping, HttpSession sessao) { /* * [SB0004] Obt�m e Habilita/Desabilita Dados da Identifica��o do * Local da Ocorr�ncia e Dados do Solicitante * * [FS0019] erificar 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( atualizarRegistroAtendimentoActionForm .getTipoSolicitacao())); String idImovel = atualizarRegistroAtendimentoActionForm.getIdImovel(); String inscricaoImovel = atualizarRegistroAtendimentoActionForm .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 .obterDadosIdentificacaoLocalOcorrenciaAtualizar(new Integer( atualizarRegistroAtendimentoActionForm.getIdImovel()), new Integer(atualizarRegistroAtendimentoActionForm .getEspecificacao()), new Integer( atualizarRegistroAtendimentoActionForm .getTipoSolicitacao()), new Integer( atualizarRegistroAtendimentoActionForm .getNumeroRA()), true); if (dadosIdentificacaoLocalOcorrencia.getImovel() != null) { // [FS0020] - Verificar exist�ncia de registro de // atendimento // para o im�vel com a mesma especifica��o fachada.verificarExistenciaRAImovelMesmaEspecificacao( dadosIdentificacaoLocalOcorrencia.getImovel().getId(), new Integer(atualizarRegistroAtendimentoActionForm .getEspecificacao())); // [SB0020] Verifica Situa��o do im�vel e // Especifica��o fachada.verificarSituacaoImovelEspecificacao( dadosIdentificacaoLocalOcorrencia.getImovel(), new Integer(atualizarRegistroAtendimentoActionForm .getEspecificacao())); atualizarRegistroAtendimentoActionForm .setIdImovel(dadosIdentificacaoLocalOcorrencia .getImovel().getId().toString()); atualizarRegistroAtendimentoActionForm .setInscricaoImovel(dadosIdentificacaoLocalOcorrencia .getImovel().getInscricaoFormatada()); if (!dadosIdentificacaoLocalOcorrencia.isInformarEndereco()) { Collection colecaoEnderecos = new ArrayList(); colecaoEnderecos.add(dadosIdentificacaoLocalOcorrencia .getImovel()); sessao.setAttribute("colecaoEnderecos", colecaoEnderecos); } else if (dadosIdentificacaoLocalOcorrencia .getEnderecoDescritivo() != null) { atualizarRegistroAtendimentoActionForm .setDescricaoLocalOcorrencia(dadosIdentificacaoLocalOcorrencia .getEnderecoDescritivo()); sessao.removeAttribute("colecaoEnderecos"); } else { sessao.removeAttribute("colecaoEnderecos"); } this .carregarMunicipioBairroParaImovel( habilitaGeograficoDivisaoEsgoto, dadosIdentificacaoLocalOcorrencia, atualizarRegistroAtendimentoActionForm, sessao, fachada); atualizarRegistroAtendimentoActionForm .setIdLocalidade(dadosIdentificacaoLocalOcorrencia .getImovel().getLocalidade().getId().toString()); atualizarRegistroAtendimentoActionForm .setDescricaoLocalidade(dadosIdentificacaoLocalOcorrencia .getImovel().getLocalidade().getDescricao()); atualizarRegistroAtendimentoActionForm .setIdSetorComercial(dadosIdentificacaoLocalOcorrencia .getImovel().getSetorComercial().getId() .toString()); atualizarRegistroAtendimentoActionForm .setCdSetorComercial(String .valueOf(dadosIdentificacaoLocalOcorrencia .getImovel().getSetorComercial() .getCodigo())); atualizarRegistroAtendimentoActionForm .setDescricaoSetorComercial(dadosIdentificacaoLocalOcorrencia .getImovel().getSetorComercial().getDescricao()); atualizarRegistroAtendimentoActionForm.setIdQuadra(String .valueOf(dadosIdentificacaoLocalOcorrencia.getImovel() .getQuadra().getId())); atualizarRegistroAtendimentoActionForm.setNnQuadra(String .valueOf(dadosIdentificacaoLocalOcorrencia.getImovel() .getQuadra().getNumeroQuadra())); } } String idMunicipio = atualizarRegistroAtendimentoActionForm .getIdMunicipio(); String descricaoMunicipio = atualizarRegistroAtendimentoActionForm .getDescricaoMunicipio(); if (idMunicipio != null && !idMunicipio.equalsIgnoreCase("") && (descricaoMunicipio == null || descricaoMunicipio.equals(""))) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, atualizarRegistroAtendimentoActionForm .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"); } Municipio municipio = (Municipio) Util .retonarObjetoDeColecao(colecaoMunicipio); atualizarRegistroAtendimentoActionForm.setIdMunicipio(municipio .getId().toString()); atualizarRegistroAtendimentoActionForm .setDescricaoMunicipio(municipio.getNome()); httpServletRequest.setAttribute("nomeCampo", "cdBairro"); } String codigoBairro = atualizarRegistroAtendimentoActionForm .getCdBairro(); String descricaoBairro = atualizarRegistroAtendimentoActionForm .getDescricaoBairro(); if (codigoBairro != null && !codigoBairro.equalsIgnoreCase("")) { if ((descricaoBairro == null || descricaoBairro.equals(""))) { FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, atualizarRegistroAtendimentoActionForm.getCdBairro())); filtroBairro .adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, atualizarRegistroAtendimentoActionForm .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"); } Bairro bairro = (Bairro) Util .retonarObjetoDeColecao(colecaoBairro); atualizarRegistroAtendimentoActionForm.setCdBairro(String .valueOf(bairro.getCodigo())); atualizarRegistroAtendimentoActionForm.setCdBairro(String .valueOf(bairro.getId())); atualizarRegistroAtendimentoActionForm .setDescricaoBairro(bairro.getNome()); this.pesquisarBairroArea(new Integer( atualizarRegistroAtendimentoActionForm .getIdBairro()), fachada, sessao); } } String idLocalidade = atualizarRegistroAtendimentoActionForm .getIdLocalidade(); String descricaoLocalidade = atualizarRegistroAtendimentoActionForm .getDescricaoBairro(); if (idLocalidade != null && !idLocalidade.equalsIgnoreCase("") && (descricaoLocalidade == null || descricaoLocalidade .equals(""))) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, atualizarRegistroAtendimentoActionForm .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", null, "Localidade"); } Localidade localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); atualizarRegistroAtendimentoActionForm .setIdLocalidade(localidade.getId().toString()); atualizarRegistroAtendimentoActionForm .setDescricaoLocalidade(localidade.getDescricao()); httpServletRequest .setAttribute("nomeCampo", "cdSetorComercial"); } String cdSetorComercial = atualizarRegistroAtendimentoActionForm .getCdSetorComercial(); String descricaoSetorComercial = atualizarRegistroAtendimentoActionForm .getDescricaoSetorComercial(); if (cdSetorComercial != null && !cdSetorComercial.equalsIgnoreCase("") && (descricaoSetorComercial == null || descricaoSetorComercial .equals(""))) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, atualizarRegistroAtendimentoActionForm.getIdLocalidade())); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, atualizarRegistroAtendimentoActionForm .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"); } SetorComercial setorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoSetorComercial); atualizarRegistroAtendimentoActionForm .setIdSetorComercial(setorComercial.getId().toString()); atualizarRegistroAtendimentoActionForm .setCdSetorComercial(String.valueOf(setorComercial .getCodigo())); atualizarRegistroAtendimentoActionForm .setDescricaoSetorComercial(setorComercial .getDescricao()); httpServletRequest.setAttribute("nomeCampo", "nnQuadra"); } String nnQuadra = atualizarRegistroAtendimentoActionForm.getNnQuadra(); if (nnQuadra != null && !nnQuadra.equalsIgnoreCase("")) { FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, atualizarRegistroAtendimentoActionForm .getIdSetorComercial())); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, atualizarRegistroAtendimentoActionForm.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"); } Quadra quadra = (Quadra) Util .retonarObjetoDeColecao(colecaoQuadra); atualizarRegistroAtendimentoActionForm.setIdQuadra(quadra .getId().toString()); atualizarRegistroAtendimentoActionForm.setNnQuadra(String .valueOf(quadra.getNumeroQuadra())); // [SB0006] Obt�m Divis�o de Esgoto DivisaoEsgoto divisaoEsgoto = fachada.obterDivisaoEsgoto(quadra .getId(), habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoAreaEsgoto()); if (divisaoEsgoto != null) { atualizarRegistroAtendimentoActionForm .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, atualizarRegistroAtendimentoActionForm, habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoAreaEsgoto()); } } } public void verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto( Fachada fachada, AtualizarRegistroAtendimentoActionForm atualizarRegistroAtendimentoActionForm, boolean solicitacaoTipoRelativoAreaEsgoto) { fachada .verificarCompatibilidadeDivisaoEsgotoLocalidadeSetorQuadra( Util .converterStringParaInteger(atualizarRegistroAtendimentoActionForm .getIdLocalidade()), Util .converterStringParaInteger(atualizarRegistroAtendimentoActionForm .getIdSetorComercial()), Util .converterStringParaInteger(atualizarRegistroAtendimentoActionForm .getIdQuadra()), Util .converterStringParaInteger(atualizarRegistroAtendimentoActionForm .getIdDivisaoEsgoto())); } 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"); } sessao.setAttribute("colecaoBairroArea", colecaoBairroArea); } public void carregarMunicipioBairroParaImovel( ObterDadosIdentificacaoLocalOcorrenciaHelper habilitaGeograficoDivisaoEsgoto, ObterDadosIdentificacaoLocalOcorrenciaHelper obterDadosIdentificacaoLocalOcorrenciaHelper, AtualizarRegistroAtendimentoActionForm atualizarRegistroAtendimentoActionForm, HttpSession sessao, Fachada fachada) { if (habilitaGeograficoDivisaoEsgoto != null && habilitaGeograficoDivisaoEsgoto .isSolicitacaoTipoRelativoFaltaAgua() && obterDadosIdentificacaoLocalOcorrenciaHelper .getEnderecoDescritivo() == null) { atualizarRegistroAtendimentoActionForm .setIdMunicipio(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getMunicipio().getId().toString()); atualizarRegistroAtendimentoActionForm .setDescricaoMunicipio(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getMunicipio().getNome()); atualizarRegistroAtendimentoActionForm .setIdBairro(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getId().toString()); atualizarRegistroAtendimentoActionForm.setCdBairro(String .valueOf(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getCodigo())); atualizarRegistroAtendimentoActionForm .setDescricaoBairro(obterDadosIdentificacaoLocalOcorrenciaHelper .getImovel().getLogradouroBairro().getBairro() .getNome()); this.pesquisarBairroArea( obterDadosIdentificacaoLocalOcorrenciaHelper.getImovel() .getLogradouroBairro().getBairro().getId(), fachada, sessao); sessao.setAttribute("desabilitarMunicipioBairro", "OK"); } else { atualizarRegistroAtendimentoActionForm.setIdMunicipio(""); atualizarRegistroAtendimentoActionForm.setDescricaoMunicipio(""); atualizarRegistroAtendimentoActionForm.setIdBairro(""); atualizarRegistroAtendimentoActionForm.setCdBairro(""); atualizarRegistroAtendimentoActionForm.setDescricaoBairro(""); sessao.removeAttribute("colecaoBairroArea"); } } private RegistroAtendimentoUnidade montarRegistroAtendimentoParaEncerramento(Integer idRegistroAtendimento, Usuario usuarioLogado) { Fachada fachada = Fachada.getInstancia(); FiltroRegistroAtendimento filtroRegistroAtendimento = new FiltroRegistroAtendimento(); filtroRegistroAtendimento.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimento.ID, idRegistroAtendimento)); Collection colecaoRegistroAtendimento = fachada .pesquisar(filtroRegistroAtendimento, RegistroAtendimento.class.getName()); RegistroAtendimento registroAtendimento = (RegistroAtendimento) Util.retonarObjetoDeColecao(colecaoRegistroAtendimento); FiltroAtendimentoMotivoEncerramento filtroAtendimentoMotivoEncerramento = new FiltroAtendimentoMotivoEncerramento(); filtroAtendimentoMotivoEncerramento.adicionarParametro(new ParametroSimples(FiltroAtendimentoMotivoEncerramento.ID, AtendimentoMotivoEncerramento.CONCLUSAO_SERVICO)); Collection colecaoAtendimentoMotivoEncerramento = fachada .pesquisar(filtroAtendimentoMotivoEncerramento, AtendimentoMotivoEncerramento.class.getName()); AtendimentoMotivoEncerramento atendimentoMotivoEncerramento = (AtendimentoMotivoEncerramento) Util.retonarObjetoDeColecao(colecaoAtendimentoMotivoEncerramento); registroAtendimento.setAtendimentoMotivoEncerramento(atendimentoMotivoEncerramento); RegistroAtendimentoUnidade registroAtendimentoUnidade = new RegistroAtendimentoUnidade(); registroAtendimentoUnidade.setRegistroAtendimento(registroAtendimento); registroAtendimentoUnidade.setUnidadeOrganizacional(usuarioLogado.getUnidadeOrganizacional()); registroAtendimentoUnidade.setUsuario(usuarioLogado); registroAtendimentoUnidade.setUltimaAlteracao(new Date()); registroAtendimentoUnidade.getRegistroAtendimento().setDataEncerramento(new Date()); AtendimentoRelacaoTipo atendimentoRelacaoTipo = new AtendimentoRelacaoTipo(); atendimentoRelacaoTipo.setId(AtendimentoRelacaoTipo.ENCERRAR); registroAtendimentoUnidade.setAtendimentoRelacaoTipo(atendimentoRelacaoTipo); return registroAtendimentoUnidade; } }