This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation. |
Difference between revisions of "Projects and time tracking"
(New page: 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 ...) |
(→Custom Reports) |
||
(42 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | With the projects module you can easily manage project information in one place and keep track of worked hours, material usage and travel costs. | + | =New manual in progress= |
− | You can also share projects with customers and co-workers. | + | |
+ | 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]] | ||
+ | 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: | ||
+ | |||
+ | #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. | ||
+ | |||
+ | 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: | ||
+ | |||
+ | # 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 12: | Line 66: | ||
Then you must create a project type at: | Then you must create a project type at: | ||
− | Projects -> | + | 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. | Add the new user to the project type and optionally other users that need access to this type of projects. | ||
Line 18: | Line 72: | ||
Now create a project with this type or update one with it. This project will be available to the new user. | 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: | ||
+ | <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== | ||
+ | [[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]] | ||
+ | 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. | ||
+ | |||
+ | <div style="clear:both"></div> | ||
+ | ===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. | ||
+ | |||
+ | [[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
Contents
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
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:
- 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.
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:
- 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.
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
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.
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)