コード例 #1
0
 public IEnumerable <Receitas> SearchReceitas(SearchReceita sr)
 {
     return(_receitasRepositoryReadOnly.SearchReceitas(sr));
 }
コード例 #2
0
        public IEnumerable <Receitas> SearchReceitas(SearchReceita sr)
        {
            using (var cn = Connection)
            {
                cn.Open();
                bool hasData = false;
                var  sql     = @"select * from Receitas r 
                                inner join CategoriaFinanceira cf on r.CategoriaFinanceiraId = cf.CategoriaFinanceiraId
                                left join Cliente c on r.ClienteId = c.ClienteId
                                left join TipoPagamento tp on r.TipoPagamentoId = tp.TipoPagamentoId
                                left join SubCategoriaFinanceira sc on r.SubCategoriaFinanceiraId = sc.SubCategoriaFinanceiraId
                                where 1 = 1";

                var dt = new DateTime();

                if (sr.EmissaoInicio != dt)
                {
                    sql     = sql + " AND r.DataEmissao >= '" + sr.EmissaoInicio.ToString("yyyy-MM-dd 00:00:00") + "'";
                    hasData = true;
                }

                if (sr.EmissaoFim != dt)
                {
                    sql     = sql + " AND r.DataEmissao <= '" + sr.EmissaoFim.ToString("yyyy-MM-dd 23:59:59") + "'";
                    hasData = true;
                }


                if (sr.PagamentoInicio != dt)
                {
                    sql     = sql + " AND r.DataPagamento >= '" + sr.PagamentoInicio.ToString("yyyy-MM-dd 00:00:00") + "'";
                    hasData = true;
                }

                if (sr.PagamentoFim != dt)
                {
                    sql     = sql + " AND r.DataPagamento <= '" + sr.PagamentoFim.ToString("yyyy-MM-dd 23:59:59") + "'";
                    hasData = true;
                }


                if (sr.VencimentoInicio != dt)
                {
                    sql     = sql + " AND r.DataVencimento >= '" + sr.VencimentoInicio.ToString("yyyy-MM-dd 00:00:00") + "'";
                    hasData = true;
                }

                if (sr.VencimentoFim != dt)
                {
                    sql     = sql + " AND r.DataVencimento <= '" + sr.VencimentoFim.ToString("yyyy-MM-dd 23:59:59") + "'";
                    hasData = true;
                }

                if (!hasData)
                {
                    sql = sql + " AND Month(r.DataVencimento) = Month(GetDate()) and YEAR(r.DataVencimento) = YEAR(getDate())";
                }

                var receitas = cn.Query <Receitas, CategoriaFinanceira, Cliente, TipoPagamento, SubCategoriaFinanceira, Receitas>(
                    sql,
                    (r, cf, c, tp, sc) =>
                {
                    r.CategoriaFinanceiraId = cf.CategoriaFinanceiraId;
                    r.Cliente                = c;
                    r.CategoriaFinanceira    = cf;
                    r.TipoPagamento          = tp;
                    r.SubCategoriaFinanceira = sc;
                    return(r);
                }, splitOn: "ReceitasId, CategoriaFinanceiraId, ClienteId, TipoPagamentoId, SubCategoriaFinanceiraId");


                cn.Close();
                return(receitas);
            }
        }