コード例 #1
0
        public ActionResult InquireContractAchievement(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewResult result = (ViewResult)InquireAttendancePerformance(viewModel);

            result.ViewName = "~/Views/BusinessConsole/Module2021/InquireContractAchievement.cshtml";
            return(result);
        }
コード例 #2
0
        public ActionResult CommitAchievementIntervalReview(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (!viewModel.DateFrom.HasValue)
            {
                ModelState.AddModelError("DateFrom", "請選擇起月");
            }

            if (!viewModel.DateTo.HasValue)
            {
                ModelState.AddModelError("DateTo", "請選擇迄月");
            }

            if (ModelState.IsValid)
            {
                if (!(viewModel.DateFrom.Value.AddMonths(2) <= viewModel.DateTo.Value && viewModel.DateTo.Value <= viewModel.DateFrom.Value.AddMonths(12)))
                {
                    ModelState.AddModelError("DateTo", "查詢月數區間錯誤");
                }
            }

            if (!ModelState.IsValid)
            {
                ViewBag.ModelState = ModelState;
                return(View(ConsoleHomeController.InputErrorView));
            }

            return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public ActionResult PrepareRevenueGoal(MonthlyIndicatorQueryViewModel viewModel, bool?forcedPrepare, bool?forcedUpdate, bool?calcAverage)
        {
            if (viewModel.KeyID != null)
            {
                viewModel.PeriodID = viewModel.DecryptKeyValue();
            }

            if (!viewModel.Year.HasValue || !viewModel.Month.HasValue)
            {
                viewModel.Year  = DateTime.Today.Year;
                viewModel.Month = DateTime.Today.Month;
            }

            var item = models.GetTable <MonthlyIndicator>().Where(i => i.PeriodID == viewModel.PeriodID).FirstOrDefault();

            if (item == null)
            {
                item = models.GetTable <MonthlyIndicator>().Where(i => (i.Year == viewModel.Year && i.Month == viewModel.Month)).FirstOrDefault();
            }

            if (item == null || forcedPrepare == true)
            {
                item = models.InitializeMonthlyIndicator(viewModel.Year.Value, viewModel.Month.Value, true);
            }

            item.UpdateMonthlyAchievement(models, forcedUpdate, calcAverage);
            item.UpdateMonthlyAchievementGoal(models);

            return(Json(new { result = true, message = "OK" }, JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        public ActionResult InquireBreakEvent(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            IQueryable <MonthlyIndicator> items = viewModel.InquireYearlyIndicator(models);

            return(View("~/Views/BusinessConsole/Module2021/InquireBreakEvent.cshtml", items));
        }
コード例 #5
0
        public ActionResult InquireAttendancePerformance(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            IQueryable <MonthlyIndicator> items = viewModel.InquireMonthlyIndicator(models);

            return(View("~/Views/BusinessConsole/Module2021/InquireAttendancePerformance.cshtml", items));
        }
コード例 #6
0
        public ActionResult BranchCoachAchievement(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            if (viewModel.KeyID != null)
            {
                viewModel.PeriodID = viewModel.DecryptKeyValue();
            }

            IQueryable <MonthlyCoachRevenueIndicator> items = models.GetTable <MonthlyCoachRevenueIndicator>()
                                                              .Where(c => c.PeriodID == viewModel.PeriodID && c.BranchID == viewModel.BranchID);

            return(View("~/Views/BusinessConsole/Module/BranchCoachAchievement.cshtml", items));
        }
コード例 #7
0
        public static IQueryable <MonthlyIndicator> InquireMonthlyIndicator(this MonthlyIndicatorQueryViewModel viewModel, GenericManager <BFDataContext> models)
        {
            IQueryable <MonthlyIndicator> items = models.GetTable <MonthlyIndicator>();

            if (viewModel.DateFrom.HasValue)
            {
                items = items.Where(m => m.StartDate >= viewModel.DateFrom);
            }

            if (viewModel.DateTo.HasValue)
            {
                items = items.Where(m => m.StartDate < viewModel.DateTo.Value.AddMonths(1));
            }

            return(items);
        }
コード例 #8
0
        public ActionResult AchievementIntervalReview(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            DateTime?startDate = viewModel.DateFrom;
            DateTime?endDate   = viewModel.DateTo?.AddMonths(1);

            var monthlyItems = models.GetTable <MonthlyIndicator>().Where(i => i.StartDate >= startDate && i.StartDate < endDate);

            if (monthlyItems.Count() == 0)
            {
                return(Json(new { result = false, message = "資料錯誤!!" }, JsonRequestBehavior.AllowGet));
            }

            return(View("~/Views/BusinessConsole/Module/AchievementIntervalReview.cshtml", monthlyItems));
        }
コード例 #9
0
        public static IQueryable <MonthlyIndicator> InquireYearlyIndicator(this MonthlyIndicatorQueryViewModel viewModel, GenericManager <BFDataContext> models)
        {
            viewModel.DateTo   = DateTime.Today;
            viewModel.DateFrom = new DateTime(DateTime.Today.Year, 1, 1);

            if (viewModel.Year.HasValue)
            {
                viewModel.DateFrom = viewModel.DateFrom.Value.AddYears(viewModel.Year.Value);
            }

            IQueryable <MonthlyIndicator> items = models.GetTable <MonthlyIndicator>();

            items = items.Where(m => m.StartDate >= viewModel.DateFrom)
                    .Where(m => m.StartDate <= viewModel.DateTo);

            return(items);
        }
コード例 #10
0
        public ActionResult LoadMonthlyIndicator(MonthlyIndicatorQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            if (viewModel.KeyID != null)
            {
                viewModel.PeriodID = viewModel.DecryptKeyValue();
            }

            var indicator = models.GetTable <MonthlyIndicator>().Where(c => c.PeriodID == viewModel.PeriodID).FirstOrDefault();

            if (indicator == null)
            {
                return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "資料錯誤!!"));
            }

            return(View("", indicator));
        }
コード例 #11
0
        public static MonthlyIndicator AssertMonthlyIndicator <TEntity>(this MonthlyIndicatorQueryViewModel viewModel, ModelSource <TEntity> models)
            where TEntity : class, new()
        {
            var item = models.GetTable <MonthlyIndicator>().Where(i => i.PeriodID == viewModel.PeriodID).FirstOrDefault();

            if (item != null)
            {
                return(item);
            }

            item = models.GetTable <MonthlyIndicator>().Where(i => (i.Year == viewModel.Year && i.Month == viewModel.Month)).FirstOrDefault();
            if (item != null)
            {
                return(item);
            }

            item = models.InitializeMonthlyIndicator(viewModel.Year.Value, viewModel.Month.Value);

            return(item);
        }
コード例 #12
0
        public static MonthlyIndicator AssertMonthlyIndicator(this MonthlyIndicatorQueryViewModel viewModel, GenericManager <BFDataContext> models)

        {
            var item = models.GetTable <MonthlyIndicator>().Where(i => i.PeriodID == viewModel.PeriodID).FirstOrDefault();

            if (item != null)
            {
                return(item);
            }

            item = models.GetTable <MonthlyIndicator>().Where(i => (i.Year == viewModel.Year && i.Month == viewModel.Month)).FirstOrDefault();
            if (item != null)
            {
                return(item);
            }

            item = models.InitializeMonthlyIndicator(viewModel.Year.Value, viewModel.Month.Value);

            return(item);
        }
コード例 #13
0
        public static MonthlyIndicator GetAlmostMonthlyIndicator <TEntity>(this MonthlyIndicatorQueryViewModel viewModel, ModelSource <TEntity> models, bool?exact = null)
            where TEntity : class, new()
        {
            var item = models.GetTable <MonthlyIndicator>().Where(i => i.PeriodID == viewModel.PeriodID).FirstOrDefault();

            if (item != null)
            {
                return(item);
            }

            item = models.GetTable <MonthlyIndicator>().Where(i => (i.Year == viewModel.Year && i.Month == viewModel.Month)).FirstOrDefault();
            if (item != null)
            {
                return(item);
            }

            if (exact == true)
            {
                return(null);
            }

            DateTime period = viewModel.Year.HasValue && viewModel.Month.HasValue
                    ? new DateTime(viewModel.Year.Value, viewModel.Month.Value, 1)
                    : DateTime.Today;

            item = models.GetTable <MonthlyIndicator>().Where(i => i.StartDate <= period)
                   .OrderByDescending(i => i.StartDate).FirstOrDefault();

            if (item != null)
            {
                return(item);
            }

            item = models.GetTable <MonthlyIndicator>().Where(i => i.StartDate > period)
                   .OrderBy(i => i.StartDate).FirstOrDefault();

            return(item);
        }
コード例 #14
0
 public ActionResult SelectBreakEventCondition(MonthlyIndicatorQueryViewModel viewModel)
 {
     ViewBag.ViewModel = viewModel;
     return(View("~/Views/BusinessConsole/Module2021/SelectBreakEventCondition.cshtml"));
 }