public async Task <IActionResult> RetornarDadosCliente([FromBody] FiltroDataViewModel filtro, [FromHeader] string authorization) { var usuario = await _tokenService.ExtractUsuarioToken(authorization); if (usuario is null) { return(BadRequest("")); } return(Ok(await _painelRepository.RetornarDadosUsuario(usuario.Id, filtro))); }
public async Task <List <Pedido> > RetornarPedidosData(int id, FiltroDataViewModel filtro) { if (filtro is null) { filtro = new FiltroDataViewModel() { DataInical = inicioAnoPadrao, Datafinal = FimAnoPadrao }; } return(await _context.Pedidos.AsQueryable().Where(x => x.UsuarioPedidoId == id && x.DataRegistro >= filtro.DataInical && x.DataRegistro <= filtro.Datafinal).ToListAsync()); }
public async Task <PainelViewModel> RetornarDadosUsuario(int id, FiltroDataViewModel filtro = null) { if (filtro is null) { filtro = new FiltroDataViewModel() { DataInical = inicioAnoPadrao, Datafinal = FimAnoPadrao }; } var pedidos = _context.Pedidos.AsQueryable().Where(x => x.UsuarioPedidoId == id && x.DataRegistro >= filtro.DataInical && x.DataRegistro <= filtro.Datafinal); var vendasFeitas = _context.Vendas.AsQueryable().Where(x => x.Horario >= filtro.DataInical && x.Horario <= filtro.Datafinal && x.usuarioVendaID == id); var quantidadePedidos = await pedidos.CountAsync(); var valorTotal = await pedidos.SumAsync(x => x.ValorTotal); var despesas = await(from ped in pedidos group ped by ped.Situacao into situacoes select new DespesasViewModel() { TipoDeDespesa = situacoes.Key, ValorDespesa = situacoes.Sum(p => p.ValorTotal) }).ToListAsync(); var comparativoAnual = await(from itens in _context.ItemsVenda join produtos in _context.Produtos on itens.ProdutoId equals produtos.ID join vendas in vendasFeitas on itens.VendaId equals vendas.Id group itens by produtos.Nome into produtosSelecionados select new DespesasViewModel() { TipoDeDespesa = produtosSelecionados.Key, ValorDespesa = produtosSelecionados.Sum(x => x.Quantidade) } ).ToListAsync(); var comparativoMensal = (from mes in Enumerable.Range(1, 12) join venda in vendasFeitas on mes equals venda.Horario.Month into values from ord in values.DefaultIfEmpty() group ord by mes into vendasHorario select new DespesasViewModel() { TipoDeDespesa = vendasHorario.Key.ToString(), ValorDespesa = (decimal)vendasHorario.Sum(x => x is null ? 0 : x.Total) }).ToList();