package gcom.gui.cobranca.spcserasa;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.FiltroNegativadorExclusaoMotivo;
import gcom.cobranca.NegativacaoImoveis;
import gcom.cobranca.Negativador;
import gcom.cobranca.NegativadorExclusaoMotivo;
import gcom.cobranca.NegativadorMovimentoReg;
import gcom.cobranca.NegativadorMovimentoRegItem;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.spcserasa.FiltroNegativacaoImoveis;
import gcom.spcserasa.FiltroNegativador;
import gcom.spcserasa.FiltroNegativadorMovimentoRegItem;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
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;
/**
*
* @author Thiago Silva Toscano de Brito
* @date 22/12/2007
*/
public class ExibirExcluirNegativacaoOnLineAction extends
GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirExcluirNegativacaoOnLine");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
ExcluirNegativacaoOnLineActionForm form = (ExcluirNegativacaoOnLineActionForm) actionForm;
form.setDataHoje(Util.formatarData(new Date()));
form.setDataEnvio(Util.formatarData(new Date()));
FiltroNegativador fn = new FiltroNegativador();
fn.adicionarCaminhoParaCarregamentoEntidade("cliente");
String[] ordem = {"cliente.nome"};
fn.setCampoOrderBy(ordem);
Collection collection = Fachada.getInstancia().pesquisar(fn,Negativador.class.getName());
form.setCollNegativador(collection);
String idImovel = form.getIdImovel();
// Verifica se o id do imovel n�o est� cadastrado
if (form.getNegativador() != null && !form.getNegativador().trim().equals("")) {
FiltroNegativadorExclusaoMotivo fnem = new FiltroNegativadorExclusaoMotivo();
fnem.adicionarParametro(new ParametroSimples(FiltroNegativadorExclusaoMotivo.NEGATIVADOR_ID,form.getNegativador()));
fnem.setCampoOrderBy("codigoExclusaoMotivo");
Collection colecaoNegativadorExclusaoMotivo = fachada.pesquisar(fnem, NegativadorExclusaoMotivo.class.getName());
form.setCollMotivoExclusao(colecaoNegativadorExclusaoMotivo);
}
// Verifica se o id do imovel n�o est� cadastrado
if (idImovel != null && !idImovel.trim().equals("")) {
// Filtro para descobrir id do Imovel
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID,idImovel));
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.CEP);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.UNIDADE_FEDERACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.ENDERECO_REFERENCIA);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TIPO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_ESGOTO_SITUACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.QUADRA);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOCALIDADE);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.SETOR_COMERCIAL);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.COBRANCA_SITUACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TITULO);
Collection colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName());
if (colecaoImovel == null || colecaoImovel.isEmpty()) {
form.setIdImovel("");
form.setInscricaoImovel( "IMOVEL INEXISTENTE" );
httpServletRequest.setAttribute("existeImovel","exception");
httpServletRequest.setAttribute("nomeCampo","idImovel");
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
}else{
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImovel);
if (!form.getIdImovel().equals(form.getIdImovelAnterior()) ||
!form.getNegativador().equals(form.getNegativadorAnterior()) ) {
// form.getIdImovelAnterior() == null || form.getIdImovelAnterior().equals("") ||
form.setIdUsuario("");
form.setMotivoExclusao("");
form.setDataExclusao("");
form.setUsuarioNaoEncontrada("");
form.setNomeUsuario("");
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
form.setNegativadorAnterior(form.getNegativador());
form.setIdImovelAnterior(imovel.getId().toString());
form.setIdImovel(imovel.getId().toString());
String inscricaoImovel = fachada.pesquisarInscricaoImovel(imovel.getId());
form.setInscricaoImovel(inscricaoImovel);
httpServletRequest.setAttribute("existeImovel","true");
httpServletRequest.setAttribute("nomeCampo","idImovel");
// caso tenha passado o negativador
if (form.getNegativador() != null && !form.getNegativador().equals("")) {
// caso nao tenha negativacao para o negativador selecionado
fn = new FiltroNegativador();
fn.adicionarParametro(new ParametroSimples(FiltroNegativador.ID,form.getNegativador()));
fn.adicionarCaminhoParaCarregamentoEntidade("cliente");
Negativador negativador = (Negativador) Util.retonarObjetoDeColecao(fachada.pesquisar(fn, Negativador.class.getName()));
if (negativador == null) {
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
throw new ActionServletException("atencao.negativador.nao.selecionado");
}
// FiltroNegativacaoImoveis fni = new FiltroNegativacaoImoveis();
// fni.adicionarParametro(new ParametroSimples(FiltroNegativacaoImoveis.NEGATIVADOR_ID,form.getNegativador()));
// fni.adicionarParametro(new ParametroSimples(FiltroNegativacaoImoveis.IMOVEL_ID,imovel.getId()));
// fni.adicionarParametro(new ParametroSimples(FiltroNegativacaoImoveis.INDICADOR_EXCLUIDO,"2"));
// Collection colecaoNegativacao = fachada.pesquisar(fni, NegativacaoImoveis.class.getName());
Negativador negativ = new Negativador();
negativ.setId(new Integer(form.getNegativador()));
Collection colecaoNegativacao = fachada.pesquisarImovelNegativado(imovel,negativ);
if (colecaoNegativacao == null || colecaoNegativacao.isEmpty()) {
String[] parametros = {negativador.getCliente().getNome()};
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
throw new ActionServletException("atencao.nao.ha.negativacao.para.imovel.selecionado",null,parametros);
}
// ..................................................................................................................................
// altera��o - 05/03/2008 [in�cio]
// ..................................................................................................................................
Collection coll = fachada.pesquisarNegatiacaoParaImovel(imovel, negativador);
if (coll == null || coll.size() == 0) {
String[] parametros = {negativador.getCliente().getNome()};
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
throw new ActionServletException("atencao.negativacao_para_imovel_sem.retorno_ou_nao_aceita",null,parametros);
}
// ..................................................................................................................................
// altera��o - 05/03/2008 [fim]
// ..................................................................................................................................
else {
// caso tenha carregue
//
// FiltroNegativadorMovimentoReg fnmr = new FiltroNegativadorMovimentoReg();
// fnmr.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoReg.IMOVEL_ID,imovel.getId()));
// fnmr.adicionarParametro(new ParametroNulo(FiltroNegativadorMovimentoReg.CODIGO_EXCLUSAO_TIPO));
// fnmr.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoReg.NEGATIVADOR_ID,negativador.getId()));
// fnmr.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoReg.NEGATIVADOR_MOVIMENTO_CODIGOMOVIMENTO,"1"));
// fnmr.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoReg.NEGATIVADOR);
// fnmr.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoReg.CLIENTE);
// fnmr.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoReg.NEGATIVADOR_MOVIMENTO_NEGATIVACAO_COMANDO);
//
// NegativadorMovimentoReg negativadorMovimentoReg = (NegativadorMovimentoReg)Util.retonarObjetoDeColecao(fachada.pesquisar(fnmr, NegativadorMovimentoReg.class.getName()));
NegativadorMovimentoReg negativadorMovimentoReg = fachada.pesquisarNegativadorMovimentoRegInclusao(imovel, negativador);
if (negativadorMovimentoReg == null ) {
String[] parametros = {negativador.getCliente().getNome()};
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
throw new ActionServletException("atencao.nao.ha.negativacao.para.imovel.selecionado",null,parametros);
}
FiltroNegativadorMovimentoRegItem fnmri = new FiltroNegativadorMovimentoRegItem();
fnmri.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoRegItem.NEGATIVADOR_MOVIMENTO_REG_ID,negativadorMovimentoReg.getId()));
fnmri.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoRegItem.DOCUMENTO_TIPO_ID,DocumentoTipo.CONTA));
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.CONTA_GERAL_CONTA_HISTORICO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.CONTA_GERAL_CONTA);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.GUIA_PAGAMENTO_GERAL_GUIA_PAGAMENTO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.GUIA_PAGAMENTO_GERAL_GUIA_PAGAMENTO_HISTORICO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.COBRANCA_DEBITO_SITUACAO);
Collection itensConta = fachada.pesquisar(fnmri, NegativadorMovimentoRegItem.class.getName());
fnmri = new FiltroNegativadorMovimentoRegItem();
fnmri.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoRegItem.NEGATIVADOR_MOVIMENTO_REG_ID,negativadorMovimentoReg.getId()));
fnmri.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimentoRegItem.DOCUMENTO_TIPO_ID,DocumentoTipo.GUIA_PAGAMENTO));
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.CONTA_GERAL_CONTA_HISTORICO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.CONTA_GERAL_CONTA);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.GUIA_PAGAMENTO_GERAL_GUIA_PAGAMENTO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.GUIA_PAGAMENTO_GERAL_GUIA_PAGAMENTO_HISTORICO);
fnmri.adicionarCaminhoParaCarregamentoEntidade(FiltroNegativadorMovimentoRegItem.COBRANCA_DEBITO_SITUACAO);
Collection itensGuiaPagamento = fachada.pesquisar(fnmri, NegativadorMovimentoRegItem.class.getName());
FiltroNegativacaoImoveis fnii = new FiltroNegativacaoImoveis();
// fnii.adicionarParametro(new ParametroNaoNulo("dataConfirmacao"));
fnii.adicionarParametro(new ParametroSimples(FiltroNegativacaoImoveis.IMOVEL_ID,imovel.getId()));
fnii.adicionarParametro(new ParametroSimples(FiltroNegativacaoImoveis.NEGATIVACAO_COMANDO_ID,negativadorMovimentoReg.getNegativadorMovimento().getNegativacaoComando().getId()));
NegativacaoImoveis ni = (NegativacaoImoveis) Util.retonarObjetoDeColecao(fachada.pesquisar(fnii, NegativacaoImoveis.class.getName()));
if (ni != null && ni.getDataConfirmacao() != null) {
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", "Confirmado");
} else {
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", "N�o Confirmado");
}
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", negativadorMovimentoReg);
getSessao(httpServletRequest).setAttribute("imovel", imovel);
getSessao(httpServletRequest).setAttribute("itensConta", itensConta);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", itensGuiaPagamento);
form.setDataEnvio(Util.formatarData(negativadorMovimentoReg.getNegativadorMovimento().getDataEnvio()));
}
} else {
// caso nao tenha passado o negativador
// levanta excecao pq eh obrigatorio
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
throw new ActionServletException("atencao.negativador.nao.selecionado");
}
}
}
} else {
// n�o foi selecionado o imovel
form.setIdUsuario("");
form.setMotivoExclusao("");
form.setDataExclusao("");
form.setUsuarioNaoEncontrada("");
form.setNomeUsuario("");
getSessao(httpServletRequest).setAttribute("negativadorMovimentoReg", null);
getSessao(httpServletRequest).setAttribute("imovel", null);
getSessao(httpServletRequest).setAttribute("itensConta", null);
getSessao(httpServletRequest).setAttribute("itensGuiaPagamento", null);
getSessao(httpServletRequest).setAttribute("situacaoNegativacao", null);
}
if (!"".equals(form.getIdUsuario()) && form.getIdUsuario() != null) {
FiltroUsuario filtroUsuario = new FiltroUsuario();
// coloca parametro no filtro
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.ID, form.getIdUsuario()));
// pesquisa
Collection coll = Fachada.getInstancia().pesquisar(filtroUsuario,
Usuario.class.getName());
if (coll != null && !coll.isEmpty()) {
// O cliente foi encontrado
// inserirImovelFiltrarActionForm.set("idCliente", ((Cliente)
// ((List) clientes).get(0)).getId().toString());
form.setNomeUsuario(((Usuario) ((List) coll).get(0))
.getNomeUsuario());
sessao.setAttribute("nomeUsuario", form.getNomeUsuario());
form.setUsuarioNaoEncontrada("false");
} else {
form.setUsuarioNaoEncontrada("true");
form.setNomeUsuario("");
}
} else {
form.setNomeUsuario("");
}
form.setDataExclusao(Util.formatarData(new Date()));
return retorno;
}
}