package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento;
import gcom.atendimentopublico.registroatendimento.AtendimentoRelacaoTipo;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoAnexo;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoConta;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoPagamentoDuplicidade;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoSolicitante;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoUnidade;
import gcom.atendimentopublico.registroatendimento.FiltroSolicitanteFone;
import gcom.atendimentopublico.registroatendimento.LocalOcorrencia;
import gcom.atendimentopublico.registroatendimento.RaMotivoReativacao;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimento;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoAnexo;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoConta;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoPagamentoDuplicidade;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoSolicitante;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoUnidade;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao;
import gcom.atendimentopublico.registroatendimento.SolicitanteFone;
import gcom.atendimentopublico.registroatendimento.Tramite;
import gcom.atendimentopublico.registroatendimento.bean.FiltrarRegistroAtendimentoHelper;
import gcom.atendimentopublico.registroatendimento.bean.ObterDadosRegistroAtendimentoHelper;
import gcom.atendimentopublico.registroatendimento.bean.ObterDescricaoSituacaoRAHelper;
import gcom.atendimentopublico.registroatendimento.bean.ObterRAAssociadoHelper;
import gcom.atendimentopublico.registroatendimento.bean.RAFiltroHelper;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.funcionario.Funcionario;
import gcom.cadastro.geografico.BairroArea;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.PavimentoCalcada;
import gcom.cadastro.imovel.PavimentoRua;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
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.io.IOException;
import java.io.OutputStream;
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;
public class ExibirConsultarRegistroAtendimentoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm,
HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("consultarRegistroAtendimento");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
ConsultarRegistroAtendimentoActionForm form = (ConsultarRegistroAtendimentoActionForm) actionForm;
Integer idRA = null;
if (form.getNumeroRA() != null && !form.getNumeroRA().equalsIgnoreCase("")) {
idRA = new Integer(form.getNumeroRA());
if (httpServletRequest.getParameter("pesquisaUnitaria") != null) {
form.reset(actionMapping, httpServletRequest);
sessao.removeAttribute("colecaoCompleta");
sessao.setAttribute("naoHabilitarNavegacao", "OK");
} else if (sessao.getAttribute("colecaoRAHelper") != null) {
sessao.removeAttribute("naoHabilitarNavegacao");
} else {
sessao.setAttribute("naoHabilitarNavegacao", "OK");
}
} else {
idRA = (Integer) sessao.getAttribute("numeroOS");
sessao.removeAttribute("colecaoCompleta");
sessao.setAttribute("naoHabilitarNavegacao", "OK");
}
System.out.println(sessao.getAttribute("colecaoCompleta"));
if (sessao.getAttribute("colecaoRAHelper") != null) {
FiltrarRegistroAtendimentoHelper filtro = (FiltrarRegistroAtendimentoHelper) sessao.getAttribute("filtroRA");
List<RAFiltroHelper> colecao = (List<RAFiltroHelper>) sessao.getAttribute("colecaoRAHelper");
System.out.println("colecaoRAHelper: " + colecao.size());
Integer totalRegistros = (Integer) sessao.getAttribute("totalRegistros");
System.out.println("totalRegistros: " + totalRegistros);
Integer numeroPaginasPesquisa = (int) Math.ceil((double) totalRegistros / 10.0);
System.out.println("numeropaginas: " + numeroPaginasPesquisa);
Integer page = (Integer) sessao.getAttribute("page.offset");
System.out.println("page: " + page);
boolean anterior = (httpServletRequest.getParameter("raAnterior") != null) ? true : false;
boolean proximo = (httpServletRequest.getParameter("proximoRA") != null) ? true : false;
int index = obterIndexRAColecao(idRA, colecao);
if (index != -1) {
if (anterior)
index--;
if (proximo)
index++;
System.out.println("Index: " + index);
boolean mudaPagina = false;
if (index > 9 && page < numeroPaginasPesquisa) {
index = 0;
page = page + 1;
mudaPagina = true;
} else if (index < 0 && page > 1) {
index = 9;
page = page - 1;
mudaPagina = true;
}
if (mudaPagina) {
System.out.println("mudaPagina");
filtro.setNumeroPagina(page - 1);
sessao.setAttribute("page.offset", page);
Collection<RegistroAtendimento> colecaoRA = fachada.filtrarRegistroAtendimento(filtro);
if (colecaoRA != null && colecaoRA.size() > 0) {
colecao = (List<RAFiltroHelper>) loadColecaoRAHelper(colecaoRA);
sessao.setAttribute("colecaoRAHelper", colecao);
idRA = colecao.get(index).getRegistroAtendimento().getId();
} else {
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
}
if (page == 1 && index == 0) {
httpServletRequest.setAttribute("desabilitaBotaoAnterior", "true");
}
if ((page >= numeroPaginasPesquisa) && index >= colecao.size() - 1) {
System.out.println("EEK!");
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
if (index >= 0 && index <= 9) {
if (index > colecao.size() - 1) {
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
idRA = colecao.get(index).getRegistroAtendimento().getId();
}
} else {
httpServletRequest.setAttribute("desabilitaBotaoAnterior", "true");
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
} else {
httpServletRequest.setAttribute("naoHabilitarNavegacao", "OK");
}
ObterDadosRegistroAtendimentoHelper obterDadosRegistroAtendimentoHelper = fachada.obterDadosRegistroAtendimento(new Integer(idRA));
if (obterDadosRegistroAtendimentoHelper == null || obterDadosRegistroAtendimentoHelper.getRegistroAtendimento() == null) {
throw new ActionServletException("atencao.naocadastrado", null, "Registro Atendimento");
}
form = limparCampos(form);
RegistroAtendimento registroAtendimento = obterDadosRegistroAtendimentoHelper.getRegistroAtendimento();
// Dados Gerais do Registro de Atendimento
form.setNumeroRAPesquisado("" + registroAtendimento.getId());
if (registroAtendimento.getManual() != null) {
int tamanhoNumeracao = registroAtendimento.getManual().toString().length();
String numeracao = registroAtendimento.getManual().toString().substring(0, tamanhoNumeracao - 1);
form.setNumeroRAManual(Util.formatarNumeracaoRAManual(new Integer(numeracao)));
} else {
form.setNumeroRAManual("");
}
form.setCodigoSituacao("" + registroAtendimento.getCodigoSituacao());
// Caso de Uso [UC0420]
ObterDescricaoSituacaoRAHelper situacaoRA = fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());
form.setSituacaoRA(situacaoRA.getDescricaoSituacao());
// Caso de Uso [UC0433]
ObterRAAssociadoHelper obterRAAssociadoHelper = fachada.obterRAAssociadoConsultarRA(registroAtendimento.getId());
if (obterRAAssociadoHelper != null && obterRAAssociadoHelper.getRegistroAtendimentoAssociado() != null) {
form.setNumeroRaAssociado("" + obterRAAssociadoHelper.getRegistroAtendimentoAssociado().getId());
ObterDescricaoSituacaoRAHelper situacaoRAssociado = fachada.obterDescricaoSituacaoRA(
obterRAAssociadoHelper.getRegistroAtendimentoAssociado().getId());
form.setSituacaoRaAssociado(situacaoRAssociado.getDescricaoSituacao());
if (obterRAAssociadoHelper.getCodigoExistenciaRAAssociado() == RegistroAtendimento.CODIGO_ASSOCIADO_RA_REFERENCIA) {
form.setDescricaoRAAssociada("N�mero do RA de Refer�ncia:");
form.setDescricaoSituacaoRAAssociada("Situa��o do RA de Refer�ncia:");
} else if (obterRAAssociadoHelper.getCodigoExistenciaRAAssociado() == RegistroAtendimento.CODIGO_ASSOCIADO_RA_ATUAL) {
form.setDescricaoRAAssociada("N�mero do RA Atual:");
form.setDescricaoSituacaoRAAssociada("Situa��o do RA Atual:");
} else if (obterRAAssociadoHelper.getCodigoExistenciaRAAssociado() == RegistroAtendimento.CODIGO_ASSOCIADO_RA_ANTERIOR) {
form.setDescricaoRAAssociada("N�mero do RA Anterior:");
form.setDescricaoSituacaoRAAssociada("Situa��o do RA Anterior:");
}
httpServletRequest.setAttribute("existeRaAssociado", true);
}
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = registroAtendimento.getSolicitacaoTipoEspecificacao();
if (solicitacaoTipoEspecificacao != null) {
if (solicitacaoTipoEspecificacao.getSolicitacaoTipo() != null) {
form.setIdTipoSolicitacao("" + solicitacaoTipoEspecificacao.getSolicitacaoTipo().getId());
form.setTipoSolicitacao(solicitacaoTipoEspecificacao.getSolicitacaoTipo().getDescricao());
}
if (solicitacaoTipoEspecificacao.getServicoTipo() != null) {
String valorPrevisto = Util.formatarMoedaReal(solicitacaoTipoEspecificacao.getServicoTipo().getValor());
form.setValorSugerido(valorPrevisto);
}
form.setIdEspecificacao("" + solicitacaoTipoEspecificacao.getId());
form.setEspecificacao(solicitacaoTipoEspecificacao.getDescricao());
}
// Perfil do Imovel
if (registroAtendimento.getImovel() != null) {
ImovelPerfil imovelPerfil = registroAtendimento.getImovel().getImovelPerfil();
if (imovelPerfil != null) {
form.setPerfilImovel(imovelPerfil.getDescricao());
}
}
form.setTipoAtendimento("" + registroAtendimento.getIndicadorAtendimentoOnline());
Date dataAtendimento = registroAtendimento.getRegistroAtendimento();
form.setDataAtendimento(Util.formatarData(dataAtendimento));
form.setHoraAtendimento(Util.formatarHoraSemSegundos(dataAtendimento));
form.setTempoEsperaInicio(Util.formatarHoraSemSegundos(registroAtendimento.getDataInicioEspera()));
form.setTempoEsperaTermino(Util.formatarHoraSemSegundos(registroAtendimento.getDataFimEspera()));
form.setDataPrevista(Util.formatarData(registroAtendimento.getDataPrevistaAtual()));
if (registroAtendimento.getMeioSolicitacao() != null) {
form.setIdMeioSolicitacao("" + registroAtendimento.getMeioSolicitacao().getId());
form.setMeioSolicitacao(registroAtendimento.getMeioSolicitacao().getDescricao());
}
// Caso de Uso [UC0421]
UnidadeOrganizacional unidadeAtendimento = fachada.obterUnidadeAtendimentoRA(registroAtendimento.getId());
if (unidadeAtendimento != null) {
form.setIdUnidadeAtendimento("" + unidadeAtendimento.getId());
form.setUnidadeAtendimento(unidadeAtendimento.getDescricao());
RegistroAtendimentoUnidade registroAtendimentoUnidade = this.consultarRegistroAtendimentoUnidade(registroAtendimento.getId(),
unidadeAtendimento.getId(), AtendimentoRelacaoTipo.ABRIR_REGISTRAR);
Usuario usuario = registroAtendimentoUnidade.getUsuario();
if (usuario != null) {
form.setIdUsuario("" + usuario.getId());
form.setUsuario(usuario.getNomeUsuario());
}
}
// Caso de Uso [UC0418]
UnidadeOrganizacional unidadeAtual = fachada.obterUnidadeAtualRA(registroAtendimento.getId());
if (unidadeAtual != null) {
form.setIdUnidadeAtual("" + unidadeAtual.getId());
form.setUnidadeAtual(unidadeAtual.getDescricao());
}
UnidadeOrganizacional unidadeAnterior = fachada.verificaUnidadeAnteriorRA(registroAtendimento.getId());
if (unidadeAnterior != null) {
form.setIdUnidadeAnterior("" + unidadeAnterior.getId());
form.setUnidadeAnterior(unidadeAnterior.getDescricao());
} else {
form.setIdUnidadeAnterior("");
form.setUnidadeAnterior("");
}
form.setObservacao(registroAtendimento.getObservacao());
// Dados do Local da Ocorrencia
Imovel imovel = registroAtendimento.getImovel();
if (imovel != null) {
form.setMatriculaImovel("" + imovel.getId());
form.setInscricaoImovel(imovel.getInscricaoFormatada());
form.setRota(obterDadosRegistroAtendimentoHelper.getCodigoRota().toString());
if (obterDadosRegistroAtendimentoHelper.getSequencialRota() != null) {
form.setSequencialRota(obterDadosRegistroAtendimentoHelper.getSequencialRota().toString());
}
}
// Caso de Uso [UC0422]
String enderecoOcorrencia = fachada.obterEnderecoOcorrenciaRA(registroAtendimento.getId());
form.setEnderecoOcorrencia(enderecoOcorrencia);
form.setPontoReferencia(registroAtendimento.getPontoReferencia());
if (registroAtendimento.getNnCoordenadaNorte() != null) {
form.setNumeroCoordenadaNorte("" + registroAtendimento.getNnCoordenadaNorte());
} else {
form.setNumeroCoordenadaNorte("");
}
if (registroAtendimento.getNnCoordenadaLeste() != null) {
form.setNumeroCoordenadaLeste("" + registroAtendimento.getNnCoordenadaLeste());
} else {
form.setNumeroCoordenadaLeste("");
}
// Caso o registro atendimento esteja associado a uma �rea de bairro, obter os dados da �rea do bairro
BairroArea bairroArea = registroAtendimento.getBairroArea();
if (bairroArea != null) {
form.setIdMunicipio("" + bairroArea.getBairro().getMunicipio().getId());
form.setMunicipio(bairroArea.getBairro().getMunicipio().getNome());
form.setIdBairro("" + bairroArea.getBairro().getId());
form.setBairro(bairroArea.getBairro().getNome());
form.setIdAreaBairro("" + bairroArea.getId());
form.setAreaBairro(bairroArea.getNome());
}
Localidade localidade = registroAtendimento.getLocalidade();
if (localidade != null) {
form.setIdLocalidade("" + localidade.getId());
form.setLocalidade(localidade.getDescricao());
}
SetorComercial setorComercial = registroAtendimento.getSetorComercial();
if (setorComercial != null) {
form.setIdSetorComercial("" + setorComercial.getCodigo());
form.setSetorComercial(setorComercial.getDescricao());
}
Quadra quadra = registroAtendimento.getQuadra();
if (quadra != null) {
form.setIdQuadra("" + quadra.getNumeroQuadra());
}
DivisaoEsgoto divisaoEsgoto = registroAtendimento.getDivisaoEsgoto();
if (divisaoEsgoto != null) {
form.setIdDivisaoEsgoto("" + divisaoEsgoto.getId());
form.setDivisaoEsgoto(divisaoEsgoto.getDescricao());
}
LocalOcorrencia localOcorrencia = registroAtendimento.getLocalOcorrencia();
if (localOcorrencia != null) {
form.setLocalOcorrencia(localOcorrencia.getDescricao());
}
PavimentoRua pavimentoRua = registroAtendimento.getPavimentoRua();
if (pavimentoRua != null) {
form.setPavimentoRua(pavimentoRua.getDescricao());
}
PavimentoCalcada pavimentoCalcada = registroAtendimento.getPavimentoCalcada();
if (pavimentoCalcada != null) {
form.setPavimentoCalcada(pavimentoCalcada.getDescricao());
}
form.setDescricaoLocalOcorrencia(registroAtendimento.getDescricaoLocalOcorrencia());
// Dados do Solicitante
RegistroAtendimentoSolicitante registroAtendimentoSolicitante = this.consultarRegistroAtendimentoSolicitante(registroAtendimento.getId());
if (registroAtendimentoSolicitante != null) {
Cliente cliente = registroAtendimentoSolicitante.getCliente();
UnidadeOrganizacional unidadeSolicitante = registroAtendimentoSolicitante.getUnidadeOrganizacional();
// PROTOCOLO DE ATENDIMENTO
if (registroAtendimentoSolicitante.getNumeroProtocoloAtendimento() != null
&& !registroAtendimentoSolicitante.getNumeroProtocoloAtendimento().equals("")) {
form.setNumeroProtocolo(registroAtendimentoSolicitante.getNumeroProtocoloAtendimento());
}
// Caso o principal solicitante do registro de atendimento seja um cliente obter os dados do cliente
if (cliente != null) {
form.setIdClienteSolicitante("" + cliente.getId());
form.setClienteSolicitante(cliente.getNome());
// Caso o principal solicitante do registro de atendimento seja uma unidade obter os dados da unidade
} else if (unidadeSolicitante != null) {
form.setIdUnidadeSolicitante("" + unidadeSolicitante.getId());
form.setUnidadeSolicitante(unidadeSolicitante.getDescricao());
// Caso o principal solicitante do registro de atendimento n�o seja um cliente, nem uma unidade obter os dados do solicitante
} else {
form.setNomeSolicitante(registroAtendimentoSolicitante.getSolicitante());
}
Funcionario funcionario = registroAtendimentoSolicitante.getFuncionario();
if (funcionario != null) {
form.setIdFuncionarioResponsavel("" + funcionario.getId());
form.setFuncionarioResponsavel(funcionario.getNome());
}
// Caso de Uso [UC0423]
String enderecoSolicitante = fachada.obterEnderecoSolicitanteRA(registroAtendimentoSolicitante.getID());
form.setEnderecoSolicitante(enderecoSolicitante);
form.setPontoReferenciaSolicitante(registroAtendimentoSolicitante.getPontoReferencia());
SolicitanteFone solicitanteFone = consultarSolicitanteFone(registroAtendimentoSolicitante.getID());
if (solicitanteFone != null) {
form.setFoneDDD("" + solicitanteFone.getDdd());
form.setFone(solicitanteFone.getFone());
form.setFoneRamal(solicitanteFone.getRamal());
}
// [RM1094] Questionario de Satisfacao do Cliente
if (registroAtendimentoSolicitante != null && registroAtendimentoSolicitante.getIndicadorEnvioEmailPesquisa() != null) {
sessao.setAttribute("habilitarCampoSatisfacaoEmail", true);
form
.setEnviarEmailSatisfacao(registroAtendimentoSolicitante.getIndicadorEnvioEmailPesquisa().intValue() + "");
form.setEnderecoEmail(registroAtendimentoSolicitante.getEnderecoEmail());
} else {
sessao.setAttribute("habilitarCampoSatisfacaoEmail", false);
}
}
/*
* ANEXOS
* ----------------------------------------------------------------
* -------------------------------------------
*/
// CARREGANDO OS ANEXOS QUE EST�O CADASTRADOS NA BASE
String visualizar = httpServletRequest.getParameter("visualizar");
FiltroRegistroAtendimentoAnexo filtroRegistroAtendimentoAnexo = new FiltroRegistroAtendimentoAnexo();
filtroRegistroAtendimentoAnexo.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoAnexo.REGISTRO_ATENDIMENTO_ID, registroAtendimento
.getId()));
Collection colecaoRegistroAtendimentoAnexo = fachada.pesquisar(filtroRegistroAtendimentoAnexo, RegistroAtendimentoAnexo.class.getName());
httpServletRequest.setAttribute("colecaoRegistroAtendimentoAnexo", colecaoRegistroAtendimentoAnexo);
// OBTENDO ARQUIVO PARA VISUALIZA��O
RegistroAtendimentoAnexo registroAtendimentoAnexo = this.obterArquivoParaVisualizacao(visualizar, colecaoRegistroAtendimentoAnexo);
// PREPARANDO VISUALIZA��O DO ARQUIVO
if (registroAtendimentoAnexo != null) {
OutputStream out = null;
String mimeType = ConstantesSistema.CONTENT_TYPE_GENERICO;
if (registroAtendimentoAnexo.getNomeExtensaoDocumento().equals(ConstantesSistema.EXTENSAO_DOC)) {
mimeType = ConstantesSistema.CONTENT_TYPE_MSWORD;
} else if (registroAtendimentoAnexo.getNomeExtensaoDocumento().equals(ConstantesSistema.EXTENSAO_PDF)) {
mimeType = ConstantesSistema.CONTENT_TYPE_PDF;
} else if (registroAtendimentoAnexo.getNomeExtensaoDocumento().equals(ConstantesSistema.EXTENSAO_JPG)) {
mimeType = ConstantesSistema.CONTENT_TYPE_JPEG;
}
try {
httpServletResponse.setContentType(mimeType);
out = httpServletResponse.getOutputStream();
out.write(registroAtendimentoAnexo.getImagemDocumento());
out.flush();
out.close();
} catch (IOException e) {
throw new ActionServletException("erro.sistema", e);
}
}
/*
* FIM DOS ANEXOS
* --------------------------------------------------------
* ---------------------------------------------------
*/
// Dados da Ultima Tramita��o
Tramite tramite = fachada.recuperarTramiteMaisAtualPorRA(registroAtendimento.getId());
if (tramite != null) {
UnidadeOrganizacional unidadeOrigem = tramite.getUnidadeOrganizacionalOrigem();
if (unidadeOrigem != null) {
form.setIdUnidadeOrigem("" + unidadeOrigem.getId());
form.setUnidadeOrigem(unidadeOrigem.getDescricao());
}
UnidadeOrganizacional unidadeDestino = tramite.getUnidadeOrganizacionalDestino();
if (unidadeDestino != null) {
form.setIdUnidadeAtualTramitacao("" + unidadeDestino.getId());
form.setUnidadeAtualTramitacao(unidadeDestino.getDescricao());
}
Date dataTramite = tramite.getDataTramite();
form.setDataTramite(Util.formatarData(dataTramite));
form.setHoraTramite(Util.formatarHoraSemSegundos(dataTramite));
form.setParecerTramite(tramite.getParecerTramite());
Usuario usuarioResponsavel = tramite.getUsuarioResponsavel();
if (usuarioResponsavel != null) {
form.setIdUsuarioResponsavel("" + usuarioResponsavel.getId());
form.setUsuarioResponsavel(usuarioResponsavel.getNomeUsuario());
}
}
// Dados da Reitera��o
// Caso o registro atendimento tenha sido reiterado,
// exibir os dados da reitera��o
if (registroAtendimento.getQuantidadeReiteracao() != null) {
Date dataUltimaReiteracao = registroAtendimento.getUltimaReiteracao();
form.setQuantidade("" + registroAtendimento.getQuantidadeReiteracao());
form.setDataUltimaReiteracao(Util.formatarData(dataUltimaReiteracao));
form.setHoraUltimaReiteracao(Util.formatarHoraSemSegundos(dataUltimaReiteracao));
}
obterDadosReiteracaoRa(registroAtendimento.getId(), fachada, sessao);
// Dados da Reativa��o
// Caso o registro atendimento tenha sido reativado
// exibir os dados da reativa��o
Short codigoAssociado = obterRAAssociadoHelper.getCodigoExistenciaRAAssociado();
RegistroAtendimento registroAtendimentoAssociado = obterRAAssociadoHelper.getRegistroAtendimentoAssociado();
// Caso de Uso [UC0420]
ObterDescricaoSituacaoRAHelper situacaoRAAssociado = null;
if (registroAtendimentoAssociado != null) {
situacaoRAAssociado = fachada.obterDescricaoSituacaoRA(registroAtendimentoAssociado.getId());
}
if (codigoAssociado == RegistroAtendimento.CODIGO_ASSOCIADO_RA_ATUAL && registroAtendimentoAssociado != null) {
form.setNumeroRaAtual("" + registroAtendimentoAssociado.getId());
form.setSituacaoRaAtual(situacaoRAAssociado.getDescricaoSituacao());
RaMotivoReativacao raMotivoReativacao = registroAtendimentoAssociado.getRaMotivoReativacao();
if (raMotivoReativacao != null) {
form.setIdMotivoReativacao("" + raMotivoReativacao.getId());
form.setMotivoReativacao(raMotivoReativacao.getDescricao());
}
Date dataRegistro = registroAtendimentoAssociado.getRegistroAtendimento();
Date dataPrevista = registroAtendimentoAssociado.getDataPrevistaAtual();
form.setDataReativacao(Util.formatarData(dataRegistro));
form.setHoraReativacao(Util.formatarHoraSemSegundos(dataRegistro));
form.setDataPrevistaRaAtual(Util.formatarData(dataPrevista));
// Caso de Uso [UC0421]
UnidadeOrganizacional unidadeReativacao = fachada.obterUnidadeAtendimentoRA(registroAtendimentoAssociado.getId());
if (unidadeReativacao != null) {
form.setIdUnidadeReativacao("" + unidadeReativacao.getId());
form.setUnidadeReativacao(unidadeReativacao.getDescricao());
}
// Caso de Uso [UC0418]
UnidadeOrganizacional unidadeRAAtual = fachada.obterUnidadeAtualRA(registroAtendimentoAssociado.getId());
if (unidadeRAAtual != null) {
form.setIdUnidadeRaAtual("" + unidadeRAAtual.getId());
form.setUnidadeRaAtual(unidadeRAAtual.getDescricao());
}
form.setObservacaoReativacao(registroAtendimentoAssociado.getObservacao());
}
// Dados do encerramento
// Caso o registro atendimento seja encerrado,
// exibir os dados do encerramento
AtendimentoMotivoEncerramento atendimentoMotivoEncerramento = registroAtendimento.getAtendimentoMotivoEncerramento();
if (atendimentoMotivoEncerramento != null) {
form.setIdMotivoEncerramento("" + atendimentoMotivoEncerramento.getId());
form.setMotivoEncerramento(atendimentoMotivoEncerramento.getDescricao());
if (codigoAssociado == RegistroAtendimento.CODIGO_ASSOCIADO_RA_REFERENCIA && registroAtendimentoAssociado != null) {
form.setNumeroRaReferencia("" + registroAtendimentoAssociado.getId());
// Caso de Uso [UC0420]
form.setSituacaoRaReferencia(situacaoRAAssociado.getDescricaoSituacao());
}
// Caso de Uso [UC0434]
UnidadeOrganizacional unidadeEncerramento = fachada.obterUnidadeEncerramentoRA(registroAtendimento.getId());
if (unidadeEncerramento != null) {
form.setIdUnidadeEncerramento("" + unidadeEncerramento.getId());
form.setUnidadeEncerramento(unidadeEncerramento.getDescricao());
RegistroAtendimentoUnidade registroAtendimentoUnidade = this.consultarRegistroAtendimentoUnidade(registroAtendimento.getId(),
unidadeEncerramento.getId(), AtendimentoRelacaoTipo.ENCERRAR);
Usuario usuario = registroAtendimentoUnidade.getUsuario();
if (usuario != null) {
form.setIdUsuarioEncerramento("" + usuario.getId());
form.setUsuarioEncerramento(usuario.getNomeUsuario());
}
}
Date dataEncerramento = registroAtendimento.getDataEncerramento();
form.setDataEncerramento(Util.formatarData(dataEncerramento));
form.setHoraEncerramento(Util.formatarHoraSemSegundos(dataEncerramento));
form.setDataPrevistaEncerramento(Util.formatarData(registroAtendimento.getDataPrevistaAtual()));
form.setParecerEncerramento(registroAtendimento.getParecerEncerramento());
if (registroAtendimento.getServicoNaoCobrancaMotivo() != null) {
form.setMotivoNaoCobranca(registroAtendimento.getServicoNaoCobrancaMotivo().getDescricao());
}
}
// Dados das Contas relacionados
// Mariana Victor em 28/01/2011
FiltroRegistroAtendimentoConta filtroRegistroAtendimentoConta = new FiltroRegistroAtendimentoConta();
filtroRegistroAtendimentoConta.adicionarCaminhoParaCarregamentoEntidade(FiltroRegistroAtendimentoConta.CONTA);
filtroRegistroAtendimentoConta.adicionarCaminhoParaCarregamentoEntidade(FiltroRegistroAtendimentoConta.REGISTRO_ATENDIMENTO);
filtroRegistroAtendimentoConta.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoConta.REGISTRO_ATENDIMENTO_ID, registroAtendimento
.getId()));
Collection colecaoRAContas = fachada.pesquisar(filtroRegistroAtendimentoConta, RegistroAtendimentoConta.class.getName());
if (colecaoRAContas != null && !colecaoRAContas.isEmpty()) {
sessao.setAttribute("colecaoRAContas", colecaoRAContas);
} else {
sessao.removeAttribute("colecaoRAContas");
}
// Colocado por Raphael Rossiter em 26/10/2006
form.setNumeroRA("");
httpServletRequest.setAttribute("nomeCampo", "numeroRA");
// Pagamentos Duplicidade
FiltroRegistroAtendimentoPagamentoDuplicidade filtroRegistroAtendimentoPagamentoDuplicidade = new FiltroRegistroAtendimentoPagamentoDuplicidade();
filtroRegistroAtendimentoPagamentoDuplicidade.adicionarParametro(new ParametroSimples(
FiltroRegistroAtendimentoPagamentoDuplicidade.REGISTRO_ATENDIMENTO_ID, registroAtendimento.getId()));
Collection<RegistroAtendimentoPagamentoDuplicidade> colecaoRAPagamentoDuplicidade = this.getFachada().pesquisar(
filtroRegistroAtendimentoPagamentoDuplicidade, RegistroAtendimentoPagamentoDuplicidade.class.getName());
if (colecaoRAPagamentoDuplicidade != null && !colecaoRAPagamentoDuplicidade.isEmpty()) {
sessao.setAttribute("colecaoRAPagamentoDuplicidade", colecaoRAPagamentoDuplicidade);
} else {
sessao.removeAttribute("colecaoRAPagamentoDuplicidade");
}
return retorno;
}
/**
* Consulta o registro atendimento solicitante pelo id do registro
* atendimento
*/
private RegistroAtendimentoSolicitante consultarRegistroAtendimentoSolicitante(Integer idRegistroAtendimento) {
RegistroAtendimentoSolicitante retorno = null;
Fachada fachada = Fachada.getInstancia();
Collection colecaoRegistroAtendimento = null;
FiltroRegistroAtendimentoSolicitante filtroRegistroAtendimento = new FiltroRegistroAtendimentoSolicitante();
filtroRegistroAtendimento.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoSolicitante.REGISTRO_ATENDIMENTO_ID, idRegistroAtendimento));
filtroRegistroAtendimento.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoSolicitante.INDICADOR_SOLICITANTE_PRINCIPAL,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional");
filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("funcionario");
colecaoRegistroAtendimento = fachada.pesquisar(filtroRegistroAtendimento, RegistroAtendimentoSolicitante.class.getName());
if (colecaoRegistroAtendimento != null && !colecaoRegistroAtendimento.isEmpty()) {
retorno = (RegistroAtendimentoSolicitante) Util.retonarObjetoDeColecao(colecaoRegistroAtendimento);
}
return retorno;
}
/**
* Consulta o solicitante fone pelo id do registro atendimentoSolicitante
*/
private SolicitanteFone consultarSolicitanteFone(Integer idRegistroAtendimentoSolicitante) {
SolicitanteFone retorno = null;
Fachada fachada = Fachada.getInstancia();
Collection colecaoSolicitanteFone = null;
FiltroSolicitanteFone filtroSolicitanteFone = new FiltroSolicitanteFone();
filtroSolicitanteFone.adicionarParametro(new ParametroSimples(FiltroSolicitanteFone.REGISTRO_ATENDIMENTO_SOLICITANTE_ID,
idRegistroAtendimentoSolicitante));
colecaoSolicitanteFone = fachada.pesquisar(filtroSolicitanteFone, SolicitanteFone.class.getName());
if (colecaoSolicitanteFone != null && !colecaoSolicitanteFone.isEmpty()) {
retorno = (SolicitanteFone) Util.retonarObjetoDeColecao(colecaoSolicitanteFone);
}
return retorno;
}
/**
* Consulta o Registro Atendimento Unidade pelo id da RA
*/
private RegistroAtendimentoUnidade consultarRegistroAtendimentoUnidade(Integer idRA, Integer idUnidade, Integer atendimentoRelacaoTipoId) {
RegistroAtendimentoUnidade retorno = null;
Fachada fachada = Fachada.getInstancia();
Collection colecaoRegistroAtendimentoUnidade = null;
FiltroRegistroAtendimentoUnidade filtroRegistroAtendimentoUnidade = new FiltroRegistroAtendimentoUnidade();
filtroRegistroAtendimentoUnidade.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoUnidade.REGISTRO_ATENDIMENTO_ID, idRA));
filtroRegistroAtendimentoUnidade.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoUnidade.UNIDADE_ORGANIZACIONAL_ID, idUnidade));
if (atendimentoRelacaoTipoId != null) {
filtroRegistroAtendimentoUnidade.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimentoUnidade.ATENDIMENTO_RELACAO_TIPO,
atendimentoRelacaoTipoId));
}
filtroRegistroAtendimentoUnidade.adicionarCaminhoParaCarregamentoEntidade("usuario");
colecaoRegistroAtendimentoUnidade = fachada.pesquisar(filtroRegistroAtendimentoUnidade, RegistroAtendimentoUnidade.class.getName());
if (colecaoRegistroAtendimentoUnidade != null && !colecaoRegistroAtendimentoUnidade.isEmpty()) {
retorno = (RegistroAtendimentoUnidade) Util.retonarObjetoDeColecao(colecaoRegistroAtendimentoUnidade);
}
return retorno;
}
private int obterIndexRAColecao(Integer idRA, Collection<RAFiltroHelper> colecao) {
int index = 0;
for (RAFiltroHelper helper : colecao) {
if (helper.getRegistroAtendimento().getId().equals(idRA)) {
return index;
}
index++;
}
return -1;
}
private Collection loadColecaoRAHelper(Collection<RegistroAtendimento> colecaoRegistroAtendimento) {
Fachada fachada = Fachada.getInstancia();
Collection colecaoRAHelper = new ArrayList();
UnidadeOrganizacional unidadeAtual = null;
ObterDescricaoSituacaoRAHelper situacao = null;
RAFiltroHelper helper = null;
for (Iterator iter = colecaoRegistroAtendimento.iterator(); iter.hasNext();) {
RegistroAtendimento registroAtendimento = (RegistroAtendimento) iter.next();
situacao = fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());
unidadeAtual = fachada.obterUnidadeAtualRA(registroAtendimento.getId());
helper = new RAFiltroHelper();
helper.setRegistroAtendimento(registroAtendimento);
helper.setUnidadeAtual(unidadeAtual);
helper.setSituacao(situacao.getDescricaoAbreviadaSituacao());
colecaoRAHelper.add(helper);
}
return colecaoRAHelper;
}
/**
* Removendo um arquivo da cole��o
*/
private RegistroAtendimentoAnexo obterArquivoParaVisualizacao(String identificacao, Collection colecaoRegistroAtendimentoAnexo) {
RegistroAtendimentoAnexo registroAtendimentoAnexo = null;
if (identificacao != null && !identificacao.equals("")) {
Iterator it = colecaoRegistroAtendimentoAnexo.iterator();
RegistroAtendimentoAnexo anexoColecao = null;
while (it.hasNext()) {
anexoColecao = (RegistroAtendimentoAnexo) it.next();
if (obterTimestampIdObjeto(anexoColecao) == Long.parseLong(identificacao)) {
registroAtendimentoAnexo = anexoColecao;
break;
}
}
}
return registroAtendimentoAnexo;
}
private void obterDadosReiteracaoRa(Integer numeroRA, Fachada fachada, HttpSession sessao) {
sessao.removeAttribute("colecaoDadosReiteracao");
if (numeroRA != null) {
Collection colecaoDadosReiteracao = fachada.pesquisarDadosReiteracaoRA(numeroRA);
if (colecaoDadosReiteracao != null && !colecaoDadosReiteracao.isEmpty()) {
sessao.setAttribute("colecaoDadosReiteracao", colecaoDadosReiteracao);
}
}
}
private ConsultarRegistroAtendimentoActionForm limparCampos(ConsultarRegistroAtendimentoActionForm form) {
form.setPerfilImovel(null);
form.setSituacaoRA(null);
form.setNumeroRaAssociado(null);
form.setSituacaoRaAssociado(null);
form.setNumeroRAManual(null);
form.setIdTipoSolicitacao(null);
form.setTipoSolicitacao(null);
form.setIdEspecificacao(null);
form.setEspecificacao(null);
form.setTipoAtendimento(null);
form.setDataAtendimento(null);
form.setHoraAtendimento(null);
form.setTempoEsperaInicio(null);
form.setTempoEsperaTermino(null);
form.setDataPrevista(null);
form.setValorSugerido(null);
form.setIdMeioSolicitacao(null);
form.setMeioSolicitacao(null);
form.setIdUnidadeAtendimento(null);
form.setUnidadeAtendimento(null);
form.setIdUsuario(null);
form.setUsuario(null);
form.setIdUnidadeAtual(null);
form.setUnidadeAtual(null);
form.setIdUnidadeAnterior(null);
form.setUnidadeAnterior(null);
form.setObservacao(null);
form.setMatriculaImovel(null);
form.setInscricaoImovel(null);
form.setRota(null);
form.setSequencialRota(null);
form.setEnderecoOcorrencia(null);
form.setPontoReferencia(null);
form.setNumeroCoordenadaNorte(null);
form.setNumeroCoordenadaLeste(null);
form.setIdMunicipio(null);
form.setMunicipio(null);
form.setIdBairro(null);
form.setBairro(null);
form.setIdAreaBairro(null);
form.setAreaBairro(null);
form.setIdLocalidade(null);
form.setLocalidade(null);
form.setIdSetorComercial(null);
form.setSetorComercial(null);
form.setIdQuadra(null);
form.setIdDivisaoEsgoto(null);
form.setDivisaoEsgoto(null);
form.setLocalOcorrencia(null);
form.setPavimentoRua(null);
form.setPavimentoCalcada(null);
form.setDescricaoLocalOcorrencia(null);
form.setNumeroProtocolo(null);
form.setIdClienteSolicitante(null);
form.setClienteSolicitante(null);
form.setIdUnidadeSolicitante(null);
form.setUnidadeSolicitante(null);
form.setIdFuncionarioResponsavel(null);
form.setFuncionarioResponsavel(null);
form.setNomeSolicitante(null);
form.setEnderecoEmail(null);
form.setEnderecoSolicitante(null);
form.setPontoReferencia(null);
form.setFoneDDD(null);
form.setFone(null);
form.setFoneRamal(null);
form.setIdUnidadeOrigem(null);
form.setUnidadeOrigem(null);
form.setIdUnidadeAtualTramitacao(null);
form.setUnidadeAtualTramitacao(null);
form.setDataTramite(null);
form.setHoraTramite(null);
form.setIdUsuarioResponsavel(null);
form.setUsuarioResponsavel(null);
form.setParecerTramite(null);
form.setNumeroRaAtual(null);
form.setSituacaoRaAtual(null);
form.setIdMotivoReativacao(null);
form.setMotivoReativacao(null);
form.setDataReativacao(null);
form.setHoraReativacao(null);
form.setDataPrevistaRaAtual(null);
form.setIdUnidadeReativacao(null);
form.setUnidadeReativacao(null);
form.setIdUnidadeRaAtual(null);
form.setUnidadeRaAtual(null);
form.setObservacaoReativacao(null);
form.setIdMotivoEncerramento(null);
form.setMotivoEncerramento(null);
form.setNumeroRaReferencia(null);
form.setSituacaoRaReferencia(null);
form.setDataEncerramento(null);
form.setHoraEncerramento(null);
form.setDataPrevistaEncerramento(null);
form.setIdUnidadeEncerramento(null);
form.setUnidadeEncerramento(null);
form.setIdUsuarioEncerramento(null);
form.setUsuarioEncerramento(null);
form.setParecerEncerramento(null);
form.setMotivoNaoCobranca(null);
return form;
}
}