SoftPartners logoSoftPartners

Field service

Requisitions from the job site, posted against the contract the ERP already owns

A specialty electrical contractor runs multi-year work from trucks. Each truck carries conduit, wire, breakers, and devices. Everything consumed has to hit the right contract and cost center. The ERP was fine at purchasing and job costing. It had no idea what was on a truck. So the field ran on text messages, and the warehouse spreadsheet was updated when someone had time.

FIG. 01FIELD INVENTORYBEFOREText message requestsWarehouse countsTruck stock guessesContract budgetsAFTEROne inventory poolRequisitions with a trailCounts that are currentBudget checked at requestTHE ERP REMAINS THE SYSTEM OF RECORD

What was breaking

  • Material sitting on another truck got re-ordered because nobody could see it.
  • A text is not a requisition — it has no state, owner, or budget check.
  • Contract managers learned they were near budget after the material was already on site.
  • Replacing the ERP was not an option, and it was not going to grow a truck-stock module.

What changed

  • Field and warehouse look at the same on-hand number.
  • Approvals happen against a budget position, not a text thread.
  • The legacy ERP did not get replaced. It got the field data it never had.

Legacy ERP + mobile field app

What we built

FIG. 02WHAT THE SYSTEM RUNSCrew requestsfrom the truckCheck stocktruck + warehouseCheck budgetagainst contractFulfil and postback to the ERPONE POOL ACROSS TRUCKS, WAREHOUSE, AND CONTRACT BUDGETS.

01

A mobile app the crew will actually use

Today's scope, a material pull against the job, a restock request with quantity and urgency, hours, and a daily report. It queues offline and syncs when there is signal.

02

Requisitions with real states

Requested, awaiting approval, approved, picked, delivered, closed. Every request carries the contract and cost center, so approval shows the budget impact before anyone says yes.

03

One pool, two locations — ERP stays the ledger

Truck and warehouse stock share one inventory model with a location. Transfers are a movement, not an untracked event. The ERP remains the system of record; our layer proposes the consumption posting back to it.

Questions about this build

How do you track truck stock for an electrical contractor?

Truck and warehouse stock share one inventory model with a location, so a transfer is a recorded movement rather than an untracked event. That is what stops material being re-ordered because nobody could see it sitting on another truck.

Can this work with our existing ERP instead of replacing it?

Yes, and that was the requirement here. The ERP was already good at purchasing and job costing and was never going to grow a truck-stock module. It stays the ledger; our layer captures the field data it never had and proposes the consumption posting back to it.

Does the field app work without a signal?

Yes. Crews record material pulls, restock requests, hours, and a daily report offline, and the app queues them and syncs when there is signal. A field app that needs coverage to work does not get used on a job site.

Can material be posted against the right contract and cost center?

Every requisition carries the contract and cost center from the moment it is raised, and approval shows the budget impact before anyone says yes. That is the difference between a requisition and a text message: state, an owner, and a budget check.

Have a workflow that looks like this?

Tell us the tools, spreadsheets, or legacy systems in the way. We will say whether it should become one custom app.

Start a conversation