private List <RecebimentoMes> FiltroMensal(DateTime dataInicial, DateTime dataFinal)
        {
            // var Meses = this.MontarMeses();
            var Meses      = this.MontarMeses(dataInicial, dataFinal);
            var mes        = new RecebimentoMes();
            var assinatura = new RecebimentoSerieFormaPagamento();

            int mesAtual        = 0;
            int anoAtual        = 0;
            int assinaturaAtual = 0;
            //Cartao
            bool ConsultaErrada = false;

            do
            {
                if (bd.LerString("Codigo") == "C")
                {
                    if (mesAtual != bd.LerDateTime("DataVenda").Month)
                    {
                        mesAtual        = bd.LerDateTime("DataVenda").Month;
                        anoAtual        = bd.LerDateTime("DataVenda").Year;
                        mes             = Meses.Where(c => c.Mes == mesAtual && c.Ano == anoAtual).FirstOrDefault();
                        assinaturaAtual = 0;
                    }

                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                    }
                    assinatura.Cartoes           += bd.LerDecimal("Cartao");
                    assinatura.QuantidadeCartoes += bd.LerInt("Quantidade");
                }
                else
                {
                    ConsultaErrada = true;
                    break;
                }
            } while (bd.Consulta().Read());

            if (!ConsultaErrada)
            {
                bd.Consulta().NextResult();
            }

            // Boleto
            if (ConsultaErrada || bd.Consulta().Read())
            {
                ConsultaErrada  = false;
                mesAtual        = 0;
                assinaturaAtual = 0;

                do
                {
                    if (bd.LerString("Codigo") == "B")
                    {
                        if (mesAtual != bd.LerDateTime("DataVenda").Month)
                        {
                            mesAtual        = bd.LerDateTime("DataVenda").Month;
                            anoAtual        = bd.LerDateTime("DataVenda").Year;
                            mes             = Meses.Where(c => c.Mes == mesAtual && c.Ano == anoAtual).FirstOrDefault();
                            assinaturaAtual = 0;
                        }
                        if (assinaturaAtual != bd.LerInt("ID"))
                        {
                            assinaturaAtual = bd.LerInt("ID");
                            assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                        }
                        if (assinatura == null)
                        {
                            assinatura = new RecebimentoSerieFormaPagamento();
                            assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                            assinatura.Assinatura   = bd.LerString("Nome");
                            mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                        }

                        decimal boletosAbertos = bd.LerDecimal("ValorReceber");
                        decimal boletosPagos   = bd.LerDecimal("ValorRecebido");

                        if (boletosAbertos > 0)
                        {
                            assinatura.QuantidadeBoletosAbertos += bd.LerInt("Quantidade");
                        }
                        else
                        {
                            assinatura.QuantidadeBoletosPagos += bd.LerInt("Quantidade");
                        }

                        assinatura.BoletosAbertos += boletosAbertos;
                        assinatura.BoletosPagos   += boletosPagos;
                    }
                    else
                    {
                        ConsultaErrada = true;
                        break;
                    }
                } while (bd.Consulta().Read());
            }


            if (!ConsultaErrada)
            {
                bd.Consulta().NextResult();
            }

            // Dinheiro
            if (bd.Consulta().Read())
            {
                ConsultaErrada  = false;
                mesAtual        = 0;
                assinaturaAtual = 0;

                do
                {
                    if (bd.LerString("Codigo") == "D")
                    {
                        if (mesAtual != bd.LerDateTime("DataVenda").Month)
                        {
                            mesAtual        = bd.LerDateTime("DataVenda").Month;
                            anoAtual        = bd.LerDateTime("DataVenda").Year;
                            mes             = Meses.Where(c => c.Mes == mesAtual && c.Ano == anoAtual).FirstOrDefault();
                            assinaturaAtual = 0;
                        }

                        if (assinaturaAtual != bd.LerInt("ID"))
                        {
                            assinaturaAtual = bd.LerInt("ID");
                            assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                        }

                        if (assinatura == null)
                        {
                            assinatura = new RecebimentoSerieFormaPagamento();
                            assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                            assinatura.Assinatura   = bd.LerString("Nome");
                            mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                        }

                        assinatura.Dinheiros           += bd.LerDecimal("Dinheiro");
                        assinatura.QuantidadeDinheiros += bd.LerInt("Quantidade");
                    }
                    else
                    {
                        ConsultaErrada = true;
                        break;
                    }
                } while (bd.Consulta().Read());
            }

            if (!ConsultaErrada)
            {
                bd.Consulta().NextResult();
            }

            // cheque

            if (bd.Consulta().Read())
            {
                mesAtual        = 0;
                assinaturaAtual = 0;
                do
                {
                    if (mesAtual != bd.LerDateTime("DataVenda").Month)
                    {
                        mesAtual        = bd.LerDateTime("DataVenda").Month;
                        anoAtual        = bd.LerDateTime("DataVenda").Year;
                        mes             = Meses.Where(c => c.Mes == mesAtual && c.Ano == anoAtual).FirstOrDefault();
                        assinaturaAtual = 0;
                    }

                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                    }

                    assinatura.Cheques           += bd.LerDecimal("Cheque");
                    assinatura.QuantidadeCheques += bd.LerInt("Quantidade");
                } while (bd.Consulta().Read());
            }


            return(this.LimparMeses(Meses, dataInicial, dataFinal));
        }
        private List <RecebimentoPeriodo> FiltroPeriodo(int assinaturaTipoID)
        {
            var Periodos   = this.MontarPeriodos(assinaturaTipoID);
            var periodo    = new RecebimentoPeriodo();
            var assinatura = new RecebimentoSerieFormaPagamento();

            int periodoAtual    = 0;
            int assinaturaAtual = 0;

            //cartao
            do
            {
                if (periodoAtual != bd.LerInt("Periodo"))
                {
                    periodoAtual = bd.LerInt("Periodo");
                    periodo      = Periodos.Where(c => (int)c.Periodo == bd.LerInt("Periodo")).FirstOrDefault();
                }

                if (assinaturaAtual != bd.LerInt("ID"))
                {
                    assinaturaAtual = bd.LerInt("ID");
                    assinatura      = periodo.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                }

                if (assinatura == null)
                {
                    assinatura = new RecebimentoSerieFormaPagamento();
                    assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                    assinatura.Assinatura   = bd.LerString("Nome");
                    periodo.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                }

                assinatura.QuantidadeCartoes += bd.LerInt("Quantidade");
                assinatura.Cartoes           += bd.LerDecimal("Cartao");
            } while (bd.Consulta().Read());

            bd.Consulta().NextResult();
            //boleto
            if (bd.Consulta().Read())
            {
                do
                {
                    if (periodoAtual != bd.LerInt("Periodo"))
                    {
                        periodoAtual = bd.LerInt("Periodo");
                        periodo      = Periodos.Where(c => (int)c.Periodo == bd.LerInt("Periodo")).FirstOrDefault();
                    }

                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = periodo.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        periodo.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                    }

                    decimal boletosAbertos = bd.LerDecimal("ValorReceber");
                    decimal boletosPagos   = bd.LerDecimal("ValorRecebido");

                    if (boletosAbertos > 0)
                    {
                        assinatura.QuantidadeBoletosAbertos += bd.LerInt("Quantidade");
                    }
                    else
                    {
                        assinatura.QuantidadeBoletosPagos += bd.LerInt("Quantidade");
                    }

                    assinatura.BoletosAbertos += boletosAbertos;
                    assinatura.BoletosPagos   += boletosPagos;
                } while (bd.Consulta().Read());
            }

            bd.Consulta().NextResult();
            //dinheiro
            if (bd.Consulta().Read())
            {
                do
                {
                    if (periodoAtual != bd.LerInt("Periodo"))
                    {
                        periodoAtual = bd.LerInt("Periodo");
                        periodo      = Periodos.Where(c => (int)c.Periodo == bd.LerInt("Periodo")).FirstOrDefault();
                    }

                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = periodo.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        periodo.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                    }

                    assinatura.QuantidadeDinheiros += bd.LerInt("Quantidade");
                    assinatura.Dinheiros           += bd.LerDecimal("Dinheiro");
                } while (bd.Consulta().Read());
            }


            bd.Consulta().NextResult();
            //cheque
            if (bd.Consulta().Read())
            {
                do
                {
                    if (periodoAtual != bd.LerInt("Periodo"))
                    {
                        periodoAtual = bd.LerInt("Periodo");
                        periodo      = Periodos.Where(c => (int)c.Periodo == bd.LerInt("Periodo")).FirstOrDefault();
                    }

                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = periodo.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        periodo.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                    }

                    assinatura.QuantidadeCheques += bd.LerInt("Quantidade");
                    assinatura.Cheques           += bd.LerDecimal("Cheque");
                } while (bd.Consulta().Read());
            }

            return(this.LimparPeriodos(Periodos));
        }
        private List <RecebimentoMes> FiltroMensal()
        {
            var Meses      = this.MontarMeses();
            var mes        = new RecebimentoMes();
            var assinatura = new RecebimentoSerieFormaPagamento();

            int mesAtual        = 0;
            int assinaturaAtual = 0;

            do
            {
                if (mesAtual != bd.LerDateTime("DataVenda").Month)
                {
                    mesAtual = bd.LerDateTime("DataVenda").Month;
                    mes      = Meses.Where(c => c.Mes == bd.LerDateTime("DataVenda").Month).FirstOrDefault();
                }

                if (assinaturaAtual != bd.LerInt("ID"))
                {
                    assinaturaAtual = bd.LerInt("ID");
                    assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                }

                if (assinatura == null)
                {
                    assinatura = new RecebimentoSerieFormaPagamento();
                    assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                    assinatura.Assinatura   = bd.LerString("Nome");
                    mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                }

                assinatura.Cartoes           += bd.LerDecimal("Cartao");
                assinatura.QuantidadeCartoes += bd.LerInt("Quantidade");
            } while (bd.Consulta().Read());

            bd.Consulta().NextResult();

            if (!bd.Consulta().Read())
            {
                return(this.LimparMeses(Meses));
            }

            mesAtual        = 0;
            assinaturaAtual = 0;

            do
            {
                if (mesAtual != bd.LerDateTime("DataVenda").Month)
                {
                    mesAtual = bd.LerDateTime("DataVenda").Month;
                    mes      = Meses.Where(c => c.Mes == bd.LerDateTime("DataVenda").Month).FirstOrDefault();
                }
                if (assinaturaAtual != bd.LerInt("ID"))
                {
                    assinaturaAtual = bd.LerInt("ID");
                    assinatura      = mes.ListaRecebimentoMesSerieFormaPagamento.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                }
                if (assinatura == null)
                {
                    assinatura = new RecebimentoSerieFormaPagamento();
                    assinatura.AssinaturaID = assinaturaAtual = bd.LerInt("ID");
                    assinatura.Assinatura   = bd.LerString("Nome");
                    mes.ListaRecebimentoMesSerieFormaPagamento.Add(assinatura);
                }

                decimal boletosAbertos = bd.LerDecimal("ValorReceber");
                decimal boletosPagos   = bd.LerDecimal("ValorRecebido");

                if (boletosAbertos > 0)
                {
                    assinatura.QuantidadeBoletosAbertos += bd.LerInt("Quantidade");
                }
                else
                {
                    assinatura.QuantidadeBoletosPagos += bd.LerInt("Quantidade");
                }

                assinatura.BoletosAbertos += boletosAbertos;
                assinatura.BoletosPagos   += boletosPagos;
            } while (bd.Consulta().Read());
            return(this.LimparMeses(Meses));
        }
        private List <RecebimentoSerieFormaPagamento> Total()
        {
            List <RecebimentoSerieFormaPagamento> assinaturas = new List <RecebimentoSerieFormaPagamento>();
            var assinatura      = new RecebimentoSerieFormaPagamento();
            int assinaturaAtual = 0;

            //Cartao
            do
            {
                if (assinaturaAtual != bd.LerInt("ID"))
                {
                    assinaturaAtual = bd.LerInt("ID");
                    assinatura      = assinaturas.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                }

                if (assinatura == null)
                {
                    assinatura = new RecebimentoSerieFormaPagamento();
                    assinatura.AssinaturaID = bd.LerInt("ID");
                    assinatura.Assinatura   = bd.LerString("Nome");
                    assinaturas.Add(assinatura);
                }

                decimal cartoes = bd.LerDecimal("Cartao");
                decimal faturas = bd.LerDecimal("FaturaAberta");

                if (faturas > 0)
                {
                    assinatura.QuantidadeFaturasAbertas += bd.LerInt("Quantidade");
                }
                else
                {
                    assinatura.QuantidadeCartoes += bd.LerInt("Quantidade");
                }

                assinatura.Cartoes        += cartoes;
                assinatura.FaturasAbertas += faturas;
            } while (bd.Consulta().Read());

            bd.Consulta().NextResult();
            //boleto
            if (bd.Consulta().Read())
            {
                do
                {
                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = assinaturas.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        assinaturas.Add(assinatura);
                    }

                    decimal boletosAbertos = bd.LerDecimal("ValorReceber");
                    decimal boletosPagos   = bd.LerDecimal("ValorRecebido");

                    if (boletosAbertos > 0)
                    {
                        assinatura.QuantidadeBoletosAbertos += bd.LerInt("Quantidade");
                    }
                    else
                    {
                        assinatura.QuantidadeBoletosPagos += bd.LerInt("Quantidade");
                    }

                    assinatura.BoletosAbertos += boletosAbertos;
                    assinatura.BoletosPagos   += boletosPagos;
                } while (bd.Consulta().Read());
            }

            bd.Consulta().NextResult();
            //dinheiro
            if (bd.Consulta().Read())
            {
                do
                {
                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = assinaturas.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        assinaturas.Add(assinatura);
                    }


                    assinatura.QuantidadeDinheiros += bd.LerInt("Quantidade");
                    assinatura.Dinheiros           += bd.LerDecimal("Dinheiro");
                } while (bd.Consulta().Read());
            }

            bd.Consulta().NextResult();
            //cheque
            if (bd.Consulta().Read())
            {
                do
                {
                    if (assinaturaAtual != bd.LerInt("ID"))
                    {
                        assinaturaAtual = bd.LerInt("ID");
                        assinatura      = assinaturas.Where(c => c.AssinaturaID == bd.LerInt("ID")).FirstOrDefault();
                    }

                    if (assinatura == null)
                    {
                        assinatura = new RecebimentoSerieFormaPagamento();
                        assinatura.AssinaturaID = bd.LerInt("ID");
                        assinatura.Assinatura   = bd.LerString("Nome");
                        assinaturas.Add(assinatura);
                    }


                    assinatura.QuantidadeCheques += bd.LerInt("Quantidade");
                    assinatura.Cheques           += bd.LerDecimal("Cheque");
                } while (bd.Consulta().Read());
            }



            return(assinaturas);
        }