When a build is finished, Dream MRP can refresh every component's current Xero cost and quantity, hard-block if anything would go negative, post the inventory adjustments to your Xero accounts, and re-sync the new values back — all from a single confirmation dialog.
When you mark a work order as Completed, Dream MRP opens a dialog that walks the entire close in front of you. Nothing is committed to Xero until you click Close Work Order & Post to Xero.
You can always cancel — your bill-of-materials edits stay saved as draft and the work order remains open.
Dream MRP loads the produced item, the quantity you built, and every tracked component consumed by this work order.
In the background, each tracked component is re-fetched from Xero so its unit cost and quantity on hand are bang up-to-date.
You review the produced quantity, the per-component used quantity, and the total cost — with freshly-refreshed values.
If any component would go negative, the dialog stops and shows you the shortfall. Nothing is posted to Xero.
A credit note decreases your consumed stock; an invoice increases the produced item — together they net to zero across the right accounts.
A tracked-items sync job is queued so Dream MRP picks up Xero's new costs and quantities ready for your next plan.
Component costs in Xero change every time you receive purchases — that's how moving-average cost works. Posting a work order with stale costs means the journal entries don't tie out to the inventory account.
Dream MRP fixes this by fetching every tracked component directly from Xero the moment the dialog opens. The call runs in the background while you review the build, so by the time you click Post the numbers are already the latest.
Only the components on this BOM are fetched — not your whole item list — in batches of 20 IDs per call.
Calls flow through the same rate-limited Xero client used everywhere else, so big BOMs never cause a 429.
A small banner shows Refreshing component costs and quantities from Xero… while the call runs, then disappears when done.
If Xero is unreachable or returns an error, the dialog tells you exactly why and offers a Retry button. The Post button stays disabled until refresh succeeds.
Xero will happily accept a credit note that takes a tracked item below zero — and untangling negative inventory in your accounts is painful. Dream MRP refuses to post one.
After the refresh, every consumed component's used quantity is compared against its current quantity on hand across all your locations. If anything would go negative, the post is blocked.
No part of the work order posts if any component is short. The credit note and invoice are an all-or-nothing pair.
The dialog lists each affected component with required, available and shortfall quantities so you know exactly what to receive or transfer.
The work order is not closed and your BOM edits are preserved — fix the stock issue and try again.
The same check runs server-side before any Xero call, even if the dialog state somehow gets out of date.
Dream MRP follows Xero's published guide for tracked-inventory adjustments. Closing a work order posts two paired documents to a generic Inventory Adjustments contact.
You choose the Inventory Adjustment Account in Settings › Configuration — usually a Direct Costs account. Dream MRP uses it as the balancing line so each document totals zero.
An accounts-payable credit note — one line per consumed component debiting its own inventory asset account — reduces the on-hand quantity at moving-average cost.
An accounts-payable invoice increases the produced item by the build quantity, valued at the sum of consumed component costs divided by the produced quantity.
Each document includes one offset line against your chosen Inventory Adjustment Account, so the total is exactly zero — no payable is created.
Xero limits documents to 50 lines. BOMs with more than 45 components are split across multiple credit notes automatically, each clearly labelled with the work-order number and part.
Posting to Xero changes the moving-average cost and quantity on hand of every item involved. Dream MRP queues a tracked-items sync the instant the post succeeds so the next MRP run sees Xero's new values.
The dialog closes and you're returned to the work-orders grid — the background sync finishes within seconds.
Only the Items job is queued — not the full items + non-tracked items pair — because untracked items aren't affected by stock adjustments.
The sync is queued in the background. If the queue is unavailable, the work order still closes — a warning is logged but the user isn't blocked.
Status flips to Completed in Dream MRP. The post-completion bill-of-materials freeze becomes the historical record.
Every document's description carries the work-order number, so finding the journal entries for a specific build in Xero is a one-keyword search.
Quick answers about how closing a work order behaves in practice.
Non-tracked components don't appear on the credit note — Xero doesn't carry stock for them. The produced-item cost still includes them via the BOM total cost.
No invoice is posted — just the credit note that reduces consumed component stock. The produced item exists only in Dream MRP for planning.
If your organisation is set to read-only mode in Settings, the post is blocked and the dialog explains why. Otherwise the close-and-post are a single action by design.
Errors from Xero are shown in the dialog with a clear message. The work order stays open and you can retry once the underlying issue is fixed.
Whatever you set as Inventory Adjustment Account in Settings. If you haven't set one, Dream MRP uses the first active Direct Costs account from your Xero chart of accounts.
Yes — the dialog lets you edit the produced quantity before posting. The unit cost recalculates live so you can see the impact.
Dream MRP keeps your stock and your accounts in step — no spreadsheet, no double-entry, no negative inventory surprises.
See pricing Open work orders