package gcom.gui.cobranca.spcserasa;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.cadastro.cliente.ClienteTipo;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.cliente.FiltroClienteTipo;
import gcom.cadastro.cliente.FiltroEsferaPoder;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.FiltroCobrancaGrupo;
import gcom.cobranca.FiltroNegativadorExclusaoMotivo;
import gcom.cobranca.Negativador;
import gcom.cobranca.NegativadorExclusaoMotivo;
import gcom.cobranca.NegativadorRetornoMotivo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.spcserasa.FiltroNegativador;
import gcom.spcserasa.FiltroNegativadorRetornoMotivo;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import gcom.util.filtro.ParametroSimplesIn;
import java.util.ArrayList;
import java.util.Collection;
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;
@SuppressWarnings({"rawtypes", "unchecked"})
public class ExibirInformarDadosConsultaNegativacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
ActionForward retorno = actionMapping.findForward("exibirInformarDadosConsultaNegativacao");
HttpSession sessao = request.getSession(false);
InformarDadosConsultaNegativacaoActionForm form = (InformarDadosConsultaNegativacaoActionForm) actionForm;
setarTipoRelatorio(form);
setarTipoConsulta(form);
pesquisarNegativador(sessao);
selecionarNegativador(sessao, form);
pesquisarCobrancaGrupo(sessao);
pesquisarGerenciaRegional(sessao);
pesquisarUnidadeNegocio(sessao);
pesquisarEloPolo(request, form);
pesquisarLocalidade(request, form);
pesquisarSetorComercial(request, form);
pesquisarQuadra(form, request);
pesquisarImovelPerfil(sessao);
pesquisarCategoria(sessao);
pesquisarClienteTipo(sessao);
pesquisarEsferaPoder(sessao);
pesquisarLigacaoAguaSituacao(sessao);
pesquisarLigacaoEsgotoSituacao(sessao);
pesquisarMotivoRejeicao(sessao, form);
return retorno;
}
private void pesquisarMotivoRejeicao(HttpSession sessao, InformarDadosConsultaNegativacaoActionForm form) {
if (form.getArrayNegativador() != null && form.getArrayNegativador().length > 0
&& form.getIndicadorRelAcompanhamentoClientesNegativados() != null
&& form.getIndicadorRelAcompanhamentoClientesNegativados().equals("sim")) {
Collection colecaoNegativador = new ArrayList();
for (int i = 0; i < form.getArrayNegativador().length; i++) {
colecaoNegativador.add(form.getArrayNegativador()[i]);
}
FiltroNegativadorRetornoMotivo filtro = new FiltroNegativadorRetornoMotivo();
filtro.adicionarParametro(new ParametroSimples(FiltroNegativadorRetornoMotivo.INDICADOR_REGISTRO_ACEITO, ConstantesSistema.NAO));
filtro.adicionarParametro(new ParametroSimplesIn(FiltroNegativadorRetornoMotivo.NEGATIVADOR_RETORNO_MOTIVO_NEGATIVADOR, colecaoNegativador));
filtro.setCampoOrderBy("descricaoRetornocodigo");
Collection colecaoMotivoRejeicao = Fachada.getInstancia().pesquisar(filtro, NegativadorRetornoMotivo.class.getName());
sessao.setAttribute("collMotivoRejeicao", colecaoMotivoRejeicao);
}
}
private void pesquisarLigacaoEsgotoSituacao(HttpSession sessao) {
if (sessao.getAttribute("collLigacaoEsgotoSituacao") == null) {
FiltroLigacaoEsgotoSituacao filtro = new FiltroLigacaoEsgotoSituacao();
filtro.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgotoSituacao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoLigacaoEsgotoSituacao = Fachada.getInstancia().pesquisar(filtro, LigacaoEsgotoSituacao.class.getName());
sessao.setAttribute("collLigacaoEsgotoSituacao", colecaoLigacaoEsgotoSituacao);
}
}
private void pesquisarLigacaoAguaSituacao(HttpSession sessao) {
if (sessao.getAttribute("collLigacaoAguaSituacao") == null) {
FiltroLigacaoAguaSituacao filtro = new FiltroLigacaoAguaSituacao();
filtro.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoLigacaoAguaSituacao = Fachada.getInstancia().pesquisar(filtro, LigacaoAguaSituacao.class.getName());
sessao.setAttribute("collLigacaoAguaSituacao", colecaoLigacaoAguaSituacao);
}
}
private void pesquisarEsferaPoder(HttpSession sessao) {
if (sessao.getAttribute("collEsferaPoder") == null) {
FiltroEsferaPoder filtro = new FiltroEsferaPoder();
filtro.adicionarParametro(new ParametroSimples(FiltroEsferaPoder.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoEsferaPoder = Fachada.getInstancia().pesquisar(filtro, EsferaPoder.class.getName());
sessao.setAttribute("collEsferaPoder", colecaoEsferaPoder);
}
}
private void pesquisarClienteTipo(HttpSession sessao) {
if (sessao.getAttribute("collClienteTipo") == null) {
FiltroClienteTipo filtro = new FiltroClienteTipo();
filtro.adicionarParametro(new ParametroSimples(FiltroClienteTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoClienteTipo = Fachada.getInstancia().pesquisar(filtro, ClienteTipo.class.getName());
sessao.setAttribute("collClienteTipo", colecaoClienteTipo);
}
}
private void pesquisarCategoria(HttpSession sessao) {
if (sessao.getAttribute("collCategoria") == null) {
FiltroCategoria filtro = new FiltroCategoria();
filtro.adicionarParametro(new ParametroSimples(FiltroCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoCategoria = Fachada.getInstancia().pesquisar(filtro, Categoria.class.getName());
sessao.setAttribute("collCategoria", colecaoCategoria);
}
}
private void pesquisarImovelPerfil(HttpSession sessao) {
if (sessao.getAttribute("collImovelPerfil") == null) {
FiltroImovelPerfil filtro = new FiltroImovelPerfil();
filtro.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecaoImovelPerfil = Fachada.getInstancia().pesquisar(filtro, ImovelPerfil.class.getName());
sessao.setAttribute("collImovelPerfil", colecaoImovelPerfil);
}
}
private void pesquisarSetorComercial(HttpServletRequest request, InformarDadosConsultaNegativacaoActionForm form) {
if (form.getIdSetorComercial() != null && !form.getIdSetorComercial().trim().equals("")) {
FiltroSetorComercial filtro = new FiltroSetorComercial();
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, form.getIdSetorComercial()));
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, form.getIdLocalidade()));
Collection colecaoSetorComercial = Fachada.getInstancia().pesquisar(filtro, SetorComercial.class.getName());
if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) {
if (((SetorComercial) ((List) colecaoSetorComercial).get(0)).getIndicadorUso().equals(ConstantesSistema.INDICADOR_USO_DESATIVO)) {
throw new ActionServletException("atencao.setor_comercial_inativo", null, ((SetorComercial) ((List) colecaoSetorComercial).get(0)).getId().toString());
}
Integer codigoSetorComercial = ((SetorComercial) ((List) colecaoSetorComercial).get(0)).getCodigo();
form.setIdSetorComercial(codigoSetorComercial.toString());
form.setDescricaoSetorComercial(((SetorComercial) ((List) colecaoSetorComercial).get(0)).getDescricao());
} else {
request.setAttribute("corSetorComercial", "exception");
form.setDescricaoSetorComercial(ConstantesSistema.CODIGO_SETOR_COMERCIAL_INEXISTENTE);
form.setIdSetorComercial("");
}
}
}
private void pesquisarLocalidade(HttpServletRequest request, InformarDadosConsultaNegativacaoActionForm form) {
if (form.getIdLocalidade() != null && !form.getIdLocalidade().trim().equals("")) {
FiltroLocalidade filtro = new FiltroLocalidade();
filtro.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, form.getIdLocalidade()));
Collection colecaoLocalidade = Fachada.getInstancia().pesquisar(filtro, Localidade.class.getName());
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
if (((Localidade) ((List) colecaoLocalidade).get(0)).getIndicadorUso().equals(ConstantesSistema.INDICADOR_USO_DESATIVO)) {
throw new ActionServletException("atencao.localidade_inativa", null, "" + ((Localidade) ((List) colecaoLocalidade).get(0)).getId());
}
form.setIdLocalidade(((Localidade) ((List) colecaoLocalidade).get(0)).getId().toString());
form.setDescricaoLocalidade(((Localidade) ((List) colecaoLocalidade).get(0)).getDescricao());
} else {
request.setAttribute("corLocalidade", "exception");
form.setDescricaoLocalidade(ConstantesSistema.CODIGO_LOCALIDADE_INEXISTENTE);
form.setIdLocalidade("");
}
}
}
private void pesquisarEloPolo(HttpServletRequest request, InformarDadosConsultaNegativacaoActionForm form) {
if (form.getIdEloPolo() != null && !form.getIdEloPolo().trim().equals("")) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, form.getIdEloPolo()));
Collection colecaoEloPolo = Fachada.getInstancia().pesquisar(filtroLocalidade, Localidade.class.getName());
if (colecaoEloPolo != null && !colecaoEloPolo.isEmpty()) {
if (((Localidade) ((List) colecaoEloPolo).get(0)).getIndicadorUso().equals(ConstantesSistema.INDICADOR_USO_DESATIVO)) {
throw new ActionServletException("atencao.localidade_inativa", null, "" + ((Localidade) ((List) colecaoEloPolo).get(0)).getId());
}
form.setIdEloPolo(((Localidade) ((List) colecaoEloPolo).get(0)).getId().toString());
form.setDescricaoEloPolo(((Localidade) ((List) colecaoEloPolo).get(0)).getDescricao());
} else {
request.setAttribute("corEloPolo", "exception");
form.setDescricaoEloPolo(ConstantesSistema.CODIGO_ELO_POLO_INEXISTENTE);
form.setIdEloPolo("");
}
}
}
private void pesquisarUnidadeNegocio(HttpSession sessao) {
if (sessao.getAttribute("collUnidadeNegocio") == null) {
FiltroUnidadeNegocio filtro = new FiltroUnidadeNegocio();
filtro.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("nome");
Collection colecaoUnidadeNegocio = Fachada.getInstancia().pesquisar(filtro, UnidadeNegocio.class.getName());
sessao.setAttribute("collUnidadeNegocio", colecaoUnidadeNegocio);
}
}
private void pesquisarGerenciaRegional(HttpSession sessao) {
if (sessao.getAttribute("collGerenciaRegional") == null) {
FiltroGerenciaRegional filtro = new FiltroGerenciaRegional();
filtro.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("nome");
Collection colecao = Fachada.getInstancia().pesquisar(filtro, GerenciaRegional.class.getName());
sessao.setAttribute("collGerenciaRegional", colecao);
}
}
private void setarTipoRelatorio(InformarDadosConsultaNegativacaoActionForm form) {
if (form.getTipoRelatorioNegativacao() == null || form.getTipoRelatorioNegativacao().trim().equals("")) {
form.setTipoRelatorioNegativacao("1");
}
}
private void pesquisarCobrancaGrupo(HttpSession sessao) {
if (sessao.getAttribute("collCobrancaGrupo") == null) {
FiltroCobrancaGrupo filtro = new FiltroCobrancaGrupo();
filtro.adicionarParametro(new ParametroSimples(FiltroCobrancaGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.setCampoOrderBy("descricao");
Collection colecao = Fachada.getInstancia().pesquisar(filtro, CobrancaGrupo.class.getName());
sessao.setAttribute("collCobrancaGrupo", colecao);
}
}
private void selecionarNegativador(HttpSession sessao, InformarDadosConsultaNegativacaoActionForm form) {
if (form.getArrayNegativador() != null && form.getArrayNegativador().length > 0) {
Collection colecao = new ArrayList();
for (int i = 0; i < form.getArrayNegativador().length; i++) {
colecao.add(form.getArrayNegativador()[i]);
}
pesquisarNegativadorExclusaoMotivo(sessao, colecao);
}
}
private void pesquisarNegativadorExclusaoMotivo(HttpSession sessao, Collection colecaoNegativador) {
FiltroNegativadorExclusaoMotivo filtro = new FiltroNegativadorExclusaoMotivo();
filtro.adicionarParametro(new ParametroSimples(FiltroNegativadorExclusaoMotivo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.adicionarParametro(new ParametroSimplesIn(FiltroNegativadorExclusaoMotivo.NEGATIVADOR_ID, colecaoNegativador));
Collection colecao = Fachada.getInstancia().pesquisar(filtro, NegativadorExclusaoMotivo.class.getName());
sessao.setAttribute("collNegativadorExclusaoMotivo", colecao);
}
private void pesquisarNegativador(HttpSession sessao) {
if (sessao.getAttribute("collNegativador") == null) {
FiltroNegativador filtro = new FiltroNegativador();
filtro.adicionarParametro(new ParametroSimples(FiltroNegativador.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtro.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtro.setCampoOrderBy("cliente.nome");
Collection colecao = Fachada.getInstancia().pesquisar(filtro, Negativador.class.getName());
sessao.setAttribute("collNegativador", colecao);
}
}
private void setarTipoConsulta(InformarDadosConsultaNegativacaoActionForm form) {
if (form.getTipoConsulta() == null || form.getTipoConsulta().trim().equals("")) {
form.setTipoConsulta(InformarDadosConsultaNegativacaoActionForm.ACOMPANHAMENTO);
form.setIndicadorRelExclusao(null);
form.setIndicadorRelAcompanhamentoClientesNegativados("sim");
form.setIndicadorApenasNegativacoesRejeitadas(ConstantesSistema.NAO.toString());
} else {
if (form.getTipoConsulta().equals(InformarDadosConsultaNegativacaoActionForm.ACOMPANHAMENTO)) {
form.setIndicadorRelExclusao(null);
form.setIndicadorRelAcompanhamentoClientesNegativados("sim");
form.setIndicadorApenasNegativacoesRejeitadas(ConstantesSistema.NAO.toString());
} else if (form.getTipoConsulta().equals(InformarDadosConsultaNegativacaoActionForm.EXCLUSOES)) {
form.setIndicadorRelExclusao("sim");
form.setIndicadorRelAcompanhamentoClientesNegativados(null);
} else if (form.getTipoConsulta().equals(InformarDadosConsultaNegativacaoActionForm.RESUMO)) {
form.setIndicadorRelExclusao(null);
form.setIndicadorRelAcompanhamentoClientesNegativados(null);
}
}
}
public void pesquisarQuadra(InformarDadosConsultaNegativacaoActionForm form, HttpServletRequest request) {
if (form.getIdQuadra() != null && !form.getIdQuadra().trim().equals("")
&& (form.getIdSetorComercial() != null && !form.getIdSetorComercial().toString().trim().equalsIgnoreCase(""))
&& (form.getIdLocalidade() != null && !form.getIdLocalidade().toString().trim().equalsIgnoreCase(""))) {
FiltroQuadra filtro = new FiltroQuadra();
if (form.getIdLocalidade() != null && !form.getIdLocalidade().equalsIgnoreCase("")) {
filtro.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, new Integer(form.getIdLocalidade())));
}
if (form.getIdSetorComercial() != null && !form.getIdSetorComercial().equalsIgnoreCase("")) {
filtro.adicionarParametro(new ParametroSimples(FiltroQuadra.CODIGO_SETORCOMERCIAL, new Integer(form.getIdSetorComercial())));
}
filtro.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, new Integer(form.getIdQuadra())));
Collection quadras = getFachada().pesquisar(filtro, Quadra.class.getName());
if (quadras != null && !quadras.isEmpty()) {
form.setIdQuadra("" + ((Quadra) ((List) quadras).get(0)).getNumeroQuadra());
request.setAttribute("idQuadraNaoEncontrada", "true");
request.setAttribute("nomeCampo", "loteFiltro");
} else {
form.setIdQuadra("");
request.setAttribute("codigoQuadraNaoEncontrada", "true");
request.setAttribute("idQuadraNaoEncontrada", "exception");
request.setAttribute("msgQuadra", "QUADRA INEXISTENTE");
request.setAttribute("nomeCampo", "idQuadraFiltro");
}
}
}
}