Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #4
0
        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);
        }