public IEnumerable <BalanceViewModel> GetBalanceViewModel(Guid jobOrderId, DateTime dateFrom, DateTime dateTo, BalanceViewModel.Scale scale) { DateTime[] dates = null; switch (scale) { case BalanceViewModel.Scale.Daily: case BalanceViewModel.Scale.Weekly: var step = scale == BalanceViewModel.Scale.Weekly ? 7 : 1; dates = EachDay(dateFrom, dateTo, step).ToArray(); break; case BalanceViewModel.Scale.Monthly: dates = EachMonth(dateFrom, dateTo).ToArray(); break; case BalanceViewModel.Scale.Quarterly: dates = EachQuarter(dateFrom, dateTo).ToArray(); break; case BalanceViewModel.Scale.Yearly: dates = EachYear(dateFrom, dateTo).ToArray(); break; } var isTimeAndMaterial = (from jo in Database.JobOrders where jo.OriginalId == jobOrderId select jo.IsTimeAndMaterial).Single(); Merp.Accountancy.CommandStack.Model.JobOrder[] jobOrders = null; jobOrders = Repository.GetSeriesById <Merp.Accountancy.CommandStack.Model.JobOrder>(jobOrderId, dates); var model = new List <BalanceViewModel>(); for (int i = 0; i < dates.Count(); i++) { var balance = new BalanceViewModel() { Date = dates[i], Balance = jobOrders[i].Balance }; model.Add(balance); } return(model); }
public ActionResult GetBalance(Guid?jobOrderId, DateTime?dateFrom, DateTime?dateTo, BalanceViewModel.Scale scale) { if (!jobOrderId.HasValue || !dateFrom.HasValue || !dateTo.HasValue) { return(BadRequest()); } var model = WorkerServices.GetBalanceViewModel(jobOrderId.Value, dateFrom.Value, dateTo.Value, scale); return(Merp.Web.Mvc.JsonNetResult.JsonNet(model)); }
public ActionResult GetBalance(Guid?jobOrderId, DateTime?dateFrom, DateTime?dateTo, BalanceViewModel.Scale scale) { if (!jobOrderId.HasValue || !dateFrom.HasValue || !dateTo.HasValue) { return(new HttpStatusCodeResult(400, "Invalid parameters")); } var model = WorkerServices.GetBalanceViewModel(jobOrderId.Value, dateFrom.Value, dateTo.Value, scale); return(Merp.Web.Mvc.JsonNetResult.JsonNet(model)); }
public IEnumerable <BalanceViewModel> GetBalanceViewModel(Guid jobOrderId, DateTime dateFrom, DateTime dateTo, BalanceViewModel.Scale scale) { var model = new List <BalanceViewModel>(); var step = scale == BalanceViewModel.Scale.Weekly ? 7 : 1; foreach (DateTime day in EachDay(dateFrom, dateTo, step)) { var jobOrder = Repository.GetById <Merp.Accountancy.CommandStack.Model.JobOrder, All_JobOrders>(jobOrderId); var balance = new BalanceViewModel() { Date = day, Balance = jobOrder.CalculateBalance(EventStore, day) }; model.Add(balance); } return(model); }