/// <summary> /// 更新关联表:Film_FIlmMode /// </summary> private void UpdateFilm_FIlmMode() { List <Film> filmList = de.Film.Where(p => p.HasMode == true).ToList(); foreach (Film film in filmList) { Film_FilmMode mode = de.Film_FilmMode.Where(p => p.FilmId == film.FilmId).FirstOrDefault(); if (mode == null) { Film_FilmMode lastData = de.Film_FilmMode.OrderByDescending(p => p.Film_FilmModeId).FirstOrDefault(); int lastId; if (lastData != null) { lastId = lastData.Film_FilmModeId; } else { lastId = 0; } // 生成原声的Film_FilmMode mode = new Film_FilmMode(); mode.Film_FilmModeId = lastId + 1; mode.FilmId = film.FilmId; mode.FilmModeId = 1; mode.Film = film; mode.Created = DateTime.Now; mode.Updated = mode.Created; mode.ActiveFlag = true; de.Film_FilmMode.AddObject(mode); lastId += 1; // 生成中文的Film_FilmMode mode = new Film_FilmMode(); mode.Film_FilmModeId = lastId + 1; mode.FilmId = film.FilmId; mode.FilmModeId = 2; mode.Created = DateTime.Now; mode.Updated = mode.Created; mode.ActiveFlag = true; de.Film_FilmMode.AddObject(mode); } } de.SaveChanges(); }
private void cbFilmName_SelectedIndexChanged(object sender, EventArgs e) { string[] Id; try { //取消下拉框以外控件的绑定 UnBindData(); //获取下拉框选择的值 string FilmAndModeid = cbFilmName.SelectedValue.ToString(); if (FilmAndModeid.Contains(";") == true) { hashMode = true; Id = FilmAndModeid.Split(';'); film = filmSet.GetFilm(Id[0]); film_FilmMode = filmSet.GetFilm_FilmMode(Id[0], Convert.ToInt32(Id[1])); try { string[] Array = film_FilmMode.BorderColour.Split(';'); Color color = Color.FromArgb(Convert.ToInt32(Array[0]), Convert.ToInt32(Array[1]), Convert.ToInt32(Array[2]), Convert.ToInt32(Array[3])); lblColor.BackColor = color; } catch { lblColor.BackColor = Color.White; } } else { //没有放映模式的 film = filmSet.GetFilm(FilmAndModeid); hashMode = false; try { string[] Array = film.BorderColour.Split(';'); Color color = Color.FromArgb(Convert.ToInt32(Array[0]), Convert.ToInt32(Array[1]), Convert.ToInt32(Array[2]), Convert.ToInt32(Array[3])); lblColor.BackColor = color; } catch { lblColor.BackColor = Color.White; } } BindData(); txtRatio.Text = film.Ratio * 100 + "%"; } catch { } }
public void SaveMode(string filmId, string mode) { if (filmId == string.Empty) { return; } //放映模式下拉框所选择的模式内容 Array Array = mode.Replace(" ", "").Split(','); foreach (string str in Array) { if (str == string.Empty) { continue; } //查找对应的模式记录 FilmMode filmMode = de.FilmMode.Where(p => p.FilmModeName == str).FirstOrDefault(); if (filmMode != null) { //查找影片的模式关系记录 Film_FilmMode film_FilmMode = de.Film_FilmMode.Where(p => p.FilmId == filmId && p.FilmModeId == filmMode.FilmModeId).FirstOrDefault(); //如果不存在,则进行新增操作 if (film_FilmMode == null) { if (tmpList.Where(p => p.FilmId == filmId && p.FilmModeId == filmMode.FilmModeId).FirstOrDefault() == null) { film_FilmMode = new Film_FilmMode(); film_FilmMode.FilmModeId = filmMode.FilmModeId; film_FilmMode.FilmId = filmId; film_FilmMode.Created = DateTime.Now; film_FilmMode.Updated = DateTime.Now; film_FilmMode.ActiveFlag = true; film_FilmMode.Film_FilmModeId = MaxId(); // de.Film_FilmMode.AddObject(film_FilmMode); tmpList.Add(film_FilmMode); } } } } //找出该影片的所有模式关系记录 var list = de.Film_FilmMode.Where(p => p.FilmId == filmId).ToList(); list.AddRange(tmpList); //所有的放映模式 var filmModeList = de.FilmMode.ToList(); foreach (var tmp in list) { //是否删除标志 bool del = true; //放映模式 var obj = filmModeList.Find(p => p.FilmModeId == tmp.FilmModeId); if (obj != null) { foreach (string str in Array) { if (obj.FilmModeName == str) { del = false; break; } } if (del == true) { var deltmp = de.Film_FilmMode.Where(p => p.Film_FilmModeId == tmp.Film_FilmModeId).FirstOrDefault(); if (deltmp != null) { if (delListCheck.Where(p => p.FilmId == deltmp.FilmId).FirstOrDefault() == null) { delListCheck.Add(de.Film.Where(p => p.FilmId == deltmp.FilmId).FirstOrDefault()); } de.Film_FilmMode.DeleteObject(deltmp); } } } } }
/// <summary> /// 批量生成放映计划信息 /// </summary> /// <param name="hallId"></param> /// <param name="filmId"></param> /// <param name="StartTime"></param> /// <param name="timeSpan"></param> /// <param name="showPlanNumber"></param> /// <returns></returns> public bool BuildShowPlan(string hallId, string filmId, DateTime StartTime, int timeSpan, int showPlanNumber) { bool IsHashMode = false; if (showPlanNumber < 1) { throw new NotImplementedException("安排场次不能为0"); } //清空缓存中的场次计划 showPlanList.Clear(); Film_FilmMode film_FilmMode = new Film_FilmMode(); string[] Id; int? film_FilmModeId = null; if (filmId.Contains(";") == true) { // 有 ";"号好的,则说明此条数据有放映模式的 Id = filmId.Split(';'); filmId = Id[0]; try { film_FilmModeId = Convert.ToInt32(Id[1]); //获取放映模式数据 film_FilmMode = GetFilm_FilmMode((int)film_FilmModeId); IsHashMode = true; } catch { return(false); } } //获取影片信息 Film tmpFilm = GetFilm(filmId); if (tmpFilm == null) { return(false); } //如果日计划的开始时间的小时大于或等于日计划的结束时间的小时数,则说明此日计划是跨天的。并且ShowPlan的开始时间小于日计划的开始时间的小时,则是第二天的 //因为选择的时候没有更改选择时间的日期。所以要从新构造以当前日计划一致的时间 if ((dataMager.DailyShowPlan.DailyPlan.EndTime.Value <= dataMager.DailyShowPlan.DailyPlan.StartTime.Value) && StartTime.Hour < dataMager.DailyShowPlan.DailyPlan.StartTime.Value.Hours) { StartTime = new DateTime(dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Year, dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Month, dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Day + 1, StartTime.Hour, StartTime.Minute, 0); } else { StartTime = new DateTime(dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Year, dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Month, dataMager.DailyShowPlan.DailyPlan.PlanDate.Value.Day, StartTime.Hour, StartTime.Minute, 0); } while (showPlanNumber > 0) { showPlanNumber--; ShowPlan newData = new ShowPlan(); if (IsHashMode == true && tmpFilm.HasMode == true && film_FilmMode.Film_FilmModeId.ToString().Trim() != string.Empty) { //如果影片信息的放映模式为真且放映模式的编号不为空 //设置放映计划名称 影片名称+放映模式名称 newData.ShowPlanName = tmpFilm.FilmName + "(" + film_FilmMode.FilmMode.FilmModeName + ")"; //设置放映模式编号 newData.Film_FilmModeId = film_FilmModeId; } else { newData.ShowPlanName = tmpFilm.FilmName; } newData.Film = dataMager.GetFilm(tmpFilm.FilmId); newData.Position = 0; newData.StartTime = StartTime; newData.EndTime = newData.StartTime.Value.AddMinutes((int)tmpFilm.FilmLength); newData.HallId = hallId; //设置下一场的开始时间 StartTime = newData.EndTime.Value.AddMinutes((int)timeSpan); newData.FilmLength = tmpFilm.FilmLength; newData.DailyPlan = dataMager.DailyShowPlan.DailyPlan; newData.Timespan = timeSpan; newData.Ratio = tmpFilm.Ratio; // newData.DiscountId = 0; newData.IsDiscounted = false; newData.FareSettingId = 1; var tmp = dataMager.GetTheaterPrice(); if (tmp != null) { newData.SinglePrice = tmp.SinglePrice; newData.DoublePrice = tmp.DoublePrice; newData.StudentPrice = tmp.StudentPrice; newData.GroupPrice = tmp.GroupPrice; newData.MemberPrice = tmp.MemberPrice; newData.BoxPrice = tmp.BoxPrice; } else { newData.SinglePrice = 0; newData.DoublePrice = 0; newData.StudentPrice = 0; newData.GroupPrice = 0; newData.MemberPrice = 0; newData.BoxPrice = 0; } newData.ShowStatus = 0; newData.ShowTypeId = 1; newData.IsCheckingNumber = true; newData.IsTicketChecking = true; newData.IsOnlineTicketing = true; newData.IsApproved = false; newData.IsSalable = false; newData.IsLocked = false; newData.ActiveFlag = true; newData.Created = DateTime.Now; newData.Updated = DateTime.Now; //设置最低价格 newData.LowestPrice = dataMager.GetFilm(tmpFilm.FilmId).LowestPrice; showPlanList.Add(newData); } try { if (dataMager.CheckShowPlan(this.showPlanList) == true) { return(true); } else { return(false); } } catch (Exception EX) { throw new NotImplementedException(EX.Message); } }