MyWork24 Knowledge Base
Article

External Service Orders (paint, cutting & outside services)

Edit

External Service Orders - sending parts out for paint, cutting & other services

An External Service Order (ESO) covers any job where you send your own stock out to a supplier for a paid service - powder coating, painting, laser cutting, bending, machining - and get it back transformed. mywork tracks the whole round trip on one record: what you sent, where it physically is (still yours, sitting at the supplier), what came back, and the paperwork with the supplier.

The idea in 30 seconds

  • You send a raw part out (e.g. a bare bracket).
  • The supplier does a service to it (e.g. paints it). You pay for the service, not for new stock.
  • You get a finished part back (e.g. a painted bracket) - a different product code.

mywork keeps the sent stock on your books while it's at the supplier, and when the finished goods come back it books them into your inventory and raises the supplier paperwork automatically, in one step. You commit the order up front (with an office approval); the actual supplier purchase order is created behind the scenes as each batch is received.

One-time setup per part (do this before the first order)

Each serviced part is a small Bill of Materials (BOM) with two components:

  • the raw part you send out, and
  • the service (a non-stock "service" product you buy from the supplier).

Tell mywork which component is the service: in Settings ? Product Configuration, tick External Service on the service product. That single flag is how mywork knows which part to ship and which to pay for - you never have to pick it by hand, and it can't get mixed up.

Do this once per BOM. After that, anyone can raise orders for that part.

The lifecycle at a glance

  1. Draft - being built; edit freely.
  2. Awaiting approval - placed and waiting for the office to approve the spend. Nothing is sent to the supplier yet, and no purchase order exists yet.
  3. Approved - the office approved it; the floor can now collect, send and receive.
  4. Partially Dispatched / Dispatched - some / all of the raw stock is physically at the supplier.
  5. Partially Returned - some finished goods are back; the rest is still out.
  6. Completed - everything is back (or written off).

Once an order is approved, sending and receiving are not a strict one-way line - you can send a batch, receive a batch, send more, and so on, in any order, until the job is done. mywork works the status out for you from what's actually been sent and received.

Worked example: paint 5 brackets

  1. Create the order (Procurement & Logistics ? External Services ? New External Service Order): pick the supplier and add a line for the painted bracket, quantity 5, with the agreed paint price.
  2. Place it - this commits the order and sends it to the office for approval. (If you have approval rights you can use Place & Approve to do both at once.)
  3. Once approved, the floor sends the 5 bare brackets out (see below).
  4. When the 5 painted brackets come back, the floor receives them - and 5 painted brackets land in stock.

Creating & placing the order (office)

  • New External Service Order under Procurement & Logistics ? External Services.
  • Pick the supplier and the service type (e.g. Powder Coating), then add a line per part: choose the product (the finished part, the raw part, or the service - mywork derives the other two from the BOM), set the quantity and the unit service price.
  • Place commits the order and sends it for office approval. No purchase order is raised at this point - placing is a local commitment only. Nothing can be sent until the order is Approved; this protects you from sending stock against a spend that might be rejected.
  • Approve / Reject the spend on the External Services admin screen (needs the approval right). Place & Approve does place + approve in one click.
  • The supplier purchase order is created automatically as each batch of finished goods is received - one complete PO per receipt - so you never raise or chase it by hand.

On the floor: sending out & receiving back

Open the order from Shipping & Receiving ? External Services. Each line is shown as a left-to-right flow card:

  • Send out (left) - the raw part you physically ship.
  • the service in the middle (just so you know what's being done - there's nothing to action here), and
  • Comes back (right) - the finished part you must receive.

At the top is a "What are you doing?" switch with two buttons - Send out and Receive in. Only the directions that actually have work to do (and that you're allowed to do) appear. Pick one:

Want the full step-by-step? Two dedicated guides walk through each direction with a diagram: "Sending materials out to a subcontractor" and "Receiving finished goods back & how the assembly works".

Send out

Send-out flow: Approved order, then Collect where you choose the source bin or your own inventory, then the stock is staged and locked in your inventory, then Sign, then Send, then it sits at the supplier still on your books.
  1. Tap Send out. Each line's "Send out" side shows a Collect button and a Send box.
  2. Collect - you choose where the stock comes from. Tap Collect; a picker lists every place that has free stock of the raw part - bins in areas you can access, and your own personal inventory. Pick the location and quantity. The stock is staged in your inventory and locked to this order. (mywork never auto-picks the source for you - you choose, on purpose, because the same part can sit in several locations at once and only you know which physical stock you're shipping.)
  3. Capture the collector's signature (required for every shipment - the pad opens automatically if you forget). A photo of the goods is recommended.
  4. In the Send box, enter how many to send (up to what you've collected) and tap Complete dispatch. The collected stock moves to the supplier's location and the shipment is recorded.

The sent stock stays on your books; it's just physically at the supplier now. You only send what you've collected - collect more whenever you want to send more.

Receive in

Receive flow: enter how many came back; in one atomic step a purchase order for the service is raised and received and an assembly turns the raw at the supplier plus the service into the finished part, which is the only thing that lands in your inventory; partial receipts repeat until the order is Completed.
  1. When the finished goods arrive, tap Receive in. A quantity box opens on each card's "Comes back" side, pre-filled with how many are expected.
  2. Enter how many finished items actually came back.
  3. Tap Complete receipt. In one step, mywork raises and receives the supplier purchase order for the service, runs the assembly (the raw sitting at the supplier + the service ? the finished part), and books only the finished part into your inventory. The raw is consumed at the supplier and the purchased service is consumed by the assembly, so the one thing that ends up in your inventory is the finished part.

Doing it in batches

You don't have to send or receive everything at once. Send 40 today, receive 40 next week, send the rest, receive the rest - in any order. The order stays open and the progress bars (raw sent / finished returned) keep you on track until it's complete. Each time a batch comes back, mywork raises a complete supplier purchase order for exactly that batch behind the scenes - you never touch it.

What the floor sees (and what they never see)

The floor screen is deliberately about stock, not paperwork. Staff see the part going out, the part coming back, and how much of each - never the purchase order, the service price, or the assembly mechanics. All of that happens automatically.

Quantities are BOM-driven - cutting (1 in, several out) works too

The service doesn't have to be one-in-one-out. The BOM quantity decides the ratio:

  • Paint: 1 raw part ? 1 finished part (the usual case).
  • Cutting: 1 sheet ? several pieces. Set the raw quantity on the BOM to a fraction (e.g. 0.5 if one sheet makes two pieces).
  • Joining: several raw parts ? 1 finished part (e.g. a BOM quantity of 2).

Worked example: cut 10 brackets from sheets

If one steel sheet yields two brackets, the bracket's BOM uses 0.5 of a sheet each. Order 10 brackets ? mywork plans 5 sheets to send. You send 5 sheets; 10 cut brackets come back.

Rules of thumb for non-1:1 services

  • Order in whole multiples of the yield. If a sheet makes 2, order brackets in even numbers - mywork blocks an order that would need half a sheet sent out and tells you the multiple to use.
  • Price the service per finished piece so the purchase orders stay in whole numbers.
  • One finished product per line. If a sheet is cut into two different parts, make a single "cut kit" product for the pair, or use a separate line per part.
  • Partial returns are fine - receive what's ready; the remainder stays open.

When things go missing: short-close

If some parts are lost or damaged at the supplier and won't come back, an admin can Short-close the order: it writes off the unreturned stock (with a required reason) and closes the order. This is the only way stock "disappears" from an ESO, and it's always recorded with who did it and why.

Who can do what

Access is by role - ask an administrator to be added to the right one:

  • External Services - User: process both directions (send out and receive in).
  • External Services - Dispatch: send out only (collect + ship).
  • External Services - Receive: receive finished goods only.
  • External Services - Admin: create, place, cancel and short-close orders.
  • Approve / reject the spend needs the Purchase Order - Approve right (the office gate).

The "What are you doing?" switch only shows the directions you're allowed to do, so you'll only ever see the buttons that apply to you.

Every step is logged in chat

Every order has its own chat channel (open it from the chat icon next to the order number). Each event - placed, approved, sent out, received, short-closed, cancelled - posts a detailed note there, including a small table of exactly what went out or came back per line. It's a complete, automatic history of the job that anyone with access can read.

Keeping an eye on things

  • The Stock at Subcontractors report (under External Services) lists everything currently sitting at suppliers across all open orders.
  • Overdue orders (past their expected-return date) are flagged on the list and on the order.

Managing service types

Service types (Powder Coating, Cutting, .) are managed by an admin from the External Services admin screen - add or rename them there; they appear in the New Order dropdown.

Troubleshooting

  • "Awaiting approval - do not process yet." The order hasn't been approved. The office needs to approve the spend (or use Place & Approve) before the floor can do anything.
  • The Send / Receive buttons aren't showing. Either there's nothing to do in that direction (everything is already sent, or nothing's at the supplier to receive yet), or you don't hold that direction's permission.
  • "A quantity of 3 needs 1.5 units sent out." The order quantity isn't a whole multiple of the cutting yield - order in the multiple it suggests (e.g. even numbers when one sheet makes two).
  • "Not enough free stock to send." There isn't enough unlocked stock of the raw part in your accessible areas to make up the quantity you asked to send.
  • A receipt didn't finish (supplier-paperwork error). The order keeps the receipt open and you can simply try the receive again - mywork reuses the same supplier purchase order it already created for that batch, so you never get a duplicate.

For developers and AI agents

Architecture: ADR-010, with the purchase-order/receipt model from ADR-019 (since 2026-06: placing is a local approval gate - no supplier PO is raised up front; each receive mints its own complete supplier PO). Module rules (load-bearing invariants, RBAC, REST): business/extservice/EXTERNAL-SERVICE-MODULE-RULES.md. REST API: /rest/v2/external-service-orders (full lifecycle incl. approve/reject, idempotent, per-direction permission gated; see the OpenAPI spec). All stock movement goes through the audited MoveManager/AssemblyManager flows.

Related articles