Projects and time tracking

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search

New manual in progress

We're working on a new manual. It's not complete but it might already be useful for you:

https://www.group-office.com/docs/admin/projects-and-time-tracking.html


Project information panel

With the projects module you can easily manage project information in one place and keep track of worked hours, material usage and travel costs. You can also share projects with customers and co-workers. At the project information panel you can easily access related comments, tasks, appointments, files etc. as you can see in the screenshot.

Administration

Before you start you need to setup everything here. In the administration window you'll find the following tabs:

Permission types

Each project has a permission type. Those types control who can read and write to the project. If you add a user to the permissions with read permission the user may view the project information. If you raise the permission level to write the user may may edit the project and create sub projects if it's a folder. If you have the time tracking module installed too you might want to add users to the "Book permissions" tab so they can book working hours.

Employees

Every user that needs to be set as a resource for time tracking on projects need to be added here with their default fee. When a user closes it's time tracking week the closed date will be set forward. In this dialog you can set it back if a mistake was made and the week needs to be opened again.

Statuses

Manage project statuses here. Per status you can set if a project is completed or not. Completed projects won't be available for time tracking anymore. You can also set if the project is visible in the tree. This is useful for keeping your projects overview organized.

Office times

Set the office times here. These times will be used for guessing the default time for a time entry and also for estimating a project task due date.

Activity types

These will be available in a drop down on time entries. It also has a preset for the description and duration.

Project templates

You can create multiple project templates here. In a template you can control which fields and custom field categories will be applicable to the project type. When you create a new project the project template will be selected first. There are two types of projects:

  1. Container: This is just a folder for child projects and used for organizing the project tree.
  2. Project: This type enables time tracking and expenses. A project can't have child projects.

It's possible to set up some default items too. You can automatically create tasks, files and folders.


Create a project

Navigate in the tree and click on "Add" from the main screen. If there are multiple #Project templates then a popup with the available templates will be presented. If there are no or one template then this popup will be skipped and the project dialog will appear.

Resources

Fill in all required info in the properties tab and click 'Apply'. Now proceed to the "Resources" tab to add some employees. Without employees it's not possible to create project tasks and time entries.

Project tasks

When the project has been saved and has some resources you can start creating project tasks. The date of project tasks will be auto calculated based on the #office times, task duration and project start date. You can also group tasks. This works with the arrow buttons. Create 3 tasks for example:

  1. Group header
  2. Task 1
  3. Task 2

Now select task 1 and 2 and click the > arrow key. The group header task will now be the group.

Share a project with a new user / customer

You need administrator access to perform these tasks. First you need to create a user at:

Admin menu -> users -> Add

You must give the user access to the projects module.

Then you must create a project type at:

Projects -> Administration -> Permission types -> Add

Add the new user to the project type and optionally other users that need access to this type of projects.

Now create a project with this type or update one with it. This project will be available to the new user.

Reports

There are some default reports available. Reports can be customized if you have PHP knowledge. The example reports are available in source code. Intermesh also offers report customization. Contact us for more information about this.

Custom Reports

To install a custom report You can place the PHP script that generates the report into the following folder:

/{file_folder_path}/php/projects2/report/YourReport.php

If you want to write your own custom project report you can create a new PHP file and save it to this folder. You can use the following file as basis:

<?php

/**
 * Generated custom PDF document for project
 *
 * @author Merijn Schering <mschering@intermesh.nl>
 * @copyright Intermesh BV
 */
namespace GOFS\Projects2\Report;

class YourReport extends \GO\Projects2\Report\AbstractReport {

	/**
	 * The TCPDF object to manipulate
	 * @var \GO\Base\Util\Pdf 
	 */
	private $_pdf;
	/**
	 * Return the name of the report used in the drop down
	 */
	public function name() {
		return 'Your report name';
	}
	/**
	 * Return filename extension.
	 */
	public function fileExtension() {
		return 'pdf';
	}

	/**
	 * With this enabled it will only show up if this report is created from the
	 * "New" menu in a project
	 */
	public function supportsSelectedProject() {
		return true;
	}

	/**
	 * Start rendering the report.
	 * 
	 * @param boolean $return to return the file data as string.
	 */
	public function render($return = false) {
		//implement your TCPDF code here

		if ($return)
			return $this->_pdf->Output($this->filename.".pdf", 'I');
		else {
			\GO\Base\Util\Http::outputDownloadHeaders(new \GO\Base\Fs\File($this->filename.".pdf"));
			echo $this->_pdf->Output($this->filename.".pdf", 'I');
		}
	}
}

Time tracking

Time tracking in grid
Time tracking with multiple registrations per project

There are two ways of doing time tracking which the company has to decide on to use system wide. You can enter times in a grid with all projects and weekdays. This is very easy but has only one limitation that you can't enter multiple registrations on the same project on the same day. If you want to do that you'll need the other time tracking mode. If you have write or manage rights for the time tracking module, you can change this at:

Time tracking -> Administration


Close week

When a user has finished filling in the hours for a week, it can be closed. After closing the hours can't be edited anymore by the user. Only an administrator can re-open the week.

Approve hours

Optionally the hours approval module can be installed. If this is installed the project manager will receive an e-mail when a user has filled in hours. The manager can approve or disapprove the timesheet. If it's disapproved the user will receive an e-mail about that and the week will be re-opened automatically. If the hours approval module is not installed hours will be approved automatically.

Hours approval screen

Throubleshooting

I cannot add time to a specific project.

  • Check if the user is added as an employee of the project.
  • Check if the status of the project is not a status that marks the project as finished. (You are not able to write time on finished projects)