
Garage & Auto Repair Management
Garage and auto repair job cards with an authorised figure that cannot be exceeded quietly, booked versus actual time, and service history.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_garage.
Garage & Auto Repair Management
Built around the one argument every garage has: the customer authorised a figure and the bill says another.
The vehicle
The history belongs to the registration plate, not to the owner. Cars change hands; the record does not start again.
The odometer never goes backwards. A reading lower than the last one is a typo or a crime, and either way it is refused - on the vehicle, on the job card, through an import and over the API, because they all go through the same door. Every job card writes its reading onto the vehicle.
A reading that went in wrong is corrected by the workshop manager, with a reason, and the reason is on the vehicle where the next person can read it. Cancelling a card gives the vehicle back the reading it had before that card was opened.
Service due by date or by distance, whichever comes first, and a job that includes a service operation resets both. Cancelling a finished card winds the clock back with it.
Roadworthiness and insurance dates sit beside them, and a scheduled job puts a call on a named person's list thirty days out - the reminder owner set on the company, or the advisor who booked the car in last. Never a robot's list, and never the same car twice in a month, whether or not the call was ticked off.
The workshop
Book time, charged time and actual time on every labour line. The ratio between the first and the last is what a workshop is really run on, and it is a field rather than a spreadsheet.
Parts hold the car. A part on order puts the job in waiting, and a card cannot be finished while a part has not arrived. Each part carries its number, its factor, its cost and therefore its margin.
One car per ramp; a double-booked ramp is a promise broken.
The money
The driver is not always the payer. A fleet, a leasing company or an insurer set on the vehicle is carried onto every job card, and the invoice quotes the plate and the odometer - what a fleet manager reads when forty of these arrive in a month.
Labour and parts both reach the invoice, taxed through the customer's fiscal position - and the card shows the same tax the bill will, including on lines created by an import or over the API.
A card is invoiced once, and the card row is held while the invoice is raised, so two people pressing the button at the same moment cannot raise two bills.
An invoiced card cannot be edited - header, labour or parts. Cancel the invoice and the card puts itself back to finished; credit it and the card is free again, because a credit note is not a second bill and the invoice it reversed has stopped being one.
Roles
A technician works the card - diagnosis, labour, times, parts - and sees no price and authorises nothing. That is enforced on the fields themselves, not only on the screen: a price is not readable over the API, in an export or through an import either, and the authorisation and the state of the card cannot be written by anybody but the advisor. A service advisor books cars in, rings the customer, moves the card through the workshop, authorises and invoices - and comes with the invoicing rights that requires. The workshop manager configures, sees the cost and the margin on parts, corrects an odometer and puts a finished card back on the ramp.
Community only
Depends on product, account and base_setup - all Community. Tested on 16.0, 17.0, 18.0 and 19.0.
Screens


