MRP Planning
List MRP Runs
Paginated list of MRP runs, most recent first.
Start MRP Run
Create and synchronously execute a regenerative or net-change MRP run, then return the completed run.
Get MRP Run
Return a single MRP run by id.
List Run Planned Orders
Paginated planned orders for a run, ordered by low_level_code then release_date. Eager-loads product, warehouse, supplier, bom.
Get Item Time-Phased Grid
Time-phased MRP grid (gross-to-net buckets) for one product within a run, optionally scoped to a warehouse. Plain array, not a Resource.
List Run Action Messages
Paginated action/exception messages for a run, ordered by severity priority then id. Eager-loads product, warehouse.
Get Action Message Counts
Grouped counts of action messages for the run, bucketed by type and by severity. Plain array.
Get Planned Order Pegging
Bottom-up peg trace for a planned order: walks the parent chain from the supply order up to the originating independent demand. Plain array.
Get Capacity Load Profile
Detailed CRP load profile from BOM routings: required vs rated capacity per work center per time bucket. Plain array.
Get Capacity Heatmap
CRP data reshaped into a heatmap grid (work centers x buckets) with a color band per cell. Plain object.
Get Rough-Cut Capacity Plan
Rough-Cut Capacity Planning (RCCP) using the bill of resources (is_key_resource rows): required hours time-phased per key work center vs rated capacity. Plain array (same shape as load-profile).
Firm Planned Orders
Firm one or more planned orders (planned -> firm), optionally overriding quantity and/or due date.
Unfirm Planned Orders
Revert firmed planned orders back to planned (clears firm overrides).
Accept Planned Orders
Mark planned orders as accepted (accepted = true).
Dismiss Planned Orders
Dismiss (delete) the given planned orders from the run. Returns a count, not a resource collection.
Release Planned Orders
Release planned orders into real supply documents: make -> draft Manufacturing Orders, buy -> one Purchase Order per supplier, transfer -> Warehouse Transfers. Already-released and buy-without-supplier orders are skipped. Returns created document IDs grouped by type plus a released count.
Update Planned Order
Update a single planned order's quantity, due date, supplier, and/or supply type. All fields optional - send only what changes.
List Planning Policies
Paginated list of item planning policies (item-level defaults and warehouse overrides), product and warehouse eager-loaded, ordered by id desc.
Get Planning Policy
Resolve the effective item-level policy for a product. Returns data: null when no policy exists.
Upsert Planning Policy
Create or update the planning policy for a product (and optional warehouse scope).
Bulk Apply Planning Policy
Apply one identical set of policy attributes to many products at once.
Accept Action Messages
Accept one or more MRP action messages (planner agrees with the recommendation). Returns a count.
Dismiss Action Messages
Dismiss one or more MRP action messages (planner rejects/ignores the recommendation). Returns a count.
List MPS Entries
Paginated list of Master Production Schedule entries (time-phased independent demand), product and warehouse eager-loaded.
Upsert MPS Entry
Create or update one MPS entry keyed on (product_id, warehouse_id, bucket_start).
Get MPS Grid
Per-product, per-bucket MPS grid. Plain array. Each cell exposes mps_qty plus forecast and customer_orders placeholders.
Delete MPS Entry
Delete one MPS entry by id. Returns 204 No Content.
Check Available-to-Promise (ATP)
Compute Available-To-Promise quantity for a product at a warehouse (on-hand + inbound + in-transit; excludes forecast). Plain array.
Check Capable-to-Promise (CTP)
Capable-To-Promise: determine how much of a requested quantity can be promised - directly from ATP, or by exploding the active BOM and checking component availability for the shortfall. Plain array.
List Distribution Edges
Paginated distribution-network edges (warehouse-to-warehouse replenishment links), ordered by priority then id. Source/destination warehouses eager-loaded.
Create Distribution Edge
Create a distribution edge. Self-edges and cycles are rejected with 422 {message}.
Update Distribution Edge
Update an existing edge (acyclic-graph check re-runs on endpoint changes). Same FormRequest as create - source/destination remain required.
Delete Distribution Edge
Delete a distribution edge. Returns 204 No Content.
List Scenarios
Paginated MRP what-if scenarios, newest first. No relations loaded.
Create Scenario
Create a scenario. created_by_user_id is set from the authenticated user; status defaults to draft (not settable here).
Compare Scenario Runs
Compare the planned-order output of two MRP RUNS (not scenarios) and return aggregate deltas. Plain object. Validation is inline.
Get Scenario
Return a single scenario by id. No relations loaded.
Update Scenario
Update a scenario. Same FormRequest as create - name remains required. status and created_by_user_id are not settable here.
Delete Scenario
Delete a scenario. Returns 204 No Content.
List Planning Calendars
Paginated list of planning calendars, ordered by name asc. No filtering.
Create Planning Calendar
Create a planning calendar. Setting is_default truthy unsets default on all other calendars.
Get Planning Calendar
Return a single planning calendar by id.
Update Planning Calendar
Update a planning calendar (partial). Setting is_default truthy unsets default on all others.
Delete Planning Calendar
Delete a planning calendar. Returns 204 No Content.
Get Work Center Calendar
Return the work center's calendar with the related planning calendar eager-loaded. Returns data: null when none exists.
Upsert Work Center Calendar
Create or update the single calendar for the work center (work_center_id comes from the route).
List Bill of Resources
Paginated bill-of-resource rows (product x work center x hours_per_unit) with product and workCenter eager-loaded, newest first. No filtering.
Create Bill of Resource
Create a bill-of-resource link. Returns 201 with product and workCenter loaded.
Get Bill of Resource
Return a single bill-of-resource row with product and workCenter loaded.
Update Bill of Resource
Update a bill-of-resource row (partial). Returns 200 with product and workCenter loaded.
Delete Bill of Resource
Delete a bill-of-resource row. Returns 204 No Content.