package gcom.gui.atendimentopublico.registroatendimento;
import gcom.arrecadacao.pagamento.FiltroPagamento;
import gcom.arrecadacao.pagamento.Pagamento;
import gcom.arrecadacao.pagamento.PagamentoSituacao;
import gcom.atendimentopublico.registroatendimento.FiltroLocalOcorrencia;
import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao;
import gcom.atendimentopublico.registroatendimento.LocalOcorrencia;
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.imovel.FiltroPavimentoCalcada;
import gcom.cadastro.imovel.FiltroPavimentoRua;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.PavimentoCalcada;
import gcom.cadastro.imovel.PavimentoRua;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cadastro.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.conta.FiltroConta;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.integracao.GisHelper;
import gcom.operacional.DivisaoEsgoto;
import gcom.operacional.FiltroDivisaoEsgoto;
import gcom.seguranca.acesso.PermissaoEspecial;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroNaoNulo;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Esta classe tem por finalidade exibir para o usu�rio a tela que receber� os
* par�metros para realiza��o da inser��o de um R.A (Aba n� 02 - Dados do local
* de ocorr�ncia)
*
* @author Raphael Rossiter
* @date 25/07/2006
*/
public class ExibirInserirRegistroAtendimentoDadosLocalOcorrenciaAction extends
GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("inserirRegistroAtendimentoDadosLocalOcorrencia");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm = (InserirRegistroAtendimentoActionForm) actionForm;
/*
* GIS
* ==============================================================================================================
*/
httpServletRequest.setAttribute("origemAcquaGIS", false);
sessao.setAttribute("gis",true);
List<Conta> colecaoConta = new ArrayList();
if (sessao.getAttribute("colecaoConta") != null
&& !sessao.getAttribute("colecaoConta").equals("")){
colecaoConta = (List<Conta>) sessao.getAttribute("colecaoConta");
}
GisHelper gisHelper = (GisHelper) sessao.getAttribute("gisHelper");
if(gisHelper!= null){
/**
*
* RM5236 - Abertura de RA Atrav�s do PROGIS
* Tratamento das vari�veis oriundas de chamadas GIS
*
*/
if(gisHelper.getNnDiametro()!=null && !gisHelper.equals("")){
inserirRegistroAtendimentoActionForm.setNnDiamentro(gisHelper.getNnDiametro());
}
inserirRegistroAtendimentoActionForm.setNnCoordenadaNorte(gisHelper.getNnCoordenadaNorte());
inserirRegistroAtendimentoActionForm.setNnCoordenadaLeste(gisHelper.getNnCoordenadaLeste());
inserirRegistroAtendimentoActionForm.setIndicCoordenadaSemLogradouro("" + gisHelper.getIndicadorCoordenadaSemLogradouro());
sessao.setAttribute("indicCoordenadaSemLogradouro", gisHelper.getIndicadorCoordenadaSemLogradouro());
if (gisHelper.getIndicadorCoordenadaSemLogradouro() == ConstantesSistema.NAO){
if(!"NAO".equalsIgnoreCase(gisHelper.getInformarCep())&& gisHelper.getInformarCep()!=null){
inserirRegistroAtendimentoActionForm.setInformarCep("SIM");
}else{
inserirRegistroAtendimentoActionForm.setInformarCep("NAO");
carregarDadosGis(gisHelper,inserirRegistroAtendimentoActionForm,sessao,fachada,httpServletRequest);
}
} else {
inserirRegistroAtendimentoActionForm.setIdImovel(gisHelper.getImovel().getId().toString());
sessao.setAttribute("temImovelGIS","SIM");
gisHelper = null;
sessao.removeAttribute("gisHelper");
}
httpServletRequest.setAttribute("origemAcquaGIS", true);
}else {
if(sessao.getAttribute("indicCoordenadaSemLogradouro") == null) {
sessao.setAttribute("indicCoordenadaSemLogradouro", ConstantesSistema.NAO);
}
}
/*
* Carregamento inicial da tela respons�vel pelo redebimento das
* informa��es referentes ao local da ocorr�ncia (ABA N� 02)
* ============================================================================================================
*/
/*
* Divis�o de Esgoto - Carregando a cole��o que ir� ficar dispon�vel
* para escolha do usu�rio
*
* [FS0003] - Verificar exist�ncia de dados
*/
Collection colecaoDivisaoEsgoto = (Collection) sessao.getAttribute("colecaoDivisaoEsgoto");
if (colecaoDivisaoEsgoto == null) {
FiltroDivisaoEsgoto filtroDivisaoEsgoto = new FiltroDivisaoEsgoto(
FiltroDivisaoEsgoto.DESCRICAO);
filtroDivisaoEsgoto.adicionarParametro(new ParametroSimples(
FiltroDivisaoEsgoto.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroDivisaoEsgoto.setConsultaSemLimites(true);
colecaoDivisaoEsgoto = fachada.pesquisar(filtroDivisaoEsgoto,
DivisaoEsgoto.class.getName());
if (colecaoDivisaoEsgoto == null || colecaoDivisaoEsgoto.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"DIVISAO_ESGOTO");
} else {
sessao.setAttribute("colecaoDivisaoEsgoto", colecaoDivisaoEsgoto);
}
}
/*
* Local de Ocorr�ncia - Carregando a cole��o que ir� ficar dispon�vel
* para escolha do usu�rio
*
* [FS0003] - Verificar exist�ncia de dados
*/
Collection colecaoLocalOcorrencia = (Collection) sessao.getAttribute("colecaoLocalOcorrencia");
if (colecaoLocalOcorrencia == null) {
FiltroLocalOcorrencia filtroLocalOcorrencia = new FiltroLocalOcorrencia(
FiltroLocalOcorrencia.DESCRICAO);
filtroLocalOcorrencia.adicionarParametro(new ParametroSimples(
FiltroLocalOcorrencia.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalOcorrencia.setConsultaSemLimites(true);
colecaoLocalOcorrencia = fachada.pesquisar(filtroLocalOcorrencia,
LocalOcorrencia.class.getName());
if (colecaoLocalOcorrencia == null || colecaoLocalOcorrencia.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"LOCAL_OCORRENCIA");
} else {
sessao.setAttribute("colecaoLocalOcorrencia", colecaoLocalOcorrencia);
}
}
/*
* Pavimento Rua - Carregando a cole��o que ir� ficar dispon�vel para
* escolha do usu�rio
*
* [FS0003] - Verificar exist�ncia de dados
*/
Collection colecaoPavimentoRua = (Collection) sessao
.getAttribute("colecaoPavimentoRua");
if (colecaoPavimentoRua == null) {
FiltroPavimentoRua filtroPavimentoRua = new FiltroPavimentoRua(
FiltroPavimentoRua.DESCRICAO);
filtroPavimentoRua.adicionarParametro(new ParametroSimples(
FiltroPavimentoRua.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroPavimentoRua.setConsultaSemLimites(true);
colecaoPavimentoRua = fachada.pesquisar(filtroPavimentoRua,
PavimentoRua.class.getName());
if (colecaoPavimentoRua == null || colecaoPavimentoRua.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"PAVIMENTO_RUA");
} else {
sessao.setAttribute("colecaoPavimentoRua", colecaoPavimentoRua);
}
}
/*
* Pavimento Cal�ada - Carregando a cole��o que ir� ficar dispon�vel
* para escolha do usu�rio
*
* [FS0003] - Verificar exist�ncia de dados
*/
Collection colecaoPavimentoCalcada = (Collection) sessao
.getAttribute("colecaoPavimentoCalcada");
if (colecaoPavimentoCalcada == null) {
FiltroPavimentoCalcada filtroPavimentoCalcada = new FiltroPavimentoCalcada(
FiltroPavimentoCalcada.DESCRICAO);
filtroPavimentoCalcada.adicionarParametro(new ParametroSimples(
FiltroPavimentoCalcada.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroPavimentoCalcada.setConsultaSemLimites(true);
colecaoPavimentoCalcada = fachada.pesquisar(filtroPavimentoCalcada,
PavimentoCalcada.class.getName());
if (colecaoPavimentoCalcada == null
|| colecaoPavimentoCalcada.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"PAVIMENTO_CALCADA");
} else {
sessao.setAttribute("colecaoPavimentoCalcada", colecaoPavimentoCalcada);
}
}
// [SB0002] - Habilita/Desabilita Munic�pio, Bairro, �rea do Bairro e
// Divis�o de Esgoto
ObterDadosIdentificacaoLocalOcorrenciaHelper habilitaGeograficoDivisaoEsgoto = fachada
.habilitarGeograficoDivisaoEsgoto(new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()));
String pesquisarImovel = httpServletRequest.getParameter("pesquisarImovel");
if (habilitaGeograficoDivisaoEsgoto != null) {
if (habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoFaltaAgua()) {
sessao.setAttribute("solicitacaoTipoRelativoFaltaAgua", "SIM");
//Verificar carregamento do Munic�pio e Bairro de acordo com o tipo de solicita��o
if (inserirRegistroAtendimentoActionForm.getIdImovel() != null
&& !inserirRegistroAtendimentoActionForm.getIdImovel().equalsIgnoreCase("")
&& (pesquisarImovel == null || pesquisarImovel.equalsIgnoreCase(""))){
ObterDadosIdentificacaoLocalOcorrenciaHelper dadosIdentificacaoLocalOcorrencia = fachada
.obterDadosIdentificacaoLocalOcorrencia(
new Integer(inserirRegistroAtendimentoActionForm.getIdImovel()),
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()), false);
this.carregarMunicipioBairroParaImovel(
habilitaGeograficoDivisaoEsgoto, dadosIdentificacaoLocalOcorrencia,
inserirRegistroAtendimentoActionForm, sessao, fachada);
}
} else {
sessao.setAttribute("solicitacaoTipoRelativoFaltaAgua", "NAO");
}
if (habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto()) {
sessao.setAttribute("solicitacaoTipoRelativoAreaEsgoto", "SIM");
} else {
sessao.setAttribute("solicitacaoTipoRelativoAreaEsgoto", "NAO");
}
} else {
sessao.setAttribute("solicitacaoTipoRelativoFaltaAgua", "SIM");
sessao.setAttribute("solicitacaoTipoRelativoAreaEsgoto", "SIM");
}
// [SB0036] � Habilita/Desabilita Conta
short indicadorInformarPagamentoDuplicidade = ConstantesSistema.NAO;
if (inserirRegistroAtendimentoActionForm.getTipoSolicitacao() != null
&& !inserirRegistroAtendimentoActionForm.getTipoSolicitacao().equals("")
&& !inserirRegistroAtendimentoActionForm.getEspecificacao().equalsIgnoreCase(
String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao();
filtroSolicitacaoTipoEspecificacao.adicionarParametro(
new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.ID,
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao())));
// filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(
// FiltroSolicitacaoTipoEspecificacao.INDICADOR_INFORMAR_CONTA_RA,
// ConstantesSistema.SIM));
Collection colecao = fachada.pesquisar(
filtroSolicitacaoTipoEspecificacao,
SolicitacaoTipoEspecificacao.class.getName());
if (colecao != null && !colecao.isEmpty()) {
SolicitacaoTipoEspecificacao especificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecao);
indicadorInformarPagamentoDuplicidade = especificacao.getIndicadorInformarPagamentoDuplicidade();
short indicadorInformarRaConta = especificacao.getIndicadorInformarContaRA();
if(indicadorInformarPagamentoDuplicidade == ConstantesSistema.NAO.shortValue() &&
indicadorInformarRaConta == ConstantesSistema.SIM.shortValue()){
sessao.setAttribute("conta", "habilita");
}else{
sessao.removeAttribute("conta");
}
} else {
sessao.removeAttribute("conta");
}
}
/*
* Dados da identifica��o do local de ocorr�ncia
*
* [FS0019] - Verificar endere�o do im�vel
*
*/
if ((pesquisarImovel != null && !pesquisarImovel.equalsIgnoreCase("")) || sessao.getAttribute("temImovelGIS") != null ) {
sessao.removeAttribute("colecaoConta");
sessao.removeAttribute("colecaoPagamentosDuplicidade");
/*
* [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
*
* [SB0021] - Verifica Exist�ncia de Registro de Atendimento Pendente para o Im�vel
*
* [SB0032 - Verifica se o im�vel informado tem d�bito]
*
*/
ObterDadosIdentificacaoLocalOcorrenciaHelper dadosIdentificacaoLocalOcorrencia =
fachada.obterDadosIdentificacaoLocalOcorrencia(
new Integer(inserirRegistroAtendimentoActionForm.getIdImovel()),
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()), false);
if (dadosIdentificacaoLocalOcorrencia.getImovel() != null) {
boolean msgAlert = false;
// [SB0021] - Verifica Exist�ncia de Registro de Atendimento
// Pendente para o Im�vel
boolean raPendente = fachada.verificaExistenciaRAPendenteImovel(
dadosIdentificacaoLocalOcorrencia.getImovel().getId());
if (raPendente) {
httpServletRequest.setAttribute(
"msgAlert",
"Aten��o! "
+ "Existe Registro de Atendimento pendente para o im�vel "
+ dadosIdentificacaoLocalOcorrencia
.getImovel().getId()
.toString());
msgAlert = true;
}
//[SB0020] - Verifica Situa��o do Im�vel e Especifica��o
fachada.verificarSituacaoImovelEspecificacao(dadosIdentificacaoLocalOcorrencia.getImovel(),
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()));
//[SB0032] - Verifica se o im�vel informado tem d�bito
fachada.verificarImovelComDebitos(new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
dadosIdentificacaoLocalOcorrencia.getImovel().getId());
inserirRegistroAtendimentoActionForm.setIdImovel(
dadosIdentificacaoLocalOcorrencia.getImovel().getId().toString());
inserirRegistroAtendimentoActionForm.setInscricaoImovel(
dadosIdentificacaoLocalOcorrencia.getImovel().getInscricaoFormatada());
/**
* Coordenada X deve ser informada como coordenada Leste, assim como a coordenada Y deve ser
* informada como coordenada norte. Solicita��o feita por Giovani.
*
* @author Arthur Carvalho
* @date 12/08/2010
*/
if(!(dadosIdentificacaoLocalOcorrencia.getImovel().getCoordenadaX()==null) && inserirRegistroAtendimentoActionForm.getNnCoordenadaLeste() == null)
inserirRegistroAtendimentoActionForm.setNnCoordenadaLeste(
dadosIdentificacaoLocalOcorrencia.getImovel().getCoordenadaX().toString());
if(!(dadosIdentificacaoLocalOcorrencia.getImovel().getCoordenadaY()==null) && inserirRegistroAtendimentoActionForm.getNnCoordenadaNorte() == null)
inserirRegistroAtendimentoActionForm.setNnCoordenadaNorte(
dadosIdentificacaoLocalOcorrencia.getImovel().getCoordenadaY().toString());
if (!dadosIdentificacaoLocalOcorrencia.isInformarEndereco()) {
Collection colecaoEnderecos = new ArrayList();
colecaoEnderecos.add(dadosIdentificacaoLocalOcorrencia.getImovel());
sessao.setAttribute("colecaoEnderecos", colecaoEnderecos);
sessao.setAttribute("enderecoPertenceImovel", "OK");
} else if (dadosIdentificacaoLocalOcorrencia.getEnderecoDescritivo() != null) {
inserirRegistroAtendimentoActionForm.setDescricaoLocalOcorrencia(
dadosIdentificacaoLocalOcorrencia.getEnderecoDescritivo());
if (msgAlert) {
httpServletRequest
.setAttribute(
"msgAlert2",
"O Registro de Atendimento ficar� bloqueado at� "
+ " que seja informado o logradouro para o im�vel");
} else {
httpServletRequest
.setAttribute(
"msgAlert",
"O Registro de Atendimento ficar� bloqueado at� "
+ " que seja informado o logradouro para o im�vel");
}
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("enderecoPertenceImovel");
} else {
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("enderecoPertenceImovel");
}
if (dadosIdentificacaoLocalOcorrencia.isHabilitarAlteracaoEndereco()) {
sessao.setAttribute("habilitarAlteracaoEndereco", "SIM");
} else {
sessao.setAttribute("habilitarAlteracaoEndereco", "NAO");
}
if(dadosIdentificacaoLocalOcorrencia.isHabilitarAlteracaoEndereco()
&& dadosIdentificacaoLocalOcorrencia.isInformarEndereco()){
sessao.setAttribute("habilitarAlteracaoEndereco", "SIM");
}
this.carregarMunicipioBairroParaImovel(
habilitaGeograficoDivisaoEsgoto, dadosIdentificacaoLocalOcorrencia,
inserirRegistroAtendimentoActionForm, sessao, fachada);
Municipio municipio = dadosIdentificacaoLocalOcorrencia.getImovel().getLocalidade().getMunicipio();
if(municipio != null){
inserirRegistroAtendimentoActionForm.setDescricaoMunicipioOcorrencia(municipio.getNome());
httpServletRequest.setAttribute("desabilitaMunicipioLocalidade", "OK");
}
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()));
// [SB0006] - Obt�m Divis�o de Esgoto
DivisaoEsgoto divisaoEsgoto = fachada.obterDivisaoEsgoto(
dadosIdentificacaoLocalOcorrencia.getImovel().getQuadra().getId(),
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
UnidadeOrganizacional unidadeDestino = null;
/*
* [SB0037] � Define Unidade Destino por Situa��o de Cobran�a.
* [FS0018 � Verificar exist�ncia de unidade centralizadora].
*
* Adicionado por: Mariana Victor
* Data: 04/04/2011
*
* ## In�cio da altera��o ##
* */
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
if (inserirRegistroAtendimentoActionForm.getEspecificacao() != null
&& !inserirRegistroAtendimentoActionForm.getEspecificacao()
.equalsIgnoreCase(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))
&& inserirRegistroAtendimentoActionForm.getIdImovel() != null
&& !inserirRegistroAtendimentoActionForm.getIdImovel().equals("")
&& sistemaParametro.getIndicadorSugestaoTramite() != null
&& sistemaParametro.getIndicadorSugestaoTramite().equals(ConstantesSistema.SIM)) {
unidadeDestino = fachada.definirUnidadeDestinoSituacaoCobranca(
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getIdImovel()));
}
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
} else {
// ## Fim da altera��o ##
if (divisaoEsgoto != null) {
inserirRegistroAtendimentoActionForm.setIdDivisaoEsgoto(divisaoEsgoto.getId().toString());
sessao.setAttribute("desabilitarDivisaoEsgoto", "OK");
unidadeDestino = fachada.definirUnidadeDestinoDivisaoEsgoto(
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getIdDivisaoEsgoto()),
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto(),
new Integer(inserirRegistroAtendimentoActionForm.getIdLocalidade()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()));
}
else{
sessao.removeAttribute("desabilitarDivisaoEsgoto");
}
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
}
else{
//[SB0005] - Define Unidade Destino da Localidade
unidadeDestino = fachada.definirUnidadeDestinoLocalidade(
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getIdLocalidade()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()),
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
}
}
}
if (dadosIdentificacaoLocalOcorrencia.getImovel().getPavimentoRua() != null) {
inserirRegistroAtendimentoActionForm.setIdPavimentoRua(
dadosIdentificacaoLocalOcorrencia.getImovel().getPavimentoRua().getId().toString());
sessao.setAttribute("desabilitarPavimentoRua", "OK");
} else {
sessao.removeAttribute("desabilitarPavimentoRua");
}
if (dadosIdentificacaoLocalOcorrencia.getImovel().getPavimentoCalcada() != null) {
inserirRegistroAtendimentoActionForm.setIdPavimentoCalcada(
dadosIdentificacaoLocalOcorrencia.getImovel().getPavimentoCalcada().getId().toString());
sessao.setAttribute("desabilitarPavimentoCalcada", "OK");
} else {
sessao.removeAttribute("desabilitarPavimentoCalcada");
}
sessao.setAttribute("desabilitarLcalidadeSetorQuadra", "OK");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
} else {
inserirRegistroAtendimentoActionForm.setIdImovel("");
inserirRegistroAtendimentoActionForm.setInscricaoImovel("Im�vel Inexistente");
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("enderecoPertenceImovel");
sessao.removeAttribute("desabilitarDivisaoEsgoto");
sessao.removeAttribute("desabilitarPavimentoRua");
sessao.removeAttribute("desabilitarPavimentoCalcada");
sessao.removeAttribute("desabilitarLcalidadeSetorQuadra");
httpServletRequest.setAttribute("corImovel", "exception");
httpServletRequest.setAttribute("nomeCampo", "idImovel");
}
sessao.removeAttribute("temImovelGIS");
}
String pesquisarMunicipio = httpServletRequest.getParameter("pesquisarMunicipio");
if (pesquisarMunicipio != null && !pesquisarMunicipio.equalsIgnoreCase("")) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(FiltroMunicipio.ID,
inserirRegistroAtendimentoActionForm.getIdMunicipio()));
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoMunicipio = fachada.pesquisar(filtroMunicipio, Municipio.class.getName());
if (colecaoMunicipio == null || colecaoMunicipio.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdMunicipio("");
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio("Munic�pio Inexistente");
httpServletRequest.setAttribute("corMunicipio", "exception");
httpServletRequest.setAttribute("nomeCampo", "idMunicipio");
} else {
Municipio municipio = (Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio);
inserirRegistroAtendimentoActionForm.setIdMunicipio(municipio.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio(municipio.getNome());
httpServletRequest.setAttribute("nomeCampo", "cdBairro");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarBairro = httpServletRequest.getParameter("pesquisarBairro");
if (pesquisarBairro != null && !pesquisarBairro.equalsIgnoreCase("")) {
FiltroBairro filtroBairro = new FiltroBairro();
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.CODIGO, inserirRegistroAtendimentoActionForm.getCdBairro()));
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.MUNICIPIO_ID, inserirRegistroAtendimentoActionForm.getIdMunicipio()));
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoBairro = fachada.pesquisar(filtroBairro, Bairro.class.getName());
if (colecaoBairro == null || colecaoBairro.isEmpty()) {
inserirRegistroAtendimentoActionForm.setCdBairro("");
inserirRegistroAtendimentoActionForm.setDescricaoBairro("Bairro Inexistente");
httpServletRequest.setAttribute("corBairro", "exception");
httpServletRequest.setAttribute("nomeCampo", "cdBairro");
} else {
Bairro bairro = (Bairro) Util.retonarObjetoDeColecao(colecaoBairro);
inserirRegistroAtendimentoActionForm.setCdBairro(String.valueOf(bairro.getCodigo()));
inserirRegistroAtendimentoActionForm.setDescricaoBairro(bairro.getNome());
this.pesquisarBairroArea(bairro.getId(), fachada, sessao);
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarBairroArea = httpServletRequest.getParameter("pesquisarBairroArea");
if (pesquisarBairroArea != null && !pesquisarBairroArea.equalsIgnoreCase("")) {
this.pesquisarBairroArea(new Integer(inserirRegistroAtendimentoActionForm
.getIdBairro()), fachada, sessao);
httpServletRequest.setAttribute("nomeCampo", "idBairroArea");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
String pesquisarLocalidade = httpServletRequest.getParameter("pesquisarLocalidade");
if (pesquisarLocalidade != null && !pesquisarLocalidade.equalsIgnoreCase("")) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, inserirRegistroAtendimentoActionForm.getIdLocalidade()));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("municipio");
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidade == null || colecaoLocalidade.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdLocalidade("");
inserirRegistroAtendimentoActionForm.setDescricaoLocalidade("Localidade Inexistente");
httpServletRequest.setAttribute("corLocalidade", "exception");
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");
} else {
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
inserirRegistroAtendimentoActionForm.setIdLocalidade(localidade.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoLocalidade(localidade.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "cdSetorComercial");
// [SB0005] - Define Unidade Destino da Localidade
UnidadeOrganizacional unidadeDestino = fachada.definirUnidadeDestinoLocalidade(
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getIdLocalidade()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()),
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
}
Municipio municipio = localidade.getMunicipio();
if(municipio != null){
inserirRegistroAtendimentoActionForm.setDescricaoMunicipioOcorrencia(municipio.getNome());
httpServletRequest.setAttribute("desabilitaMunicipioLocalidade", "OK");
}
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarSetorComercial = httpServletRequest.getParameter("pesquisarSetorComercial");
if (pesquisarSetorComercial != null && !pesquisarSetorComercial.equalsIgnoreCase("")) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE,inserirRegistroAtendimentoActionForm.getIdLocalidade()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
inserirRegistroAtendimentoActionForm.getCdSetorComercial()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoSetorComercial = fachada.pesquisar(
filtroSetorComercial, SetorComercial.class.getName());
if (colecaoSetorComercial == null || colecaoSetorComercial.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdSetorComercial("");
inserirRegistroAtendimentoActionForm.setCdSetorComercial("");
inserirRegistroAtendimentoActionForm.setDescricaoSetorComercial("Setor Comercial Inexistente");
httpServletRequest.setAttribute("corSetorComercial", "exception");
httpServletRequest.setAttribute("nomeCampo", "cdSetorComercial");
} else {
SetorComercial setorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoSetorComercial);
inserirRegistroAtendimentoActionForm.setIdSetorComercial(setorComercial.getId().toString());
inserirRegistroAtendimentoActionForm.setCdSetorComercial(String.valueOf(setorComercial.getCodigo()));
inserirRegistroAtendimentoActionForm.setDescricaoSetorComercial(setorComercial.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "nnQuadra");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarQuadra = httpServletRequest.getParameter("pesquisarQuadra");
if (pesquisarQuadra != null && !pesquisarQuadra.equalsIgnoreCase("")) {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, inserirRegistroAtendimentoActionForm.getIdSetorComercial()));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, inserirRegistroAtendimentoActionForm.getNnQuadra()));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
if (colecaoQuadra == null || colecaoQuadra.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdQuadra("");
inserirRegistroAtendimentoActionForm.setNnQuadra("");
httpServletRequest.setAttribute("msgQuadra", "QUADRA INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "nnQuadra");
} else {
Quadra quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra);
inserirRegistroAtendimentoActionForm.setIdQuadra(quadra.getId().toString());
inserirRegistroAtendimentoActionForm.setNnQuadra(String.valueOf(quadra.getNumeroQuadra()));
// [SB0006] - Obt�m Divis�o de Esgoto
DivisaoEsgoto divisaoEsgoto = fachada.obterDivisaoEsgoto(quadra.getId(),
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
if (divisaoEsgoto != null) {
inserirRegistroAtendimentoActionForm.setIdDivisaoEsgoto(divisaoEsgoto.getId().toString());
/*
* [FS0013] - Verificar compatibilidade entre divis�o de
* esgoto e localidade/setor/quadra [SB0007] - Define
* Unidade Destino da Divis�o de Esgoto
*/
this.verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto(
fachada, inserirRegistroAtendimentoActionForm,
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
httpServletRequest.setAttribute("nomeCampo", "idUnidadeDestino");
} else {
httpServletRequest.setAttribute("nomeCampo", "idDivisaoEsgoto");
}
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarUnidadeDestino = httpServletRequest.getParameter("pesquisarUnidadeDestino");
if (pesquisarUnidadeDestino != null && !pesquisarUnidadeDestino.equalsIgnoreCase("")) {
FiltroUnidadeOrganizacional filtroUnidadeDestino = new FiltroUnidadeOrganizacional();
filtroUnidadeDestino.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID, inserirRegistroAtendimentoActionForm.getIdUnidadeDestino()));
Collection colecaoUnidadeDestino = fachada.pesquisar(
filtroUnidadeDestino, UnidadeOrganizacional.class.getName());
if (colecaoUnidadeDestino == null || colecaoUnidadeDestino.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino("");
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino("Unidade Destino Inexistente");
httpServletRequest.setAttribute("corUnidadeDestino", "exception");
httpServletRequest.setAttribute("nomeCampo", "idUnidadeDestino");
} else {
UnidadeOrganizacional unidadeDestino = (UnidadeOrganizacional) Util
.retonarObjetoDeColecao(colecaoUnidadeDestino);
// [FS0021] - Verificar possibilidade de encaminhamento para a
// unidade destino
fachada.verificaPossibilidadeEncaminhamentoUnidadeDestino(unidadeDestino);
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "parecerUnidadeDestino");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
String pesquisarConta = httpServletRequest.getParameter("pesquisarConta");
if (pesquisarConta != null && !pesquisarConta.equalsIgnoreCase("")) {
Conta conta = this.pesquisarConta(
inserirRegistroAtendimentoActionForm,
sessao,
usuarioLogado);
if (conta != null) {
inserirRegistroAtendimentoActionForm.setIdConta(conta.getFormatarAnoMesParaMesAno() + "");
inserirRegistroAtendimentoActionForm.setDescConta(conta.getFormatarAnoMesParaMesAno());
httpServletRequest.setAttribute("contaEncontrada", "");
}
}
/*
* ==================
* Adicionar Conta
* ==================
*/
String adicionarConta = httpServletRequest.getParameter("adicionarConta");
if (adicionarConta != null && !adicionarConta.equalsIgnoreCase("")
&& inserirRegistroAtendimentoActionForm.getIdConta() != null
&& !inserirRegistroAtendimentoActionForm.getIdConta().equals("")) {
Conta conta = this.pesquisarConta(
inserirRegistroAtendimentoActionForm,
sessao,
usuarioLogado);
if (conta != null) {
inserirRegistroAtendimentoActionForm.setIdConta("");
inserirRegistroAtendimentoActionForm.setDescConta("");
sessao.setAttribute("colecaoConta", "");
if (!this.adicionado(colecaoConta, conta)) {
colecaoConta.add(conta);
sessao.setAttribute("colecaoConta", colecaoConta);
}
}
}
/*
* ===========================================================================================================
* Remover Conta
* ===========================================================================================================
*/
String removerConta = httpServletRequest.getParameter("removerConta");
if (removerConta != null && !removerConta.equalsIgnoreCase("")) {
Integer indice = new Integer(httpServletRequest.getParameter("removerConta"));
if (colecaoConta != null
&& !colecaoConta.isEmpty()
&& colecaoConta.size() >= indice) {
colecaoConta.remove(indice-1);
sessao.setAttribute("colecaoConta", colecaoConta);
}
}
/*
* [FS0013] - Verificar compatibilidade entre divis�o de esgoto e
* localidade/setor/quadra [SB0007] - Define Unidade Destino da Divis�o
* de Esgoto
*/
String verificarCompatibilidade = httpServletRequest.getParameter("verificarCompatibilidade");
if (verificarCompatibilidade != null && !verificarCompatibilidade.equalsIgnoreCase("")) {
this.verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto(
fachada, inserirRegistroAtendimentoActionForm,
habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoAreaEsgoto());
httpServletRequest.setAttribute("nomeCampo", "idUnidadeDestino");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
/*
* Removendo ColecaoBairroArea
*/
String removerColecaoBairroArea = httpServletRequest.getParameter("removerColecaoBairroArea");
if (removerColecaoBairroArea != null && !removerColecaoBairroArea.equalsIgnoreCase("")) {
sessao.removeAttribute("colecaoBairroArea");
httpServletRequest.setAttribute("nomeCampo", httpServletRequest.getParameter("campoFoco"));
}
/*
* Removendo endere�o
*/
String removerEndereco = httpServletRequest.getParameter("removerEndereco");
if (removerEndereco != null && !removerEndereco.trim().equalsIgnoreCase("")) {
if (sessao.getAttribute("colecaoEnderecos") != null) {
Collection enderecos = (Collection) sessao.getAttribute("colecaoEnderecos");
if (!enderecos.isEmpty()) {
// enderecos.remove(enderecos.iterator().next());
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("habilitarAlteracaoEndereco");
// Limpa os dados associados ao endere�o caso n�o tenha informado o im�vel
if (inserirRegistroAtendimentoActionForm.getIdImovel() == null
|| inserirRegistroAtendimentoActionForm.getIdImovel().trim().equals("")) {
inserirRegistroAtendimentoActionForm.setIdMunicipio("");
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio("");
inserirRegistroAtendimentoActionForm.setIdBairro("");
inserirRegistroAtendimentoActionForm.setCdBairro("");
inserirRegistroAtendimentoActionForm.setDescricaoBairro("");
inserirRegistroAtendimentoActionForm.setPontoReferencia("");
}
}
}
}
/*
* Adicionar endere�o
*/
String adicionarEndereco = httpServletRequest.getParameter("tipoPesquisaEndereco");
if ((adicionarEndereco != null && !adicionarEndereco.trim().equalsIgnoreCase(""))) {
retorno = actionMapping.findForward("informarEndereco");
httpServletRequest.setAttribute("mostrarPerimetro", "sim");
sessao.setAttribute("habilitarAlteracaoEndereco", "SIM");
}
// Caso tenha adicionado o endere�o seta os valores dos campos de municipio e bairro
if (sessao.getAttribute("colecaoEnderecos") != null
&& (inserirRegistroAtendimentoActionForm.getIdImovel() == null
|| inserirRegistroAtendimentoActionForm.getIdImovel().trim().equals(""))) {
Collection colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecos");
if (!colecaoEnderecos.isEmpty()) {
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoEnderecos);
inserirRegistroAtendimentoActionForm.setIdMunicipio(
imovel.getLogradouroBairro().getBairro().getMunicipio().getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio(
imovel.getLogradouroBairro().getBairro().getMunicipio().getNome());
inserirRegistroAtendimentoActionForm.setIdBairro(
imovel.getLogradouroBairro().getBairro().getId().toString());
inserirRegistroAtendimentoActionForm.setCdBairro(
"" + imovel.getLogradouroBairro().getBairro().getCodigo());
inserirRegistroAtendimentoActionForm.setDescricaoBairro(
imovel.getLogradouroBairro().getBairro().getNome());
this.pesquisarBairroArea(imovel.getLogradouroBairro().getBairro().getId(), fachada, sessao);
httpServletRequest.setAttribute("desabilitarMunicipioBairro", "OK");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
}
/*
* Limpar Im�vel
*/
String limparImovel = httpServletRequest.getParameter("limparImovel");
if (limparImovel != null && !limparImovel.trim().equalsIgnoreCase("")) {
this.limparImovel(inserirRegistroAtendimentoActionForm, sessao);
httpServletRequest.setAttribute("nomeCampo", "idImovel");
}
//Limpar Localidade
String limparLocalidade = httpServletRequest.getParameter("limparLocalidade");
if (limparLocalidade != null && !limparLocalidade.trim().equalsIgnoreCase("")) {
this.limparLocalidade(inserirRegistroAtendimentoActionForm, httpServletRequest);
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");
}
String removerPagamento = httpServletRequest.getParameter("removerPagamento");
if (removerPagamento != null && !removerPagamento.equals("")) {
Integer idPagamento = new Integer(httpServletRequest.getParameter("removerPagamento"));
Collection colecaoPagamento =
(Collection) sessao.getAttribute("colecaoPagamentosDuplicidade");
Iterator itera = colecaoPagamento.iterator();
while (itera.hasNext()) {
Pagamento paga = (Pagamento) itera.next();
if(paga.getId().intValue() == idPagamento.intValue()){
itera.remove();
break;
}
}
}
//Caso o indicadorInformarPagamentoDuplicidade = 1, exibe todos os pagamentos em duplicidade.
if(indicadorInformarPagamentoDuplicidade == ConstantesSistema.SIM.shortValue()){
if(inserirRegistroAtendimentoActionForm.getIdImovel() != null && !inserirRegistroAtendimentoActionForm.getIdImovel().equals("")){
Collection colecaoPagamento =
this.pesquisaPagamentosEmDuplicidade(
new Integer(inserirRegistroAtendimentoActionForm.getIdImovel()));
if(colecaoPagamento != null &&
!colecaoPagamento.isEmpty()){
if(sessao.getAttribute("colecaoPagamentosDuplicidade") == null){
sessao.setAttribute("colecaoPagamentosDuplicidade",colecaoPagamento);
}
}else{
throw new ActionServletException("nao_exite_pagamento_duplicidade");
}
}
}
String localOcorrencia = inserirRegistroAtendimentoActionForm.getIdLocalOcorrencia();
if (localOcorrencia != null && !localOcorrencia.trim().equals("")) {
httpServletRequest.setAttribute("localOcorrencia", localOcorrencia);
} else {
httpServletRequest.setAttribute("localOcorrencia", ""+ConstantesSistema.NUMERO_NAO_INFORMADO);
}
// Verifica se o Endereco foi informado
if (sessao.getAttribute("colecaoEnderecos") != null)
httpServletRequest.setAttribute("enderecoPreenchido", "OK");
//adicionado por Vivianne Sousa - 29/12/2009 - analista:Rosana Carvalho
//[FS0046] � Verificar Tramite de Grandes Consumidores.
if (inserirRegistroAtendimentoActionForm.getIdImovel() != null
&& !inserirRegistroAtendimentoActionForm.getIdImovel().equalsIgnoreCase("")){
// && (pesquisarImovel == null || pesquisarImovel.equalsIgnoreCase(""))){
UnidadeOrganizacional unidadeDestino = fachada.verificarTramiteGrandesConsumidores(
new Integer(inserirRegistroAtendimentoActionForm.getIdImovel()));
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
sessao.setAttribute("desabilitarUnidadeDestino", "1");
}else{
sessao.removeAttribute("desabilitarUnidadeDestino");
}
}else{
sessao.removeAttribute("desabilitarUnidadeDestino");
}
if( httpServletRequest.getAttribute("origemAcquaGIS").equals(true)
|| httpServletRequest.getAttribute("origem") != null){
sessao.setAttribute("habilitarAlteracaoEndereco", "SIM");
}
return retorno;
}
/**
* Caso a especificacao tenha o indicador de pagamento em duplicidade,
* eh feita a pesquisa dos pagamentos em duplicidade
*
* @author Rafael Pinto
* @date 15/03/2011
*
* @param Integer idImovel
* @return Collection colecao de pagamentos em duplicidade
*/
private Collection pesquisaPagamentosEmDuplicidade(Integer idImovel){
FiltroPagamento filtro = new FiltroPagamento(FiltroPagamento.ANO_MES_REFERENCIA_PAGAMENTO);
filtro.adicionarParametro(
new ParametroSimples(FiltroPagamento.IMOVEL,
idImovel));
filtro.adicionarParametro(
new ParametroSimples(FiltroPagamento.PAGAMENTO_SITUACAO_ATUAL_ID,
PagamentoSituacao.PAGAMENTO_EM_DUPLICIDADE));
filtro.adicionarParametro(
new ParametroNaoNulo(FiltroPagamento.ANO_MES_REFERENCIA_PAGAMENTO));
filtro.adicionarParametro(new ParametroNulo(FiltroPagamento.GUIA_PAGAMENTO));
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroPagamento.IMOVEL);
Collection colecaoPagamento =
(Collection) this.getFachada().pesquisar(filtro,Pagamento.class.getName());
return colecaoPagamento;
}
/*
* M�todos auxiliares
* =============================================================================================================
*/
public void verificarCompatibilidadeDefinirUnidadeDestinoDivisaoEsgoto(
Fachada fachada,
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
boolean solicitacaoTipoRelativoAreaEsgoto) {
fachada.verificarCompatibilidadeDivisaoEsgotoLocalidadeSetorQuadra(
Util.converterStringParaInteger(inserirRegistroAtendimentoActionForm.getIdLocalidade()),
Util.converterStringParaInteger(inserirRegistroAtendimentoActionForm.getIdSetorComercial()),
Util.converterStringParaInteger(inserirRegistroAtendimentoActionForm.getIdQuadra()),
Util.converterStringParaInteger(inserirRegistroAtendimentoActionForm.getIdDivisaoEsgoto()));
UnidadeOrganizacional unidadeDestino = fachada.definirUnidadeDestinoDivisaoEsgoto(
new Integer(inserirRegistroAtendimentoActionForm.getEspecificacao()),
new Integer(inserirRegistroAtendimentoActionForm.getIdDivisaoEsgoto()),
solicitacaoTipoRelativoAreaEsgoto,
new Integer(inserirRegistroAtendimentoActionForm.getIdLocalidade()),
new Integer(inserirRegistroAtendimentoActionForm.getTipoSolicitacao()));
if (unidadeDestino != null) {
inserirRegistroAtendimentoActionForm.setIdUnidadeDestino(unidadeDestino.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
}
}
public void pesquisarBairroArea(Integer idBairro, Fachada fachada, HttpSession sessao) {
FiltroBairroArea filtroBairroArea = new FiltroBairroArea();
filtroBairroArea.adicionarParametro(new ParametroSimples(FiltroBairroArea.ID_BAIRRO, idBairro));
Collection colecaoBairroArea = fachada.pesquisar(filtroBairroArea,BairroArea.class.getName());
if (colecaoBairroArea == null || colecaoBairroArea.isEmpty()) {
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, "BAIRRO_AREA");
} else {
sessao.setAttribute("colecaoBairroArea", colecaoBairroArea);
}
}
public void carregarMunicipioBairroParaImovel(
ObterDadosIdentificacaoLocalOcorrenciaHelper habilitaGeograficoDivisaoEsgoto,
ObterDadosIdentificacaoLocalOcorrenciaHelper obterDadosIdentificacaoLocalOcorrenciaHelper,
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
HttpSession sessao, Fachada fachada) {
if (habilitaGeograficoDivisaoEsgoto != null
&& habilitaGeograficoDivisaoEsgoto.isSolicitacaoTipoRelativoFaltaAgua()
&& obterDadosIdentificacaoLocalOcorrenciaHelper.getEnderecoDescritivo() == null) {
inserirRegistroAtendimentoActionForm.setIdMunicipio(
obterDadosIdentificacaoLocalOcorrenciaHelper.getImovel().
getLogradouroBairro().getBairro().getMunicipio().getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio(
obterDadosIdentificacaoLocalOcorrenciaHelper.getImovel().
getLogradouroBairro().getBairro().getMunicipio().getNome());
inserirRegistroAtendimentoActionForm.setIdBairro(
obterDadosIdentificacaoLocalOcorrenciaHelper.getImovel().
getLogradouroBairro().getBairro().getId().toString());
inserirRegistroAtendimentoActionForm.setCdBairro(
String.valueOf(obterDadosIdentificacaoLocalOcorrenciaHelper
.getImovel().getLogradouroBairro().getBairro().getCodigo()));
inserirRegistroAtendimentoActionForm.setDescricaoBairro(
obterDadosIdentificacaoLocalOcorrenciaHelper
.getImovel().getLogradouroBairro().getBairro().getNome());
this.pesquisarBairroArea(obterDadosIdentificacaoLocalOcorrenciaHelper
.getImovel().getLogradouroBairro().getBairro().getId(), fachada, sessao);
sessao.setAttribute("desabilitarMunicipioBairro", "OK");
} else {
inserirRegistroAtendimentoActionForm.setIdMunicipio("");
inserirRegistroAtendimentoActionForm.setDescricaoMunicipio("");
inserirRegistroAtendimentoActionForm.setIdBairro("");
inserirRegistroAtendimentoActionForm.setCdBairro("");
inserirRegistroAtendimentoActionForm.setDescricaoBairro("");
sessao.removeAttribute("colecaoBairroArea");
sessao.removeAttribute("desabilitarMunicipioBairro");
}
}
private void limparLocalidade(InserirRegistroAtendimentoActionForm form, HttpServletRequest httpServletRequest){
form.setIdLocalidade("");
form.setDescricaoLocalidade("");
form.setCdSetorComercial("");
form.setIdSetorComercial("");
form.setDescricaoSetorComercial("");
form.setIdQuadra("");
form.setNnQuadra("");
form.setDescricaoMunicipioOcorrencia("");
form.setNnQuadra("");
}
private void limparImovel(InserirRegistroAtendimentoActionForm form, HttpSession sessao){
form.setIdImovel("");
form.setInscricaoImovel("");
form.setDescricaoLocalOcorrencia("");
form.setIdMunicipio("");
form.setDescricaoMunicipio("");
form.setIdBairro("");
form.setCdBairro("");
form.setDescricaoBairro("");
form.setIdLocalidade("");
form.setDescricaoLocalidade("");
form.setIdSetorComercial("");
form.setCdSetorComercial("");
form.setDescricaoSetorComercial("");
form.setIdQuadra("");
form.setNnQuadra("");
form.setIdUnidadeDestino("");
form.setDescricaoUnidadeDestino("");
form.setPontoReferencia("");
form.setIdPavimentoRua(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO));
form.setIdPavimentoCalcada(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO));
form.setIdDivisaoEsgoto(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO));
form.setIndicCoordenadaSemLogradouro(String.valueOf(ConstantesSistema.NAO));
form.setDescricaoMunicipioOcorrencia("");
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("enderecoPertenceImovel");
sessao.removeAttribute("habilitarAlteracaoEndereco");
sessao.removeAttribute("colecaoBairroArea");
sessao.removeAttribute("desabilitarMunicipioBairro");
sessao.removeAttribute("desabilitarDivisaoEsgoto");
sessao.removeAttribute("desabilitarPavimentoRua");
sessao.removeAttribute("desabilitarPavimentoCalcada");
sessao.removeAttribute("desabilitarLcalidadeSetorQuadra");
sessao.removeAttribute("indicCoordenadaSemLogradouro");
sessao.removeAttribute("colecaoPagamentosDuplicidade");
sessao.removeAttribute("colecaoConta");
}
//=================================================================================================================
public void carregarDadosGis(
GisHelper gisHelper,
InserirRegistroAtendimentoActionForm inserirRegistroAtendimentoActionForm,
HttpSession sessao, Fachada fachada, HttpServletRequest httpServletRequest) {
Imovel imovel = gisHelper.getImovel();
String nnCoordenadaNorte = gisHelper.getNnCoordenadaNorte();
String nnCoordenadaLeste = gisHelper.getNnCoordenadaLeste();
String localidade = gisHelper.getLocalidade();
String setorComercial = gisHelper.getSetorComercial();
Collection enderecos = null;
Boolean obj = (Boolean)sessao.getAttribute("origemGIS");
boolean origemGIS = false;
if(obj != null)
origemGIS = obj.booleanValue();
if(origemGIS){
if(imovel.getId() != null){
inserirRegistroAtendimentoActionForm.setIdImovel(imovel.getId().toString());
sessao.setAttribute("temImovelGIS","SIM");
}else{
inserirRegistroAtendimentoActionForm.setIdLocalidade(localidade);
inserirRegistroAtendimentoActionForm.setCdSetorComercial(setorComercial);
if (sessao.getAttribute("colecaoEnderecos") == null){
enderecos = new ArrayList();
if (imovel != null) {
enderecos.add(imovel);
}
sessao.setAttribute("colecaoEnderecos", enderecos);
}
/*************************** Pesquisar Localidade **********************************/
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, inserirRegistroAtendimentoActionForm.getIdLocalidade()));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("municipio");
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidade == null || colecaoLocalidade.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdLocalidade("");
//inserirRegistroAtendimentoActionForm.setDescricaoLocalidade("Localidade Inexistente");
/*httpServletRequest.setAttribute("corLocalidade", "exception");
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");*/
} else {
Localidade lc = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
inserirRegistroAtendimentoActionForm.setIdLocalidade(lc.getId().toString());
inserirRegistroAtendimentoActionForm.setDescricaoLocalidade(lc.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "cdSetorComercial");
Municipio municipio = lc.getMunicipio();
if(municipio != null){
inserirRegistroAtendimentoActionForm.setDescricaoMunicipioOcorrencia(municipio.getNome());
httpServletRequest.setAttribute("desabilitaMunicipioLocalidade", "OK");
}
}
/**********************Pesquisar Setor Comercial***************************************/
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE,inserirRegistroAtendimentoActionForm.getIdLocalidade()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
inserirRegistroAtendimentoActionForm.getCdSetorComercial()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoSetorComercial = fachada.pesquisar(
filtroSetorComercial, SetorComercial.class.getName());
if (colecaoSetorComercial == null || colecaoSetorComercial.isEmpty()) {
inserirRegistroAtendimentoActionForm.setIdSetorComercial("");
inserirRegistroAtendimentoActionForm.setCdSetorComercial("");
/*inserirRegistroAtendimentoActionForm.setDescricaoSetorComercial("Setor Comercial Inexistente");
httpServletRequest.setAttribute("corSetorComercial", "exception");
httpServletRequest.setAttribute("nomeCampo", "cdSetorComercial");*/
} else {
SetorComercial sc = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoSetorComercial);
inserirRegistroAtendimentoActionForm.setIdSetorComercial(sc.getId().toString());
inserirRegistroAtendimentoActionForm.setCdSetorComercial(String.valueOf(sc.getCodigo()));
inserirRegistroAtendimentoActionForm.setDescricaoSetorComercial(sc.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "nnQuadra");
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
}
httpServletRequest.setAttribute("desabilitarDescricaoLocalOcorrencia", "OK");
sessao.setAttribute("enderecoSemImovel","SIM");
}
}
else{
if (sessao.getAttribute("colecaoEnderecos") == null){
enderecos = new ArrayList();
if (imovel != null) {
enderecos.add(imovel);
}
sessao.setAttribute("colecaoEnderecos", enderecos);
}
}
inserirRegistroAtendimentoActionForm.setNnCoordenadaNorte(nnCoordenadaNorte);
inserirRegistroAtendimentoActionForm.setNnCoordenadaLeste(nnCoordenadaLeste);
sessao.removeAttribute("gisHelper");
}
private Conta pesquisarConta(InserirRegistroAtendimentoActionForm form,
HttpSession sessao,
Usuario usuarioLogado) {
Conta conta = null;
String anoMes = Util.formatarMesAnoParaAnoMesSemBarra(form.getIdConta());
FiltroConta filtroConta = new FiltroConta();
if (form.getIdContaPesquisada() != null &&
!form.getIdContaPesquisada().equals("")) {
filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.ID, form.getIdContaPesquisada()));
} else {
filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.REFERENCIA, anoMes));
}
filtroConta.adicionarParametro(
new ParametroSimples(FiltroConta.IMOVEL_ID, form.getIdImovel()));
filtroConta.adicionarCaminhoParaCarregamentoEntidade(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL);
Collection colecao =
this.getFachada().pesquisar(filtroConta, Conta.class.getName());
// [FS0048] � Verificar exist�ncia da conta.
if (colecao != null && !colecao.isEmpty()) {
conta = this.retornaConta(colecao);
// [FS0049] � Verificar se a conta pode ser associada.
if (conta != null) {
SistemaParametro sistemaParametro =
this.getFachada().pesquisarParametrosDoSistema();
// Verifica se o usu�rio possua permiss�o especial
boolean temPermissaoParaRetificarContaNorma =
this.getFachada().verificarPermissaoEspecial(
PermissaoEspecial.RETIFICAR_CONTA_NORMA_REVISAO_FATURAMENTO,
usuarioLogado);
// [FS0050] � Verificar prazo de vencimento das contas para associa��o
if (temPermissaoParaRetificarContaNorma ||
(Util.adcionarOuSubtrairMesesAData(conta.getDataVencimentoConta(),
sistemaParametro.getNumeroMesesRetificarConta(), 0).compareTo(new Date()) != -1)) {
form.setIdConta(conta.getReferencia() + "");
form.setDescConta(conta.getFormatarAnoMesParaMesAno());
sessao.setAttribute("contaEncontrada", "");
return conta;
} else {
form.setIdConta("");
form.setDescConta("Conta com prazo para associa��o excedido!");
sessao.removeAttribute("contaEncontrada");
}
} else {
form.setIdConta("");
form.setDescConta("Conta n�o pode ser associada ao Registro de Atendimento!");
sessao.removeAttribute("contaEncontrada");
}
} else {
form.setIdConta("");
form.setDescConta("Conta n�o Localizada");
sessao.removeAttribute("contaEncontrada");
}
return null;
}
private boolean adicionado(Collection<Conta> colecaoConta, Conta conta) {
Iterator iterator = colecaoConta.iterator();
while(iterator.hasNext()) {
Conta contaAdicionada = (Conta) iterator.next();
if (contaAdicionada.getId().equals(conta.getId())) {
return true;
}
}
return false;
}
private Conta retornaConta(Collection colecao) {
Iterator iterator = colecao.iterator();
while(iterator.hasNext()) {
Conta conta = (Conta) iterator.next();
if (conta.getDebitoCreditoSituacaoAtual() != null
&& (conta.getDebitoCreditoSituacaoAtual().getId().equals(ConstantesSistema.DEBITO_CREDITO_SITUACAO_NORMAL)
|| conta.getDebitoCreditoSituacaoAtual().getId().equals(ConstantesSistema.DEBITO_CREDITO_SITUACAO_RETIFICADA)
|| conta.getDebitoCreditoSituacaoAtual().getId().equals(ConstantesSistema.DEBITO_CREDITO_SITUACAO_INCLUIDA))) {
return conta;
}
}
return null;
}
}