public HttpResponseMessage ReceitasPorDespesas() { var result = new RelReceitasPorDespesas { Despesas = new List <DadosReceita>(), Receitas = new List <DadosReceita>() }; try { var usuarioLogado = base.GetUsuarioLogado(); var model = _Dservice.ReceitasPorDespesas(usuarioLogado.IdClinica, usuarioLogado.IdUnidadeAtendimento); //adiciono os meses que não teve faturamento for (int i = 0; i <= 11; i++) { if (!model.Despesas.Where(p => p.Mes == i).Any()) { result.Despesas.Add(new DadosReceita { Ano = DateTime.Now.Year, Mes = i, Valor = 0 }); } if (!model.Receitas.Where(p => p.Mes == i).Any()) { model.Receitas.Add(new DadosReceita { Ano = DateTime.Now.Year, Mes = i, Valor = 0 }); } } //ordena os meses result.Despesas.AddRange(model.Despesas); result.Receitas.AddRange(model.Receitas); result.Despesas.OrderBy(x => x.Mes).ToList(); result.Receitas.OrderBy(x => x.Mes).ToList(); return(Request.CreateResponse(HttpStatusCode.OK, result)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public RelReceitasPorDespesas ReceitasPorDespesas(int idclinica, int idunidade) { //somente do ano atual var ano = DateTime.Now.Year; var model = new RelReceitasPorDespesas(); string sqlReceber = "SELECT month(P.DataAcerto) as Mes, " + " year(P.DataAcerto) as Ano, " + " Sum(P.Valor) Valor " + " from Financeiro F, FinanceiroParcela P " + " WHERE F.IdFinanceiro = P.IdFinanceiro " + " and F.IdClinica = " + idclinica + " " + " and F.IdUnidadeAtendimento = " + idunidade + " " + " and F.Tipo = 'Contas a Receber' " + " AND P.Situacao = 'Baixado' " + " and year(P.DataAcerto) = " + ano + " " + " GROUP BY ano, mes " + " ORDER BY ano, mes asc"; var receber = Context.Database.SqlQuery <DadosReceita>(sqlReceber).ToList(); model.Receitas = receber; string sqlPagar = "SELECT month(P.DataAcerto) as Mes, " + " year(P.DataAcerto) as Ano, " + " Sum(P.Valor) Valor " + " from Financeiro F, FinanceiroParcela P " + " WHERE F.IdFinanceiro = P.IdFinanceiro " + " and F.IdClinica = " + idclinica + " " + " and F.IdUnidadeAtendimento = " + idunidade + " " + " and F.Tipo = 'Contas a Pagar' " + " AND P.Situacao = 'Baixado' " + " and year(P.DataAcerto) = " + ano + " " + " GROUP BY ano, mes " + " ORDER BY ano, mes asc"; var pagar = Context.Database.SqlQuery <DadosReceita>(sqlPagar).ToList(); model.Despesas = pagar; return(model); }