Skip to main content
Version: v1.0.0(int)

W120: Update purchase order item

Edits a single PO line. Triggered from the Purchase Order Detail items section.

Steps​

  1. Load the line and parent PO. Call PurchaseOrders.getItemById.

  2. Assert editable. 409 when any receipt exists against the PO — line items are locked once goods have been received (same rule as WO items, W134-W136).

  3. Ledger-relevant patch? If the patch changes quantity or the material/SKU reference, the line's projected ORDER event must be rewritten: reverse the active ORDER (the projector diffs presence, not quantity), apply the patch, re-project at the PO's current status. A cost-only patch skips the ledger entirely.

  4. Apply the patch. Call PurchaseOrders.updateItem.

Returns​

The updated line.

Business rules​

  • Items are locked once a receipt exists.
  • Reverse-then-re-project keeps the ledger append-only. Prior ORDER events are netted by REVERSE_ORDER rows, never mutated.
  • Catalog reference cannot cross types. A line on a materials PO must stay a material; same for FG. Switching across types is rejected.

Errors​

  • NotFoundError. The line was not found.
  • ConflictError. A receipt exists against the PO.
  • ValidationError. Catalog mismatch with the parent PO's target type.