Five Sites. One System. Zero Friction.
Project-Based Odoo ERP with Real-Time Procurement-to-Payment Visibility
QuickBooks on one site, Excel on another, paper elsewhere — and a phone call whenever Head Office needed an answer. Now five sites and Head Office see what's owed at the same time.
In construction, the same failure shows up on almost every multi-site operation: each site runs its own tools — QuickBooks on one, Excel on another, paper elsewhere — and none of it reaches Head Office directly, so finding out what's owed means picking up the phone. A short delivery gets forgotten instead of chased. A subcontractor's claim becomes a manual argument over retention and past payments. Withholding tax gets applied inconsistently, depending on who's doing the math that day.
For one multi-site contractor, that gap closed entirely — all five sites and Head Office now work from the same live system, and what a site owes reads the same in both places, at the same time. Here's exactly how, and what it took to get there.
Industry: Construction & Contracting · Project type: ERP Implementation (Odoo) · Focus: Procurement-to-Payment Automation
- Request signed by the Project Manager before it can be submitted
- Procurement HO review against stock and budget
- Vendors compared side by side, Procurement Head signs off first
- CEO approves line by line: full, partial or a set quantity
- PO locks the moment it is approved
- Automatic backorder for the balance of a short delivery
- No payable created until a claim or bill arrives
- Backcharge posts as a journal entry on issuance
- Reverses automatically when material is returned
- Vendor claims booked at the gross amount
- IPC nets retention, backcharges and past payments automatically
- CEO approval locks the net payable
- Withholding tax calculated once, at Finance HO payment
- Cheque numbers come from the bank's range and can't be reused
- Cheques print in the layout of the bank's own chequebook
- One chart of accounts, scoped by project
- Site accountants see only their own project
- Group-level accounts blocked from direct postings
- Trial Balance, General Ledger and Partner Ledger locked to the project
- Liabilities, bank balances and inventory live, by project and period
- "All Time" view back to day one
See the exact workflow
- The five-role chain a request follows, from site store to payment
- How each outcome was achieved, with the problem and the fix side by side
- A real quote from the client's Director of Procurement
🔒 Kept private, never shared, no spam.
One system, five roles, every site
We built one Odoo-based system, live for every site and Head Office at the same time. Every purchase — from a request raised at a site to a payment released by Head Office — passes through five roles (Site Store, Procurement HO, CEO, Site Accountant and Finance HO) and lands in the same books. Five outcomes came out of it, across four roles.
Comparative statement turnaround: days to hours
The problem. Comparing vendors before a purchase was manual work that, in the client's own words, took days of effort.
What changed. A purchase request is signed by the Project Manager before it can even be submitted. Procurement HO checks it against stock and budget, then runs a comparative statement that puts vendors side by side. The Procurement Head signs off first, and the order moves on to the CEO.
Every PO approved line by line, then locked
The problem. With each site running its own tools, Head Office had no single place to see and approve what was being bought, so decisions depended on phone calls.
What changed. The CEO approves each PO line by line: in full, in part, or for a set quantity. The PO locks the moment it is approved, so nothing changes after sign-off. The same approval step covers every payment, and an approved subcontractor IPC locks its net payable.
Short deliveries tracked automatically
The problem. A short delivery got forgotten instead of chased, because nothing flagged what was still owed on the order.
What changed. When a receipt is validated short, a backorder opens automatically for the balance and stays linked to the original PO until it clears. No payable exists until a claim or bill actually arrives. Material issued to a subcontractor posts its own backcharge entry and reverses if it comes back.
Subcontractors paid from a certified statement, not an argument
The problem. Subcontractor billing was a manual argument: work done, retention and past payments were recalculated by hand, every time.
What changed. The Site Accountant enters work done against each BOQ item in an IPC, and the system nets retention, backcharges and past payments on its own. The CEO's approval then locks the net payable. Vendor claims are booked at the gross amount, with no invoice number required.
One live liability number, on-site and at Head Office
The problem. Every site kept its own records — QuickBooks on one, Excel on another, paper elsewhere — and none of it reached Head Office directly, so getting an answer meant phoning the site.
What changed. What a site owes now reads the same on-site and at Head Office: one live liability sheet per project, not two versions to reconcile. Reports on liabilities, bank balances and inventory are filtered by project and period instead of assembled by hand. When Finance HO pays, withholding tax is calculated once, at that moment, never earlier and never twice.
Live in production today
The system is live across five sites, each with its own store and accountant, and the same logic extends as new projects come online. Work now is about deepening it: sharper edges as everyday use turns up gaps, and better reporting for whoever is watching cost and progress.
Running more than one site and still chasing this answer by phone?
Let's map where your sites and Head Office lose visibility — and what it takes to close the gap.
Five Sites. One System. Zero Friction.
Project-Based Odoo ERP with Real-Time Procurement-to-Payment Visibility
QuickBooks on one site, Excel on another, paper elsewhere — and a phone call whenever Head Office needed an answer. Now five sites and Head Office see what's owed at the same time.
In construction, the same failure shows up on almost every multi-site operation: each site runs its own tools — QuickBooks on one, Excel on another, paper elsewhere — and none of it reaches Head Office directly, so finding out what's owed means picking up the phone. A short delivery gets forgotten instead of chased. A subcontractor's claim becomes a manual argument over retention and past payments. Withholding tax gets applied inconsistently, depending on who's doing the math that day.
For one multi-site contractor, that gap closed entirely — all five sites and Head Office now work from the same live system, and what a site owes reads the same in both places, at the same time. Here's exactly how, and what it took to get there.
Industry: Construction & Contracting · Project type: ERP Implementation (Odoo) · Focus: Procurement-to-Payment Automation
- Request signed by the Project Manager before it can be submitted
- Procurement HO review against stock and budget
- Vendors compared side by side, Procurement Head signs off first
- CEO approves line by line: full, partial or a set quantity
- PO locks the moment it is approved
- Automatic backorder for the balance of a short delivery
- No payable created until a claim or bill arrives
- Backcharge posts as a journal entry on issuance
- Reverses automatically when material is returned
- Vendor claims booked at the gross amount
- IPC nets retention, backcharges and past payments automatically
- CEO approval locks the net payable
- Withholding tax calculated once, at Finance HO payment
- Cheque numbers come from the bank's range and can't be reused
- Cheques print in the layout of the bank's own chequebook
- One chart of accounts, scoped by project
- Site accountants see only their own project
- Group-level accounts blocked from direct postings
- Trial Balance, General Ledger and Partner Ledger locked to the project
- Liabilities, bank balances and inventory live, by project and period
- "All Time" view back to day one
See the exact workflow
- The five-role chain a request follows, from site store to payment
- How each outcome was achieved, with the problem and the fix side by side
- A real quote from the client's Director of Procurement
🔒 Kept private, never shared, no spam.
One system, five roles, every site
We built one Odoo-based system, live for every site and Head Office at the same time. Every purchase — from a request raised at a site to a payment released by Head Office — passes through five roles (Site Store, Procurement HO, CEO, Site Accountant and Finance HO) and lands in the same books. Five outcomes came out of it, across four roles.
Comparative statement turnaround: days to hours
The problem. Comparing vendors before a purchase was manual work that, in the client's own words, took days of effort.
What changed. A purchase request is signed by the Project Manager before it can even be submitted. Procurement HO checks it against stock and budget, then runs a comparative statement that puts vendors side by side. The Procurement Head signs off first, and the order moves on to the CEO.
Every PO approved line by line, then locked
The problem. With each site running its own tools, Head Office had no single place to see and approve what was being bought, so decisions depended on phone calls.
What changed. The CEO approves each PO line by line: in full, in part, or for a set quantity. The PO locks the moment it is approved, so nothing changes after sign-off. The same approval step covers every payment, and an approved subcontractor IPC locks its net payable.
Short deliveries tracked automatically
The problem. A short delivery got forgotten instead of chased, because nothing flagged what was still owed on the order.
What changed. When a receipt is validated short, a backorder opens automatically for the balance and stays linked to the original PO until it clears. No payable exists until a claim or bill actually arrives. Material issued to a subcontractor posts its own backcharge entry and reverses if it comes back.
Subcontractors paid from a certified statement, not an argument
The problem. Subcontractor billing was a manual argument: work done, retention and past payments were recalculated by hand, every time.
What changed. The Site Accountant enters work done against each BOQ item in an IPC, and the system nets retention, backcharges and past payments on its own. The CEO's approval then locks the net payable. Vendor claims are booked at the gross amount, with no invoice number required.
One live liability number, on-site and at Head Office
The problem. Every site kept its own records — QuickBooks on one, Excel on another, paper elsewhere — and none of it reached Head Office directly, so getting an answer meant phoning the site.
What changed. What a site owes now reads the same on-site and at Head Office: one live liability sheet per project, not two versions to reconcile. Reports on liabilities, bank balances and inventory are filtered by project and period instead of assembled by hand. When Finance HO pays, withholding tax is calculated once, at that moment, never earlier and never twice.
Live in production today
The system is live across five sites, each with its own store and accountant, and the same logic extends as new projects come online. Work now is about deepening it: sharper edges as everyday use turns up gaps, and better reporting for whoever is watching cost and progress.
Running more than one site and still chasing this answer by phone?
Let's map where your sites and Head Office lose visibility — and what it takes to close the gap.