public IEnumerable <Receitas> SearchReceitas(SearchReceita sr) { return(_receitasRepositoryReadOnly.SearchReceitas(sr)); }
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); } }