Receiving#

Receiving is where physical material enters the system. There are three flavours: PO receipt (against an open Purchase Order), general receipt (not tied to a PO), and consignment receipt (material owned by someone else, held on-site).

Flows#

PO receipt#

  1. User scans / enters the PO number and line item.
  2. PORecHelper validates open quantity against the PO line’s remaining balance.
  3. A RECEIVERHDR + RECEIVERDET pair is created.
  4. If serial-tracked, the operator captures serials into INVTSER (IRecSerialHelper).
  5. If lot-tracked, a lot is created / topped up in INVTLOT.
  6. On-hand (INVT) is incremented for the receiving warehouse / location.
  7. A PoDMR may be raised if quantity or quality is out of spec — see DMR.

General receipt#

GenReceivingHelper and GeneralReceivingDetailsHelper handle receipts that don’t have a PO — RMA returns, samples, or WO by-products. Same on-hand and serial / lot updates apply; no PO balance is decremented.

Consignment receipt#

ConsignRecHelper and BcReceivingHelper handle material still owned by the supplier or the customer. Stock lands in on-hand marked as consigned; ownership stays with the counterparty until it’s consumed (issued to a WO for supplier-consigned, or shipped for customer-consigned).

Business rules#

  • Receiver numbers are managed centrally; do not re-use.
  • Every receipt writes to the receiver header / detail — even zero-cost samples. Financial impact (accrual) is a separate GL step handled by AP.
  • Serial numbers are checked for uniqueness before being written to INVTSER.
  • A PO cannot be over-received unless the “allow over-receipt” flag on the PO is set. PORecHelper enforces the check.
  • Consigned stock never posts to the inventory-asset GL account on receipt — the accrual happens when it’s consumed.

Where it lives#

LayerFile
ControllerReceivingController, ReceiverHeaderController, ReceiverDetailController, ConsignReceivingController, PorecserController (serial-capture UI)
HelperMnxEFModel/Helper/POReceiving/PORecHelper.cs, GenReceivingHelper.cs, ConsignRecHelper.cs, ReceiverHeaderHelper.cs, ReceiverDetailHelper.cs, InventoryReceivingHelper.cs, POReceivingDetailsHelper.cs, POServiceItemReceiverHelper.cs, IRecSerialHelper.cs, InvtLotHelper.cs
RelatedPurchase Orders, Consignment, Serial & Lot Control