package gcom.gui.cobranca; import java.util.Collection; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.sistemaparametro.FiltroSistemaParametro; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaAcao; import gcom.cobranca.CobrancaAcaoAtividadeCronograma; import gcom.cobranca.CobrancaAcaoCronograma; import gcom.cobranca.CobrancaAtividade; import gcom.cobranca.CobrancaGrupo; import gcom.cobranca.CobrancaGrupoCronogramaMes; import gcom.cobranca.FiltroCobrancaAcao; import gcom.cobranca.FiltroCobrancaAcaoAtividadeCronograma; import gcom.cobranca.FiltroCobrancaAcaoCronograma; import gcom.cobranca.FiltroCobrancaAtividade; import gcom.cobranca.FiltroCobrancaGrupo; import gcom.cobranca.FiltroCobrancaGrupoCronogramaMes; import gcom.cobranca.FiltroImovelNaoGerado; import gcom.cobranca.ImovelNaoGerado; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; 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 Anderson Italo * @date 20/11/2009 * Classe respons�vel pela exibi��o do filtro de UC9999 Consultar Motivo da n�o Gera��o de Documento de Cobran�a */ public class ExibirMotivoNaoGeracaoDocumentoTipoComandoCronogramaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("motivoNaoGeracaoDocumentoTipoComandoCronograma"); MotivoNaoGeracaoDocumentoActionForm form = (MotivoNaoGeracaoDocumentoActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); //4. Caso a op��o por im�vel tenha sido escolhida if (httpServletRequest.getParameter("filtroPorImovel") != null && httpServletRequest.getParameter("filtroPorImovel").equals("true")){ form.setIndicadorTipoPesquisa("2"); /*[FS0001] - Validar m�s/ano de refer�ncia * Caso o m�s/ano de refer�ncia n�o seja menor que o m�s/ano do faturamento * corrente (PARM_AMREFERENCIAFATURAMENTO da tabela SISTEMA_PARAMETROS), * exibir a mensagem �M�s/Ano de Refer�ncia deve ser anterior a << m�s/ano * do faturamento corrente >>� e retornar para o passo correspondente no * fluxo principal. */ FiltroSistemaParametro filtroSistemaParametro= new FiltroSistemaParametro(); Collection colecaoSistemaParametro = fachada.pesquisar(filtroSistemaParametro, SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro) colecaoSistemaParametro.iterator().next(); String anoMesReferencia = Util.formatarMesAnoParaAnoMesSemBarra(form.getAnoMesReferencia()); String anoMesFaturamentoCorrente = ""+ sistemaParametro.getAnoMesFaturamento(); Integer resultado = anoMesReferencia.compareTo(anoMesFaturamentoCorrente); if (resultado >= 0){ throw new ActionServletException( "atencao.ano_mes_referencia_anterior_que_ano_mes_faturamento_corrente", null, Util.formatarAnoMesParaMesAno(sistemaParametro.getAnoMesFaturamento())); } /*2. O sistema obt�m a identifica��o do comando (CAAC_ID da tabela COBRANCA_ACAO_ATIVIDADE_CRONOG * com CBAT_ID = 2"CBAT_ID da atividade informada" e CBCR_ID = CBCR_ID da tabela COBRANCA_ACAO_CRONOGRAMA com CBAC_ID = CBAC_ID * da A��o informada e CBCM_ID = CBCM_ID da tabela COBRANCA_GRUPO_CRONOGRAMA_MES com CBCM_AMREFERENCIA= ano/m�s de referencia informado * e CBGR_ID = CBGR_ID do grupo informado.*/ FiltroCobrancaGrupoCronogramaMes filtroCobrancaGrupoCronogramaMes = new FiltroCobrancaGrupoCronogramaMes(); filtroCobrancaGrupoCronogramaMes.adicionarParametro(new ParametroSimples( FiltroCobrancaGrupoCronogramaMes.ANO_MES_REFERENCIA, anoMesReferencia)); filtroCobrancaGrupoCronogramaMes.adicionarParametro(new ParametroSimples( FiltroCobrancaGrupoCronogramaMes.ID_COBRANCA_GRUPO, new Integer(form.getIdCobrancaGrupo()))); Collection colecaoCobrancaGrupoCronogramaMes = fachada.pesquisar(filtroCobrancaGrupoCronogramaMes, CobrancaGrupoCronogramaMes.class.getName()); CobrancaGrupoCronogramaMes cobrancaGrupoCronogramaMes = (CobrancaGrupoCronogramaMes) Util.retonarObjetoDeColecao(colecaoCobrancaGrupoCronogramaMes); CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = null; if (colecaoCobrancaGrupoCronogramaMes != null && !colecaoCobrancaGrupoCronogramaMes.isEmpty()){ FiltroCobrancaAcaoCronograma filtroCobrancaAcaoCronograma = new FiltroCobrancaAcaoCronograma(); filtroCobrancaAcaoCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoCronograma.ID_COBRANCA_ACAO, new Integer(form.getIdCobrancaAcao()))); filtroCobrancaAcaoCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoCronograma.ID_COBRANCA_GRUPO_CRONOGRAMA_MES, cobrancaGrupoCronogramaMes.getId())); Collection colecaoCobrancaAcaoCronograma = fachada.pesquisar(filtroCobrancaAcaoCronograma, CobrancaAcaoCronograma.class.getName()); CobrancaAcaoCronograma cobrancaAcaoCronograma = (CobrancaAcaoCronograma) Util.retonarObjetoDeColecao(colecaoCobrancaAcaoCronograma); if (colecaoCobrancaAcaoCronograma != null && !colecaoCobrancaAcaoCronograma.isEmpty()){ FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = new FiltroCobrancaAcaoAtividadeCronograma(); filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ATIVIDADE, new Integer(form.getIdCobrancaAtividade()))); filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.ID_COBRANCA_ACAO_CRONOGRAMA, cobrancaAcaoCronograma.getId())); Collection colecaoCobrancaAcaoAtividadeCronograma = fachada.pesquisar(filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class.getName()); cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) Util.retonarObjetoDeColecao(colecaoCobrancaAcaoAtividadeCronograma); } } if (cobrancaAcaoAtividadeCronograma == null){ throw new ActionServletException("atencao.comando_inexistente_parametros_informados"); } Imovel imovel = fachada.pesquisarImovel(new Integer(form.getMatriculaImovel())); if (imovel != null){ FiltroImovelNaoGerado filtroImovelNaoGerado = new FiltroImovelNaoGerado(); filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_IMOVEL, imovel.getId())); filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_CRONOGRAMA, cobrancaAcaoAtividadeCronograma.getId())); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA); Collection colecaoImovelNaoGerado = fachada.pesquisar(filtroImovelNaoGerado, ImovelNaoGerado.class.getName()); /*[FS0004] - Motivo n�o encontrado * . Caso a matr�cula do im�vel informada n�o exista na tabela * IMOVEL_NAO_GERADO para o CAAC_ID ou CACM_ID em quest�o, exibir * a mensagem �Im�vel n�o pertence ao universo do comando ou teve * documento gerado� e retornar para o passo correspondente * no fluxo principal. */ if (colecaoImovelNaoGerado == null || colecaoImovelNaoGerado.isEmpty()){ throw new ActionServletException("atencao.imovel_nao_pertence_comando_documento_gerado"); }else{ /*4.2.1. O sistema exibe o motivo de n�o Gera��o * (MNGD_DSMOTIVO com MNGD_ID = MNGD_ID da tabela IMOVEL_NAO_GERADO)*/ ImovelNaoGerado imovelNaogerado = (ImovelNaoGerado)Util.retonarObjetoDeColecao(colecaoImovelNaoGerado); form.setDescricaoMotivo(imovelNaogerado.getMotivoNaoGeracaoDocCobranca().getDescricao()); } }else{ throw new ActionServletException("atencao.imovel.inexistente"); } }else{ form.setIndicadorTipoPesquisa("1"); form.setIndicadorTipoRelatorio("1"); } //grupo de cobran�a FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo(); filtroCobrancaGrupo.adicionarParametro(new ParametroSimples( FiltroCobrancaGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCobrancaGrupo.setCampoOrderBy(FiltroCobrancaGrupo.DESCRICAO); Collection colecaoCobrancaGrupo = fachada.pesquisar(filtroCobrancaGrupo, CobrancaGrupo.class.getName()); //[FS002] - Verificar exist�ncia de dados if (colecaoCobrancaGrupo == null || colecaoCobrancaGrupo.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "CobrancaGrupo"); } httpServletRequest.setAttribute("colecaoCobrancaGrupo", colecaoCobrancaGrupo); //a��o de cobran�a FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao(); filtroCobrancaAcao.adicionarParametro(new ParametroSimples( FiltroCobrancaAcao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCobrancaAcao.setCampoOrderBy(FiltroCobrancaAcao.DESCRICAO); Collection colecaoCobrancaAcao = fachada.pesquisar(filtroCobrancaAcao, CobrancaAcao.class.getName()); //[FS002] - Verificar exist�ncia de dados if (colecaoCobrancaAcao == null || colecaoCobrancaAcao.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "CobrancaAcao"); } httpServletRequest.setAttribute("colecaoCobrancaAcao", colecaoCobrancaAcao); //atividade de cobran�a FiltroCobrancaAtividade filtroCobrancaAtividade = new FiltroCobrancaAtividade(); filtroCobrancaAtividade.adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCobrancaAtividade.setCampoOrderBy(FiltroCobrancaAtividade.DESCRICAO); filtroCobrancaAtividade.adicionarParametro(new ParametroSimplesDiferenteDe( FiltroCobrancaAtividade.ID, CobrancaAtividade.ENCERRAR)); Collection colecaoCobrancaAtividade = fachada.pesquisar(filtroCobrancaAtividade, CobrancaAtividade.class.getName()); //[FS002] - Verificar exist�ncia de dados if (colecaoCobrancaAtividade == null || colecaoCobrancaAtividade.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "CobrancaAtividade"); } //Ger�ncia regional Collection colecaoGerenciaRegional = fachada.obterColecaoGerenciaRegional(); sessao.setAttribute("colecaoGerenciaRegional",colecaoGerenciaRegional); //Unidade neg�cio Collection colecaoUnidadeNegocio = fachada.obterColecaoUnidadeNegocio(); sessao.setAttribute("colecaoUnidadeNegocio",colecaoUnidadeNegocio); //Tratamento das buscas atrav�s do enter //================================================= //Localidade String pesquisarLocalidade = httpServletRequest.getParameter("pesquisarLocalidade"); if(pesquisarLocalidade != null && !"".equals(pesquisarLocalidade)){ Integer idLocalidade = new Integer(form.getIdLocalidade()); Localidade localidade = fachada.pesquisarLocalidadeDigitada(idLocalidade); if(localidade != null){ form.setDescricaoLocalidade(localidade.getDescricao()); } else{ form.setDescricaoLocalidade("LOCALIDADE INEXISTENTE"); form.setIdLocalidade(""); form.setIdSetorComercial(""); form.setDescricaoSetorComercial(""); form.setIdQuadra(""); form.setDescricaoQuadra(""); httpServletRequest.setAttribute("localidadeException","ok"); } } String pesquisarSetorComercial = httpServletRequest.getParameter("pesquisarSetorComercial"); if(pesquisarSetorComercial != null && !"".equals(pesquisarSetorComercial)){ String idSetorComercial = form.getIdSetorComercial(); //Localidade localidadeInicial = (Localidade) sessao.getAttribute("localidadeInicial"); String idLocalidadeInicial = form.getIdLocalidade(); SetorComercial setorComercial = fachada.obterSetorComercialLocalidade(idLocalidadeInicial,idSetorComercial); if(setorComercial != null){ form.setDescricaoSetorComercial(setorComercial.getDescricao()); sessao.setAttribute("setorComercialMotivoNaoGeracao", setorComercial); } else{ form.setDescricaoSetorComercial("SETOR COMERCIAL INEXISTENTE"); form.setIdSetorComercial(""); form.setIdQuadra(""); form.setDescricaoQuadra(""); httpServletRequest.setAttribute("setorComercialException","ok"); sessao.removeAttribute("setorComercialMotivoNaoGeracao"); } } //Quadra String pesquisarQuadra = httpServletRequest.getParameter("pesquisarQuadra"); if(pesquisarQuadra != null && !"".equals(pesquisarQuadra)){ SetorComercial setorComercial = (SetorComercial)sessao.getAttribute("setorComercialMotivoNaoGeracao"); int idQuadra = Integer.parseInt(form.getIdQuadra()); Quadra quadra = null; if(setorComercial != null) quadra = fachada.obterQuadraSetorComercial(setorComercial.getId(),idQuadra); if(quadra != null){ form.setDescricaoQuadra(quadra.getDescricao()); sessao.setAttribute("quadra",quadra); } else{ form.setDescricaoQuadra("QUADRA INEXISTENTE"); form.setIdQuadra(""); sessao.removeAttribute("quadra"); } } httpServletRequest.setAttribute("colecaoCobrancaAtividade", colecaoCobrancaAtividade); return retorno; } }