Esempio n. 1
0
        public TaskInformation(Issue issue, ResourceInformation assignedTo)
        {
            TaskName = issue.Subject;
            ID       = issue.Id;
            Tracker  = issue.Tracker.Name;

            double est = 0, spent = 0;

            if (issue.EstimatedHours.HasValue)
            {
                est = issue.EstimatedHours.Value;
            }
            if (issue.SpentHours.HasValue)
            {
                spent = issue.SpentHours.Value;
            }
            Duration           = new WorkDuration(est, spent);
            CompletePercentage = int.Parse(issue.DoneRatio.Value.ToString());
            if (CompletePercentage == 100 && Duration.Spent == 0)
            {
                Duration.Spent = Duration.Estimated;
                Duration.ReCalculateOvertime();
            }
            Dates = new ProjectDates(issue.StartDate, issue.DueDate);

            Dates.SetCreatedDate(issue.CreatedOn);

            //Costs
            double costPerHour = assignedTo.CostPerTimeUnit;

            Cost       = (int)(costPerHour * Duration.TotalDuration());
            ActualCost = (int)(costPerHour * Duration.Spent);
            if (CompletePercentage == 100)
            {
                RemainingCost = 0;
            }
            else
            {
                RemainingCost = (int)(costPerHour * (Duration.Estimated - Duration.Spent));
            }
            OverCost = (int)(costPerHour * Duration.Overtime);

            //TODO: issue status
            if (CompletePercentage == 100)
            {
                Status = TaskStatus.Closed;
            }
            else
            {
                Status = TaskStatus.InWork;
            }


            ChildTasks = new List <TaskInformation>();
            SetAnomaly();
            SetDeviation();
        }
Esempio n. 2
0
        public TaskInformation(Task task, List <Resource> resources)
        {
            Resources = new List <ResourceInformation>();
            this.task = task;
            foreach (Resource res in resources)
            {
                this.Resources.Add(new ResourceInformation(res));
            }
            ChildTasks = new List <TaskInformation>();

            //Dates
            Dates = new ProjectDates(task.getStart(), task.getFinish());
            if (task.getBaselineStart() != null && task.getBaselineFinish() != null)
            {
                Dates.SetBaseline(task.getBaselineStart(), task.getBaselineFinish());
            }
            else
            {
                //TODO: ERR_MSG_NOT_NIN_BASELINE
            }

            if (task.getBaselineDuration() != null && task.getDuration() != null)
            {
                Duration = new WorkDuration(
                    TimeUnitStringConverter.ConvertTime(task.getBaselineDuration().toString()),
                    TimeUnitStringConverter.ConvertTime(task.getDuration().toString()));
            }
            else
            {
                Duration = new WorkDuration();
            }


            OverCost           = task.getCost().doubleValue() - task.getBaselineCost().doubleValue();
            TaskName           = task.getName();
            Cost               = task.getCost().intValue();
            ActualCost         = task.getActualCost().intValue();
            RemainingCost      = task.getRemainingCost().intValue();
            CompletePercentage = task.getPercentageComplete().intValue();
            if (CompletePercentage == 100)
            {
                Status = TaskStatus.Closed;
            }
            else
            {
                Status = TaskStatus.InWork;
            }
            Tracker = "Undefined";
            Dates.SetCreatedDate(task.getCreateDate());
            SetAnomaly();
            SetDeviation();
        }