Documentation
The workshop, day to day
Two features built for the person who produces, not the person who administers: scanning a QR code to land straight on your entry screen, and a timer that measures time without anyone having to think about it.
Scanning a work order
Every work order carries its own QR code. An operator with a tablet scans it and lands directly on the production entry screen, without going through the menus.
Setting up the codes
From a work order's record, the print button produces an A5 sheet with the QR code at 35 mm, the order reference, the product and the quantity to produce. It is made to be posted at the workstation.
Batch printing lets you print the sheets for every order in a selection at once — useful at the start of the week to prepare the workstations.
Orders created before version 1.4.0 was installed receive their code automatically, with nothing for you to do.
Scanning
From the My productions screen, the Scan a QR code button opens the camera. Once the code is recognised, the entry screen opens on the right order.
Decoding happens entirely in the browser: no image, no video stream is sent to the server.
The camera is only accessible over a secure connection (HTTPS), or from the machine itself. This is a browser rule, not a module one. If your Dolibarr runs on plain HTTP, the screen will tell you instead of staying stuck, and entering the reference by hand remains available.
The entry screen timer
When the production entry screen opens, a timer starts on its own. The operator has nothing to trigger: that is the whole point of the feature, measuring without any extra effort for the person producing.
The elapsed time is shown large, and the minutes are copied into the "Production time" field every second.
It suggests, the operator decides
As soon as the operator types into the field themselves, the timer stops writing to it and never takes back control. The screen states this explicitly. A value corrected by hand is a decision, and it is respected.
Pause and resume
The Pause button freezes the counter: an interruption, a phone call, a change of workstation are not counted as work. Resume picks up from the frozen time, without losing or recounting anything.
The measured time survives a page reload: if the operator closes the tab by mistake, or the entry is rejected for insufficient stock, they find their counter right where they left it.
The machine going to sleep, or navigating back in the browser, are not counted either. What is measured is working time, not clock time.
What the timer adds to the indicators
The measured time is recorded with the production, distinct from the entered time. The two deliberately coexist:
| Production time | Timed duration | |
|---|---|---|
| Unit | minutes | seconds |
| Source | what the operator validated | what the timer measured |
| Editable | yes, that is the point | no, never |
This lets the performance indicators say whether they rest on a measurement or on an estimate. An average time calculated from values entered from memory at the end of the day, and an average timed duration, are not comparable; until now, nothing told them apart.
Beyond twelve hours, the timer stops feeding the field and says so. A tab left open all day measures a presence on screen, not working time.
Without JavaScript
If the browser does not run JavaScript, the "Production time" field remains fillable as normal and the production is recorded as before. The timer and the pause buttons simply do not appear, rather than sitting there doing nothing.