The Receipts module governs the full lifecycle of incoming inventory documents in Dragon Guard WMS. The Angular web frontend handles document creation, header and line configuration, and release to the warehouse floor. All physical receiving actions — scanning items, recording quantities, and posting stock — are performed exclusively by the MAUI handheld application. This split enforces a clean audit trail and prevents accidental stock mutations from the administrative UI.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/CodexaCP/DG_WEB/llms.txt
Use this file to discover all available pages before exploring further.
Responsibility Split
The following table defines precisely what each interface is permitted and forbidden to do.| Capability | Web (Angular) | Handheld (MAUI) |
|---|---|---|
| Create receipt documents | ✅ | ❌ |
| Edit document header and lines | ✅ | ❌ |
| Release document to handheld | ✅ | ❌ |
| Reopen released document | ✅ | ❌ |
| View receiving progress | ✅ | ✅ |
| Preload lines from purchase order | ✅ | ❌ |
| Query released receipts | ❌ | ✅ |
| Perform partial or full receiving | ❌ | ✅ |
| Post receiving and update stock | ❌ | ✅ |
| Mark document complete | ❌ | ✅ |
Document Numbering
Receipt documents are assigned sequential numbers in the formatPO-000001, PO-000002, and so on. The number is generated by the backend on creation and is read-only in the web UI. The document number is the primary reference used by handheld operators when querying the receipt on the warehouse floor.
Web Workflow
Create a New Receipt Header
Navigate to the Receipts list (
receipts.component) and select New. The create form (create-receipts.component) opens with an empty header. Provide:- Vendor name — free-text entry, required.
- Receiving location — selected from a dropdown populated with active, receiving-enabled locations only.
Add Receipt Lines
Lines are added individually using the item lookup control. Each line captures the item reference and the expected quantity. At creation time
QuantityReceived is always set to 0 — this field is populated exclusively by the handheld during physical receiving.Alternatively, use the Purchase Order lookup to preload all lines from an existing purchase order. Individual lines can be adjusted or removed after preloading.Save as Open
Saving the document creates it in Open status via
POST /api/ReceivingHeaders. The document is editable in this state.Release to Handheld
When the document is ready for the warehouse floor, release it. The status changes to Released and the document becomes read-only in the web UI. Handheld operators can now query and receive against it.
Monitor Progress
Open the detail view (
details/:id) to track receiving progress. The QuantityReceived per line and any posted results are visible in read-only form while the document is released.Reopen if Required (Optional)
If corrections are needed, the document can be explicitly reopened from Released back to Open — provided no handheld receiving work has started. If a handheld operator has already begun work, the reopen action is blocked and a message displays the receipt number and the operator’s email address.
Status Transitions
| Transition | Triggered by | Condition |
|---|---|---|
| Open → Released | Web operator clicks Release | Document must have at least one line |
| Released → Open | Web operator clicks Reopen | No handheld receiving activity recorded |
| Released → Open (blocked) | — | Handheld has started work; shows operator email |
Editing Constraints
Open Documents (no partial posts)
All header fields, line quantities, and lines themselves are fully editable.Open Documents with Partial Handheld Posts
When a document has been reopened and the handheld has already posted partial quantities, the following constraints apply:Quantity Floor
A line’s expected quantity can be lowered, but never below the quantity already posted by the handheld. Reducing below the posted amount would create a negative receiving variance.
Posted Lines Protected
Lines that have any posted quantity cannot be deleted. Only lines with zero posted quantity can be removed from the document.
Released Documents
Released documents are entirely read-only in the web UI. No edits are possible until the document is explicitly reopened.Error Handling
Backend validation errors are surfaced as a blocking modal in the web UI. Error text is resolved through themessageKey field returned by the API, which maps to translated strings in the Angular i18n layer. The modal must be dismissed before the operator can continue. No partial saves occur when a blocking error is raised.
API Endpoints
The Receipts module interacts with the following backend endpoints. All requests include the company context viacompanyId.
| Method | Endpoint | Purpose |
|---|---|---|
GET | /api/ReceivingHeaders?companyId={id} | List all receipt documents for the active company |
GET | /api/ReceivingHeaders/{id} | Fetch a single receipt document with all lines |
POST | /api/ReceivingHeaders | Create a new receipt header and lines |
The endpoint
POST /ReceivingHeaders/{id}/post is a backend route reserved for the MAUI handheld. It must never be called from the web frontend. There is no corresponding button, service method, or Angular route that should trigger it.