This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation.

Difference between revisions of "Projects and time tracking"

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search
(Project templates)
(Custom Reports)
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
=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
 +
 +
 +
 
[[Image:Project-information-panel.png|Project information panel|right]]
 
[[Image:Project-information-panel.png|Project information panel|right]]
 
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.  
 
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.  
Line 4: Line 12:
  
 
==Administration==
 
==Administration==
In the administration window you'll find the following tabs:
+
Before you start you need to setup everything here. In the administration window you'll find the following tabs:
  
 
===Permission types===
 
===Permission types===
Each project has a permission type. Those types control who can read, write or book hours to the project.
+
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, create subprojects and book working hours.
+
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.
 
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.
  
===Default fees===
+
===Employees===
Here you can set an internal and an external fee for each user that has access to the timeregistration module. The fees can be used for reporting and billing.
+
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.
===Special fees===
+
Here you can setup non-default fees which users can select if the fee is different then usual. A fee for travel miles instead of hours could be created here for example.
+
  
 
===Statuses===
 
===Statuses===
Create statuses to filter projects on.
+
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===
 
===Project templates===
You can create multiple project templates here. In a template you can control exactly 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. For a toplevel container you might want to disable all fields except for name and description for example. Within those you might have some different project types too.
+
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:
  
[[Project PDF templates||Read more about creating PDF templates here]]
+
#Container: This is just a folder for child projects and used for organizing the project tree.
 +
#Project: This type enables time tracking and expenses. A project can't have child projects.
  
===Report templates===
+
It's possible to set up some default items too. You can automatically create tasks, files and folders.
Here you can create different templates for PDF documents. There are some predefined templates here that you can use for reporting about timeregistration or project information.
+
  
===Expense & Income types===
 
Create types of expenses here that can be selected for expenses for projects. Like copy costs, materials etc.
 
  
 
==Create a project==
 
==Create a project==
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.
+
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.
You can create subprojects by double clicking a project and thereafter click at "Add" on that project level. You can also create a subproject from the "New menu" in the information panel.
+
 
 +
===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:
 +
 
 +
# Group header
 +
# Task 1
 +
# 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==
 
==Share a project with a new user / customer==
Line 52: Line 73:
  
 
==Reports==
 
==Reports==
At the reports page you can view all worked hours per user, project or customer.
+
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:
 +
<pre>
 +
/{file_folder_path}/php/projects2/report/YourReport.php
 +
</pre>
 +
 
 +
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:
 +
<pre>
 +
<?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');
 +
}
 +
}
 +
}
 +
</pre>
  
 
==Time tracking==
 
==Time tracking==
 
[[Image:Time-tracking-grid.png|320px|thumb|right|Time tracking in grid]]
 
[[Image:Time-tracking-grid.png|320px|thumb|right|Time tracking in grid]]
 
[[Image:Time-tracking-multiple-lines.png|320px|thumb|right|Time tracking with multiple registrations per project]]
 
[[Image:Time-tracking-multiple-lines.png|320px|thumb|right|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. You can change this at:
+
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
 
Time tracking -> Administration
 +
 +
  
 
===Close week===
 
===Close week===
Line 67: Line 157:
 
===Approve hours===
 
===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.
 
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 approved hours will be approved automatically.
+
If the hours approval module is not installed hours will be approved automatically.
  
 
[[Image:Hoursapproval.png|Hours approval screen]]
 
[[Image:Hoursapproval.png|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)

Latest revision as of 09:41, 10 March 2016

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)