public ActionResult ViewSellsBetweenDates(ViewSellsDateViewModel sells) { if (Request.IsAuthenticated) { DateTime fromDate = DateTime.Parse(sells.FromDate); DateTime toDate = DateTime.Parse(sells.ToDate); if (ModelState.IsValid) { if (fromDate > toDate) { ViewBag.Message = 404; } else { ViewBag.Response = stockOutManager.GetSalesBetweenDate(sells); decimal sellPrice = stockOutManager.GetTotalPriceByDateRange(sells); ViewBag.SellPrice = sellPrice; decimal basePrice = stockOutManager.GetBasePriceByProduct(sells); ViewBag.MainPrice = basePrice; ViewBag.Profit = sellPrice - basePrice; } } else { ViewBag.Message = 0; } return(View()); } else { return(HttpNotFound()); } }
public List <SellsViewModels> GetSellsByDate(ViewSellsDateViewModel date) { List <SellsViewModels> viewModelses = new List <SellsViewModels>(); DateTime fromDate = DateTime.Parse(date.FromDate); DateTime toDate = DateTime.Parse(date.ToDate); var query = Context.Sells.Where(c => c.Date >= fromDate && c.Date <= toDate) .GroupBy(c => c.ItemId).Select(c => new { ItemId = c.Key, ItemName = c.Select(s => s.Item.ItemName).FirstOrDefault(), CompanyName = c.Select(s => s.Company.Name).FirstOrDefault(), Quantity = c.Sum(s => s.Quantity), TotalPrice = c.Sum(s => s.Price) }); foreach (var items in query) { SellsViewModels viewModels = new SellsViewModels(); viewModels.ItemId = items.ItemId; viewModels.ItemName = items.ItemName; viewModels.CompanyName = items.CompanyName; viewModels.Quantity = items.Quantity; viewModels.Price = items.TotalPrice; viewModelses.Add(viewModels); } return(viewModelses); }