www.happen.software · sales@happen.softwareCase study · Manufacturing · Rescue & rebuild
Rescuing a system the business had outgrown
An international manufacturer's purchase and travel requisitions ran on an in-house system whose original developer had moved on, on a framework that was out of support. We took it over, kept it running, audited it end to end against live data, and rebuilt it. Today every purchase and trip runs through the new system, with budget controls, notifications, and live dashboards that show finance exactly where things stand.
- Since 2024 · 2 years
39,000+
Historical requests migrated with their full approval history
4,900+
Purchase requests and trips a quarter taken over by the rebuild: 3,693 and 1,229 in the old system's last full quarter
8 → 1
Conflicting budget calculations replaced by a single engine behind every screen
13
In-depth reports, from budget versus actual to month end, alongside three live dashboards
At a glance
- Client
- International security manufacturer
- Users
- Requesters, buyers, the travel desk, approvers, and finance
- Engagement
- Took over and supported from late 2024; rebuilt and live in 2026
- Status
- Live, with the full history migrated from the old system
- Integrations
- Microsoft Dynamics Business Central, Active Directory, email and push
- Visibility
- 13 reports, 3 live dashboards, and 30 notification types
- Scale
- 188 cost centres and approval chains of up to 10 people
01The situation
Our client's purchasing and travel requests ran on a system built in-house several years earlier. Its original developer had moved on, it ran on an out-of-support framework, and it had almost no automated tests. In its last full quarter it handled 3,693 purchase requests and 1,229 trips.
We took it over in late 2024, stabilised it, and finished its half-built ERP integration. Rather than keep patching it, we audited it end to end, rebuilt it alongside the old one, and moved the business across with its full history.
- 01
Budget figures that disagreed
The old system calculated budgets eight different ways with different answers, so finance had to track budgets in Excel alongside it.
- 02
Requests in a black box
Requesters were never told the outcome, and stuck requests showed a greyed-out button with no explanation.
- 03
Unsupported and fragile
An out-of-support framework, no automated tests, and nobody left who knew how it all fitted together.
02What changes
- UpdatesLegacy system: Requesters were never told what happened to their request.Rebuild: Every stage lands in the in-app inbox, with email and push for the updates each person chooses.
- BudgetsLegacy system: Eight calculations that disagreed, so budgets were tracked in Excel alongside.Rebuild: One budget overview, with one calculation behind every screen, report, and dashboard.
- Spending controlLegacy system: Spending caps switched on and off by hand, with no second approver.Rebuild: Funds released in stages, each approved by a second person, and cost centres that can be frozen.
- Stuck requestsLegacy system: A greyed-out approve button and no explanation.Rebuild: My Work says exactly what's blocking a request and who to chase, and blocked requests raise an alert.
- Month startLegacy system: Monthly budgets kept in Excel, outside the system.Rebuild: Each cost centre's budgets pasted straight in from Excel at the start of the month.
- Month endLegacy system: Late signatures could spend next month's budget.Rebuild: Approvals lock on the last evening; open requests are carried over or cancelled, and a month-end report closes the period.
03How it works
A purchase request, end to end
- 1
Request
A requester, or a buyer on their behalf, captures the lines. Each line shows its price against the item's set rate.
- 2
Prepare & approve
Procurement assigns the cost centre and buyer and reviews anything above a value threshold. Approvers then sign in order within the cost centre's price bands; delegates can sign for them, and nobody can approve their own request.
- 3
Funds check
The final signature checks the budget in the same step, so nothing is approved without the money to pay for it.
- 4
Post
Approved purchases post straight to the ERP's requisition worksheet, and the requester is told.
- 5
Stay informed
Every step notifies the people involved. Approvers get reminders and a weekday 07:00 summary, and a blocked request or failed posting raises an alert.
- 6
Close the month
On the last evening, approvals lock. Open requests are carried over or cancelled, the month-end report closes the period, and next month's budgets are pasted in from Excel.
04What we built
Audit before code
We documented the legacy system against a copy of live data: 164 capabilities rated working, defective, unreachable, or dead, and a recommendation to keep, fix, merge, or retire each one, with the open business questions settled with the client.
One workflow for purchases & travel
Price-banded approvals per cost centre, delegation, and segregation of duties. On shared trips, each cost centre approves its own share.
Budget controls
One calculation replaces eight. Funds are checked at the final signature, every release, transfer, and adjustment needs a second approver, and a cost centre can be frozen so it approves nothing.
Month start & month end
Month-start budgets pasted straight from Excel. At month end, approvals lock on the last evening, open requests are explicitly carried over or cancelled, and a month-end report closes the period.
Notifications & alerts
30 notification types across inbox, email, and push, with each person choosing how they hear. Approval reminders, a weekday summary, and alerts when a request is blocked or a posting fails.
Live dashboards
Budget Health flags cost centres over budget or nearly spent, the Workflow Monitor shows who is holding things up and how long work has waited, and Supplier Insights tracks spend concentration.
In-depth reporting
13 Excel reports: outstanding work, approval decisions, exceptions, orders placed, purchase and travel registers, supplier and travel spend, budget versus actual, cost-centre statements, budget changes, approvers, and month end.
Posted straight to the ERP
Suppliers and items come from Business Central, currencies are checked against it, and approved purchases post to its requisition worksheet line by line; if a response is lost, it's reconciled before anything is sent again.
05What each team gets
Requesters
- A short form limited to their own cost centres
- Copy a previous request instead of starting again
- The outcome of every step, as it happens
Buyers & travel desk
- Requests raised on someone's behalf, properly recorded
- A list of overdue approvers to chase
- Several approved trips posted at once
Approvers
- One work queue with a quick Decide button
- Reminders and a weekday summary of what's waiting
- Signatures that survive minor edits
Finance
- Month-start budgets pasted straight from Excel
- Budget Health and budget-versus-actual, live
- A month-end lock, carry-over, and month-end report
06How we delivered
- Late 2024
Take over
Took over the code from its original developer, stabilised it, and finished and shipped its Business Central integration.
- 2026
Audit
Specified the whole system from its code and live data, settled the open questions with the client, and decided what to keep, fix, merge, or retire.
- 2026
Rebuild
Rebuilt on a modern stack with an in-app user manual, in parallel with the old system.
- 2026
Live
The full history migrated after rehearsed imports, then the business cut over from the old system.
07Built to last
- A specification-first rebuild, grounded in live data and the client's answers to the open business questions.
- Funds checked in the same transaction as the final approval, so two approvals can't overspend a budget at once.
- Explicit handling when approvers change while requests are in flight.
- An append-only workflow history recording who acted, and on whose behalf.
- Security tightened throughout: shared credentials retired, sign-in moved to Active Directory, and permissions enforced on the server, not just hidden in the UI.
- About 300 automated unit, UI, and browser tests, and an in-app user manual with screenshots captured from the real app.
- .NET
- Angular
- PostgreSQL
- Microsoft Dynamics Business Central
- Active Directory
- Firebase
- Docker
- GitHub Actions
Stuck with a system your team works around?
We'll audit what you have, tell you honestly whether to fix or rebuild, and plan a migration that doesn't stop the business. Book a free 30-minute call with one of our engineers.
sales@happen.software · www.happen.software/contact
Keep reading
Related case studies
Manufacturing · Platforms & portals
Factory Wage & Attendance System
International security manufacturer
- Since 2025
Replacing a sprawling wage spreadsheet with automatic clocking, shift building, daily exception approvals, and one tested wage engine, across factories in two countries.
16 daysFrom the first line of code to the first wage report, and live within a month
Read the Factory Wage & Attendance System case studyRetail & eCommerce · Rescue & rebuild
Broadsheet Deal Capture
Retail data and insights company
- Since 2020 · 6 years
A rewrite of an old Windows capture tool into a system that has captured 40,500+ retailers' broadsheet adverts and more than 3.8 million standardised, checked deals, with AI to find and read each deal and a capturer reviewing every result before it reaches the client-facing reports.
3.8 million+Deals captured, each in the same standard shape whatever the retailer or region
Read the Broadsheet Deal Capture case studyTelecoms · Platforms & portals
Fibre Compare: Internet Comparison & Lead Platform
Telcotech
- Since 2019 · 7 years
Fibre Compare lets homes and businesses in South Africa enter their address, see the fibre and internet packages ISPs offer there side by side, and order in a few steps. It brings in more than 1,500 leads a month across 18+ ISPs. We've built and run it for Telcotech since 2019, with the portals, partner sites, and lead routing behind it.
1,500+Leads a month from homes and businesses, each routed to the right ISP and network operator
Read the Fibre Compare: Internet Comparison & Lead Platform case study
