Expenses and Timesheets Billing

This project is a module developed by our team according to the needs of one of our customers who wants to manage and bill expenses and timesheets on a given date.


In this manual, we will describe a use case:
A user wants to bill expenses and timesheets on a given date.
      For example, we are the 5th of September, we want to bill for August month.

  • Either a sale order that contains several expenses and timesheets that are not invoiced, including an expense and four timesheets were created before 5th of September.

Configuration :

After installing the module, a "Invoice expenses and timesheets" menu is added to the sale order. This menu is also available in the list view for batch billing.

This module adds a "Billable" column in the timesheet list view.
- When creating a timesheet and we uncheck the "Billable" field, the time will not be transferred to the sale order order, that is to say the "Delivered Quantity" field in the sale order will not be updated.

If I click on the "Invoice expenses and timesheets" menu, another popup window opens in which I enter a date, for example September 30, 2019.
- The system returns the unbilled expenses and  timesheets on or before September 30, 2019.
- From the returned list, the user can exclude expenses and timesheets for later billing by unchecking the "Include" box.
- Then, by clicking on the "Generate" button, an invoice will be generated including only expenses and timesheets not billed on or before September 30, 2019 whose the "Include" box is checked.
In our example, there is only one expense and four timesheets.

Expense to be invoiced before the fixed date.

Timesheet to be invoiced before the fixed date.

The invoice will be as follows, it only displays expenses and timesheets for which the "Include" field has been checked. Other expenses and timesheets will be billed later.


The module also adds an Annex page for expenses and timesheets in the invoice report.

The module allows you to control the access rights to timesheets, by integrating a security group in the user called "Approver".

In the configuration of user access rights on timesheets :

  1. The "User" group has access to its own timesheets.
  2. The "approver" group has access to the timesheets of all subordinate of this employee / user.
  3. The "Manager" group has access to all the timesheets for all employees.

The "Approver" security group

Marc's direct and indirect subordinates

For example:
The employee "Marc" has the security group "Approver". As well as this employee has Caroline and John as direct and indirect subordinates, according to the employee file.
So Marc can see his own timesheets and only Caroline and John's timesheets.