public ActionResult RevokeBooking(CalendarEventQueryViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>().Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } else if (item.ContractTrustTrack.Any(t => t.SettlementID.HasValue)) { return(Json(new { result = false, message = "課程資料已信託,不可取消!!" })); } else if (item.RegisterLesson.IsPaid) { return(Json(new { result = false, message = "課程資料已收款,不可取消!!" })); } //else if (item.LessonPlan != null || item.TrainingPlan.Count > 0) //{ // ViewBag.Message = "請先刪除預編課程!!"; // return RedirectToAction("Coach", "Account", new { lessonDate = lessonDate, message= "請先刪除預編課程!!" }); //} item.RevokeBooking(models); return(Json(new { result = true })); }
public ActionResult SelectToCloneLearnerTrainingPlan(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } var lessonItems = item.GroupingLesson.RegisterLesson; if (lessonItems.Count() < 2) { return(Json(new { result = false, message = "課程非一對多!!" })); } var items = models.GetTable <RegisterLesson>().Where(r => r.RegisterGroupID == item.GroupID) .Where(l => l.UID != viewModel.UID) .Select(l => l.UserProfile); return(View("~/Views/LessonConsole/Module/SelectToCloneTrainingPlan.cshtml", items)); }
public ActionResult CopyTrainingPlan(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime copyTo = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (copyTo == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } LessonTime copyFrom = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.CopyFrom).FirstOrDefault(); if (copyTo == null) { return(Json(new { result = false, message = "複製來源課程資料錯誤!!" })); } var source = copyFrom.AssertLearnerTrainingPlan(models, viewModel.UID.Value); var target = copyTo.AssertLearnerTrainingPlan(models, viewModel.UID.Value); models.CloneTrainingPlan(source, target, false); return(Json(new { result = true })); }
public async Task <ActionResult> CommitCrossBranchAsync(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } var profile = await HttpContext.GetUserAsync(); LessonTime item = profile.PreferredLessonTimeToApprove(models) .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } item.PreferredLessonTime.ApprovalDate = DateTime.Now; item.PreferredLessonTime.ApproverID = profile.UID; models.SubmitChanges(); return(Json(new { result = true })); }
public ActionResult SelectToCloneCoachPITrainingPlan(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" }, JsonRequestBehavior.AllowGet)); } var lessonItems = models.GetTable <LessonTime>().Where(l => l.GroupID == item.GroupID && l.LessonID != item.LessonID); if (lessonItems.Count() < 1) { return(Json(new { result = false, message = "課程非多人團體課!!" }, JsonRequestBehavior.AllowGet)); } var items = lessonItems.Where(l => l.LessonID != item.LessonID) .Select(l => l.RegisterLesson.UserProfile); return(View("~/Views/LessonConsole/Module/SelectToCloneTrainingPlan.cshtml", items)); }
// update public bool UpdateLessonTime(int id, LessonTimeModel lessonTime) { using (AttenderEntities ef = new AttenderEntities()) { LessonTime updateLessonTime = ef.LessonTimes.FirstOrDefault(a => a.Id == id); if (updateLessonTime == null) { return(false); } //updateLessonTime.CourseId = lessonTime.CourseId; updateLessonTime.LessonDate = lessonTime.LessonDate; updateLessonTime.StartTime = lessonTime.StartTime; updateLessonTime.EndTime = lessonTime.EndTime; updateLessonTime.ActualStartTime = lessonTime.ActualStartTime; updateLessonTime.ClassRoom = lessonTime.ClassRoom; try { ef.SaveChanges(); } catch { return(false); } } return(true); }
public ActionResult RevokeBooking(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>().Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程資料錯誤!!")); } else if (item.ContractTrustTrack.Any(t => t.SettlementID.HasValue)) { return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程資料已信託,不可取消!!")); } //else if (item.LessonPlan != null || item.TrainingPlan.Count > 0) //{ // ViewBag.Message = "請先刪除預編課程!!"; // return RedirectToAction("Coach", "Account", new { lessonDate = lessonDate, message= "請先刪除預編課程!!" }); //} item.RevokeBooking(models); return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程預約已取消!!")); }
public ActionResult CheckLessonEmphasis(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>().Where(t => t.LessonID == viewModel.LessonID).FirstOrDefault(); var items = models.GetTable <TrainingPlan>().Where(p => p.LessonID == viewModel.LessonID) .Where(p => p.TrainingExecution.Emphasis == null) .Select(p => p.RegisterLesson); int count = items.Count(); if (count == 1 && item.TrainingPlan.Count() == 1) { return(Json(new { result = false, message = "請先輸入上課重點!?" }, JsonRequestBehavior.AllowGet)); } else if (count > 0) { return(Json(new { result = false, message = String.Concat(String.Join("、", items.Select(r => r.UserProfile.RealName)), "的上課重點未完成!?") }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { result = true }, JsonRequestBehavior.AllowGet)); } }
public static String LessonTypeStatus(this LessonTime item) { if (item.RegisterLesson.RegisterLessonEnterprise == null) { switch (item.RegisterLesson.LessonPriceType.Status) { case (int)Naming.LessonPriceStatus.自主訓練: return("P.I"); case (int)Naming.LessonPriceStatus.一般課程: case (int)Naming.LessonPriceStatus.團體學員課程: case (int)Naming.LessonPriceStatus.已刪除: return("P.T"); case (int)Naming.LessonPriceStatus.在家訓練: return("S.T"); case (int)Naming.LessonPriceStatus.教練PI: return("Coach P.I"); case (int)Naming.LessonPriceStatus.體驗課程: return("T.S"); case (int)Naming.LessonPriceStatus.點數兌換課程: return(item.RegisterLesson.LessonPriceType.SimpleDescription); default: return(item.RegisterLesson.LessonPriceType.Description); } } else { return(item.RegisterLesson.RegisterLessonEnterprise.EnterpriseCourseContent.EnterpriseLessonType.Status.LessonTypeStatus() + "(企)"); } }
public int CheckWhatLessonIsNow(string date, string hour) { LessonTimeModel lessonTime = null; DateTime rdate = DateTime.Parse(date); TimeSpan rhour = TimeSpan.Parse(hour); using (AttenderEntities ef = new AttenderEntities()) { LessonTime item = ef.LessonTimes.FirstOrDefault(a => a.LessonDate == rdate && a.StartTime <= rhour && a.EndTime >= rhour); if (item != null) { lessonTime = new LessonTimeModel() { Id = item.Id, CourseId = item.CourseId, LessonDate = item.LessonDate, StartTime = item.StartTime, EndTime = item.EndTime, ActualStartTime = TimeSpan.Parse(hour), ClassRoom = item.ClassRoom }; return(lessonTime.CourseId); } } return(-1); }
// Create; public bool AddLessonTime(LessonTimeModel newLessonTime) { using (AttenderEntities ef = new AttenderEntities()) { LessonTime lessonTime = new LessonTime() { //Id = newLessonTime.Id, CourseId = newLessonTime.CourseId, LessonDate = newLessonTime.LessonDate, StartTime = newLessonTime.StartTime, EndTime = newLessonTime.EndTime, ActualStartTime = newLessonTime.ActualStartTime, ClassRoom = newLessonTime.ClassRoom }; ef.LessonTimes.Add(lessonTime); try { ef.SaveChanges(); } catch { return(false); } } return(true); }
public ActionResult AttendLesson(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; var profile = HttpContext.GetUser(); if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>().Where(t => t.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "未登記此上課時間!!" }, JsonRequestBehavior.AllowGet)); } if (item.TrainingPlan.Select(p => p.TrainingExecution.Emphasis).Any(a => a == null)) { return(Json(new { result = false, message = "未輸入課表重點,無法完成上課!!" }, JsonRequestBehavior.AllowGet)); } item.LessonPlan.Remark = viewModel.Remark.GetEfficientString(); models.AttendLesson(item, profile, viewModel.QuestionnaireGroupID); //foreach (var r in item.GroupingLesson.RegisterLesson) //{ // models.CheckLearnerQuestionnaireRequest(r); //} return(Json(new { result = true, message = "資料存檔完成!!" })); }
public async Task <ActionResult> UpdateLessonFeedBackAsync(int lessonID, String feedBack) { UserProfile profile = await HttpContext.GetUserAsync(); if (profile == null) { return(Redirect($"~{Startup.Properties["LoginUrl"]}")); } LessonTime lesson = models.GetTable <LessonTime>().Where(l => l.LessonID == lessonID).FirstOrDefault(); if (lesson == null) { return(new EmptyResult()); } LessonFeedBack item = lesson.LessonFeedBack.Where(f => f.RegisterLesson.UID == profile.UID).FirstOrDefault(); if (item == null) { if (lesson.RegisterLesson.GroupingMemberCount > 1) { RegisterLesson regItem = lesson.GroupingLesson.RegisterLesson.Where(r => r.UID == profile.UID).FirstOrDefault(); if (regItem == null) { return(new EmptyResult()); } item = new LessonFeedBack { LessonID = lessonID, RegisterID = regItem.RegisterID, //Status = (int)Naming.IncommingMessageStatus.未讀 }; } else { item = new LessonFeedBack { LessonID = lessonID, RegisterID = lesson.RegisterID, //Status = (int)Naming.IncommingMessageStatus.未讀 }; } models.GetTable <LessonFeedBack>().InsertOnSubmit(item); } item.FeedBack = feedBack; item.FeedBackDate = DateTime.Now; item.Status = (int)Naming.IncommingMessageStatus.未讀; models.SubmitChanges(); return(View("LessonFeedBackItem", item)); }
private bool ChangeDataValidation() { // Date check if (datePicker.SelectedDate is null) { MessageBox.Show("Поле 'Дата' не должно быть пустым"); return(false); } // LessonTime check LessonTime _; cbcLessonTime.Text = cbcLessonTime.Text.Trim(); if (cbcLessonTime.SelectedItem is null && !LessonTime.TryParse(cbcLessonTime.Text, out _)) { MessageBox.Show("Неверный формат времени занятия"); return(false); } // StudyGroup check cbcStudyGroup.Text = cbcStudyGroup.Text.Trim(); if (cbcStudyGroup.SelectedItem is null && string.IsNullOrEmpty(cbcStudyGroup.Text)) { MessageBox.Show("Поле 'Учебная группа' не должно быть пустым"); return(false); } /// Lesson check cbcLesson.Text = cbcLesson.Text.Trim(); if (cbcLesson.SelectedItem is null && string.IsNullOrEmpty(cbcLesson.Text)) { MessageBox.Show("Поле 'Дисциплина' не должно быть пустым"); return(false); } // Classroom check cbcClassroom.Text = cbcClassroom.Text.Trim(); if (cbcClassroom.SelectedItem is null && string.IsNullOrEmpty(cbcClassroom.Text)) { MessageBox.Show("Поле 'Аудитория' не должно быть пустым"); return(false); } // Teacher check cbcTeacher.Text = cbcTeacher.Text.Trim(); if (cbcTeacher.SelectedItem is null && string.IsNullOrEmpty(cbcTeacher.Text)) { MessageBox.Show("Поле 'Преподаватель' не должго быть пустым"); return(false); } return(true); }
public static String CurrentLessonStatus(this LessonTime item) { return(item.TrainingPlan.Count == 0 ? item.RegisterLesson.LessonPriceType.Status == (int)Naming.DocumentLevelDefinition.自由教練預約 ? item.LessonAttendance == null ? "已預約" : "已完成課程" : "已預約" : item.LessonAttendance != null ? "已完成課程" : "編輯課程內容中"); }
public ActionResult CloneLearnerTrainingPlan(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } IEnumerable <RegisterLesson> lessonItems = item.GroupingLesson.RegisterLesson; if (lessonItems.Count() < 2) { return(Json(new { result = false, message = "課程非一對多!!" })); } if (viewModel.CopyFrom.HasValue) { if (!viewModel.UID.HasValue) { return(Json(new { result = false, message = "未指定同步目標之學員!!" })); } var source = item.AssertLearnerTrainingPlan(models, viewModel.CopyFrom.Value); var target = item.AssertLearnerTrainingPlan(models, viewModel.UID.Value); models.CloneTrainingPlan(source, target); } else { if (!viewModel.UID.HasValue) { return(Json(new { result = false, message = "未指定同步來源之學員!!" })); } var source = item.AssertLearnerTrainingPlan(models, viewModel.UID.Value); foreach (var lesson in lessonItems.Where(r => r.UID != viewModel.UID.Value)) { var target = item.AssertLearnerTrainingPlan(models, lesson.UID); models.CloneTrainingPlan(source, target); } } return(Json(new { result = true })); }
public ActionResult CloneCoachPITrainingPlan(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } var lessonItems = models.GetTable <LessonTime>().Where(l => l.GroupID == item.GroupID && l.LessonID != item.LessonID); if (lessonItems.Count() == 0) { return(Json(new { result = false, message = "課程非一對多!!" })); } if (viewModel.CopyFrom.HasValue) { var sourceLesson = item.GroupingLesson.LessonTime.Where(l => l.RegisterLesson.UID == viewModel.CopyFrom).FirstOrDefault(); if (sourceLesson != null) { var target = item.AssertTrainingPlan(models); models.CloneTrainingPlan(sourceLesson.AssertTrainingPlan(models), target); return(Json(new { result = true })); } } else { var source = item.AssertTrainingPlan(models); foreach (var lesson in lessonItems) { var target = lesson.AssertTrainingPlan(models); models.CloneTrainingPlan(source, target); } return(Json(new { result = true })); } return(Json(new { result = false, message = "複製失敗!!" })); }
protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { LessonTime time = (LessonTime)e.Parameter; edit_lessontime = (LessonTime)e.Parameter; tbx_LessonNumber_AddGrade_Timetable_Settings.Text = time.lesson_number.ToString(); tmp_Starttime_AddLesson_Timetable_Settings.Time = time.start_time.GetTimeSpan(); tmp_Endtime_AddLesson_Timetable_Settings.Time = time.end_time.GetTimeSpan(); tgs_DoubleLesson_AddLessonTime.IsOn = time.show_as_double; edit = true; } else { edit = false; } }
public void PutBellList(string BellList) { try { string[] Lessons = BellList.Split('\n'); for (int i = 0; i < Lessons.Length; i++) { LessonTime CurrentLesson = new LessonTime(); CurrentLesson.beginTime = DateTime.Parse(Lessons[i].Split('-')[0]); CurrentLesson.endTime = DateTime.Parse(Lessons[i].Split('-')[1]); BellSchedule.Add(CurrentLesson); } } catch { MessageBox.Show("ERROR_PutBellList"); } }
private void btn_Done_AddLesson_Click(object sender, RoutedEventArgs e) { try { int.Parse(tbx_LessonNumber_AddGrade_Timetable_Settings.Text); } catch (Exception) { LessonNumberInValid(); return; } TimeSpan starttime = tmp_Starttime_AddLesson_Timetable_Settings.Time; TimeSpan endtime = tmp_Endtime_AddLesson_Timetable_Settings.Time; if (edit && edit_lessontime != null) { LessonTimeManager.DeleteLessonTime(edit_lessontime); } bool exeption_comes = false; Time startTime = new Time(); startTime.setTime(starttime.Hours, starttime.Minutes); Time endTime = new Time(); endTime.setTime(endtime.Hours, endtime.Minutes); LessonTime new_lesson_time = new LessonTime(); new_lesson_time.setLessonTime(int.Parse(tbx_LessonNumber_AddGrade_Timetable_Settings.Text), startTime, endTime, tgs_DoubleLesson_AddLessonTime.IsOn); try { new_lesson_time.Save(); } catch (ArgumentException ae) { exeption_comes = true; if (ae.Message == "lessontime already exists") { LessonTimeManager.lesson_already_exists_dialog(); } } if (exeption_comes == false) { Frame.GoBack(); } }
public IViewComponentResult LessonContentDetails(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Content("課程資料錯誤!!")); } return(View("~/Views/LessonConsole/Module/LessonContentDetails.cshtml", item)); }
public ActionResult LessonContentDetails(LessonTimeBookingViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>() .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "課程資料錯誤!!" })); } return(View("~/Views/LessonConsole/Module/LessonContentDetails.cshtml", item)); }
public ActionResult LearnerAttendLesson(DailyBookingQueryViewModel viewModel) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.LessonID = viewModel.DecryptKeyValue(); } LessonTime item = models.GetTable <LessonTime>().Where(t => t.LessonID == viewModel.LessonID).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "未登記此上課時間!!" }, JsonRequestBehavior.AllowGet)); } item.LessonPlan.CommitAttendance = DateTime.Now; models.SubmitChanges(); return(Json(new { result = true, message = "資料存檔完成!!" })); }
public ActionResult RebookingByCoach(int id) { LessonTime item = models.GetTable <LessonTime>().Where(l => l.LessonID == id).FirstOrDefault(); if (item == null) { return(View("~/Views/Shared/JsAlert.cshtml", model: "修改上課時間資料不存在!!")); } ViewBag.ViewModel = new LessonTimeViewModel { LessonID = item.LessonID, ClassDate = item.ClassTime.Value, CoachID = item.AttendingCoach.Value, //Duration = item.DurationInMinutes.Value, TrainingBySelf = (LessonTime.SelfTrainingDefinition?)item.TrainingBySelf, BranchID = item.BranchID.Value }; return(View("~/Views/ClassFacet/Module/RebookingByCoach.ascx", item)); }
// delete public bool DeleteLessonTime(int id) { using (AttenderEntities ef = new AttenderEntities()) { LessonTime deletedLessonTime = ef.LessonTimes.FirstOrDefault(a => a.Id == id); if (deletedLessonTime == null) { return(false); } ef.LessonTimes.Remove(deletedLessonTime); try { ef.SaveChanges(); } catch { return(false); } } return(true); }
public LessonTimeModel GetLessonTimeById(int id) { LessonTimeModel lessonTime = null; using (AttenderEntities ef = new AttenderEntities()) { LessonTime item = ef.LessonTimes.FirstOrDefault(a => a.Id == id); if (item != null) { lessonTime = new LessonTimeModel() { Id = item.Id, CourseId = item.CourseId, LessonDate = item.LessonDate, StartTime = item.StartTime, EndTime = item.EndTime, ActualStartTime = item.ActualStartTime, ClassRoom = item.ClassRoom }; } } return(lessonTime); }
public int CheckLessonIdIsNow(string date, string hour, int lecturerId) { DateTime rdate = DateTime.Parse(date); TimeSpan rhour = TimeSpan.Parse(hour); List <int> lessonTimes = new List <int>(); lessonTimes = GetAllLessonIdsNow(date, hour); foreach (int CourseId in lessonTimes) { int ans = CheckIfLecCourse(CourseId, lecturerId); if (ans == 1) { using (AttenderEntities ef = new AttenderEntities()) { LessonTime item = ef.LessonTimes.FirstOrDefault(a => a.LessonDate == rdate && a.StartTime <= rhour && a.EndTime >= rhour && a.CourseId == CourseId); return(item.Id); } } } return(-1); }
public static String FullLessonDuration(this LessonTime item) { return($"{item.ClassTime:yyyy/MM/dd HH:mm}~{item.ClassTime.Value.AddMinutes(item.DurationInMinutes.Value):HH:mm}"); }
public async Task <ActionResult> CommitPaymentForSessionAsync(PaymentViewModel viewModel) { ViewBag.ViewModel = viewModel; var profile = await HttpContext.GetUserAsync(); var lesson = models.GetTable <RegisterLesson>().Where(r => r.RegisterID == viewModel.RegisterID).FirstOrDefault(); LessonTime timeItem = null; if (lesson == null) { ModelState.AddModelError("RegisterID", "請選擇收款課程!!"); } else { timeItem = lesson.LessonTime.First(); viewModel.SellerID = timeItem.BranchStore?.IsVirtualClassroom() == true ? timeItem.AsAttendingCoach.SelectWorkBranchID() : timeItem.BranchID.Value; } if (!viewModel.PayoffDate.HasValue) { ModelState.AddModelError("PayoffDate", "請選擇收款日期!!"); } viewModel.ItemNo = new string[] { "01" }; viewModel.Brief = new string[] { $"{timeItem.RegisterLesson.LessonPriceType.SimpleDescription}訓練費用" }; viewModel.CostAmount = new int?[] { viewModel.PayoffAmount }; viewModel.UnitCost = new int?[] { viewModel.PayoffAmount }; viewModel.Piece = new int?[] { 1 }; viewModel.ItemRemark = new string[] { null }; viewModel.InvoiceType = Naming.InvoiceTypeDefinition.一般稅額計算之電子發票; viewModel.CarrierId1 = viewModel.CarrierId1.GetEfficientString(); viewModel.TransactionType = (int)Naming.PaymentTransactionType.自主訓練; if (viewModel.CarrierId1 != null) { if (viewModel.CarrierType == null) { viewModel.CarrierType = "3J0002"; } } var invoice = checkInvoiceNo(viewModel); if (String.IsNullOrEmpty(viewModel.PaymentType)) { ModelState.AddModelError("PaymentType", "請選擇收款方式!!"); } if (!viewModel.InvoiceType.HasValue) { ModelState.AddModelError("InvoiceType", "請選擇發票類型"); } if (!ModelState.IsValid) { ViewBag.ModelState = ModelState; return(View(Startup.Properties["ReportInputError"])); } try { Payment item = models.GetTable <Payment>() .Where(p => p.PaymentID == viewModel.PaymentID).FirstOrDefault(); if (item == null) { item = new Payment { Status = (int)Naming.CourseContractStatus.已生效, TuitionInstallment = new TuitionInstallment { }, PaymentTransaction = new PaymentTransaction { }, PaymentAudit = new Models.DataEntity.PaymentAudit { } }; item.TuitionAchievement.Add(new TuitionAchievement { CoachID = lesson.AdvisorID.Value, ShareAmount = viewModel.PayoffAmount, CoachWorkPlace = lesson.ServingCoach.WorkBranchID() }); models.GetTable <Payment>().InsertOnSubmit(item); item.InvoiceItem = invoice; } item.TuitionInstallment.RegisterID = lesson.IntuitionCharge.RegisterID; item.TuitionInstallment.PayoffAmount = viewModel.PayoffAmount; item.TuitionInstallment.PayoffDate = viewModel.PayoffDate; item.PaymentTransaction.BranchID = viewModel.SellerID.Value; preparePayment(viewModel, profile, item); models.SubmitChanges(); if (timeItem.IsPISession()) { models.AttendLesson(lesson.LessonTime.First(), profile); } if (invoice.InvoiceCarrier != null && viewModel.MyCarrier == true) { lesson.UserProfile.UserProfileExtension.CarrierType = invoice.InvoiceCarrier.CarrierType; lesson.UserProfile.UserProfileExtension.CarrierNo = invoice.InvoiceCarrier.CarrierNo; models.SubmitChanges(); } TaskExtensionMethods.ProcessInvoiceToGov(); return(Content(new { result = true, invoiceNo = item.InvoiceItem.TrackCode + item.InvoiceItem.No, item.InvoiceID, item.InvoiceItem.InvoiceType, item.PaymentID }.JsonStringify(), "application/json")); } catch (Exception ex) { ApplicationLogging.CreateLogger <PaymentConsoleController>() .LogError(ex, ex.Message); return(Json(new { result = false, message = ex.Message })); } }
public List <CourseLesson> FormSchedule(List <CDayOfWeak> avalibleDays, LessonTime duration, DateTime startDate, int weekNum) { const int minutesPerHour = 60; int lessonMins = duration.Hours * minutesPerHour + duration.Minutes; var schedule = new List <CourseLesson>(); DateTime curDate = GetFirstWorkDay(avalibleDays, startDate); int[] weekDays = (int[])Enum.GetValues(typeof(DayOfWeek)); int startIndex = weekDays[(int)curDate.DayOfWeek]; // DateTime startDate = curDate.AddDays(startIndex); for (int i = 0; i < weekNum; i++) { for (int j = startIndex; j < 7;) { int index = avalibleDays.FindIndex(x => x.IsWorkDay == true && (int)x.WeekDay == j); if (index >= 0) { int startLessonTime = avalibleDays[index].StartTime * minutesPerHour; int endLessonsTime = 0; if (avalibleDays[index].EndTime == 24) { endLessonsTime = avalibleDays[index].EndTime * minutesPerHour - lessonMins - 1; } else { endLessonsTime = avalibleDays[index].EndTime * minutesPerHour - lessonMins; } for (int k = startLessonTime; k <= endLessonsTime; k += lessonMins) { schedule.Add(new CourseLesson() { StartLessonTime = new DateTime(1, 1, 1, k / minutesPerHour, k - (k / minutesPerHour * minutesPerHour), 0), EndLessonTime = new DateTime(1, 1, 1, (k + lessonMins) / minutesPerHour, (k + lessonMins) - ((k + lessonMins) / minutesPerHour * minutesPerHour), 0), WeekDay = curDate.DayOfWeek, isBusy = false }); } } curDate = curDate.AddDays(1); int temp = j + 1; if (temp == startIndex) { break; } if (temp < 7) { j++; } else { j = 0; } } } //for (int i = startIndex; i < 7; i++) //{ // if (avalibleDays[i].IsWorkDay) // { // int startTimeTemp = avalibleDays[i].StartTime * minutesPerHour; // int entTime = avalibleDays[i].EndTime * minutesPerHour; // for (int j = 0; j < (avalibleDays[i].EndTime * minutesPerHour - avalibleDays[i].StartTime * minutesPerHour) / (lessonMins); j++) // { // schedule.Lessons.Add(new CourseLesson() // { // StartTime = new DateTime(startDate.Year, startDate.Month, startDate.Day, startTimeTemp / minutesPerHour, startTimeTemp - startTimeTemp / minutesPerHour, 0), // EndTime = new DateTime(startDate.Year, startDate.Month, startDate.Day, (startTimeTemp + lessonMins) / minutesPerHour, (startTimeTemp + lessonMins) - startTimeTemp / minutesPerHour, 0), // Duration = duration, // IsFree = true // }); // startTimeTemp += lessonMins; // } // } // startDate = startDate.AddDays(1); // if (i == startIndex - 1) // { // break; // } //} return(schedule); }