Skip to main content

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.

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.

Responsibility Split

The following table defines precisely what each interface is permitted and forbidden to do.
CapabilityWeb (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
Never add a Post or Receive button to any web screen. Posting a receipt modifies warehouse stock. This action is reserved exclusively for the MAUI handheld app to guarantee that physical counts are performed before inventory balances change. Adding a posting trigger in the web UI would break the audit trail and bypass physical verification.

Document Numbering

Receipt documents are assigned sequential numbers in the format PO-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

1

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.
2

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.
3

Save as Open

Saving the document creates it in Open status via POST /api/ReceivingHeaders. The document is editable in this state.
4

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.
5

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.
6

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

Open  ──────► Released
  ▲                │
  └── (Reopen) ◄───┘
       (blocked if handheld work started)
TransitionTriggered byCondition
Open → ReleasedWeb operator clicks ReleaseDocument must have at least one line
Released → OpenWeb operator clicks ReopenNo 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 the messageKey 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 via companyId.
MethodEndpointPurpose
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/ReceivingHeadersCreate a new receipt header and lines
GET /api/ReceivingHeaders?companyId=42
Authorization: Bearer {token}
POST /api/ReceivingHeaders
Authorization: Bearer {token}
Content-Type: application/json

{
  "companyId": 42,
  "vendorName": "Acme Supplies",
  "locationId": 7,
  "lines": [
    { "itemId": 101, "quantityExpected": 50 }
  ]
}
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.

Build docs developers (and LLMs) love