Beispiel #1
0
 /// <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();
 }
Beispiel #2
0
 /// <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);
         }
     }
 }
Beispiel #3
0
 /// <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);
             }
         }
     }
 }