protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            //Есть ли у сайта доступ к модулю
            if (!_Repository.ModuleAllowed(ControllerName))
            {
                Response.Redirect("/page/error/451");
            }

            //Шаблон
            ViewName = _Repository.GetModuleView(ControllerName, ActionName);
            if (string.IsNullOrEmpty(ViewName))
            {
                throw new Exception("Не указан шаблон представления для данного контроллера и метода");
            }

            model = new StatisticsFrontModel()
            {
                LayoutInfo  = _layoutData,
                Breadcrumbs = _breadcrumb,
                PageName    = _pageName,
                User        = CurrentUser
            };
        }
示例#2
0
        /// <summary>
        /// Дебит кредит баланс
        /// </summary>
        /// <returns></returns>
        public ActionResult DebitCredit()
        {
            if (!_Repository.ModuleAllowed(ControllerName))
            {
                Response.Redirect("/page/error/451");
            }

            //Шаблон
            ViewName = _Repository.GetModuleView(ControllerName, ActionName);
            if (string.IsNullOrEmpty(ViewName))
            {
                throw new Exception("Не указан шаблон представления для данного контроллера и метода");
            }

            var filter = GetFilter();

            //if (!filter.Date.HasValue)
            //    filter.Date = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0);
            //if (!filter.DateEnd.HasValue)
            //    filter.DateEnd = DateTime.Now;

            var model = new StatisticsFrontModel();

            ViewName = _Repository.GetModuleView(ControllerName, ActionName);

            model.Filter = filter;

            var userId     = CurrentUser.UserId;
            var userSubscr = _Repository.GetUserSubscrDefault(userId);

            if (userSubscr != null)
            {
                var pFilter = FilterModel.Extend <LkFilter>(filter);
                pFilter.Size = 10;


                var subscrBalances = _Repository.GetSubscrSaldoInfo(userId);
                model.Balance = (subscrBalances != null) ? subscrBalances.SingleOrDefault(s => s.Default == true) : null;

                model.DebitCreditData = _Repository.GetDebitCreditData(userSubscr.Id, pFilter);
                //if (model.DebitCreditData != null && model.DebitCreditData.Items != null && model.DebitCreditData.Items.Count() > 0)
                //{
                //    foreach (var balance in model.DebitCreditData.Items)
                //    {
                //        if (balance.PeriodId.HasValue)
                //        {
                //            var str = balance.PeriodId.Value.ToString();
                //            var year = str.Substring(0, 4);
                //            var month = str.Substring(4, 1) == "0" ? str.Substring(5, 1) : str.Substring(4, 2);

                //            balance.Period = new DateTime(int.Parse(year), int.Parse(month), 1, 0, 0, 0);
                //        }
                //    }
                //}
            }

            return(PartialView(ViewName, model));
        }
示例#3
0
        /// <summary>
        /// Графики - ключевые показатели
        /// </summary>
        /// <returns></returns>
        public ActionResult Chart()
        {
            if (!_Repository.ModuleAllowed(ControllerName))
            {
                Response.Redirect("/page/error/451");
            }

            //Шаблон
            ViewName = _Repository.GetModuleView(ControllerName, ActionName);
            if (string.IsNullOrEmpty(ViewName))
            {
                throw new Exception("Не указан шаблон представления для данного контроллера и метода");
            }

            var filter = GetFilter();

            if (!filter.Date.HasValue)
            {
                filter.Date = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0);
            }
            if (!filter.DateEnd.HasValue)
            {
                filter.DateEnd = DateTime.Now;
            }

            var model = new StatisticsFrontModel();

            ViewName = _Repository.GetModuleView(ControllerName, ActionName);

            model.Filter = filter;

            var userId     = CurrentUser.UserId;
            var userSubscr = _Repository.GetUserSubscrDefault(userId);

            if (userSubscr != null)
            {
                var pFilter = FilterModel.Extend <LkFilter>(filter);

                //Для двойного графика (начисления, платежи)
                var balances = _Repository.GetDebitCreditStatisticsList(userSubscr.Id, pFilter);

                if (balances != null && balances.Count() > 0)
                {
                    //foreach (var balance in balances)
                    //{
                    //    if (balance.PeriodId.HasValue)
                    //    {
                    //        var str = balance.PeriodId.Value.ToString();
                    //        var year = str.Substring(0, 4);
                    //        var month = str.Substring(4, 1) == "0" ? str.Substring(5, 1) : str.Substring(4, 2);

                    //        balance.Period = new DateTime(int.Parse(year), int.Parse(month), 1, 0, 0, 0);
                    //    }
                    //}
                    var data = balances.Reverse();
                    model.InvoicesAndPaymentsByDateJson = "[['Месяц','Начисления, ₽','Платежи, ₽']," + string.Join(",", data.Select(s => string.Format("['{0}',{1}, {2}]", s.Period.Value.ToString("MMM"), s.InvoiceAmount.Value.ToString("0.00").Replace(",", "."), s.PaymentAmount.Value.ToString("0.00").Replace(",", ".")))) + "]";

                    model.InvoicesSumByPeriod = data.Sum(i => i.InvoiceAmount) ?? 0.0m;
                    model.PaymentsSumByPeriod = data.Sum(p => p.PaymentAmount) ?? 0.0m;
                }

                #region Графики по отдельности (закоментировано)
                //Для графика (начисления)
                //var invoices = _Repository.GetInvoicesList(userSubscr.Id, pFilter);
                //if(invoices!= null && invoices.Count()>0)
                //{
                //    var data = invoices.Where(i => i.DocTypeId == 39)
                //        .GroupBy(p => p.Period)
                //        .Select(p => new InvoiceModel()
                //        {
                //            Date = new DateTime(p.First().Date.Year, p.First().Date.Month, 1, 0, 0, 0, 0),
                //            Period = p.First().Period,
                //            Amount = p.Sum(c => c.Amount),
                //        }).ToArray();

                //    model.PaymentsByDateJson = "[['Месяц','руб']," + string.Join(",", data.Where(s => s.Amount != null).Select(s => string.Format("['{0}',{1}]", s.Date.ToString("MMM"), s.Amount.Value.ToString("0.00").Replace(",", ".")))) + "]";
                //}


                //Для графика (платежи)
                //var payments = _Repository.GetPaymentsList(userSubscr.Id, pFilter);
                //if (payments != null && payments.Count() > 0)
                //{
                //    var data = payments
                //        .GroupBy(p => p.Period)
                //        .Select(p => new PaymentModel()
                //        {
                //            Date = new DateTime(p.First().Date.Year, p.First().Date.Month, 1, 0, 0, 0, 0),
                //            Period = p.First().Period,
                //            Amount = p.Sum(c => c.Amount),
                //        }).ToArray();

                //    model.InvoicesByDateJson = "[['Месяц','руб']," + string.Join(",", data.Where(s => s.Amount != null).Select(s => string.Format("['{0}',{1}]", s.Date.ToString("MMM"), s.Amount.Value.ToString("0.00").Replace(",", ".")))) + "]";
                //}

                #endregion
            }

            return(PartialView(ViewName, model));
        }