public object RelatorioRecebimentoMes(int assinaturaTipoID, int temporada, EnumFiltro filtro)
        {
            try
            {
                switch (filtro)
                {
                case EnumFiltro.Mensal:
                case EnumFiltro.Periodo:
                    bd.Consulta("EXEC TotalFinanceiroPorSerieFormaPagamentoData " + assinaturaTipoID + ", 0, '" + temporada + "'");
                    break;

                case EnumFiltro.Assinatura:
                    bd.Consulta("EXEC TotalFinanceiroPorSerieFormaPagamentoData " + assinaturaTipoID + ", 1, '" + temporada + "'");
                    break;

                default:
                    throw new Exception("Filtro inválido!");
                }

                if (!bd.Consulta().Read())
                {
                    throw new Exception("Não existem resultados a serem exibidos.");
                }

                switch (filtro)
                {
                case EnumFiltro.Mensal:
                    return(this.FiltroMensal());

                case EnumFiltro.Periodo:
                    return(this.FiltroPeriodo(assinaturaTipoID));

                case EnumFiltro.Assinatura:
                    return(this.Total());

                default:
                    throw new Exception("Filtro inválido!");
                }
            }
            finally
            {
                bd.Fechar();
            }
        }
        public object RelatorioRecebimentoPeriodo(int assinaturaTipoID, int temporada, EnumFiltro filtro, string DataInicial, string DataFinal)
        {
            try
            {
                DateTime dataInicial = DateTime.MaxValue;
                DateTime dataFinal   = DateTime.MaxValue;


                if (filtro == EnumFiltro.Mensal)
                {
                    if (!string.IsNullOrEmpty(DataInicial) && Utilitario.IsDateTime(DataInicial, "dd/MM/yyyy"))
                    {
                        var mesInicial = DataInicial.Split('/');
                        mesInicial[0] = "01";
                        dataInicial   = DateTime.ParseExact(mesInicial[0] + mesInicial[1] + mesInicial[2], "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }

                    if (!string.IsNullOrEmpty(DataFinal) && Utilitario.IsDateTime(DataFinal, "dd/MM/yyyy"))
                    {
                        var mesFinal = DataFinal.Split('/');
                        mesFinal[0] = "01";
                        string anoNovo = (Convert.ToInt32(mesFinal[2]) + 1).ToString();
                        mesFinal[2] = mesFinal[1] == "12" ? anoNovo : mesFinal[2];

                        int mesNovo = Convert.ToInt32(mesFinal[1]) + 1;
                        mesFinal[1] = mesFinal[1] == "12" ? "01" : mesNovo > 9 ? mesNovo.ToString() : "0" + mesNovo;

                        dataFinal = DateTime.ParseExact(mesFinal[0] + mesFinal[1] + mesFinal[2], "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture).AddDays(-1);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(DataInicial) && Utilitario.IsDateTime(DataInicial, "dd/MM/yyyy"))
                    {
                        dataInicial = DateTime.ParseExact(DataInicial.Replace("/", ""), "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }

                    if (!string.IsNullOrEmpty(DataFinal) && Utilitario.IsDateTime(DataFinal, "dd/MM/yyyy"))
                    {
                        dataFinal = DateTime.ParseExact(DataFinal.Replace("/", ""), "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture).AddDays(1);
                    }
                }


                string strDataInicial = dataInicial.ToString("yyyyMMddHHmmss");

                string strDataFinal = dataFinal.ToString("yyyyMMddHHmmss");



                switch (filtro)
                {
                case EnumFiltro.Mensal:
                    bd.Consulta("EXEC TotalFinanceiroPorSerieFormaPagamentoDataPorData " + assinaturaTipoID + ", 0, '" + temporada + "' , '" + strDataInicial + "' , '" + strDataFinal + "'");
                    break;

                case EnumFiltro.PorData:
                    bd.Consulta("EXEC TotalFinanceiroPorSerieFormaPagamentoDataPorData " + assinaturaTipoID + ", 1, '" + temporada + "' , '" + strDataInicial + "' , '" + strDataFinal + "'");
                    break;

                default:
                    throw new Exception("Filtro inválido!");
                }

                if (!bd.Consulta().Read())
                {
                    throw new Exception("Não existem resultados a serem exibidos.");
                }

                switch (filtro)
                {
                case EnumFiltro.Mensal:
                    return(this.FiltroMensal(dataInicial, dataFinal));

                case EnumFiltro.PorData:
                    return(this.Total());

                default:
                    throw new Exception("Filtro inválido!");
                }
            }
            finally
            {
                bd.Fechar();
            }
        }