Al-Jalil Developers case story
From meter photo to electricity bill: one controlled reading trail.
How assigned plots, camera-led capture, local and cloud OCR assistance, offline continuity and Odoo validation come together in the Al-Jalil meter-reader app.
A monthly electricity bill is only as dependable as the field reading, its identity and the evidence that travels with it.
For Al-Jalil Developers, the meter-reading problem crosses two very different environments. In the field, a reader needs a clear route, fast search and a reliable camera workflow. In the office, billing needs the correct plot, meter, previous reading, present reading and review status on the right monthly record.
The mobile app was designed around that handover. It does not create a disconnected list of photographs. It starts from reading lines prepared in Odoo and returns each capture to the same billing context.
01 / Controlled assignment
The reading route is owned by Odoo, not assembled on the phone.
A supervisor prepares the monthly meter-reading lines, assigns them to a reader and publishes the selected records to mobile. The app downloads only the records allowed for that user and company. If an assignment changes, the server version provides a controlled way to detect the difference.
Each mobile row carries the meter number, plot or house number, block, customer, meter type and previous reading. The reader can search across those business references, filter the list by progress and sort the route by plot.
Assignments download in manageable batches. The phone saves its position after every successful batch, so an interrupted download resumes instead of starting the route again.
02 / Evidence at source
Different meter types receive different capture requirements.
A single-register meter requires its normal display photo. A three-register meter can require separate normal, peak and off-peak photographs. The app shows the relevant previous values from Odoo before capture and keeps the plot, meter and register label visible in the reading context.
The camera experience includes framing and image-quality guidance so the reader can keep the full display in view. A capture is saved against the exact assigned reading line, along with its register type, time and any reader remarks.
Single register
Normal display, previous normal reading and one required evidence photo.
Three register
Normal, peak and off-peak displays remain distinct through capture and upload.
Field context
Plot, block, customer, meter number and meter type identify the job before capture.
03 / Assisted interpretation
OCR helps read the display, but it does not replace the evidence.
After a photo is captured, the app first runs local text recognition. The reading parser looks for a plausible meter value while screening out dates, meter serials and plot references. It also compares the candidate with the previous reading so an obviously lower result is not accepted casually.
If the local result is uncertain, the same photo can move to a cloud-vision fallback. The service is instructed to return no reading when the display is partial, blurred or insufficiently clear. Confidence and OCR context remain available for review, while the original photograph stays attached to the Odoo reading line.
See
Capture the correct display with a register-specific camera workflow.
PHOTO IS THE EVIDENCEInterpret
Run local OCR first and use a cloud fallback only when needed.
AI ASSISTS THE READERChallenge
Compare against the previous value and route uncertain results for review.
DO NOT GUESS04 / Route continuity
A weak connection pauses transfer, not the field round.
The assigned route, capture status and photographs are stored locally on the device. A completed capture enters a local queue first, with a unique transaction identifier and revision. Background synchronisation uploads the metadata and required photos when the connection is available.
Network retries do not advance the route cursor or delete pending work. If the app closes during assignment download, it resumes from the next pending batch on the next opening. Successfully uploaded records can later be cleared from the phone without removing the Odoo record.
05 / Server-side control
Odoo validates the reading before it becomes billing input.
The API verifies that the reading line exists, is published and belongs to the signed-in reader. Assignment revisions and unique mobile identifiers protect the workflow from stale or duplicate submissions. Required photos must arrive before finalisation.
Lower readings, unusually high consumption and incomplete photo sets are not silently forced into the bill. They receive an explainable exception status. If a monthly batch has already been locked, a late capture is held in a separate review queue where a supervisor can approve, reject or ignore it.
This gives the office a practical audit trail: who captured the reading, which device and revision sent it, what evidence arrived and why a record did not proceed normally.
06 / Billing connection
The accepted result lands on the meter-reading line used by billing.
When the required registers and photos pass validation, Odoo writes the present reading, conducting user and date to the original meter-reading line and marks it conducted. For a three-register meter, peak and off-peak values remain separate while the current total is derived consistently.
The electricity-billing batch can then use the previous and present values to calculate consumption units and apply the configured tariff, surcharge, adjustment and billing rules. The app does not calculate the customer bill on the phone; it supplies a controlled, evidence-backed input to the billing engine.
The customer-facing side of that handover continues in AJD Connect, where the resident can review the meter, readings, units, charge heads, due amount and official bill PDF from the authorised Odoo account.
07 / Operational result
A faster field list and a cleaner billing handover.
The Al-Jalil meter-reader app gives the field team a searchable, assignment-based route instead of an uncontrolled photo gallery or paper list. It gives billing the same plot, meter, month, previous value, present value and evidence in one record.
Local storage keeps the round moving. OCR reduces repetitive digit entry. Odoo remains responsible for access, exceptions, evidence retention and the tariff calculation. Each layer does the work it is best placed to do.
That is the useful role of a business mobile app: simplify one demanding field task without separating it from the records and controls that determine the financial result.
Read the AJD Connect customer-billing case storyCustom mobile applicationsCustom ERP systems
