/// <summary> /// Initializes a new instance of the <see cref="frmTimeSheetItem"/> class. /// </summary> /// <param name="timeSheet">The time sheet.</param> public TimeSheetItemForm(ref TimeSheet timeSheet, TimeSheetDay timeSheetDay) { InitializeComponent(); _timeSheetItem = timeSheet; _timeSheetDayItem = timeSheetDay; _categoriesControl = new CategoriesControl(); SetUpTimeSheetItemForm(); }
/// <summary> /// Edits the specified time sheet item. /// </summary> /// <param name="timeSheetItem">The time sheet item.</param> /// <param name="day">The day.</param> /// <param name="timeSheetItemIndex">Index of the time sheet item.</param> public bool Edit(TimeSheet timeSheetItem, TimeSheetDay timeSheetDay) { bool status = false; int timeSheetDayIndex = FindTimeSheetDayIndex(timeSheetDay.GUID); int index = FindTimeSheetItemIndex(timeSheetItem.GUID, timeSheetDay.GUID); if (index != -1) { Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[index] = timeSheetItem; Persist(); status = true; } return status; }
/// <summary> /// Adds the specified time sheet item. /// </summary> /// <param name="timeSheetItem">The time sheet item.</param> /// <param name="timeSheetDay">The time sheet day.</param> public void Add(TimeSheet timeSheetItem, TimeSheetDay timeSheetDay){ int dayIndex = FindTimeSheetDayIndex(timeSheetDay.GUID); if (dayIndex != -1) { Persistence.Persist.Data.TimeSheetDayList[dayIndex].TimeSheetList.Add(timeSheetItem); } else { Persistence.Persist.Data.TimeSheetDayList.Add(timeSheetDay); Persist(); dayIndex = FindTimeSheetDayIndex(timeSheetDay.GUID); Persistence.Persist.Data.TimeSheetDayList[dayIndex].Day = timeSheetDay.Day; Persistence.Persist.Data.TimeSheetDayList[dayIndex].TimeSheetList.Add(timeSheetItem); } Persist(); }
/// <summary> /// Gets the display name of the time sheet. (Subject to Options settings) /// </summary> /// <returns></returns> public string GetTimeSheetDisplayName(TimeSheet timeSheetItem){ string result = string.Empty; if (Properties.Settings.Default.TimeSheet_ShowJobTime) { if (timeSheetItem.Task.Length > 80) { result = timeSheetItem.Task.Substring(0, 80) + "..."; } else { result = timeSheetItem.Task.Substring(0, timeSheetItem.Task.Length); } } else { if (timeSheetItem.Task.Length > 90) { result = timeSheetItem.Task.Substring(0, 90) + "..."; } else { result = timeSheetItem.Task.Substring(0, timeSheetItem.Task.Length); } } int enterKey = result.IndexOf("\n"); if (enterKey != -1) { result = result.Substring(0, enterKey); result = result + "..."; } return result; }
/// <summary> /// Calculates the job time. /// </summary> /// <param name="timeSheetItem">The time sheet item.</param> /// <returns></returns> public static string CalculateJobTime(TimeSheet timeSheetItem){ string result = string.Empty; if (timeSheetItem.EndTime.TimeOfDay > timeSheetItem.StartTime.TimeOfDay) { result = Convert.ToString(timeSheetItem.EndTime.TimeOfDay - timeSheetItem.StartTime.TimeOfDay).Substring(0, 8); } else { result = "--:--:--"; } return result; }
/// <summary> /// Sets the last time sheet items end time Or gets the next time sheet items start time. (Subject to Options settings) /// </summary> /// <param name="timeSheetItem">The time sheet item.</param> /// <param name="timeSheetDayItem">The time sheet day item.</param> /// <returns></returns> public DateTime SetLastTimeSheetItemsEndTime(TimeSheet timeSheetItem, TimeSheetDay timeSheetDayItem){ int timeSheetDayIndex = FindTimeSheetDayIndex(timeSheetDayItem.GUID); DateTime result = new DateTime(); if (timeSheetDayIndex != -1) { if (Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count > 0) { DateTime validation = new DateTime(); if (Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count - 1].EndTime == validation) { if (Properties.Settings.Default.TimeSheet_SetEndTime) { Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count - 1].EndTime = timeSheetItem.StartTime; Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count - 1].JobTime = TimeSheetControl.CalculateJobTime(Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count - 1]); result = Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList[Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Count - 1].EndTime; } Persist(); } } } return result; }
/// <summary> /// Inserts the specified time sheet item. /// </summary> /// <param name="timeSheetItem">The time sheet item.</param> /// <param name="timeSheetDay">The time sheet day.</param> /// <param name="insertPosition">The insert position.</param> public void Insert(TimeSheet timeSheetItem, TimeSheetDay timeSheetDay, TimeSheet insertPosition){ int timeSheetDayIndex = FindTimeSheetDayIndex(timeSheetDay.GUID); int index = FindTimeSheetItemIndex(insertPosition.GUID, timeSheetDay.GUID); Persistence.Persist.Data.TimeSheetDayList[timeSheetDayIndex].TimeSheetList.Insert(index, timeSheetItem); Persist(); }
/// <summary> /// Clears the time sheet object. /// </summary> private void ClearTimeSheetObject(){ _timeSheetItem = null; }
/// <summary> /// Quicks the add time sheet item. /// </summary> private void QuickAddTimeSheetItem(){ try {//todo// test there is an error when adding the first quick add item TimeSheetDay timeSheetDay = (TimeSheetDay)calTimeSheet.Tag; TimeSheet timeSheetItem = new TimeSheet(); timeSheetItem.GUID = Utilities.GetNewGUID(); timeSheetItem.Date = calTimeSheet.SelectionRange.Start; timeSheetItem.Task = txtQuickAddTask.Text; timeSheetItem.TodoTaskGuid = ""; timeSheetItem.MainCategoryGuid = ""; timeSheetItem.SubCategoryGuid = ""; timeSheetItem.StartTime = _timeSheetControl.SetLastTimeSheetItemsEndTime(timeSheetDay); timeSheetItem.EndTime = new DateTime(); timeSheetItem.JobTime = TimeSheetControl.CalculateJobTime(timeSheetItem); _timeSheetControl.Add(timeSheetItem, timeSheetDay); PopulateTimeSheetTab(calTimeSheet.SelectionRange); //Set previous timesheet items linked Todo item complete if End time is set int index = _timeSheetControl.FindTimeSheetDayIndex(timeSheetDay.GUID); if ( Persist.Data.TimeSheetDayList[index].TimeSheetList.Count > 1) { TimeSheet prevTimeSheetItem = Persist.Data.TimeSheetDayList[index].TimeSheetList[Persist.Data.TimeSheetDayList[index].TimeSheetList.Count - 2]; if (prevTimeSheetItem.EndTime != new DateTime()) { SetLinkedTodoItemComplete(prevTimeSheetItem.TodoTaskGuid); PopulateTodoTab(); } } } catch (Exception ex) { Utilities.ShowErrorMessage("Error Adding Quick TimeSheet Item", ex); } }
/// <summary> /// Inserts the time sheet item. /// </summary> /// <param name="index">The index.</param> private void InsertTimeSheetItem(){ try { if (tbcMain.SelectedTab != tbTimeSheet) { tbcMain.SelectedTab = tbTimeSheet; } if (calTimeSheet.SelectionStart == calTimeSheet.SelectionEnd) { if (dgvTimeSheet.SelectedRows.Count == 0) { if (dgvTimeSheet.SelectedRows.Count > 1) { if (dgvTimeSheet.SelectedRows[0].Index != dgvTimeSheet.Rows.Count - 1) { TimeSheetDay timeSheetDayItem = (TimeSheetDay)calTimeSheet.Tag; TimeSheet insertPosition = (TimeSheet)dgvTimeSheet.SelectedRows[0].Tag; TimeSheet timeSheetItem = new TimeSheet(); TimeSheetItemForm frm = new TimeSheetItemForm(ref timeSheetItem, timeSheetDayItem); DialogResult result = frm.ShowDialog(); if (timeSheetItem.Task != "") { _timeSheetControl.Insert(timeSheetItem, timeSheetDayItem, insertPosition); PopulateTimeSheetTab(calTimeSheet.SelectionRange); //Set linked Todo item complete if ((timeSheetItem.EndTime != new DateTime()) & (timeSheetItem.TodoTaskGuid != "")) { SetLinkedTodoItemComplete(timeSheetItem.TodoTaskGuid); PopulateTodoTab(); } } } } else { MessageBox.Show("Please select only one Time Sheet Item you wish to insert above.", "INSERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { MessageBox.Show("Please select the Time Sheet Item to insert above.", "INSERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { MessageBox.Show("Please select the specific date you wish to insert a Time Sheet Item above.", "INSERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { Utilities.ShowErrorMessage("Error Inserting TimeSheet Item.", ex); } }
/// <summary> /// Adds the time sheet item. /// </summary> private void AddTimeSheetItem(){ try { if (tbcMain.SelectedTab != tbTimeSheet) { tbcMain.SelectedTab = tbTimeSheet; } if (calTimeSheet.SelectionStart == calTimeSheet.SelectionEnd) { TimeSheetDay timeSheetDayItem = (TimeSheetDay)calTimeSheet.Tag; TimeSheet timeSheetItem = new TimeSheet(); TimeSheetItemForm frm = new TimeSheetItemForm(ref timeSheetItem, timeSheetDayItem); frm.ShowDialog(); if (timeSheetItem.GUID != "") { DateTime result = _timeSheetControl.SetLastTimeSheetItemsEndTime(timeSheetItem, timeSheetDayItem); _timeSheetControl.Add(timeSheetItem, timeSheetDayItem); PopulateTimeSheetTab(calTimeSheet.SelectionRange); //Set timesheet items linked Todo item complete if End time is set if (result != new DateTime()) { //previous timesheet item int index = _timeSheetControl.FindTimeSheetDayIndex(timeSheetDayItem.GUID); TimeSheet prevTimeSheetItem = Persist.Data.TimeSheetDayList[index].TimeSheetList[Persist.Data.TimeSheetDayList[index].TimeSheetList.Count - 2]; SetLinkedTodoItemComplete(prevTimeSheetItem.TodoTaskGuid); PopulateTodoTab(); } if ((timeSheetItem.EndTime != new DateTime()) & (timeSheetItem.TodoTaskGuid != "")) { //new time sheet item SetLinkedTodoItemComplete(timeSheetItem.TodoTaskGuid); PopulateTodoTab(); } } } else { MessageBox.Show("Please select a specific date you wish to add a TimeSheet item to.", "ADD", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { Utilities.ShowErrorMessage("Error Adding TimeSheet Item.", ex); } }