package gcom.gui.cobranca; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.cobranca.CobrancaCriterio; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import java.util.Collection; 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; /** * Permite consultar comandos de a��o de cobran�a [UC0326] Filtrar Comandos de * A��o de Conbran�a - Eventual */ public class ExibirFiltrarComandosAcaoCobrancaEventualAction extends GcomAction { private String localidadeID = null; private String setorComercialCD = null; private HttpSession sessao; public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { ActionForward retorno = actionMapping.findForward("exibirFiltrarComandosAcaoCobrancaEventual"); Fachada fachada = Fachada.getInstancia(); FiltrarComandosAcaoCobrancaEventualActionForm form = (FiltrarComandosAcaoCobrancaEventualActionForm) actionForm; String situacaoComando = form.getSituacaoComando(); if (situacaoComando == null) { form.setSituacaoComando("Todos"); } String indicadorCriterio = form.getIndicadorCriterio(); if (indicadorCriterio == null) { form.setIndicadorCriterio("Todos"); } sessao = request.getSession(false); sessao.removeAttribute("filtroCobrancaAcaoAtividadeComando"); String carregando = request.getParameter("carregando"); if (carregando != null && !carregando.equals("")) { if (sessao.getAttribute("filtrarComandosAcaoCobrancaEventualActionForm") != null) { FiltrarComandosAcaoCobrancaEventualActionForm formRecarregar = (FiltrarComandosAcaoCobrancaEventualActionForm) sessao.getAttribute("filtrarComandosAcaoCobrancaEventualActionForm"); form.setAcaoCobranca(formRecarregar.getAcaoCobranca()); form.setIndicadorCriterio(formRecarregar.getIndicadorCriterio()); form.setCriterioCobranca(formRecarregar.getCriterioCobranca()); form.setAtividadeCobranca(formRecarregar.getAtividadeCobranca()); form.setGrupoCobranca(formRecarregar.getGrupoCobranca()); form.setGerenciaRegional(formRecarregar.getGerenciaRegional()); form.setLocalidadeOrigemID(formRecarregar.getLocalidadeOrigemID()); form.setLocalidadeDestinoID(formRecarregar.getLocalidadeDestinoID()); form.setNomeLocalidadeOrigem(formRecarregar.getNomeLocalidadeOrigem()); form.setNomeLocalidadeDestino(formRecarregar.getNomeLocalidadeDestino()); form.setSetorComercialOrigemCD(formRecarregar.getSetorComercialOrigemCD()); form.setSetorComercialOrigemID(formRecarregar.getSetorComercialOrigemID()); form.setSetorComercialDestinoCD(formRecarregar.getSetorComercialDestinoCD()); form.setSetorComercialDestinoID(formRecarregar.getSetorComercialDestinoID()); form.setNomeSetorComercialOrigem(formRecarregar.getNomeSetorComercialOrigem()); form.setNomeSetorComercialDestino(formRecarregar.getNomeSetorComercialDestino()); form.setUnidadeNegocio(formRecarregar.getUnidadeNegocio()); form.setDataEmissaoInicio(formRecarregar.getDataEmissaoInicio()); form.setDataEmissaoFim(formRecarregar.getDataEmissaoFim()); form.setIdCobrancaAcaoAtividadeComando(formRecarregar.getIdCobrancaAcaoAtividadeComando()); if (formRecarregar.getRotaInicial() != null && !formRecarregar.getRotaInicial().equals("")) { carregarRota(form, fachada, formRecarregar.getSetorComercialOrigemCD(), formRecarregar.getLocalidadeOrigemID()); form.setRotaInicial(formRecarregar.getRotaInicial()); } else { form.setRotaInicial(null); sessao.setAttribute("colecaoRota", null); } if (formRecarregar.getRotaFinal() != null && !formRecarregar.getRotaFinal().equals("")) { form.setRotaFinal(formRecarregar.getRotaFinal()); } else { form.setRotaFinal(null); sessao.setAttribute("colecaoRota", null); } form.setClienteRelacaoTipo(formRecarregar.getClienteRelacaoTipo()); form.setIdCliente(formRecarregar.getIdCliente()); form.setNomeCliente(formRecarregar.getNomeCliente()); form.setPeriodoComandoInicial(formRecarregar.getPeriodoComandoInicial()); form.setPeriodoComandoFinal(formRecarregar.getPeriodoComandoFinal()); form.setPeriodoRealizacaoComandoInicial(formRecarregar.getPeriodoRealizacaoComandoInicial()); form.setPeriodoRealizacaoComandoFinal(formRecarregar.getPeriodoRealizacaoComandoFinal()); form.setPeriodoReferenciaContasInicial(formRecarregar.getPeriodoReferenciaContasInicial()); form.setPeriodoReferenciaContasFinal(formRecarregar.getPeriodoReferenciaContasFinal()); form.setPeriodoVencimentoContasInicial(formRecarregar.getPeriodoVencimentoContasInicial()); form.setPeriodoVencimentoContasFinal(formRecarregar.getPeriodoVencimentoContasFinal()); form.setIntervaloValorDocumentosInicial(formRecarregar.getIntervaloValorDocumentosInicial()); form.setIntervaloValorDocumentosFinal(formRecarregar.getIntervaloValorDocumentosFinal()); form.setIntervaloQuantidadeDocumentosInicial(formRecarregar.getIntervaloQuantidadeDocumentosInicial()); form.setIntervaloQuantidadeDocumentosFinal(formRecarregar.getIntervaloQuantidadeDocumentosFinal()); form.setIntervaloQuantidadeItensDocumentosInicial(formRecarregar.getIntervaloQuantidadeItensDocumentosInicial()); form.setIntervaloQuantidadeItensDocumentosFinal(formRecarregar.getIntervaloQuantidadeItensDocumentosFinal()); form.setSituacaoComando(formRecarregar.getSituacaoComando()); } } // CARREGAR AS COBRAN�AS GRUPO if (sessao.getAttribute("colecaoGrupoCobranca") == null) { sessao.setAttribute("colecaoGrupoCobranca", fachada.obterColecaoCobrancaGrupo()); } // CARREGAR AS COBRAN�AS ATIVIDADE if (sessao.getAttribute("colecaoAtividadeCobranca") == null) { sessao.setAttribute("colecaoAtividadeCobranca", fachada.obterColecaoCobrancaAtividade()); } // CARREGAR AS COBRAN�AS ACAO if (sessao.getAttribute("colecaoAcaoCobranca") == null) { sessao.setAttribute("colecaoAcaoCobranca", fachada.obterColecaoCobrancaAcao()); } // CARREGAR AS GERENCIAIS REGIONAIS if (sessao.getAttribute("colecaoGerenciaRegional") == null) { sessao.setAttribute("colecaoGerenciaRegional", fachada.obterColecaoGerenciaRegional()); } // CARREGAR AS UNIDADE NEGOCIO if (sessao.getAttribute("colecaoUnidadeNegocio") == null) { sessao.setAttribute("colecaoUnidadeNegocio", fachada.obterColecaoGerenciaRegional()); } // CARREGAR OS CLIENTE RELACAO TIPO if (sessao.getAttribute("colecaoClienteRelacaoTipo") == null) { sessao.setAttribute("colecaoClienteRelacaoTipo", fachada.obterColecaoClienteRelacaoTipo()); } // CARREGAR OS TITULOS DE COBRANCA ACAO ATIVIDAD COMAND if (sessao.getAttribute("colecaoCobrancaAcaoAtividadeComando") == null) { Collection colecaoAtividadesEventuaisAcaoCobrancaComandadas = fachada.obterListaAtividadesEventuaisAcaoCobrancaComandadas(); sessao.setAttribute("colecaoCobrancaAcaoAtividadeComando", colecaoAtividadesEventuaisAcaoCobrancaComandadas); } String objetoConsulta = (String) request.getParameter("objetoConsulta"); String inscricaoTipo = (String) request.getParameter("inscricaoTipo"); String rota = (String) request.getParameter("rota"); // carregar as rotas if (rota != null && !rota.trim().equalsIgnoreCase("")) { carregarRota(form, fachada, form.getSetorComercialOrigemCD(), form.getLocalidadeOrigemID()); } if (objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("") && inscricaoTipo != null && !inscricaoTipo.trim().equalsIgnoreCase("")) { switch (Integer.parseInt(objetoConsulta)) { // Localidade case 1: pesquisarLocalidade(inscricaoTipo, form, fachada, request); break; // Setor Comercial case 2: pesquisarLocalidade(inscricaoTipo, form, fachada, request); pesquisarSetorComercial(inscricaoTipo, form, fachada, request); break; case 3: pesquisarCliente(inscricaoTipo, form, fachada, request); break; default: break; } } String criterioCobranca = form.getCriterioCobranca(); // pesquisar o crit�rio de cobran�a if (criterioCobranca != null && !criterioCobranca.equals("")) { CobrancaCriterio cobrancaCriterio = fachada.obterCobrancaCriterio(criterioCobranca); if (cobrancaCriterio == null) { form.setCriterioCobranca(""); form.setNomeCriterioCobranca("Crit�rio de Cobran�a Inexistente"); request.setAttribute("corCriterioCobranca", "exception"); request.setAttribute("nomeCampo", "criterioCobranca"); } else { form.setCriterioCobranca(String.valueOf(cobrancaCriterio.getId())); form.setNomeCriterioCobranca(cobrancaCriterio.getDescricaoCobrancaCriterio()); request.setAttribute("corCriterioCobranca", "valor"); request.setAttribute("nomeCampo", "grupoCobranca"); } } return retorno; } /** * Pesquisa a Localidade * * @param inscricaoTipo * @param imovelOutrosCriteriosActionForm * @param fachada * @param request */ private void pesquisarLocalidade(String inscricaoTipo, FiltrarComandosAcaoCobrancaEventualActionForm form, Fachada fachada, HttpServletRequest request) { if (inscricaoTipo.equalsIgnoreCase("origem")) { form.setInscricaoTipo("origem"); // Recebe o valor do campo localidadeOrigemID do formul�rio. localidadeID = (String) form.getLocalidadeOrigemID(); Localidade objetoLocalidade = fachada.obterLocalidadeGerenciaRegional(localidadeID); if (objetoLocalidade == null) { // Localidade nao encontrada // Limpa os campos localidadeOrigemID e nomeLocalidadeOrigem do // formul�rio form.setLocalidadeOrigemID(""); form.setNomeLocalidadeOrigem("Localidade Inexistente"); request.setAttribute("corLocalidadeOrigem", "exception"); request.setAttribute("nomeCampo", "localidadeOrigemID"); } else { form.setLocalidadeOrigemID(String.valueOf(objetoLocalidade.getId())); form.setNomeLocalidadeOrigem(objetoLocalidade.getDescricao()); request.setAttribute("corLocalidadeOrigem", "valor"); String localidadeDestinoID = (String) form.getLocalidadeDestinoID(); // verifica o valor das localidades, origem e final if (localidadeDestinoID != null) { if (localidadeDestinoID.equals("")) { form.setLocalidadeDestinoID(String.valueOf(objetoLocalidade.getId())); form.setNomeLocalidadeDestino(objetoLocalidade.getDescricao()); } else { int localidadeDestino = new Integer(localidadeDestinoID).intValue(); int localidadeOrigem = objetoLocalidade.getId().intValue(); if (localidadeOrigem > localidadeDestino) { form.setLocalidadeDestinoID(String.valueOf(objetoLocalidade.getId())); form.setNomeLocalidadeDestino(objetoLocalidade.getDescricao()); } } } request.setAttribute("nomeCampo", "localidadeDestinoID"); } } else { // Recebe o valor do campo localidadeDestinoID do formul�rio. localidadeID = (String) form.getLocalidadeDestinoID(); Localidade objetoLocalidade = fachada.obterLocalidadeGerenciaRegional(localidadeID); form.setInscricaoTipo("destino"); if (objetoLocalidade == null) { // Localidade nao encontrada // Limpa os campos localidadeDestinoID e nomeLocalidadeDestino // do formul�rio form.setLocalidadeDestinoID(""); form.setNomeLocalidadeDestino("Localidade inexistente"); request.setAttribute("corLocalidadeDestino", "exception"); request.setAttribute("nomeCampo", "localidadeDestinoID"); } else { int localidadeDestino = objetoLocalidade.getId().intValue(); String localidade = (String) form.getLocalidadeOrigemID(); if (localidade != null && !localidade.equals("")) { int localidadeOrigem = new Integer(localidade).intValue(); if (localidadeDestino < localidadeOrigem) { form.setLocalidadeDestinoID(""); request.setAttribute("mensagem", "Localidae Final menor que o Inicial"); form.setNomeLocalidadeDestino(""); request.setAttribute("corLocalidadeDestino", "valor"); request.setAttribute("nomeCampo", "localidadeDestinoID"); } else { form.setLocalidadeDestinoID(String.valueOf(objetoLocalidade.getId())); form.setNomeLocalidadeDestino(objetoLocalidade.getDescricao()); request.setAttribute("corLocalidadeDestino", "valor"); request.setAttribute("nomeCampo", "setorComercialOrigemCD"); pesquisarLocalidade("origem", form, fachada, request); } } else { form.setLocalidadeDestinoID(String.valueOf(objetoLocalidade.getId())); form.setNomeLocalidadeDestino(objetoLocalidade.getDescricao()); request.setAttribute("corLocalidadeDestino", "valor"); request.setAttribute("nomeCampo", "setorComercialOrigemCD"); pesquisarLocalidade("origem", form, fachada, request); } } } } /** * Pesquisa o Setor Comercial para ser usado no Filtrar Comandos de A��o de * Cobran�a * * @param inscricaoTipo * @param form * @param fachada * @param request */ private void pesquisarSetorComercial(String inscricaoTipo, FiltrarComandosAcaoCobrancaEventualActionForm form, Fachada fachada, HttpServletRequest request) { if (inscricaoTipo.equalsIgnoreCase("origem")) { form.setInscricaoTipo("origem"); // Recebe o valor do campo localidadeOrigemID do formul�rio. localidadeID = (String) form.getLocalidadeOrigemID(); // Recebe o valor do campo localidadeOrigemID do formul�rio. setorComercialCD = (String) form.getSetorComercialOrigemCD(); // O campo localidadeOrigemID ser� obrigat�rio if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) { SetorComercial objetoSetorComercial = fachada.obterSetorComercialLocalidade(localidadeID, setorComercialCD); if (objetoSetorComercial == null) { // Setor Comercial nao encontrado // Limpa os campos setorComercialOrigemCD, // nomeSetorComercialOrigem e setorComercialOrigemID do // formul�rio form.setSetorComercialOrigemCD(""); form.setSetorComercialOrigemID(""); form.setNomeSetorComercialOrigem("Setor Comercial Inexistente"); request.setAttribute("corSetorComercialOrigem", "exception"); form.setRotaInicial(null); form.setRotaFinal(null); request.setAttribute("nomeCampo", "setorComercialOrigemCD"); } else { // setorComercialOrigem form.setSetorComercialOrigemCD(String.valueOf(objetoSetorComercial.getCodigo())); form.setSetorComercialOrigemID(String.valueOf(objetoSetorComercial.getId())); form.setNomeSetorComercialOrigem(objetoSetorComercial.getDescricao()); request.setAttribute("corSetorComercialOrigem", "valor"); String setorComercialDestinoCD = (String) form.getSetorComercialDestinoCD(); // verifica o valor dos setores comerciais, origem e final if (setorComercialDestinoCD != null) { if (setorComercialDestinoCD.equals("")) { // setorComercialDestino form.setSetorComercialDestinoCD(String.valueOf(objetoSetorComercial.getCodigo())); form.setSetorComercialDestinoID(String.valueOf(objetoSetorComercial.getId())); form.setNomeSetorComercialDestino(objetoSetorComercial.getDescricao()); carregarRota(form, fachada, objetoSetorComercial.getCodigo() + "", localidadeID); } else { int setorDestino = new Integer(setorComercialDestinoCD).intValue(); int setorOrigem = objetoSetorComercial.getCodigo(); if (setorOrigem > setorDestino) { // setorComercialDestino form.setSetorComercialDestinoCD(String.valueOf(objetoSetorComercial.getCodigo())); form.setSetorComercialDestinoID(String.valueOf(objetoSetorComercial.getId())); form.setNomeSetorComercialDestino(objetoSetorComercial.getDescricao()); carregarRota(form, fachada,objetoSetorComercial.getCodigo() + "", localidadeID); } } request.setAttribute("nomeCampo", "setorComercialDestinoCD"); } } } else { // Limpa o campo setorComercialOrigemCD do formul�rio form.setSetorComercialOrigemCD(""); form.setNomeSetorComercialOrigem("Informe a localidade da inscri��o de origem."); request.setAttribute("corSetorComercialOrigem", "exception"); request.setAttribute("nomeCampo", "setorComercialOrigemCD"); } } else { form.setInscricaoTipo("destino"); // Recebe o valor do campo localidadeDestinoID do formul�rio. localidadeID = (String) form.getLocalidadeDestinoID(); // O campo localidadeOrigem ser� obrigat�rio if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) { setorComercialCD = (String) form.getSetorComercialDestinoCD(); SetorComercial objetoSetorComercial = fachada.obterSetorComercialLocalidade(localidadeID, setorComercialCD); if (objetoSetorComercial == null) { // Setor Comercial nao encontrado // Limpa os campos setorComercialDestinoCD, // nomeSetorComercialDestino e setorComercialDestinoID do // formul�rio form.setSetorComercialDestinoCD(""); form.setSetorComercialDestinoID(""); form.setNomeSetorComercialDestino("Setor Comercial Inexistente"); request.setAttribute("corSetorComercialDestino", "exception"); form.setRotaInicial(null); form.setRotaFinal(null); request.setAttribute("nomeCampo", "setorComercialDestinoCD"); } else { int setorDestino = objetoSetorComercial.getCodigo(); String setor = (String) form.getSetorComercialOrigemCD(); if (setor != null && !setor.equals("")) { int setorOrigem = new Integer(setor).intValue(); if (setorDestino < setorOrigem) { form.setSetorComercialDestinoCD(""); form.setSetorComercialDestinoID(""); request.setAttribute("mensagem", "Setor Comercial Final menor que o Inicial"); form.setNomeSetorComercialDestino(""); request.setAttribute("corSetorComercialDestino", "valor"); form.setRotaInicial(null); form.setRotaFinal(null); request.setAttribute("nomeCampo", "setorComercialDestinoCD"); } else { // rota carregarRota(form, fachada, objetoSetorComercial.getCodigo() + "", localidadeID); // setor comercial destino form.setSetorComercialDestinoCD(String.valueOf(objetoSetorComercial.getCodigo())); form.setSetorComercialDestinoID(String.valueOf(objetoSetorComercial.getId())); form.setNomeSetorComercialDestino(objetoSetorComercial.getDescricao()); request.setAttribute("corSetorComercialDestino", "valor"); request.setAttribute("nomeCampo", "rotaFinal"); } } else { carregarRota(form, fachada, objetoSetorComercial.getCodigo() + "", localidadeID); // setor comercial destino form.setSetorComercialDestinoCD(String.valueOf(objetoSetorComercial.getCodigo())); form.setSetorComercialDestinoID(String.valueOf(objetoSetorComercial.getId())); form.setNomeSetorComercialDestino(objetoSetorComercial.getDescricao()); request.setAttribute("corSetorComercialDestino", "valor"); request.setAttribute("nomeCampo", "rotaFinal"); } } } else { // Limpa o campo setorComercialDestinoCD do formul�rio form.setSetorComercialDestinoCD(""); form.setNomeSetorComercialDestino("Informe a localidade da inscri��o de destino."); request.setAttribute("corSetorComercialDestino", "exception"); request.setAttribute("nomeCampo", "setorComercialDestinoCD"); } } } /** * Inicializa a Rota * * @param inserirComandoAcaoCobrancaEventualCriterioRotaActionForm * @param fachada * @param objetoSetorComercial */ public void carregarRota(FiltrarComandosAcaoCobrancaEventualActionForm form, Fachada fachada, String codigoSetorComercial, String idLocalidade) { Collection colecaoRota = fachada.obterColecaoRotaSetorComercial(codigoSetorComercial, idLocalidade); sessao.setAttribute("colecaoRota", colecaoRota); form.setRotaInicial(""); form.setRotaFinal(""); } /** * Pesquisa o Setor Comercial * * @param inscricaoTipo * @param imovelOutrosCriteriosActionForm * @param fachada * @param request */ private void pesquisarCliente(String inscricaoTipo, FiltrarComandosAcaoCobrancaEventualActionForm form, Fachada fachada, HttpServletRequest request) { String idCliente = form.getIdCliente(); // -------Parte que trata do c�digo quando o usu�rio tecla enter // se o id do cliente for diferente de nulo if (idCliente != null && !idCliente.toString().trim().equalsIgnoreCase("")) { Cliente cliente = fachada.obterCliente(idCliente); if (cliente != null) { // O cliente foi encontrado form.setIdCliente(cliente.getId().toString()); form.setNomeCliente(cliente.getNome()); sessao.setAttribute("clienteObj", cliente); } else { request.setAttribute("codigoClienteNaoEncontrado", "true"); form.setNomeCliente("Cliente Inexistente"); request.setAttribute("nomeCampo", "idCliente"); } } } }