The Odoo Maintenance App is a module that allows companies to manage production machines as well as general equipment. In the following blog entry, we would like to discuss the special features of managing general company equipment.
Tip: If you already know the functional scope of the maintenance app, but would like more detailed information on the calculation of follow-up dates for preventive maintenance, you can jump directly there via the following link: Calculation preventive maintenance appointment
In most companies there is a variety of equipment that needs to be managed and maintained. For example, IT equipment (laptops, PCs, smartphones, etc.) but also equipment requiring maintenance and inspection (such as ladders, measuring devices, safety equipment, etc.). To manage this equipment efficiently, Odoo offers the app "Maintenance".
Some highlights of the maintenance module:
Equipment can be assigned to persons responsible (i.e. persons who are responsible for the maintenance and function of the equipment) as well as to users (i.e. persons who actually use the equipment).
Odoo manages both preventive and incidental maintenance of equipment.
The interval for preventive maintenance can be individually defined in Odoo per piece of equipment. Odoo then automatically takes over the creation of maintenance jobs and assigns them to the responsible persons.
Maintenance requests for incident-related maintenance can be received by e-mail.
Use of the maintenance module
The maintenance app can be called up directly from the main menu after installation via the Odoo App Store:
Before the maintenance module can be used, some initial set-up work must be carried out:
Configuration of the maintenance teams (Configuration => Maintenance teams): Maintenance orders can be assigned to these teams
Configuration of inventory categories (Configuration => Inventory categories): Here the different equipment types are defined. In our example, these are "ladders, measuring devices, IT, tools". You can give an inventory category an email alias. When an email is sent to this address, a maintenance order is automatically created for the corresponding category.
Maintenance levels: This defines the stages in which maintenance is carried out.
Creating equipment: The creation of equipment is actually self-explanatory. Some important information about the equipment:
The registered technician is used as the person responsible for maintenance orders.
The "effective date" is taken into account when calculating the maintenance (see below).
In the "Maintenance" tab, you can define the interval at which the equipment is to be preventively maintained.
Occasion-related maintenance (rectification)
Occasional maintenance becomes necessary spontaneously and is unplanned. An example of cause-related maintenance would be a malfunctioning keyboard on a laptop.
In order to create an event-related maintenance (Odoo wording: "Remedy"), open the menu "Maintenance => Maintenance requests" and click on "Create". Enter a title for the request and select "Repair" as the maintenance type. A task for the maintenance is automatically assigned to the person responsible.
Event-related maintenance requests can also be created via e-mail. For this purpose, an e-mail alias must be stored in the inventory category. If the system receives a message to this address, a maintenance request is automatically created.
Preventive maintenance is a pre-planned activity that is due at regular intervals. Example: The regular complete maintenance of a production machine.
The maintenance interval of a piece of equipment is set in the equipment master data in the "Maintenance" tab.
In the standard version of Odoo, a maximum of 1 maintenance interval can be set per piece of equipment. If different maintenance intervals have to be set (e.g. a machine is lubricated regularly but only serviced completely once a year), there are several options for mapping this:
Subdivision of a piece of equipment into several "partial pieces of equipment"
Manual creation of maintenance orders at regular intervals
Use of an individual module to expand the functionalities
Odoo automatically checks the maintenance intervals and creates corresponding maintenance requests as soon as a new maintenance is due. This check is carried out in Odoo via a "scheduled task" which often leads to confusion, especially during the initial set-up, as this is only carried out once a day in the standard configuration. So if a new piece of equipment is created, the necessary maintenance work is available in the database within 24 hours. To speed up this process, there is a trick for experienced users:
Open the Settings app and activate the developer mode
Open App "Settings" again and now click on "Technical => Scheduled actions" in the menu at the top.
Search for the action "Maintenance: Create requests for preventive maintenance" via the search field and open it
Click on "Run Manually"
The necessary preventive maintenance work is now immediately determined and created.
The calculation of the preventive maintenance date:
Especially when creating new equipment, the question arises as to how the next maintenance date is determined. Unfortunately, the Odoo documentation does not provide an answer to this question, which is why we have collected our experiences here for you and summarised them in a decision tree (the logic refers to the current version Odoo v14 from 20.10.2020 - we expect that there will be slight changes in the logic in future versions, especially since the selection of the current date or the effective date is not entirely consistent):
When calculating the maintenance date, Odoo first determines for the equipment concerned whether there is already a completed maintenance and/or a planned maintenance in the future
If there is already a (not completed) maintenance order in the future and an already completed maintenance order in the past, it is checked whether the interval between the last maintenance and the next maintenance corresponds to the interval * 2 specified in the equipment. If the interval between the two dates is twice as long or longer than specified, a new maintenance order is created, which is now stored either with the default date = dateoflastmaintenance + interval, or - if the result is still in the past - with the default date = today.
If there is only one maintenance order in the future (and no completed order in the past), it is checked whether this lies within the double interval to the current day. If the planned maintenance order is even further in the future, a maintenance order is created on day Today + interval.
If there is only one completed maintenance order in the past, either "Completion date of last order + interval" or (if this date is in the past) the current day is set.
If there are no maintenance orders (i.e. none planned for the future and none already completed), the next maintenance date is calculated from "Effective date" + "Interval".