Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/CodexaCP/DG_APK/llms.txt

Use this file to discover all available pages before exploring further.

The Item Inquiry module lets warehouse operators look up any item in the Dragon Guard catalog regardless of current stock level. A search can be triggered by typing an item number, scanning a barcode, or reading an RFID EPC tag — all three paths ultimately resolve to the same item record and stock context. The module is deliberately read-only: it surfaces catalog data and on-hand quantities to support receiving, picking, and audit tasks without allowing edits from this screen.
ItemNo is the ERP-synchronized code, not the internal generated web identifier. The handheld always displays and searches using ItemNo — the ERP code that operators recognize from physical labels and purchase orders. The internal ItemId (a GUID) is used only for navigation to the item detail page and is never shown to the operator.

Capture Modes

The handheld supports three ways to identify an item. All three modes are managed by IScanCaptureService and its ScanMode enum. Search results are presented as paginated ProductInquiryRowDto rows with location-level stock detail; navigating to a row loads a full ItemDetailApiDto record.
The operator types an item number or scans a barcode. As the operator types, a 350 ms debounce delay fires SearchProductsAsync, which calls GET /api/items/products-inquiry with the input as the search parameter. The same search fires immediately when the operator submits the keyboard.
// ItemInquiryViewModel.cs — LoadPageAsync
var result = await _itemService.SearchProductsAsync(
    SearchText,
    SelectedLocation?.LocationCode,
    _pageNumber,
    PageSize);

Products.Clear();
Products.AddRange(result.Items);
The response is a paginated ProductInquiryPageDto. Each row is a ProductInquiryRowDto containing the item number, description, location, bin, and current stock quantity. An optional location filter (GET /api/items/products-locations) lets operators narrow results to a specific warehouse.Session messages from IScanCaptureService:
  • Session started in Barcode mode: "Barcode capture ready."
  • Session stopped: "Barcode capture stopped."

Product Row Fields (ProductInquiryRowDto)

These are the rows returned by the primary inquiry endpoint GET /api/items/products-inquiry.
Id
Guid?
Internal item identifier. Used for navigation to item detail.
ItemNo
string
required
ERP-synchronized item code. This is what operators see and what is passed as the search parameter.
Description
string
Item display name.
AlternateItemNo
string
Alternate item reference code.
Barcode
string
Primary barcode value.
UnitOfMeasure
string
Default unit of measure.
SecondaryUnitOfMeasure
string
Secondary unit of measure when applicable.
IsActive
bool?
Whether the item is currently active in the catalog.
AllowNegativeAvailable
bool?
When true, the item can have negative available stock without triggering a stockout warning.
Status
string
Current item status string.
DefaultLocationCode
string
The item’s default warehouse location.
ShelfCode
string
Shelf or zone code within the location.
LocationCode
string
Warehouse location code for this result row.
LocationDescription
string
Human-readable location name.
BinCode
string
Bin identifier within the location.
BinDescription
string
Human-readable bin name.
Quantity
decimal?
Stock quantity in this location/bin. Shown even when zero or negative.
QuantityType
string
Type label for the quantity shown (e.g., on-hand, available).
AsOfUtc
DateTime?
Timestamp of the last stock snapshot for this row.

Item Summary Fields (ItemSummaryDto)

Returned by GET /api/items/inquiry when a bin-level aggregate is needed (e.g., during the RFID resolve chain).
ItemNo
string
required
ERP-synchronized item code.
LocationCode
string
Warehouse location code for this summary row.
TotalQty
decimal
Aggregate stock quantity across all bins in the location. Shown even when zero or negative.
BinQuantities
List<ItemInquiryDto>
Per-bin breakdown of stock for this item and location.

Per-Bin Detail Fields (ItemInquiryDto)

CompanyId
string
Company the item belongs to.
ItemId
string
Internal item GUID. Not shown to the operator.
ItemNo
string
ERP item code repeated at the bin level.
ItemDescription
string
Item display name.
ItemUOM
string
Primary unit of measure.
ItemType
string
Item classification (e.g., inventory, service).
ItemIsActive
bool
Whether the item is currently active in the catalog.
IsLotTracked
bool
Item requires lot number assignment on movements.
IsSerialTracked
bool
Item requires serial number assignment on movements.
IsExpirationTracked
bool
Item requires expiration date tracking on movements.
UnitWeight
decimal?
Item unit weight, used for load calculations.
UnitVolume
decimal?
Item unit volume, used for capacity calculations.
BinId
string
Internal bin identifier within the location.
BinCode
string
Bin code within the location.
BinDescription
string
Human-readable bin name.
BinType
string
Classification of the bin (e.g., receive, pick, bulk).
BinIsActive
bool
Whether the bin is currently operational.
IsBlocked
bool
Bin is blocked for operations when true.
AllowPicking
bool
Whether picking is permitted from this bin.
AllowPutaway
bool
Whether putaway is permitted into this bin.
StockQty
decimal
Current stock quantity in this specific bin. Displayed even when zero or negative to give a complete inventory picture.

RFID Resolve Fields (RfidTagResolveDto)

When GET /api/rfid/tags/resolve/{epc} succeeds, the response includes:
Epc
string
The raw EPC value that was resolved. Echoed back in the response, including on 404 errors.
ObjectType
string
Classification of the RFID object (e.g., pallet, carton, unit).
Status
string
Current status of the RFID tag in the Dragon Guard registry.
ItemId
Guid?
Internal GUID of the linked item. null when the EPC is not linked to any item.
ItemNo
string
ERP item code linked to the scanned EPC. If non-empty, the app chains to item inquiry. If blank, the EPC is registered but not linked to an item.
ItemDescription
string
Description of the linked item.
Quantity
decimal
Quantity encoded on or associated with the tag.
LocationCode
string
Last known location of the tagged item.
BinCode
string
Last known bin of the tagged item.
IsResolved
bool
true when the EPC was successfully resolved to a Dragon Guard record. false on 404 (not registered) responses.
IsActive
bool
Whether the RFID tag record is currently active in the registry.
Message
string
Human-readable message. Set to "RFID tag not found." on 404 responses.

Item Detail Fields (ItemDetailApiDto)

Navigating to the item detail page calls GET /api/items/by-itemno/{itemNo} and loads the full catalog record:
Id
Guid
required
Internal item GUID.
ItemNo
string
required
ERP-synchronized item code (same value displayed in the inquiry list).
Description
string
Full item description.
UOM
string
Default unit of measure.
BaseUOM
string
Base unit of measure (may differ from the default display UOM).
SalesUOM
string
Sales unit of measure.
PurchaseUOM
string
Purchasing unit of measure.
ConversionFactor
decimal?
Conversion factor between the default and base UOM.
Barcode
string
Primary barcode value.
AltBarcode
string
Alternative barcode (e.g., vendor barcode).
Part_No
string
Manufacturer part number.
Alternative_Code
string
Additional cross-reference code.
IsActive
bool
Whether the item is currently active in the catalog.
ItemType
string
Item classification type.
QuantityOnHand
decimal
Total on-hand quantity across all locations.
QtyOnPurchOrder
decimal
Quantity on open purchase orders (incoming).
QtyOnSalesOrder
decimal
Quantity committed to open sales orders (outgoing).
QtyOnProdOrder
decimal
Quantity reserved for production orders.
QtyAvailable
decimal
Net available quantity.
AllowNegativeAvailable
bool
When true, the item can have negative available stock without triggering a stockout warning.
StockoutWarning
bool
true when current stock levels trigger a low-stock alert.
IsLotTracked
bool
Lot tracking enabled.
IsSerialTracked
bool
Serial tracking enabled.
IsExpirationTracked
bool
Expiration date tracking enabled.
UnitWeight
decimal?
Item unit weight.
UnitVolume
decimal?
Item unit volume.
CategoryCode
string
Product category classification.
Brand
string
Brand or manufacturer.
ABCClass
string
ABC inventory classification (A = high-value/high-movement, C = low).
AccountingCollection
string
Accounting collection or group code.
BranchCode
string
Branch code assignment for this item.
CostingMethod
string
Inventory costing method (e.g., FIFO, average).
CreatedBy
string
Username of the operator who created the item record.
CreatedAt
DateTime
Timestamp when the item record was created.
UpdatedBy
string?
Username of the last operator to update the record.
UpdatedAt
DateTime?
Timestamp of the most recent update.
Images
List<ItemImageApiDto>
Product image URLs. The primary image has IsPrimary = true.

API Endpoints

MethodEndpointPurpose
GET/api/items/products-inquiry?search={term}&pageNumber={n}&pageSize={n}Primary product search with location filter
GET/api/items/inquiry?search={term}&PageNumber={n}&PageSize={n}Bin-level stock detail (used in RFID resolve chain)
GET/api/items/by-itemno/{itemNo}Load full item detail record by ERP code
GET/api/items/{id}Load full item detail record by internal GUID
GET/api/rfid/tags/resolve/{epc}Resolve an RFID EPC to a Dragon Guard item record
GET/api/items/products-locationsLoad available warehouse locations for the filter picker
Stock quantity is always shown, even when Quantity is zero or negative. This is by design — operators need to see the actual ledger state (including negative adjustments) to make informed receiving and picking decisions. The inquiry endpoint never suppresses zero-stock items.

Build docs developers (and LLMs) love