Question

How is the actual working time of each resource calculated in a project?

I found the actual working time field is locked. And I didn't find any timesheet that the resource can input. So anyone can tell me how is the actual working time calculated? Many thanks.

Like 0

Like

1 comments

The total duration is calculated by the system automatically as the sum of working hours between the planned start and end dates of the project. For example, if the start date is 10.01 and the end is 11.01, then the sum of working hours is 16.

 

 Actual work is recalculated to the [Resources] details of the work page and to the [List of Resourses] details of the project. When an action is performed, the durations of all completed activities associated with a specific element of the project are summed up by the assignee column. For the correct recalculation of the actual labor costs for the project, the assignees of the  activities must be indicated in the project resource list. For example, if an activity is created on the Supervisor contact and is placed in the Completed state. The duration of the activity is , for example, 30 minutes, then as a result you should see that the actual work in the resource sheet is 0.5 hours.

In this case, the required calculation is performed through the action [Calculate actual working time], it recalculates the actual time spent on the implementation of the project / work.

 

 The calculation itself is performed in the process "Business process for calculating the actual labor costs of projects on a schedule" by the code:

 

 

ProjectService projectService = new ProjectService ();

EntitySchemaQuery projectEsq = new EntitySchemaQuery (UserConnection.EntitySchemaManager, "Project");

var idColumn = projectEsq.AddColumn (projectEsq.RootSchema.GetPrimaryColumnName ());

var projectFilter = projectEsq.CreateFilterWithParameters (FilterComparisonType.IsNull, "ParentProject");

projectEsq.Filters.Add (projectFilter);

var projectEntities = projectEsq.GetEntityCollection (UserConnection);

if (projectEntities.Count> 0) {

    foreach (var projectEntity in projectEntities) {

        var projectId = projectEntity.GetTypedColumnValue <Guid> (idColumn.Name);

        projectService.CalculateProjectActualWorkByProjectId (projectId);

    }

}

return true;

 

Best Regards,

Yurii

Show all comments