3A. Inbound inventory — ASN, receipt and quarantine
Receive supplier material only against an independently approved quantity and provenance ceiling, without making it usable before quality release.
Purpose
Receive supplier material only against an independently approved quantity and provenance ceiling, without making it usable before quality release.
Materials Planner, Project / Contract Manager, Stores Officer, Stores Supervisor
Authority E2E-CA-PO-001 v1; ASN E2E-CA-ASN-001; 10 E2E-CA-ACT-001 actuators; batch E2E-CA-BATCH-001; ownership OWN.
Before you begin
- Approved catalogue item, current vendor screening, site, ownership pool and quarantine location exist
- Vendor is approved and active
- Separate Materials Planner, Project / Contract Manager and Security & Compliance Officer users are available
Inbound-receipt concepts
An immutable approved procurement/subcontract version. It fixes supplier, receiving site, contract/project, ownership pool, item revision, base-unit quantity ceiling, delivery window, quality clauses, classification and permitted unit cost/currency.
A valued shared-stock receipt carries the authority's contract, unit cost and currency without inventing a project. Project contributions still require their project and cost identity; pooling rules are unchanged. MRP-derived purchase-order acknowledgement pins the exact retained material revision into the independently approved receipt authority. Receipt capture does not introduce a new valuation method.
Authorised quantity minus signed ASN/direct-receipt commitment events. Creation uses a row lock, so concurrent inbound records cannot over-allocate the line.
Advance Shipping Notice: what the supplier says is on the way before it reaches the warehouse.
The warehouse record of what physically arrived. GRN means Goods Receipt Note.
A code-owned lifecycle stage at which this receipt may be presented. The only stages are receipt recorded, quarantine posted, inspection disposed and inspection accepted; a timing rule cannot create a custom workflow stage.
The immutable policy version, selected declarative rule, evaluation context, stage catalogue and checksums resolved when the receipt is created. Later policy versions never rewrite an existing receipt.
The one fixed GOODS_RECEIPT_NOTE payload and code-owned PDF artefact that an authorised writer may issue from Goods receipts → View only at the pinned document stage. Both are immutable and idempotent. A grn_document:download user in receipt site/clearance scope can retrieve the verified stored PDF; issuance and download do not print, email, publish, deliver externally, post, move, accept, release or consume stock.
For one enforced BATCH or BATCH_AND_SERIAL item, Stores may split one logical receipt across 2–50 distinct supplier batches. Every child keeps one batch, its dates and positive quantity; their exact normalized sum must equal the aggregate. One immutable RECEIPT_LOT_SPLIT_V1 group retains the authority and payload hash. Authority, tolerance and ASN reconciliation are evaluated once for the aggregate, and the draft creates no stock. BATCH_AND_SERIAL children remain pending until the existing exact-count identity capture is completed for each child.
For an enforced SERIAL or BATCH_AND_SERIAL revision of 1–500 whole base units, Stores may save an identity-pending draft, then scan or paste the exact OEM identities in Goods receipts → View. Preview persists nothing; one permission-, site- and clearance-scoped idempotent commit freezes RECEIPT_IDENTITY_CAPTURE_V1 evidence and reserved physical identities. It cannot submit, screen, inspect, issue a GRN, post stock or move custody.
A Security & Compliance decision for this specific shipment; vendor approval alone is not sufficient.
The allowed difference between expected and received quantity. An exception requires a reason and independent supervisor approval.
The stock state and holding location used until independent quality inspection releases the material.
Inventory is first posted when the cleared receipt is submitted into QUAR-01. The item, supplier, authority, screening, ASN and receipt draft create no inventory quantity. Authority allocation is a provenance ceiling, not stock. Submitted stock is real on-hand inventory, but QUARANTINE prevents reservation or issue.
Procedure
- 1
As Materials Planner, create the official receipt-authority draft in base units and submit it. Confirm the draft creates no stock and is unavailable to ASN/receipt selection.
- 2
As a different Project / Contract Manager, approve version 1. Confirm self-approval fails and the current approved line exposes its remaining quantity.
- 3
As Stores Officer or authorised administrator, create the ASN by selecting that authority line; supplier, authority number, site and item are inherited. Confirm an excessive or out-of-window allocation fails atomically.
- 4
Receive exactly 10 units into a DRAFT GRN against the ASN. For a batch-controlled variation, select Split this arrival across several lots and enter two distinct batches whose quantities sum exactly to 10. Confirm Goods receipts → View shows the ordered child lots and immutable aggregate hash, while authority and tolerance remain one aggregate decision and no stock exists.
- 5
For a separate BATCH_AND_SERIAL split draft, complete the existing exact-count identity capture for each child in Goods receipts → View. Preview, commit and retry one idempotency key; confirm immutable capture evidence is returned, a different payload is rejected, and submission remains blocked until every child is complete without stock, custody or ledger change.
- 6
Read the GRN presentation state and retain the LEGACY_NO_POLICY result or exact PINNED policy, rule, stage and hashes; confirm timing did not add stock or authority allocation.
- 7
Before the required stage, attempt controlled document issuance and confirm it fails without creating a document, audit issuance, outbox issuance, custody event, stock balance or ledger row.
- 8
As Security & Compliance Officer, clear the specific GRN. Sign back in as Stores Officer and submit it to QUAR-01; confirm each child lot posts exactly once and their aggregate quantity exists only as QUARANTINE stock with the same timing snapshot pinned.
- 9
After the exact required stage is reached, issue the controlled GRN once and retry. Confirm both responses identify the same issuance, payload hash, PDF artifact ID and PDF hash. Download twice with grn_document:download and confirm byte identity while receipt, inspection, custody, current stock and ledger ordering remain unchanged.
- 10
Create an amendment draft and verify version 1 remains usable until independent version-2 approval, after which v1 is SUPERSEDED for new ASN/direct receipts but remains valid for its existing ASN.
- 11
Repeat with an over-tolerance quantity and independent Stores Supervisor decision; cancel an unsubmitted control record and confirm only its signed authority commitment is released.
Expected result
- No ASN or direct receipt can use free-text-only supplier authority
- Maker-checker approval and immutable version history are retained
- Concurrent quantity allocation cannot exceed the authority ceiling
- Vendor clearance alone cannot release a receipt
- A multi-lot draft has one immutable aggregate, 2–50 distinct one-batch children and an exact normalized quantity sum
- BATCH_AND_SERIAL child lots cannot enter quarantine until every exact immutable capture is complete
- Capture preview persists no allocation and committed capture creates no stock, custody or ledger quantity
- Submitted stock exists only in QUARANTINE
- Tolerance and receipt screening remain independent aggregate decisions
- Each governed receipt retains its exact timing definition and later policy publications cannot rewrite it
- Ineligible or corrupt timing fails closed only for presentation/document issuance
- Controlled GRN issuance creates one immutable payload/PDF pair and is zero-stock-side-effect
- Authenticated authorised downloads are audited and return the same verified stored PDF bytes
- Authority, receipt, audit, ledger and outbox references reconcile