Reading a receipt
Reached from: the eye icon on any row of Goods receipts
1. What the detail drawer shows
One posted batch, expanded: the reference, the remarks, and every line with its quantity, unit cost and line total.
2. What groups a batch
Three fields written on every row at save time:
| Field | Set by | Purpose |
|---|---|---|
batch_id | Generated per Save | What actually groups the lines. A UUID, never shown |
reference_no | Your Reference / Invoice # | Human-readable, searchable, not unique |
remarks | Your Remarks | Free text, repeated on every line of the batch |
Nothing stops two batches sharing GRN-2607-118. The list groups on the hidden batch_id, so two
same-referenced batches appear as two rows, not one.
If you need receipts to be uniquely identifiable, that discipline is yours to keep.
3. Reading a batch in the ledger
Every line of the batch appears in the ledger as a PURCHASE row
carrying the same reference number. Searching the ledger for GRN-2607-118 returns the batch's
lines.
Two things to expect there:
- Raw-material rows show a blank Item Details cell. The name is returned by the API but the ledger page does not render it for raw materials — see Reading a movement.
- The remarks you typed appear verbatim on every row of the batch.
4. What you cannot do
| Not available | Why |
|---|---|
| Edit a posted receipt | There is no edit path. The ledger is append-only |
| Delete a receipt | Same |
| Approve / reject | procurement.approve exists but is never enforced — there is no approval workflow |
| Reverse a receipt | Post a compensating adjustment instead |
The only remedy is a counter-entry through Maintenance & Quality Control, which leaves both the error and the correction visible in the audit trail — arguably the right outcome for a ledger, but it surprises people the first time.
5. Troubleshooting
| Symptom | Cause |
|---|---|
| Two rows for one delivery | Two Saves. Each Save is its own batch, whatever the reference says |
| The drawer is empty | The batch has no lines — it should not be possible via the UI |
| A line's unit cost looks wrong | It was pre-filled from last_purchase_price and not overridden |
| Cannot find a receipt by reference | Search matches reference, item and remarks — check the project |