public ActionResult CommitLessonPrice(LessonPriceViewModel viewModel) { ViewBag.ViewModel = viewModel; if (!ModelState.IsValid) { ViewBag.ModelState = ModelState; return(View("EditLessonPrice")); } LessonPriceType item = models.GetTable <LessonPriceType>() .Where(p => p.PriceID == viewModel.PriceID).FirstOrDefault(); if (item == null) { item = new LessonPriceType { PriceID = models.GetTable <LessonPriceType>().Select(p => p.PriceID).Max() + 1, Status = (int)Naming.DocumentLevelDefinition.正常 }; models.GetTable <LessonPriceType>().InsertOnSubmit(item); } item.CoachPayoff = viewModel.CoachPayoff; item.CoachPayoffCreditCard = viewModel.CoachPayoffCreditCard; item.Description = viewModel.Description; item.UsageType = viewModel.UsageType; item.ListPrice = viewModel.ListPrice; models.SubmitChanges(); ViewBag.Message = "資料已儲存!!"; return(ConfigureAll()); }
public static LessonPriceType GetOriginalSeriesPrice(this LessonPriceType priceItem, GenericManager <BFDataContext> models) { var seriesItem = models.GetTable <V_LessonUnitPrice>() .Where(p => p.DurationInMinutes == priceItem.DurationInMinutes) .Where(p => p.BranchID == priceItem.BranchID) .Join(models.GetTable <LessonPriceType>(), p => p.PriceID, s => s.PriceID, (p, s) => s) .OrderByDescending(s => s.PriceID); return(seriesItem.FirstOrDefault()); //return item.LessonPriceType.CurrentPriceSeries?.AllLessonPrice.Where(p => p.LowerLimit == 1).FirstOrDefault(); }
public ActionResult CommitProjectCourse(LessonPriceQueryViewModel viewModel) { ViewBag.ViewModel = viewModel; viewModel.Description = viewModel.Description.GetEfficientString(); if (viewModel.Description == null) { ModelState.AddModelError("Description", "請輸入專案名稱!!"); } if (!viewModel.ListPrice.HasValue) { ModelState.AddModelError("ListPrice", "請輸入價格!!"); } if (!ModelState.IsValid) { ViewBag.ModelState = ModelState; return(View("~/Views/Shared/ReportInputError.ascx")); } LessonPriceType item = models.GetTable <LessonPriceType>() .Where(p => p.PriceID == viewModel.PriceID).FirstOrDefault(); if (item == null) { item = new LessonPriceType { PriceID = models.GetTable <LessonPriceType>().Select(p => p.PriceID).Max() + 1, Status = (int)Naming.LessonSeriesStatus.已啟用, LowerLimit = 999 }; models.GetTable <LessonPriceType>().InsertOnSubmit(item); } item.Description = viewModel.Description; item.ListPrice = item.CoachPayoffCreditCard = item.CoachPayoff = viewModel.ListPrice; item.Status = viewModel.Status; item.BranchID = viewModel.BranchID; item.DurationInMinutes = viewModel.DurationInMinutes; models.SubmitChanges(); return(Json(new { result = true })); }
public ActionResult EditLessonPrice(int?priceID) { LessonPriceViewModel viewModel = new LessonPriceViewModel { }; LessonPriceType item = models.GetTable <LessonPriceType>().Where(p => p.PriceID == priceID).FirstOrDefault(); if (item != null) { viewModel.PriceID = item.PriceID; viewModel.Description = item.Description; viewModel.ListPrice = item.ListPrice; viewModel.Status = item.Status; viewModel.UsageType = item.UsageType; viewModel.CoachPayoff = item.CoachPayoff; viewModel.CoachPayoffCreditCard = item.CoachPayoffCreditCard; } ViewBag.ViewModel = viewModel; return(View()); }
public ActionResult UpdateLessonPrice(int priceID, int status) { LessonPriceType item = models.GetTable <LessonPriceType>().Where(p => p.PriceID == priceID).FirstOrDefault(); if (item == null) { ViewBag.Message = "課程類別資料不存在!!"; return(LessonPriceTypeList()); } item.Status = status; models.SubmitChanges(); if (status == (int)Naming.DocumentLevelDefinition.正常) { ViewBag.Message = "課程類別已啟用!!"; } else if (status == (int)Naming.DocumentLevelDefinition.已刪除) { ViewBag.Message = "課程類別已停售!!"; } return(ConfigureAll()); }
public ActionResult CommitPriceSeries(LessonPriceQueryViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.ListPriceSeries == null || viewModel.ListPriceSeries.Length != 16 || viewModel.ListPriceSeries.Any(p => !p.HasValue)) { ModelState.AddModelError("ListPriceSeries", "請輸入價格!!"); } if (!viewModel.BranchID.HasValue) { ModelState.AddModelError("BranchID", "請選擇分店!!"); } if (!ModelState.IsValid) { ViewBag.ModelState = ModelState; return(View("~/Views/Shared/ReportInputError.ascx")); } LessonPriceType[] items = new LessonPriceType[16]; var lowerLimit = new int[] { 1, 25, 50, 75 }; var upperBound = new int?[] { 25, 50, 75, (int?)null }; var duration = new int[] { 60, 90 }; //【2017-02】《南京小巨蛋》75堂 / 60分鐘(舊會員續約) var info = new String[] { null, "(舊會員續約)" }; var priceID = models.GetTable <LessonPriceType>().Select(p => p.PriceID).Max() + 1; var series = models.GetTable <LessonPriceSeries>().Where(s => s.Year == viewModel.Year) .Where(s => s.LessonPriceType.BranchID == viewModel.BranchID) .OrderByDescending(s => s.PeriodNo).FirstOrDefault(); var periodNo = series == null ? 1 : series.PeriodNo.Value + 1; var branch = models.GetTable <BranchStore>().Where(b => b.BranchID == viewModel.BranchID).First(); LessonPriceSeries item = models.GetTable <LessonPriceSeries>() .Where(p => p.PriceID == viewModel.SeriesID).FirstOrDefault(); if (item == null) { item = new LessonPriceSeries { PeriodNo = periodNo }; models.GetTable <LessonPriceSeries>().InsertOnSubmit(item); } item.Status = viewModel.Status; item.Year = viewModel.Year; for (int i = 0; i < lowerLimit.Length; i++) { for (int f = 0; f < info.Length; f++) { for (int d = 0; d < duration.Length; d++) { var idx = 4 * i + 2 * f + d; items[idx] = models.GetTable <LessonPriceType>().Where(p => p.PriceID == viewModel.PriceSeriesID[idx]).FirstOrDefault(); if (items[idx] == null) { items[idx] = new LessonPriceType { PriceID = priceID++ }; //items[idx].CurrentPriceSeries = item; models.GetTable <LessonPriceType>().InsertOnSubmit(items[idx]); } items[idx].Description = String.Format("【{0}-{1:00}】《{2}》{3}堂 / {4}分鐘{5}", viewModel.Year, item.PeriodNo, branch.BranchName, lowerLimit[i], duration[d], info[f]); items[idx].ListPrice = items[idx].CoachPayoff = items[idx].CoachPayoffCreditCard = viewModel.ListPriceSeries[idx]; items[idx].Status = viewModel.Status; items[idx].BranchID = branch.BranchID; items[idx].LowerLimit = lowerLimit[i]; items[idx].UpperBound = upperBound[i]; items[idx].DurationInMinutes = duration[d]; if (f == 1) { if (!items[idx].LessonPriceProperty.Any(p => p.PropertyID == (int)Naming.LessonPriceFeature.會員續約)) { items[idx].LessonPriceProperty.Add(new LessonPriceProperty { PropertyID = (int)Naming.LessonPriceFeature.會員續約 }); } } } } } if (item.LessonPriceType == null) { item.LessonPriceType = items[0]; } models.SubmitChanges(); foreach (var p in items) { if (p.SeriesID != item.PriceID) { p.SeriesID = item.PriceID; } } models.SubmitChanges(); if (item.Status == (int)Naming.LessonSeriesStatus.已啟用) { models.ExecuteCommand(@"UPDATE LessonPriceSeries SET Status = 0 FROM LessonPriceSeries INNER JOIN LessonPriceType ON LessonPriceSeries.PriceID = LessonPriceType.PriceID WHERE (LessonPriceSeries.PriceID <> {0}) AND (LessonPriceType.BranchID = {1})", item.PriceID, item.LessonPriceType.BranchID); models.ExecuteCommand(@"UPDATE LessonPriceType SET Status = 0 FROM LessonPriceSeries INNER JOIN LessonPriceType ON LessonPriceSeries.PriceID = LessonPriceType.SeriesID WHERE (LessonPriceSeries.PriceID <> {0}) AND (LessonPriceType.BranchID = {1})", item.PriceID, item.LessonPriceType.BranchID); } return(Json(new { result = true })); }