At T2 Mobile, the Nigerian operator known as 9mobile, spending on network sites now follows written authority rules, and every decision leaves a record. Al Jawad Software House rescued the operator's Odoo project and built what the operation needed beyond the built-in features: authority over facilities spending, a stronger procurement process, finance roles drawn from the operator's own rules, and a controlled link to its dealer platform.
- A facilities job cannot be approved unless an authority rule matches its amount, service category, site and urgency, and each decision is recorded with the level, the person and the reason.
- A service bill is checked against the finished job before it posts.
- One approval engine carries delegated authority across purchase orders, requisitions, bills, assets, stock movements, expenses, travel and budgets.
The business
T2 Mobile sells through dealers, distributors and points of sale. Behind that channel sits a physical estate of sites. Every repair involves a vendor, a scope and a cost. Spending control is a daily job.
Where the work gets hard
Each job needs the right authority. The right approver depends on the amount, the type of service and the location. When approvers are named in a process rather than held as rules, every change in the organisation means a change in the process.
A service leaves no goods receipt. The usual control for a supplier bill is to match it with the purchase order and the goods received. A repair at a site delivers no goods, so the proof has to come from somewhere else: that the job was finished, and that the site accepted it.
Authority reaches well beyond purchasing. Delegation of authority, the rules for who may approve what, also covers requisitions, supplier bills, assets, stock movements, expenses, travel and budgets. A separate approval for each would leave many rule sets to maintain.
Outside platforms need careful access. Dealers and distributors work in the operator's own channel platform, which has to exchange transactions with the ERP. Those messages carry financial data, so each one needs to be identified, protected from duplication and recorded.
What we implemented
Facilities requests that become controlled jobs
A service request becomes a Job Card, the record of work at a site. Job Cards can also come from preventive maintenance, compliance renewals and safety incidents. Odoo warns about possible duplicates, and the asset register with its QR labels ties work to equipment.
Job cost approvals held as rules
Each Job Card carries a cost card. Approval rules match on amount, service category, site, cluster and whether the job is an emergency, and a level can require more than one approver. If no rule matches, submission stops with an error, so nothing is approved by default. A company setting can prevent a requester from approving their own card. Each decision is recorded with the level, the rule, the person, the date and the reason. An approved card produces one or more requests for quotation.

Service bills checked against the work
Before a supplier bill posts, Odoo checks that the Job Card is complete with a validated worksheet and that the vendor matches. It checks that quantity and amount are within tolerance. Where the service category or setup requires them, it also checks for a purchase order, site acceptance and a valid vendor contract. Each company decides whether a failed check blocks the bill or shows a warning.
Procurement with budget checks
A purchase request passes the department, then finance for cost coding and a budget check, then procurement leadership. A buyer then runs it as a single-source purchase, or as a tender with an offer summary and a technical evaluation.
One model of delegated authority
We built one approval engine on the Odoo Approvals application, and applied it to purchase orders, requisitions, bills, assets, stock movements, expenses, travel and budgets. Approvers come from templates, so administrators keep the rules in one place.
Finance roles from the operator's own workbook
T2 Mobile's user security workbook set out who should be able to do what in finance. We defined those roles in Odoo as a traceable copy of that matrix, and cross-checked them for conflicts between duties.
Safety, compliance and running costs
The facilities work also covers safety incidents, audits and corrective actions, compliance reminders, lease escalation schedules, and utility and diesel tracking with a fuel balance reconciliation.
A controlled link to the channel platform
We built a gateway for the channel platform to exchange payment batches, purchase orders, partner balances, commissions, disputes and stock returns with the ERP. A channel purchase order becomes a draft sale order. A repeated message returns the original response and is not processed again, and a monitoring screen shows traffic and errors.
How the work gets easier
| The usual way | With the new process |
|---|---|
| Approvers are written into the process | Amounts, categories and approvers are settings that can change |
| A job with no clear approver gets approved informally | With no matching rule, the submission stops |
| A service bill is paid on trust | The bill is checked against evidence of the finished job |
| Each department keeps its own approval rules | One engine carries authority across the business |
| Dealer transactions are rekeyed or sent twice | Each message becomes one recorded document |
The result is spending that follows written rules, with a recorded trail of who decided what. Facilities, procurement and finance can each rely on the step before theirs.