public ActionResult AccountDate(DateTime dt) { var b = new DateTime(dt.Year, dt.Month, dt.Day); var e = b.AddDays(1); var resultEntities = _repository.Get(v => v.Status.Equals((int)DataStatus.Normal) && v.User_Id.Equals(CurrentUser.CustomerId) && v.DataDateTime >= b && v.DataDateTime < e); var sumiae = new IaeVo { Expenses = resultEntities.Where(v => v.Type.Equals((int)BillType.Expenses)).Sum(v => (decimal?)v.Amount) ?? 0, Revenue = resultEntities.Where(v => v.Type.Equals((int)BillType.Revenue)).Sum(v => (decimal?)v.Amount) ?? 0 } ; var dto = new AccountDateDto { Summ = sumiae, CurrentDate = b, Data = resultEntities.ToList() }; return View(dto); }
private Dictionary<int, IaeVo> WeekData(DateTime dt, IQueryable<BillEntity> resultEntities) { var s = DateTimeUtil.FirstDayOfWeek(dt); var e2 = DateTimeUtil.LastDayOfWeek(dt); var c = (int)((e2 - s).TotalDays) + 1; var d = new Dictionary<int, IaeVo>(c); for (var i = 0; i < c; i++) { var t = s.AddDays(i); var e = t.AddDays(1); var en = resultEntities.Where(v => v.DataDateTime >= t && v.DataDateTime < e); var iae = new IaeVo { Expenses = en.Where(v => v.Type.Equals((int)BillType.Expenses)).Sum(v => (decimal?)v.Amount) ?? 0, Revenue = en.Where(v => v.Type.Equals((int)BillType.Revenue)).Sum(v => (decimal?)v.Amount) ?? 0, Date = t }; d.Add(i + 1, iae); } return d; }
private Dictionary<int, IaeVo> YearData(DateTime dt, IQueryable<BillEntity> resultEntities) { var d = new Dictionary<int, IaeVo>(12); for (var i = 1; i <= 12; i++) { var t = new DateTime(dt.Year, i, 1); var e = t.AddMonths(1); var en = resultEntities.Where(v => v.DataDateTime >= t && v.DataDateTime < e); var iae = new IaeVo { Expenses = en.Where(v => v.Type.Equals((int)BillType.Expenses)).Sum(v => (decimal?)v.Amount) ?? 0, Revenue = en.Where(v => v.Type.Equals((int)BillType.Revenue)).Sum(v => (decimal?)v.Amount) ?? 0, Date = t }; d.Add(i, iae); } return d; }
private Dictionary<int, IaeVo> DayData(DateTime dt, IQueryable<BillEntity> resultEntities) { var d = new Dictionary<int, IaeVo>(1); var t = new DateTime(dt.Year, dt.Month, dt.Day); var e = t.AddDays(1); var en = resultEntities.Where(v => v.DataDateTime >= t && v.DataDateTime < e); var iae = new IaeVo { Expenses = en.Where(v => v.Type.Equals((int)BillType.Expenses)).Sum(v => (decimal?)v.Amount) ?? 0, Revenue = en.Where(v => v.Type.Equals((int)BillType.Revenue)).Sum(v => (decimal?)v.Amount) ?? 0, Date = t }; d.Add(t.Day, iae); return d; }
public ActionResult RunningAccount(int dateType, DateTime currentDate) { var dt = (DateType)dateType; var today = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day); DateTime startDate; DateTime endDate; switch (dt) { case DateType.Year: startDate = new DateTime(today.Year, 1, 1); endDate = startDate.AddYears(1); break; case DateType.Week: startDate = DateTimeUtil.FirstDayOfWeek(today); endDate = DateTimeUtil.LastDayOfWeek(today).AddDays(1); break; case DateType.Month: startDate = new DateTime(today.Year, today.Month, 1); endDate = startDate.AddMonths(1); break; default: startDate = new DateTime(today.Year, today.Month, today.Day); endDate = startDate.AddDays(1); break; } var resultEntities = _repository.Get(v => v.Status.Equals((int)DataStatus.Normal) && v.User_Id.Equals(CurrentUser.CustomerId) && v.DataDateTime >= startDate && v.DataDateTime < endDate); var sumiae = new IaeVo { Expenses = resultEntities.Where(v => v.Type.Equals((int)BillType.Expenses)).Sum(v => (decimal?)v.Amount) ?? 0, Revenue = resultEntities.Where(v => v.Type.Equals((int)BillType.Revenue)).Sum(v => (decimal?)v.Amount) ?? 0 } ; Dictionary<int, IaeVo> d; switch (dt) { case DateType.Year: d = YearData(today, resultEntities); break; case DateType.Week: d = WeekData(today, resultEntities); break; case DateType.Month: d = MonthData(today, resultEntities); break; default: d = DayData(today, resultEntities); break; } var dto = new RunningAccountDto { CurrentDate = today, DateType = dt, YearIae = sumiae, Data = d }; return View(dto); }