Exemplo n.º 1
0
 /// <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);
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>勤務シフトを作成する
 /// </summary>
 /// <param name="member"></param>
 /// <param name="Span1"></param>
 /// <param name="Span2"></param>
 /// <param name="Rest"></param>
 private void CreatePattern (CMember member, TimeSpan Span1, TimeSpan Span2, TimeSpan Rest) {
     double dSpan1 = (long)(Span1.TotalHours / UMultiEditor.Threshold.TotalHours);
     double dSpan2 = (long)(Span2.TotalHours / UMultiEditor.Threshold.TotalHours);
     double dSpan3 = dSpan2 - dSpan1;
     CPattern newpattern = this.TimeTable.Patterns.CreatePattern();
     //newpattern.Name = "新しい作業用のシフト(" + dates[0].ToShortDateString() + (dates.Count <= 1 ? "" : "~" + dates[dates.Count - 1].ToShortDateString()) + ")";
     newpattern.Name = NewPatternName.Replace("%1", dates[0].ToShortDateString() + (dates.Count <= 1 ? "" : "~" + dates[dates.Count - 1].ToShortDateString()));
     newpattern.Start = TimeSpan.FromHours(dSpan1 * UMultiEditor.Threshold.TotalHours);
     newpattern.Scope = TimeSpan.FromHours(dSpan3 * UMultiEditor.Threshold.TotalHours);
     newpattern.Rest = Rest;
     newpattern.Notes = NewPatternNotes;
     newpattern.Created = dates[0];
     TimeTableManager.UI.FPatternDialog dialog = new TimeTableManager.UI.FPatternDialog();
     dialog.Pattern = newpattern;
     if (dialog.ShowDialog(MainForm) == DialogResult.OK) {
         TimeTable.Patterns.AddPattern(dialog.Pattern);
         foreach (DateTime date in dates) {
             if (date >= DateTime.Today) {
                 CScheduledDate sdate = TimeTable[date];
                 sdate[member].Pattern = dialog.Pattern;
             }
         }
         // 臨時用のみかどうか
         if (TimeTable.Patterns.Size() >= TimeTableManager.UI.FMainForm.MaxItemCount || MessageBox.Show(this.MainForm, CreatePatternMessage, CreatePatternTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) {
             newpattern.SetAvailable(false, dates[dates.Count - 1]);
         }
     }
 }
Exemplo n.º 3
0
 /// <summary>勤務シフトの削除
 /// </summary>
 /// <param name="sender">イベントの発生したオブジェクト</param>
 /// <param name="e">発生したイベント</param>
 private void TsmiRemovePattern_Click (object sender, EventArgs e) {
     CMember member = this.Members[CurrentRowIndex];
     PatternWrapper wrapper = Member2PatternWrapper[member];
     CPattern pattern = wrapper.Pattern;
     if (pattern != null && !pattern.BuiltIn) {
         TimeTableManager.UI.FPatternDialog dialog = new TimeTableManager.UI.FPatternDialog();
         dialog.Pattern = pattern;
         pattern.SetAvailable(false, StartDate.AddDays(-1.0));
         if (dialog.ShowDialog(this.MainForm) == DialogResult.OK) {
             this.TimeTable.Patterns.DelPattern(pattern);
             SetUpValidMembers();
             Refresh();
         } else {
             pattern.SetAvailable(true);
         }
     }
 }
Exemplo n.º 4
0
 /// <summary>勤務シフトの復活
 /// </summary>
 /// <param name="pattern"></param>
 public virtual void  RescuePattern(CPattern pattern)
 {
     if (pattern.Removed != null)
     {
         pattern.SetAvailable(true);
         availables.Add(pattern);
         availables.Sort();
         parent.NotifyPatternsEdited(EnumTimeTableElementEventTypes.ElementRescued, pattern);
     }
 }