In eHour there is a simple, fixed, structure of the data:
A user is part of a department and can have multiple roles (User, Administrator, Reporter).
A customer can have multiple projects.
Projects are assigned to a user. There are three types of assignments (on date, fixed time allotted and flex time allotted). With the assignments in places a user can book hours on it, in other words: timesheet entries.
Users, user roles and departments
Within eHour, users are organized into departments. Each user can only be part of a single department. Departments come back during reporting where you can filter on a department.
A user can either be active or inactive. You can only delete a user when (s)he never booked any hour on a project. When someone did book an hour it's only possible to de-activate. Deactivated users cannot login but hours they booked in the past still appear on the reports.
Each user can have one or more roles, you assign them when creating or editing a user:
The basic role is the 'User' role. This role is needed to be able to book hours on projects and get reporting on his/her own hours.
Users with the 'report' role can view reports of all customers, projects and users. When someone only has a 'report' role he/she can only view reports, not book hours.
Administrators can create customers, users, assign roles to users, create customers, create projects and assign projects to users. They also can change global configuration parameters such as whether to display hourly rates and turnover.
Manager role is an optional role, it needs to enabled by an admin in the system configuration. As an admin you can manage user, projects, etc and modify eHour's configuration (this screen). With the manager role you can split up these two responsibilities. The manager can manage data but does not have access to eHour's configuration nor can he modify admins. Admins still have access to everything. When in doubt, you probably don't need it. Only enable it when you want to divide responsibilities over multiple users.
Project manager role
Project Manager is an implicit role, as in that you can't assign it to a user when creating the user. You can make a user PM by marking someone as PM when editing a project. More about the Project Manager role in the Projects sections.
Customers and Projects
Users can book hours on customers through a project. A customer is identified by a unique code and name combination.
A customer can be also de-activated. When a customer is de-actived users can't book hours on all the customers' projects anymore however the customer still appears on the reports.
Customers without projects can be deleted.
Every customer can have one or more projects. Projects have the same attributes as a customer: a name, unique project code and a description. Additionaly you can add the customers' contact person to the project and assign a project manager to it.
As with customers and users, projects can be de-activated. No more hours can be booked but it's still on the reports.
The project manager can view reports for the projects he's project manager for. He also receives e-mail when a user books more hours than allotted. For this e-mail functionality only users who have a filled-out e-mail address can be assigned project manager.
When configured a project manager can also add or remove users from his project, change rates and start and end dates. This privilege should be enabled by an admin in the system configuration.
When a project is marked as a default project, all existing and new users are automatically assigned to it.
For example, if you want users to be able to book vacation days; create a customer representing your own organization and create a project called 'Vacational leave' and make it a default project. Now every new user that's created can book hours on 'Vacational leave' without an adinm having to assign him/her manually.
Default project assignments don't have an hourly rate and the start and end date is infinite.
Before a user can book an hour on a project (s)he needs to be assigned to the project. In the assignment you can define the hourly rate, role and start and end date. This way each user can have a different hourly rate within the same project and a different start/end date depending on the phase the project is in.
There are three different types of assignments: date range assignment, fixed time allotted and flex time allotted assignments.
Date Range assignment
The date range assignment is the simplest form of an assignment. You define a start and end date and the user can book as many hours within that range as he needs to.
A start or end date is not required, if you leave the end date out and just specify a start date the user can book hours as of the start date until infinity.
Fixed Time Allotted assignment
The second type is the fixed time allotted assignment. With this type you define how many hours can be booked on this project by the user.
Say you give/allot 300 hours on a project to a user, when the user reaches that mark he cannot book any more hours on the project.
When the allotted mark is reached a warning mail is sent to the Project Manager informing him that the user reached the mark (therefore only users created with a valid e-mail address can be assigned as PM).
You can further limit this assignment by adding a start or end date or both.
Flex Time Allotted assignment
The last type is the flex time allotted assignment. The difference with the fixed time alloted assignment is that on top of the allotted hours an additional 'overrun' can be specified.
If a user has 200 allotted hours on a project and he books 200 hours an e-mail will be sent to the PM. However if an overrun of 80 hours is given he can book an additional 80 hours on the project. When those 80 hours are spent a second warning mail is sent to the PM and the user can't book any hours anymore on the project.