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.RABuilder;
import gcom.atendimentopublico.registroatendimento.RADadosGeraisHelper;
import gcom.atendimentopublico.registroatendimento.RALocalOcorrenciaHelper;
import gcom.atendimentopublico.registroatendimento.RASolicitanteHelper;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimento;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoUnidade;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao;
import gcom.atendimentopublico.registroatendimento.bean.ObterDadosIdentificacaoLocalOcorrenciaHelper;
import gcom.atendimentopublico.registroatendimento.bean.RegistroAtendimentoFaltaAguaGeneralizadaHelper;
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.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 das tr�s abas do processo de inser��o
* de um registro de atendimento e chamar o m�todo que ir� concluir a mesma
*
* @author Raphael Rossiter
* @date 25/07/2006
*/
public class ConcluirInserirRegistroAtendimentoAction extends GcomAction {
@SuppressWarnings({ "unchecked", "rawtypes" })
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirRegistroAtendimentoActionForm form =
(InserirRegistroAtendimentoActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
sessao.removeAttribute("gis");
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
/*
* Valida��o Aba 01
*/
this.getFachada().validarInserirRegistroAtendimentoDadosGerais(
form.getDataAtendimento(),
form.getHora(),
form.getTempoEsperaInicial(),
form.getTempoEsperaFinal(),
form.getUnidade(),
form.getNumeroAtendimentoManual());
if (!form.getIdImovel().equals("") &&
!form.getEspecificacao().equals("")){
this.getFachada().verificarExistenciaRAImovelMesmaEspecificacao(
new Integer(form.getIdImovel()),
new Integer(form.getEspecificacao()));
}
/*
* 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.getIdUnidadeDestino();
String descricaoUnidade = form.getDescricaoUnidadeDestino();
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 idMeioSolicitacao = form.getMeioSolicitacao();
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);
this.getFachada().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)
validarCamposEnter(form, httpServletRequest, actionMapping, sessao);
String nomeSolicitante = null;
if (form.getNomeSolicitante() != null &&
!form.getNomeSolicitante().equalsIgnoreCase("")){
nomeSolicitante = form.getNomeSolicitante();
}
Short indicadorClienteEspecificacao = null;
if (form.getIndicadorClienteEspecificacao() != null &&
!form.getIndicadorClienteEspecificacao().equalsIgnoreCase("")){
indicadorClienteEspecificacao = new Short(form.getIndicadorClienteEspecificacao());
}
Boolean habilitarCampoSatisfacaoEmail =
(Boolean) sessao.getAttribute("habilitarCampoSatisfacaoEmail");
//[FS0030] Verificar preenchimento dos dados de identifica��o do solicitante
this.getFachada().verificaDadosSolicitante(
Util.converterStringParaInteger(form.getIdCliente()),
Util.converterStringParaInteger(form.getIdUnidadeSolicitante()),
Util.converterStringParaInteger(form.getIdFuncionarioResponsavel()), nomeSolicitante,
RABuilder.getColecaoEnderecoSolicitante(form, sessao),
RABuilder.getColecaoFone(form, sessao),
indicadorClienteEspecificacao,
Util.converterStringParaInteger(form.getIdImovel()),
null,
Util.converterStringParaInteger(form.getEspecificacao()),
Util.converterStringParaInteger(idMeioSolicitacao) );
//Valida o campo enderecoEmail e enviarEmailSatisfacao do Formul�rio caso necess�rio
if(habilitarCampoSatisfacaoEmail != null && habilitarCampoSatisfacaoEmail.booleanValue()){
if(form.getEnviarEmailSatisfacao() != null && !form.getEnviarEmailSatisfacao().equals("") && form.getEnviarEmailSatisfacao().equals("1")
&& form.getEnderecoEmail().equals("")){
throw new ActionServletException("atencao.required", null,"Endere�o de email!");
}
}else{
habilitarCampoSatisfacaoEmail = false;
}
/*
* Valida��o Aba 04 - Anexos
*/
Collection colecaoRegistroAtendimentoAnexo = null;
if (sessao.getAttribute("colecaoRegistroAtendimentoAnexo") != null){
colecaoRegistroAtendimentoAnexo = (Collection)
sessao.getAttribute("colecaoRegistroAtendimentoAnexo");
}
Collection colecaoEnderecoLocalOcorrencia = null;
if (sessao.getAttribute("colecaoEnderecos") != null){
colecaoEnderecoLocalOcorrencia = (Collection) sessao.getAttribute("colecaoEnderecos");
}
Collection colecaoContas = null;
if (sessao.getAttribute("colecaoConta") != null){
colecaoContas = (Collection) sessao.getAttribute("colecaoConta");
}
//Usu�rio logado no sistema
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
/*
* Raphael Rossiter em 29/05/2007
* Caso o usu�rio tente inserir o mesmo RA por mais de uma vez
*/
String idRAJAGeradoSessao = (String) sessao.getAttribute("idRegistroAtendimento");
Integer idRAJAGerado = null;
if (idRAJAGeradoSessao != null){
idRAJAGerado = new Integer(idRAJAGeradoSessao);
}
Integer[] idsGerados = null;
//[SB0025] Verifica Registro de Atendimento de Falta de �gua Generalizada
String efetivarInclusao = httpServletRequest.getParameter("efetivarInclusao");
if (efetivarInclusao == null || efetivarInclusao.equalsIgnoreCase("")){
RegistroAtendimentoFaltaAguaGeneralizadaHelper faltaAguaGeneralizada =
this.getFachada().verificarRegistroAtendimentoFaltaAguaGeneralizafa(
Util.converterStringParaInteger(form.getEspecificacao()),
Util.converterStringParaInteger(form.getIdBairroArea()));
if (faltaAguaGeneralizada != null){
httpServletRequest.setAttribute("atencao",
"Existem Registros de Atendimento de "
+ faltaAguaGeneralizada.getSolicitacaoTipoEspecificacao().getDescricao()
+ " em aberto para a �rea do bairro "
+ faltaAguaGeneralizada.getBairroArea().getNome());
//URL concluir
httpServletRequest.setAttribute(
"concluir",
"/gsan/inserirRegistroAtendimentoWizardAction.do?concluir=true&action=inserirRegistroAtendimentoDadosSolicitanteAction&efetivarInclusao=OK");
// Tipo chamada (Popup ou tela convencional)
httpServletRequest.setAttribute("tipoChamada", "popup");
// Label bot�o utilit�rio
httpServletRequest.setAttribute("labelBotao","Encerrar RA");
// URL bot�o utilit�rio
httpServletRequest.setAttribute(
"urlBotao",
"pesquisarRegistrosAtendimentoPendentesFaltaAguaEncerrarAction.do?idEspecificacao="
+ form.getEspecificacao()
+ "&idBairroArea="
+ faltaAguaGeneralizada.getBairroArea().getId());
retorno = actionMapping.findForward("telaOpcaoConsultar");
} else{
//[SB0028] Inclui Registro de Atendimento
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");
}
}
if(form.getObservacao() != null &&
!form.getObservacao().equals("") &&
form.getObservacao().length() > 400){
String[] msg = new String[2];
msg[0]="Observa��o";
msg[1]="400";
throw new ActionServletException("atencao.execedeu_limit_observacao",null,msg);
}
RASolicitanteHelper raSolicitante = RABuilder.buildRASolicitante(form, sessao, false);
RADadosGeraisHelper raDadosGerais = RABuilder.buildRADadosGerais(form, usuario, idRAJAGerado,
(String) sessao.getAttribute("protocoloAtendimento"),
colecaoRegistroAtendimentoAnexo);
RALocalOcorrenciaHelper raLocalOcorrencia = RABuilder.buildRALocalOcorrencia(form, colecaoEnderecoLocalOcorrencia,
(Short)(sessao.getAttribute("indicCoordenadaSemLogradouro")),
colecaoContas);
idsGerados = this.getFachada().inserirRegistroAtendimento(raDadosGerais, raLocalOcorrencia, raSolicitante);
sessao.setAttribute("idRegistroAtendimento", idsGerados[0].toString());
// Caso a especifica��o seja de encerramento autom�tico, encerra o ra
if (indicadorEncerramentoAutomatico) {
RegistroAtendimentoUnidade registroAtendimentoUnidade =
this.montarRegistroAtendimentoParaEncerramento(idsGerados[0], usuario);
registroAtendimentoUnidade.getRegistroAtendimento().setDataEncerramento(
registroAtendimentoUnidade.getRegistroAtendimento().getRegistroAtendimento());
this.getFachada().encerrarRegistroAtendimento(
registroAtendimentoUnidade.getRegistroAtendimento(),
registroAtendimentoUnidade,
usuario,
null,
null,
null,
null,
false,
null,
false );
}
//Montando a p�gina de sucesso
if (!this.getFachada().gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao())) &&
this.getFachada().gerarOrdemServicoOpcional(Util.converterStringParaInteger(form.getEspecificacao()))){
montarPaginaSucessoUmRelatorio(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " inserido com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Atualizar Registro de Atendimento inserido",
"Gerar OS",
"exibirGerarOrdemServicoAction.do?forward=exibirGerarOrdemServico&veioRA=OK&idRegistroAtendimento=" + idsGerados[0],
"Imprimir RA",
"gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0]);
} else{
if (this.getFachada().gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao()))){
montarPaginaSucessoDoisRelatorios(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " e Ordem de Servi�o de c�digo " + idsGerados[1] + " inseridos com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Atualizar Registro de Atendimento inserido",
"Imprimir RA", "gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0],
"Imprimir OS", "gerarRelatorioOrdemServicoAction.do?idsOS=" + idsGerados[1]);
} else{
montarPaginaSucessoUmRelatorio(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " inserido com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Atualizar Registro de Atendimento inserido",
"Imprimir RA",
"gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0]);
}
}
}
} else {
//[SB0028] Inclui Registro de Atendimento
if(form.getObservacao() != null &&
!form.getObservacao().equals("") &&
form.getObservacao().length() > 400){
String[] msg = new String[2];
msg[0]="Observa��o";
msg[1]="400";
throw new ActionServletException("atencao.execedeu_limit_observacao",null,msg);
}
RASolicitanteHelper raSolicitante = RABuilder.buildRASolicitante(form, sessao, false);
RADadosGeraisHelper raDadosGerais = RABuilder.buildRADadosGerais(form, usuario, idRAJAGerado,
(String) sessao.getAttribute("protocoloAtendimento"),
colecaoRegistroAtendimentoAnexo);
RALocalOcorrenciaHelper raLocalOcorrencia = RABuilder.buildRALocalOcorrencia(form, colecaoEnderecoLocalOcorrencia,
(Short)(sessao.getAttribute("indicCoordenadaSemLogradouro")),
colecaoContas);
idsGerados = this.getFachada().inserirRegistroAtendimento(raDadosGerais, raLocalOcorrencia, raSolicitante);
sessao.setAttribute("idRegistroAtendimento", idsGerados[0].toString());
//Montando a pagina de sucesso
if (!this.getFachada().gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao()))
&& this.getFachada().gerarOrdemServicoOpcional(Util.converterStringParaInteger(form.getEspecificacao()))){
montarPaginaSucessoUmRelatorio(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " inserido com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Atualizar Registro de Atendimento inserido",
"Gerar OS",
"exibirGerarOrdemServicoAction.do?forward=exibirGerarOrdemServico&veioRA=OK&idRegistroAtendimento=" + idsGerados[0],
"Imprimir RA",
"gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0]);
}
else{
if (this.getFachada().gerarOrdemServicoAutomatica(Util.converterStringParaInteger(form.getEspecificacao()))){
montarPaginaSucessoDoisRelatorios(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " e Ordem de Servi�o de c�digo " + idsGerados[1] + " inseridos com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Atualizar Registro de Atendimento inserido",
"Imprimir RA",
"gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0],
"Imprimir OS",
"gerarRelatorioOrdemServicoAction.do?idsOS=" + idsGerados[1]);
}
else{
montarPaginaSucessoUmRelatorio(httpServletRequest,
"Registro de Atendimento de c�digo " + idsGerados[0] + " inserido com sucesso.",
"Inserir outro Registro de Atendimento",
"exibirInserirRegistroAtendimentoAction.do?menu=sim",
"exibirConsultarRegistroAtendimentoAction.do?numeroRA=" + idsGerados[0],
"Imprimir RA",
"Atualizar Registro de Atendimento inserido" ,
"gerarRelatorioRegistroAtendimentoViaClienteConsultarAction.do?idRegistroAtendimento=" + idsGerados[0]);
}
}
}
if(idsGerados != null){
//[SB0034] � Verificar RA de urg�ncia
if(getFachada().verificarRegistroAtendimentoUrgencia(idsGerados[0]) > 0){
getFachada().inserirUsuarioVisualizacaoRaUrgencia(idsGerados[0],ConstantesSistema.NAO);
}
}
sessao.removeAttribute("gis");
//sessao.removeAttribute("origemGIS");
return retorno;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private void validarCamposEnter(
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
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] 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 = this.getFachada()
.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 = this.getFachada()
.obterDadosIdentificacaoLocalOcorrencia(new Integer(
inserirRegistroAtendimentoActionForm.getIdImovel()),
new Integer(inserirRegistroAtendimentoActionForm
.getEspecificacao()), new Integer(
inserirRegistroAtendimentoActionForm
.getTipoSolicitacao()), true);
if (dadosIdentificacaoLocalOcorrencia.getImovel() != null) {
// [FS0020] - Verificar exist�ncia de registro de
// atendimento
// para o im�vel com a mesma especifica��o
this.getFachada().verificarExistenciaRAImovelMesmaEspecificacao(
dadosIdentificacaoLocalOcorrencia.getImovel().getId(),
new Integer(inserirRegistroAtendimentoActionForm
.getEspecificacao()));
// [SB0020] Verifica Situa��o do Im�vel e
// Especifica��o
this.getFachada().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());
sessao.removeAttribute("colecaoEnderecos");
} else {
sessao.removeAttribute("colecaoEnderecos");
}
this.carregarMunicipioBairroParaImovel(
habilitaGeograficoDivisaoEsgoto,
dadosIdentificacaoLocalOcorrencia,
inserirRegistroAtendimentoActionForm, sessao);
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 = this.getFachada().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);
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 = this.getFachada().pesquisar(filtroBairro,
Bairro.class.getName());
if (colecaoBairro == null || colecaoBairro.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Bairro");
}
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()), sessao);
}
}
String idLocalidade = inserirRegistroAtendimentoActionForm
.getIdLocalidade();
String descricaoLocalidade = inserirRegistroAtendimentoActionForm
.getDescricaoBairro();
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 = this.getFachada().pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidade == null || colecaoLocalidade.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Localidade");
}
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("")
&& (descricaoSetorComercial == null || descricaoSetorComercial
.equals(""))) {
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 = this.getFachada().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);
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 = this.getFachada().pesquisar(filtroQuadra,
Quadra.class.getName());
if (colecaoQuadra == null || colecaoQuadra.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Quadra");
}
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 = this.getFachada().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(
inserirRegistroAtendimentoActionForm,
habilitaGeograficoDivisaoEsgoto
.isSolicitacaoTipoRelativoAreaEsgoto());
}
}
}
public void verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto(InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
boolean solicitacaoTipoRelativoAreaEsgoto) {
this.getFachada()
.verificarCompatibilidadeDivisaoEsgotoLocalidadeSetorQuadra(
Util
.converterStringParaInteger(inserirRegistroAtendimentoActionForm
.getIdLocalidade()),
Util
.converterStringParaInteger(inserirRegistroAtendimentoActionForm
.getIdSetorComercial()),
Util
.converterStringParaInteger(inserirRegistroAtendimentoActionForm
.getIdQuadra()),
Util
.converterStringParaInteger(inserirRegistroAtendimentoActionForm
.getIdDivisaoEsgoto()));
}
public void pesquisarBairroArea(Integer idBairro,
HttpSession sessao) {
FiltroBairroArea filtroBairroArea = new FiltroBairroArea();
filtroBairroArea.adicionarParametro(new ParametroSimples(
FiltroBairroArea.ID_BAIRRO, idBairro));
@SuppressWarnings("rawtypes")
Collection colecaoBairroArea = this.getFachada().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,
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
HttpSession sessao) {
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(),sessao);
sessao.setAttribute("desabilitarMunicipioBairro", "OK");
} else {
inserirRegistroAtendimentoActionForm.setIdMunicipio("");
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio("");
inserirRegistroAtendimentoActionForm.setIdBairro("");
inserirRegistroAtendimentoActionForm.setCdBairro("");
inserirRegistroAtendimentoActionForm.setDescricaoBairro("");
sessao.removeAttribute("colecaoBairroArea");
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
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());
AtendimentoRelacaoTipo atendimentoRelacaoTipo = new AtendimentoRelacaoTipo();
atendimentoRelacaoTipo.setId(AtendimentoRelacaoTipo.ENCERRAR);
registroAtendimentoUnidade.setAtendimentoRelacaoTipo(atendimentoRelacaoTipo);
return registroAtendimentoUnidade;
}
}