package gcom.gui.relatorio.financeiro; import gcom.arrecadacao.FiltroResumoArrecadacao; import gcom.arrecadacao.ResumoArrecadacao; import gcom.fachada.Fachada; import gcom.financeiro.ContaAReceberContabil; import gcom.financeiro.FiltroContaAReceberContabil; import gcom.financeiro.FiltroResumoFaturamento; import gcom.financeiro.ResumoFaturamento; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.financeiro.RelatorioParametrosContabeisArrecadacao; import gcom.relatorio.financeiro.RelatorioParametrosContabeisContasAReceber; import gcom.relatorio.financeiro.RelatorioParametrosContabeisFaturamento; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * Gera��o do relat�rio [UC0824] Gerar Relat�rio dos Par�metros Cont�beis * * @author Bruno Barros * @data 07/07/2008 */ public class GerarRelatorioParametrosContabeisAction extends ExibidorProcessamentoTarefaRelatorio { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno; GerarRelatorioParametrosContabeisActionForm form = (GerarRelatorioParametrosContabeisActionForm) actionForm; String referenciaContabil = form.getReferenciaContabil(); // Verificar tipo de relat�rio if (form.getSelecaoRelatorio() == null || form.getSelecaoRelatorio().equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Tipo de Relat�rio"); } //[FS0001] - Validar Referencia Contabil String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); String selecaoRelatorio = httpServletRequest.getParameter("selecaoRelatorio"); validarRefereciaContabil( form, selecaoRelatorio ); TarefaRelatorio relatorio; // Verificamos qual o tipo do relatorio a ser chamado se o de faturamento ou o de arrecada��o ou de contas a receber if ( selecaoRelatorio.equals( GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_FATURAMENTO ) ){ relatorio = new RelatorioParametrosContabeisFaturamento( (Usuario)( httpServletRequest.getSession(false)).getAttribute("usuarioLogado") ); } else if ( selecaoRelatorio.equals( GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_CONTAS_A_RECEBER ) ){ relatorio = new RelatorioParametrosContabeisContasAReceber( (Usuario)( httpServletRequest.getSession(false)).getAttribute("usuarioLogado") ); } else { relatorio = new RelatorioParametrosContabeisArrecadacao( (Usuario)( httpServletRequest.getSession(false)).getAttribute("usuarioLogado") ); } relatorio.addParametro("referenciaContabil", referenciaContabil); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoRelatorio", Integer.parseInt( tipoRelatorio ) ); relatorio.addParametro("selecaoRelatorio", selecaoRelatorio ); retorno = processarExibicaoRelatorio(relatorio, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); return retorno; } // FS00001 validar Referencia Contabil private void validarRefereciaContabil( GerarRelatorioParametrosContabeisActionForm form, String selecaoRelatorio ) throws ActionServletException{ Fachada fachada = Fachada.getInstancia(); // Verificamos se foi selecionado faturamento ou arrecada��o ou contas a receber if ( form.getSelecaoRelatorio().equals( GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_FATURAMENTO ) || selecaoRelatorio.equals(GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_FATURAMENTO ) ){ if ( form.getReferenciaContabil() != null && !form.getReferenciaContabil().equals( "" ) ) { // Validamos se existe o ano mes de referencia na tabela de resumo de faturamento FiltroResumoFaturamento filtro = new FiltroResumoFaturamento(); filtro.adicionarParametro( new ParametroSimples( FiltroResumoFaturamento.ANO_MES_REFERENCIA, Util.formatarMesAnoParaAnoMesSemBarra( form.getReferenciaContabil() ) ) ); Collection<ResumoFaturamento> colResumo = fachada.pesquisar( filtro, 1, ResumoFaturamento.class.getName() ); if ( colResumo == null || colResumo.size() == 0 ){ throw new ActionServletException( "atencao.ano_mes_referencia_faturamento_inexistente", null, form.getReferenciaContabil() ); } } } else if ( form.getSelecaoRelatorio().equals( GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_CONTAS_A_RECEBER) || selecaoRelatorio.equals(GerarRelatorioParametrosContabeisActionForm.SELECAO_RELATORIO_CONTAS_A_RECEBER ) ){ if ( form.getReferenciaContabil() != null && !form.getReferenciaContabil().equals( "" ) ) { // Validamos se existe o ano mes de referencia na tabela de contas a receber FiltroContaAReceberContabil filtro = new FiltroContaAReceberContabil(); filtro.adicionarParametro( new ParametroSimples( FiltroContaAReceberContabil.ANO_MES_REFERENCIA, Util.formatarMesAnoParaAnoMesSemBarra( form.getReferenciaContabil() ) ) ); Collection<ContaAReceberContabil> colResumo = fachada.pesquisar( filtro, 1, ContaAReceberContabil.class.getName() ); if ( colResumo == null || colResumo.size() == 0 ){ throw new ActionServletException( "atencao.ano_mes_referencia_contas_a_receber_inexistente", null, form.getReferenciaContabil() ); } } } else { // Validamos se existe o ano mes de referencia na tabela de resumo de arrecadacao if ( form.getReferenciaContabil() != null && !form.getReferenciaContabil().equals( "" ) ) { FiltroResumoArrecadacao filtro = new FiltroResumoArrecadacao(); filtro.adicionarParametro( new ParametroSimples( FiltroResumoArrecadacao.ANO_MES_REFERENCIA, Util.formatarMesAnoParaAnoMesSemBarra( form.getReferenciaContabil() ) ) ); Collection<ResumoArrecadacao> colResumo = fachada.pesquisar( filtro, 1, ResumoArrecadacao.class.getName() ); if ( colResumo == null || colResumo.size() == 0 ){ throw new ActionServletException( "atencao.ano_mes_referencia_arrecadacao_inexistente", null, form.getReferenciaContabil() ); } } } } }