package gcom.gui.relatorio.cobranca; import gcom.cobranca.CobrancaAcaoAtividadeCronograma; import gcom.cobranca.CobrancaAcaoCronograma; import gcom.cobranca.CobrancaGrupoCronogramaMes; import gcom.cobranca.FiltroCobrancaAcaoAtividadeCronograma; import gcom.cobranca.FiltroCobrancaAcaoCronograma; import gcom.cobranca.FiltroCobrancaGrupoCronogramaMes; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.cobranca.MotivoNaoGeracaoDocumentoActionForm; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.cobranca.RelatorioMotivoNaoGeracaoDocumentoCobranca; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * @author Anderson Italo * @date 26/11/2009 * Classe respons�vel pelo pr�-precessamento * da chamada do Relatorio Motivo de n�o gera�ao de Documentos de Cobran�a * UC9999 Consultar Motivo da n�o Gera��o de Documento de Cobran�a */ public class GerarRelatorioMotivoNaoGeracaoDocumentoCronogramaAction extends ExibidorProcessamentoTarefaRelatorio { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { MotivoNaoGeracaoDocumentoActionForm form = (MotivoNaoGeracaoDocumentoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = null; /*5. Caso Contr�rio * 5.1. O sistema exibe os dados para o Comando * (Chamada do Relatorio Motivo de n�o gera�ao de Documentos de Cobran�a)*/ if ((httpServletRequest.getParameter("filtroPorComandoSintetico") != null && httpServletRequest.getParameter("filtroPorComandoSintetico").equals("true")) ||(httpServletRequest.getParameter("filtroPorComandoAnalitico") != null && httpServletRequest.getParameter("filtroPorComandoAnalitico").equals("true"))){ /*[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. */ String anoMesReferencia = Util.formatarMesAnoParaAnoMesSemBarra(form.getAnoMesReferencia()); //String anoMesFaturamentoCorrente = ""+ sistemaParametro.getAnoMesFaturamento(); Date dataCorrente = new Date(); String anoMesFaturamentoCorrente = Util.getAnoMesComoString(dataCorrente); 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())); Util.formatarAnoMesParaMesAno(anoMesFaturamentoCorrente)); } /*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); 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"); } } Usuario usuario = (Usuario) httpServletRequest.getSession(false).getAttribute("usuarioLogado"); int tipoRelatorio = TarefaRelatorio.TIPO_PDF; RelatorioMotivoNaoGeracaoDocumentoCobranca relatorio = new RelatorioMotivoNaoGeracaoDocumentoCobranca(usuario); relatorio.addParametro("cobrancaAcaoAtividadeCronograma", cobrancaAcaoAtividadeCronograma); relatorio.addParametro("idCobrancaGrupo", new Integer(form.getIdCobrancaGrupo())); relatorio.addParametro("tipoRelatorio", tipoRelatorio); relatorio.addParametro("indicadorCronograma", 1); relatorio.addParametro("form",form); if(httpServletRequest.getParameter("filtroPorComandoSintetico") != null && httpServletRequest.getParameter("filtroPorComandoSintetico").equals("true")){ relatorio.addParametro("sintetico", 1); }else{ relatorio.addParametro("sintetico", 2); } return processarExibicaoRelatorio( relatorio, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } }