/// <summary>メンバーの削除 /// </summary> /// <param name="member">削除するメンバー</param> /// <param name="complete">完全削除かどうか</param> public virtual void DelMember(CMember member, bool complete) { if (!complete) { // 削除 DelMember(member); } else { if (member.Removed != null) { members.Remove(member); //System.out.println("完全削除1:" + member.getName()); // 完全削除 int sz = parent.Size(); for (int i = 0; i < sz; i++) { //System.out.println("完全削除2:" + member.getName()); CScheduledDate sdate = parent[i]; sdate.MakeMembers(); } if (TimeTable != null) { TimeTable.NotifyMembersEdited(EnumTimeTableElementEventTypes.ElementRemoved, member); } } else { DelMember(member, false); } } Refresh(); }
/// <summary>日付のセーブ /// </summary> public void SaveScheduledDate(XmlDocument doc, XmlElement rNode, CTimeTable all) { for (int i = 0; i < all.Size(); i++) { bool edited = false; CScheduledDate sdate = all[i]; XmlElement pNode = doc.CreateElement("scheduleddate"); SaveTmElement(doc, pNode, sdate); // 日付がもっとも大事? pNode.SetAttribute("date", sdate.Date.ToString(CSaver.DATEFORMAT)); // 人員配置 if (sdate.Require != null && sdate.Require != CRequirePatterns.NULL) { pNode.SetAttribute("require", sdate.Require.ObjectID.ToString()); if (sdate.Require != all.GetDefaultRequire(sdate.Date.DayOfWeek)) { edited = true; } } // メンバーごとのスケジュール(シフトとメモ) for (int j = 0; j < sdate.ValidMemberSize; j++) { CSchedule schedule = sdate[j]; XmlElement nNode = doc.CreateElement("schedule"); SaveTmElement(doc, nNode, schedule); if ((schedule.Member != null && schedule.Member != CMember.NULL && schedule.Pattern != null && schedule.Pattern != CPattern.NULL) || (schedule.Notes.Trim() != "")) { nNode.SetAttribute("member", schedule.Member.ObjectID.ToString()); nNode.SetAttribute("pattern", schedule.Pattern.ObjectID.ToString()); edited = true; pNode.AppendChild(nNode); } } if (edited) { // 変更されている場合のみ rNode.AppendChild(pNode); } } }
/// <summary>勤務シフトの完全削除 /// </summary> /// <param name="pattern">削除するシフト</param> /// <param name="complete">完全に削除するかどうか</param> public virtual void DelPattern(CPattern pattern, bool complete) { if (!complete) { DelPattern(pattern); } else { // 完全に削除する if (pattern.Removed != null) { patterns.Remove(pattern); // スケジュールから削除 int sz = parent.Size(); for (int i = 0; i < sz; i++) { CScheduledDate wkDate = parent[i]; int sz2 = wkDate.ValidMemberSize; for (int j = 0; j < sz2; j++) { CSchedule scd = wkDate[j]; if (scd != null) { CPattern pat = scd.Pattern; if (pat != null && pat.Equals(pattern)) { scd.Pattern = CPattern.NULL; } } } } if (TimeTable != null) { TimeTable.NotifyPatternsEdited(EnumTimeTableElementEventTypes.ElementRemovedForce, pattern); } } } }