package gcom.gui.arrecadacao.pagamento; import gcom.arrecadacao.pagamento.FiltroGuiaPagamento; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.RelatorioVazioException; import gcom.relatorio.arrecadacao.pagamento.RelatorioGuiaPagamentoEmAtraso; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.Intervalo; import gcom.util.filtro.ParametroSimples; 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; public class FiltrarGuiaPagamentoEmAtrasoAction extends ExibidorProcessamentoTarefaRelatorio { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("retornarFiltroFaturamentoCronograma"); //Mudar isso quando tiver esquema de seguran�a FiltrarGuiaPagamentoEmAtrasoActionForm form = (FiltrarGuiaPagamentoEmAtrasoActionForm) actionForm; RelatorioGuiaPagamentoEmAtraso relatorioGuiaPagamentoEmAtraso = new RelatorioGuiaPagamentoEmAtraso(); FiltroGuiaPagamento filtroGuiaPagamento = new FiltroGuiaPagamento(); boolean peloMenosUmParametroInformado = false; //Financiamento Tipo if(form.getFinanciamentoTipoId() != null && !form.getFinanciamentoTipoId().equals(ConstantesSistema.NUMERO_NAO_INFORMADO + "")){ filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.FINANCIAMENTO_TIPO_ID, form.getFinanciamentoTipoId())); relatorioGuiaPagamentoEmAtraso.addParametro("financiamentoTipo", form.getFinanciamentoTipoId()); peloMenosUmParametroInformado = true; } //Vencimento Inicial if(form.getVencimentoInicial() != null && !form.getVencimentoInicial().trim().equals("")){ Date vencimentoInicial = Util.converteStringParaDate(form.getVencimentoInicial()); Date vencimentoFinal = null; if(form.getVencimentoFinal() != null && !form.getVencimentoFinal().trim().equals("")){ vencimentoFinal = Util.converteStringParaDate(form.getVencimentoFinal()); if(vencimentoInicial.compareTo(vencimentoFinal) <= 0){ filtroGuiaPagamento.adicionarParametro(new Intervalo(FiltroGuiaPagamento.DATA_VENCIMENTO,vencimentoInicial, vencimentoFinal)); }else{ throw new ActionServletException("atencao.data.inicial.maior.final"); } }else{ vencimentoFinal = vencimentoInicial; filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.DATA_VENCIMENTO,vencimentoInicial)); } Date dataAtual = new Date(); if(vencimentoFinal.compareTo(dataAtual) > 0){ //FS0002 throw new ActionServletException("atencao.data.maior.que.atual", null, Util.formatarData(dataAtual)); } relatorioGuiaPagamentoEmAtraso.addParametro("vencimentoInicial", form.getVencimentoInicial()); relatorioGuiaPagamentoEmAtraso.addParametro("vencimentoFinal", form.getVencimentoFinal()); peloMenosUmParametroInformado = true; } //Vencimento Inicial if(form.getReferenciaInicialContabil() != null && !form.getReferenciaInicialContabil().trim().equals("")){ int refInicial = Util.formatarMesAnoComBarraParaAnoMes(form.getReferenciaInicialContabil()); int refFinal = 0; if(form.getReferenciaFinalContabil() != null && !form.getReferenciaFinalContabil().trim().equals("")){ refFinal = Util.formatarMesAnoComBarraParaAnoMes(form.getReferenciaFinalContabil()); if(refInicial <= refFinal){ filtroGuiaPagamento.adicionarParametro(new Intervalo(FiltroGuiaPagamento.ANO_MES_REFERENCIA_CONTABIL,refInicial, refFinal)); }else{ throw new ActionServletException("atencao.referencia.inicial.maior.final"); } }else{ refFinal = refInicial; filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.ANO_MES_REFERENCIA_CONTABIL,refInicial)); } relatorioGuiaPagamentoEmAtraso.addParametro("referenciaInicial", form.getReferenciaInicialContabil()); relatorioGuiaPagamentoEmAtraso.addParametro("referenciaFinal", form.getReferenciaFinalContabil()); peloMenosUmParametroInformado = true; } //Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorioGuiaPagamentoEmAtraso.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio)); relatorioGuiaPagamentoEmAtraso.addParametro("filtroGuiaPagamento", filtroGuiaPagamento); try { retorno = processarExibicaoRelatorio(relatorioGuiaPagamentoEmAtraso, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } catch (RelatorioVazioException ex) { // manda o erro para a p�gina no request atual reportarErros(httpServletRequest, "atencao.relatorio.vazio"); // seta o mapeamento de retorno para a tela de aten��o de popup retorno = actionMapping.findForward("telaAtencaoPopup"); } return retorno; } }