//método para retornar os dados do gráfico.. public JsonResult ObterMovimentacoes(MovimentacoesConsultaModel model) { try { //consultando todas as movimentações: var dados = movimentacaoFinanceiraApplicationService.Consultar(model); //retornando o total de receitas e despesas: var totalReceitas = new { Name = "Receitas", Data = new List <decimal> { dados.Where(m => m.TipoMovimentacao.Equals("Receita")).Sum(m => m.ValorMovimentacao) } }; var totalDespesas = new { Name = "Despesas", Data = new List <decimal> { dados.Where(m => m.TipoMovimentacao.Equals("Despesa")).Sum(m => m.ValorMovimentacao) } }; return(Json(new { totalReceitas, totalDespesas })); } catch (Exception e) { return(Json(e.Message)); } }
public IActionResult Relatorio(MovimentacoesRelatorioModel model) { if (ModelState.IsValid) { var consulta = new MovimentacoesConsultaModel { DataInicio = model.DataInicio, DataTermino = model.DataTermino }; //consultando as movimentações var dados = movimentacaoFinanceiraApplicationService.Consultar(consulta); try { //verificar o tipo do relatorio switch (model.TipoRelatorio) { case "EXCEL": var relatorioExcel = ExcelReport.GenerateReport (DateTime.Parse(model.DataInicio), DateTime.Parse(model.DataTermino), dados); //download do arquivo Response.Clear(); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.Headers.Add("content-disposition", "attachment; filename=relatorio.xlsx"); Response.Body.WriteAsync(relatorioExcel, 0, relatorioExcel.Length); Response.Body.Flush(); Response.StatusCode = StatusCodes.Status200OK; break; case "PDF": var relatorioPDF = PDFReport.GenerateReport (DateTime.Parse(model.DataInicio), DateTime.Parse(model.DataTermino), dados); //download do arquivo Response.Clear(); Response.ContentType = "application/pdf"; Response.Headers.Add("content-disposition", "attachment; filename=relatorio.pdf"); Response.Body.WriteAsync(relatorioPDF, 0, relatorioPDF.Length); Response.Body.Flush(); Response.StatusCode = StatusCodes.Status200OK; break; } } catch (Exception e) { TempData["MensagemErro"] = e.Message; } } return(View()); }
public List <MovimentacoesResultadoModel> Consultar(MovimentacoesConsultaModel model) { var lista = new List <MovimentacoesResultadoModel>(); foreach (var item in movimentacaoFinanceiraDomainService .Consultar(DateTime.Parse(model.DataInicio), DateTime.Parse(model.DataTermino))) { lista.Add( new MovimentacoesResultadoModel { IdMovimentacao = item.Id, NomeMovimentacao = item.Nome, DataMovimentacao = item.Data, ValorMovimentacao = item.Valor, TipoMovimentacao = item.TipoMovimentacao.ToString() } ); } return(lista); }
public IActionResult Consulta(MovimentacoesConsultaModel model) { if (ModelState.IsValid) { try { //pesquisando as movimentações por datas.. var resultado = movimentacaoFinanceiraApplicationService.Consultar(model); //enviando o resultado da pesquisa para a página TempData["Resultado"] = resultado; if (resultado.Count == 0) { TempData["MensagemAlerta"] = "Nenhuma movimentação foi encontrada para o periodo especificado."; } } catch (Exception e) { TempData["MensagemErro"] = e.Message; } } return(View()); }