private void SinglePersonData() { var extraColumns = new Dictionary <string, string> { { "Project", "Project" } }; CriteriaOperator filter = new BinaryOperator("OwnerId", AuthorizationManager.CurrentUserId, BinaryOperatorType.Equal); filter &= new BinaryOperator("StartDate", DateTime.Today, BinaryOperatorType.LessOrEqual); filter &= new BinaryOperator(new OperandProperty("ActualWorkHours"), new OperandProperty("Effort"), BinaryOperatorType.Greater); if (ObjectId != Guid.Empty) { filter &= new BinaryOperator("TaskId", ObjectId, BinaryOperatorType.Equal); } var ownerProjectTasks = _objectSpace.GetObjects("ProjectTask", filter, extraColumns) as IList; List <Guid> exsitsTaskIdList = new List <Guid>(); if (ownerProjectTasks != null && ownerProjectTasks.AsQueryable().Count() > 0) { foreach (var task in ownerProjectTasks) { TaskTimeHistory item = new TaskTimeHistory(); var projectTask = ConvertData.Convert <Katrin.Domain.Impl.ProjectTask>(task); exsitsTaskIdList.Add(projectTask.TaskId); item.TaskId = projectTask.TaskId; item.Name = projectTask.Name; item.ActualWorkHours = projectTask.ActualWorkHours ?? 0; item.RecordOn = DateTime.Today; item.StartDate = projectTask.StartDate; item.EndDate = projectTask.EndDate; item.RemainderTime = (projectTask.ActualWorkHours ?? 0) - (projectTask.Effort ?? 0); var exsitsItems = _projectTaskList.Where(c => c.TaskId == item.TaskId).ToList(); foreach (var eitem in exsitsItems) { eitem.RemainderTime = item.RemainderTime; } item.TaskTimeHistoryId = Guid.Empty; item.RecordPerson = TaskOperator.GetUserName(AuthorizationManager.CurrentUserId); if (projectTask.Project != null) { item.ProjectName = projectTask.Project.Name; } if (_projectTaskList.Any(c => c.Effort == 0 && c.TaskTimeHistoryId == Guid.Empty && c.ActualInput == 0 && c.TaskId == item.TaskId)) { continue; } _projectTaskList.Insert(0, item); } } var notExsitsList = _projectTaskList.Where(c => !exsitsTaskIdList.Contains(c.TaskId)).ToList(); foreach (var notItem in notExsitsList) { notItem.RemainderTime = 0; } }
private void SetHistory(TaskTimeHistory task) { var taskTimeHistory = (Katrin.Domain.Impl.TaskTimeHistory)_objectSpace.GetOrNew("TaskTimeHistory", task.TaskTimeHistoryId, null); task.TaskTimeHistoryId = taskTimeHistory.TaskTimeHistoryId; taskTimeHistory.TaskId = task.TaskId; taskTimeHistory.ActualInput = task.ActualInput; taskTimeHistory.Effort = task.Effort; taskTimeHistory.Overtime = task.Overtime; taskTimeHistory.Description = task.Description; taskTimeHistory.RecordOn = task.RecordOn; }
private void OnDeleteData(object sender, EventArgs <int> e) { if (_projectTaskList.Count <= e.Data) { return; } TaskTimeHistory task = _projectTaskList[e.Data]; if (task == null) { return; } if (task.TaskTimeHistoryId != Guid.Empty) { _deleteTaskList.Add(task); } _projectTaskList.Remove(task); _taskEffortView.Bind(_projectTaskList); }
private bool UpdateTask(TaskTimeHistory task) { var projectTask = new Katrin.Domain.Impl.ProjectTask(); if (taskList.Select(c => c.TaskId).Contains(task.TaskId)) { projectTask = taskList.Where(c => c.TaskId == task.TaskId).First(); } else { projectTask = (Katrin.Domain.Impl.ProjectTask)_objectSpace.GetOrNew("ProjectTask", task.TaskId, null); taskList.Add(projectTask); } projectTask.ActualInput = Convert.ToDouble(projectTask.ActualInput ?? 0) + task.ActualInput; projectTask.Effort = Convert.ToDouble(projectTask.Effort ?? 0) + task.Effort; if (task.TaskTimeHistoryId != Guid.Empty) { projectTask.Effort -= task.SourceEffort; } task.SourceEffort = task.Effort; projectTask.Overtime = Convert.ToDouble(projectTask.Overtime ?? 0) + task.Overtime; if (task.TaskTimeHistoryId == Guid.Empty) { projectTask.Description = projectTask.Description ?? " " + task.Description; } TaskOperator.UpdateTaskStatus(projectTask); if (projectTask.Effort > projectTask.ActualWorkHours) { _newEffortView.ValidateResult = false; XtraMessageBox.Show(StringParser.Parse("OverEffortMessage"), StringParser.Parse("Katrin"), MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return(false); } return(true); }
protected override void OnViewSet() { if (!(_detailView is ITaskEffortDetailView)) { return; } _taskEffortView = (ITaskEffortDetailView)_detailView; _taskEffortView.OnCreateData += OnCreateData; _taskEffortView.OnDeleteData += OnDeleteData; _editTaskTimeHistory = new TaskTimeHistory(); _editTaskTimeHistory.RecordOn = DateTime.Today; InitData(); _taskEffortView.Bind(new List <TaskTimeHistory>() { _editTaskTimeHistory }); _taskEffortView.ObjectChanged += View_ObjectChanged; HasChanges = false; var message = new UpdateRibbonItemMessage(this.WorkSpaceID, this.ObjectName); EventAggregationManager.SendMessage(message); }
private bool UpdateTask(Katrin.Domain.Impl.ProjectTask taskEntity, TaskTimeHistory task) { if (taskEntity == null) { return(true); } taskEntity.ActualInput = Convert.ToDouble(taskEntity.ActualInput ?? 0) + task.ActualInput; taskEntity.Effort = Convert.ToDouble(taskEntity.Effort ?? 0) + task.Effort; taskEntity.Overtime = Convert.ToDouble(taskEntity.Overtime ?? 0) + task.Overtime; TaskOperator.UpdateTaskStatus(taskEntity); if (taskEntity.Effort > taskEntity.ActualWorkHours) { _taskEffortView.ValidateResult = false; XtraMessageBox.Show(StringParser.Parse("OverEffortMessage"), StringParser.Parse("Katrin"), MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return(false); } return(true); }