MRP Planning
List MRP Runs
Paginated list of MRP runs, most recent first.
Start MRP Run
Finite capacity scheduling is not implemented, and this run option was withdrawn.
Get MRP Run
Return a single MRP run by id.
Discard MRP Run
Delete a run and everything it produced — its planned orders, time-phased plan, pegging and action messages.
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 and exception messages for a run, most urgent first, with the product and warehouse each one names.
Get Action Message Counts
Counts of a run's action and exception messages, grouped by type and by severity.
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).
Cancel MRP Run
Stop a queued or running MRP run. The run is marked `cancelled` and the background job that plans it stops at its next checkpoint, so anything it had already written stays on the run until the run is discarded.
Export Time-Phased Plan
Download a run's whole time-phased plan as a file — one row per product, warehouse and bucket, carrying the six gross-to-net requirement lines as columns.
Firm Planned Orders
Firm planned orders (`planned` -> `firm`), optionally pinning a quantity and/or a due date so later runs keep them. A firm planned order still is not a real order — use Release Planned Orders for that.
Unfirm Planned Orders
Release the pin on firmed planned orders (`firm` -> `planned`), so the next run is free to re-plan them.
Accept Planned Orders
Sign planned orders off as accepted, or take that sign-off back. Accepting is an annotation only — it does not create a real order; use Release Planned Orders for that.
Dismiss Planned Orders
Dismiss planned orders so they no longer appear as suggestions.
Release Planned Orders
Carry planned orders out into real supply documents: a manufacturing order for `make`, one purchase order per supplier for `buy`, and a warehouse transfer for `transfer`.
Update Planned Order
Edit one planned order. Every field is optional — send only what changes.
Export Planned Orders
Download a run's planned orders as a file, in the same column order and wording the planned-order list uses.
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 the product has no policy.
Upsert Planning Policy
Create or replace the planning policy for a product, either as the item-level default or as an override for one warehouse.
Bulk Apply Planning Policy
Apply one identical set of policy attributes to many products at once.
Get Planning Policy Coverage
Counts of active products that have no planning policy at all (neither an item-level default nor a per-warehouse override), and how many of those are made or consumed by a non-archived bill of materials.
Export Planning Policies
Download item planning policies as a spreadsheet. The columns are the import template's own columns, in the template's order, so an exported file can be edited and handed straight back to the importer.
Download Planning Policy Import Template
Download the planning-policy import template as an Excel workbook. It carries three sheets: `Import Here` (the empty column headings to fill in), `Field Guide` (what each column means and which values it accepts) and `Reference Data` (the warehouses and enum values this account recognises).
Accept Action Messages
Mark one or more of a run's action messages as accepted (the recommendation was acted on).
Dismiss Action Messages
Mark one or more of a run's action messages as dismissed. The dismissal is remembered against the message's cross-run identity, so a later run does not serve the same exception back as open — it reappears only if the problem gets worse.
Export Action Messages
Download a run's action and exception messages as a file, with each quantity/date pair split into its own column so the file can be sorted and split up in a spreadsheet.
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.
Export MPS Entries
Download Master Production Schedule entries as a spreadsheet. The columns are the import template's own columns, in the template's order, so an exported file can be re-planned in a spreadsheet and handed straight back to the importer.
Download MPS Import Template
Download the Master Production Schedule import template as an Excel workbook. It carries three sheets: `Import Here` (the empty column headings to fill in), `Field Guide` (what each column means and which values it accepts) and `Reference Data` (the warehouses and enum values this account recognises).
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.
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.