/// <summary>勤務シフトの削除 /// </summary> /// <param name="pattern">削除するシフト</param> public virtual void DelPattern(CPattern pattern) { pattern.SetAvailable(false); if (pattern.Removed != null) { availables.Remove(pattern); // 人員配置から削除 CRequirePatternsCollection requires = parent.Requires; for (int i = 0; i < requires.Size(true); i++) { CRequirePatterns require = requires[i, true]; require.SetRequire(pattern, 0); } // メンバーから削除 CMemberCollection members = parent.Members; for (int i = 0; i < members.Size(true); i++) { CMember member = members[i, true]; member.RemovePattern(pattern); } // イベント発生 if (TimeTable != null) { TimeTable.NotifyPatternsEdited(EnumTimeTableElementEventTypes.ElementRemoved, pattern); } } }
/// <summary>コンストラクタ /// </summary> public CTimeTable() : base() { InitBlock(); //DayOffs = new DayOffCollection(this); members = new CMemberCollection(this); patterns = new CPatternCollection(this); daysoff = new CDayOffCollection(this); requires = new CRequirePatternsCollection(this); dates = new CScheduledDateCollection(this); }
/// <summary>人員配置のインポート /// </summary> /// <param name="requires">インポートする人員配置</param> /// <returns>成功:追加したエレメント/不成功:null</returns> private CRequirePatterns ImportRequires(CRequirePatterns requires) { #region 重複チェック CRequirePatternsCollection col = Target.Requires; if (col.GetByName(requires.Name) != null) { return(null); } if (col.Size() >= FMainForm.MaxItemCount) { return(null); } #endregion #region インポート CRequirePatterns newrequires = col.CreateRequirePatterns(true); newrequires.Name = requires.Name; for (int i = 0; i < Source.Patterns.Size(true); i++) { CPattern pattern = Source.Patterns[i, true]; int needs = requires.GetRequire(pattern); if (!pattern.BuiltIn && (pattern.Removed == null || needs > 0)) { CPattern newpattern = Target.Patterns.GetByName(pattern.Name); if (newpattern == null) { newpattern = ImportPattern(pattern); } newrequires.SetRequire(newpattern, needs); } } newrequires.Notes = requires.Notes + "\nインポートされました。"; foreach (string key in requires.properties.AllKeys) { newrequires[key] = requires[key]; } #endregion col.AddRequirePatterns(newrequires); // 終端 return(newrequires); }
/// <summary>コンストラクタ /// </summary> /// <param name="patternList">勤務シフトのリスト</param> /// <param name="parent">タイムテーブル</param> public CRequirePatterns(CPatternCollection patternList, CRequirePatternsCollection parent) : base() { this.patternList = patternList; this.parent = parent; }