9
In most service companies where Open ERP has been integrated, service sheets, or timesheets, have
10
revolutionized management practices. These service sheets are produced by each employee as they work
11
on the different cases or projects that are running. Each of these is represented by an analytic
12
account in the system.
14
Throughout the day, when employees work on one project or another, they add a line to the timesheets
15
with details of the time used on each project. At the end of the day, each employee must mark all
16
the time worked on client or internal projects to make up the full number of hours worked in the
17
day. If an account isn't in the system then the time is added to the hours that haven't been
22
.. figure:: images/service_timesheet_list.png
26
*Timesheet for a working day*
28
The figure :ref:`fig-servtimlis` gives an example of a timesheet for an employee.
31
pair: cost; allocation
33
.. note:: Don't confuse timesheets and attendence compliance
35
The timesheet system isn't intended to be a disguised attendance form. There's no control over the
36
service times and the employee is free to encode 8 or 9 hours or more of services each day if they
39
If you decide to put such a system into place, it's important to clarify this point with your
40
staff. The objective here isn't to control hours, because the employees decide for themselves what
41
they'll be entering – but to track the tasks running and the allocation of costs between them.
43
Amongst the many uses of such a timesheet system for a company, here are some of the most important:
45
* enabling tracking of the true costs of a project by accounting for the time used on it,
47
* tracking the services provided by different employees,
49
* comparing the hours really used on a project with the initial planning estimates,
51
* automatically invoicing based on the service hours provided,
53
* obtaining a list of the service hours for a given client,
55
* knowing the costs needed to run the company, such as the marketing costs, the training costs for a
56
new employee, and the invoicing rates for a client.
61
The different timesheet categories (working time sessions) can be defined in the menu
62
:menuselection:`Human Resources --> Configuration --> Working Time Categories` and select
63
one of the groups there such as :guilabel:`38 Hours/Week`.
65
.. figure:: images/service_timesheet_def.png
69
*Timesheet category for full time 38 hours per week*
72
single: employee; configuring
75
Employee configuration
76
----------------------
78
To be able to use the timesheets at all, you must first define those employees who are system users.
79
The employee definition forms contain the information necessary to use that sheet, such as the job
80
title, and hourly costs.
82
Two fields will be of particular interest to you for managing timesheets: the :guilabel:`Analytic
83
Journal` and the :guilabel:`Product`.
85
In the analytic journal will be stored all the analytic entries about the costs of service times.
86
These enable you to isolate the cost of service from other company costs such as the purchase of raw
87
materials, expenses receipts and subcontracting. You can use different journals for each employee to
88
separate costs by department or by function.
90
The employee is also associated with a product in your database in Open ERP. An employee is linked
91
with a product so they can be 'bought' (subcontracting) or 'invoiced' (project management). You have
92
to create a product for each job type in your company.
94
The following information is important in the product form:
96
* :guilabel:`Name` : \ ``Secretary``\ \ ``Salesperson``\ \ ``Project Manager``\
98
* :guilabel:`Product Type` : \ ``Service``\
100
* :guilabel:`Unit of Measure` : \ ``Hour``\ \ ``Day``\
102
* :guilabel:`List Price`
104
* :guilabel:`Standard Price`
107
single: module; product_index
109
.. tip:: Price Indexation
111
The module :mod:`product_index` lets you generate indexes connected to the change of purchase or sale
112
price for individual products.
114
In human resources, this module can be used to change your prices or costs in step with a national
117
In summary, each company employee corresponds, in most cases, to:
119
* :guilabel:`Partner`
121
* an :guilabel:`Employee` form,
123
* :guilabel:`System User`.
125
And each company job position corresponds to a :guilabel:`Product`.
128
single: module; hr_contract
130
.. note:: Time charge rates
132
By default the hourly cost of an employee is given by the standard cost of the product linked to
134
But if you install the :mod:`hr_contract` module it's possible to manage contracts differently.
135
The hourly cost of the employee is then automatically calculated from their employment contract
136
when they enter their timesheet data.
138
To do this, the software uses a factor defined in the contract type
139
(for example, the gross monthly salary, calculated per day).
140
Ideally this factor should take into account the salary costs, and the taxes, insurances and other
141
overheads associated with pay.
144
single: timesheet; entering data
147
Entering timesheet data
148
------------------------
151
single: module; hr_timesheet
153
To be able to use timesheets fully, install the module :mod:`hr_timesheet_sheet`. Once this module
154
has been installed and the employees configured, the different system users can enter their
155
timesheet data in the menu
156
:menuselection:`Human Resources --> Working Hours --> My Working Hours --> My Working Hours of The Day`,
157
the click :guilabel:`New`.
159
.. tip:: Shortcut to timesheets
161
It's a good idea if all employees who use timesheets place this menu in their shortcuts.
162
That's because they'll need to return to them several times each day.
166
#. The :guilabel:`User` : proposed by default, but you can change it if you're encoding the first timesheet
167
for another company employee.
169
#. The :guilabel:`Date` : automatically proposed as today's date, but it's possible to change it if you're
170
encoding the timesheet for a prior day.
172
#. :guilabel:`Analytic Account` : for the project you've been working on - obviously it should be predefined.
174
#. :guilabel:`Description` : a free text description of the work done in the time.
176
#. :guilabel:`Quantity` : number of units of time (the units are defined as part of the product).
178
The other fields are automatically completed but can be modified: the :guilabel:`Product`
179
which is the service product such as consultancy, the
180
:guilabel:`Unit of Measure` (predefined, and could perhaps be minutes, hours or days),
181
the :guilabel:`Cost` of the service (which is calculated by default),
182
and the associated :guilabel:`General Account`.
184
The hours are then encoded throughout the day by each employee. It helps to revisit the list at the
185
end of the day to verify that the number of hours of attendance in the company has been properly
186
accounted for. The total entered is shown at the bottom right of the list of service hours.
188
The accuracy of the services entered is crucial for calculating the profitability of the different
189
jobs and the recharging of services. Different reports are therefore available for verifying
190
employees' data entry. Employees can verify their own timesheet using the following reports:
192
* Printing the timesheets per month, using the menu :menuselection:`Human Resources --> Reporting
193
--> Timesheet --> Print my timesheet`.
195
* Reviewing all service entries using the menu :menuselection:`Human Resources --> Timesheets
196
--> My Timesheets --> My timesheets to confirm`.
197
You can then use the filters to analyze your services by project, by
198
period or by product.
200
.. tip:: Hiding service costs
202
By default, Open ERP is configured to show the cost of each service when an employee encodes the
203
number of hours per project.
204
You can modify this field by adding the attribute invisible=True in the timesheet view.
206
(And the way to do that is either to modify the view on the filesystem, or
207
to use the web client to modify the view in the current database.
208
For the latter, there's a pale grey :guilabel:`[CUSTOMIZE]` label
209
to the bottom left of each form that gives you access to the
210
:guilabel:`Manage Views` option.
211
If you have sufficient permissions you can edit the XML that defines the current view.)
213
The value in the cost field shows employees the cost of their time used in the company, so masking this
214
field might not always be the best option.
216
Managers can draw on different reports for managing timesheets quite easily. You can print a summary
217
in the form of a table per user and per day in the menu :menuselection:`Human Resources -->
218
Reporting --> Timesheet --> Employees timesheet`. This helps you spot when an employee has
219
forgotten to enter her timesheet details on a certain day.
221
.. figure:: images/service_timesheet_all.png
225
*Employees' monthly summary timesheet*
227
If you install the module :mod:`report_timesheet` you'll have many more reports available.
228
Some new graphs become available through the menus
229
:menuselection:`Human Resources --> Reporting --> This Month` and
230
:menuselection:`Human Resources --> Reporting --> All Months`, for example:
232
* :guilabel:`Timesheet by User`
234
* :guilabel:`Timesheet by Invoice`
236
* :guilabel:`Daily Timesheet by Account`
238
* :guilabel:`Timesheet by Account`
240
.. figure:: images/service_timesheet_graph.png
244
*Chart of timesheet by account*
246
The data making up these graphs can be varied using the filters available in the upper part of the
247
screen. If you want to see more detail, switch to the list view.
249
.. note:: Project dashboard when signing in
251
The dashboard for managing projects has a graphical view that summarizes the current user's
252
timesheet for the last seven days.
254
you can assign a dashboard to users so that it appears when they sign into Open ERP.
255
Then each employee will be able to see if they forgot to complete their timesheet next time
256
they sign into the system.
259
single: module; board_project
261
To use this dashboard, install the module :mod:`board_project`.
264
single: timesheets; evaluation
267
Evaluation of service costs
268
---------------------------
270
You already know that timesheets are closely linked with analytic accounts. The different projects
271
reported on the timesheets correspond to analytic accounts. The timesheet entries themselves are
274
These entries comprise various analytic operations that don't correspond to any of
275
the general accounts. Therefore all operations that modify and create timesheet lines automatically
276
impact the corresponding analytic line and, conversely are automatically modified by changes in that
279
.. note:: Timesheets and analytical data
281
The implementation of timesheets in Open ERP relating to analytic entries is managed by an
282
inheritance mechanism:
283
the timesheet object inherits the analytic entry object.
285
The information is therefore not encoded into the database as two separate events, which avoids
286
many synchronization problems.
287
They are stored in two different tables, however, because a service is an analytical entry, but an
288
analytical entry isn't necessarily a service.
290
This isn't a classical approach but it's logical and pragmatic. Employee timesheets are a good
291
indication of how the costs of a service enterprise are spread across different cases as reported in
292
the analytic accounts.
297
An analytic account should be reflected in the general accounts, but there's no direct counterpart
298
of these analytic accounts in the general accounts. Instead, if the hourly costs of the employees
299
are correctly accounted for, the month's timesheet entries should be balanced by the salary +
300
benefits package paid out to all the employees at the end of the month.
302
Despite all this it's quite difficult to work out the average hourly cost of an employee precisely
303
because it depends on:
305
* the extra hours that they've worked,
307
* holidays and sickness,
309
* salary variations and all the linked costs, such as social insurance charges.
311
The reports that enable you to relate general accounts to analytic accounts are valuable tools for
312
improving your evaluation of different hourly costs of employees. The difference between product
313
balances in the analytic account and in the general accounts, divided by the total number of hours
314
worked, can then be applied to the cost of the product. Some companies adjust for that difference by
315
carrying out another analytic operation at the end of the month in an account created for that
316
purpose. This analytic account should have a balance that tends towards zero.
318
Because you've got a system with integrated timesheets you can then:
320
* track the profitability of projects in the analytic accounts,
322
* look at the history of timesheet entries by project and by employee,
324
* regularly adjust hourly costs by comparing your rates with reality,
326
.. important:: Project Cost Control
328
Controlling the costs and the profitability of projects precisely is very important.
330
It enables you to make good estimates and to track budgets allocated to different services and
331
their projects, such as sales and, R&D costs.
332
You can also refine your arguments on the basis of clear facts rather than guesses if you have
333
to renegotiate a contract with a customer following a project slippage.
335
The analyses of profitability by project and by employee are available from the analytic accounts.
336
They take all of the invoices into account, and also take into account the cost of the time spent on
339
.. index:: department
341
Managing by department
342
----------------------
344
When they're used properly, timesheets can be a good control tool for project managers and can
345
provide awareness of costs and times.
347
When employee teams are important, a control system must be implemented. All employees should
348
complete their timesheets correctly because this forms the basis of planning control, and the
349
financial management and invoicing of projects
351
You'll see in :ref:`ch-services` that you can automatically invoice services at the end of
352
the month based on the timesheet. But at the same time some contracts are limited to prepaid hours.
353
These hours and their deduction from the original limit are also managed by these timesheets.
356
single: module; hr_timesheet_sheet
358
In such a situation, hours that aren't coded into the timesheets represent lost money for the
359
company. So it's important to establish effective follow-up of the services timesheets and their
360
encoding. To set up a structure for control using timesheets you should install the module
361
:mod:`hr_timesheet_sheet`.
363
.. figure:: images/timesheet_flow.png
367
*Process of approving a timesheet*
369
This module supplies a new screen enabling you to manage timesheets by period. Timesheet entries are
370
made by employees each day. At the end of the week, employees validate their week's sheet and it's
371
then passed to the services manager, who must approve his team's entries. Periods are defined in the
372
company forms, and you can set them to run monthly or weekly.
374
To enter timesheet data each employee uses the menu :menuselection:`Human Resources --> Timesheets
375
--> My Timesheets --> My Current Timesheet`.
377
.. figure:: images/service_timesheet_sheet_form.png
381
*Form for entering timesheet data*
383
In the upper part of the screen the user starts with the sign-in and sign-out times. The system
384
enables the control of attendance day by day. The two buttons Sign in and Sign out enable the
385
automatic completion of hours in the area to the left. These hours can be modified by employee, so
386
it's not a true management control system.
388
The area to the bottom of the screen represents a sheet of the employee's time entries for the
389
selected day. In total, this should comprise the number of hours worked in the company each day.
390
This provides a simple verification that the whole day's attendance time has been coded in properly.
392
The second tab of the timesheet :guilabel:`By day` gives the number of hours worked on the different
393
projects. When there's a gap between the attendance and the timesheet entries, you can use the
394
second tab to detect the days or the entries that haven't been correctly coded in.
396
.. figure:: images/timesheet_sheet_hours.png
400
*Detail of hours worked by day for an employee*
402
The third tab :guilabel:`By account` shows the time worked on all the different projects. That enables you
403
to step back to see an overview of the time an employee has worked spread over different projects.
405
At the end of the week or the month, the employee confirms his timesheet. If the attendance time in
406
the company corresponds to the encoded entries, the whole timesheet is then confirmed and sent to
407
his department manager, who is then responsible for approving it or asking for corrections.
409
Each manager can then look at a list of his department's timesheets waiting for approval using the
410
menu :menuselection:`Human Resource --> Timesheets --> My Department's Timesheets --> Timesheets to
411
validate`. He then has to approve them or return them to their initial state.
413
To define the departmental structure, use the menu :menuselection:`Administration --> Users -->
414
Departments --> Departments`.
416
.. tip:: Timesheet approval
418
At first sight, the approval of timesheets by a department manager can seem a bureaucratic
420
This operation is crucial for effective management, however.
421
We have too frequently seen companies in the situation where managers are so overworked that they
422
don't know what their employees are doing.
424
So this approval process supplies the manager with an outline of each employee's work at least once
426
And this is carried out for the hours worked on all the different projects.
428
Once the timesheets have been approved you can then use them for cost control and for invoicing
431
Contracts and their rates, planning, and methods of invoicing are the object of the following
432
chapter, :ref:`ch-services`.
435
.. Copyright © Open Object Press. All rights reserved.
437
.. You may take electronic copy of this publication and distribute it if you don't
438
.. change the content. You can also print a copy to be read by yourself only.
440
.. We have contracts with different publishers in different countries to sell and
441
.. distribute paper or electronic based versions of this book (translated or not)
442
.. in bookstores. This helps to distribute and promote the Open ERP product. It
443
.. also helps us to create incentives to pay contributors and authors using author
444
.. rights of these sales.
446
.. Due to this, grants to translate, modify or sell this book are strictly
447
.. forbidden, unless Tiny SPRL (representing Open Object Press) gives you a
448
.. written authorisation for this.
450
.. Many of the designations used by manufacturers and suppliers to distinguish their
451
.. products are claimed as trademarks. Where those designations appear in this book,
452
.. and Open Object Press was aware of a trademark claim, the designations have been
453
.. printed in initial capitals.
455
.. While every precaution has been taken in the preparation of this book, the publisher
456
.. and the authors assume no responsibility for errors or omissions, or for damages
457
.. resulting from the use of the information contained herein.
459
.. Published by Open Object Press, Grand Rosière, Belgium