EKAJAYA - PRODUCT UNIT OF MEASUREMENT
đ Technical Specification: Product Unit of Measurement (PUM)
đ Feature Overview
đšī¸ Functional Workflow
đ ī¸ Technical Implementation
A. Permissions & Access Control
Note: Access is controlled via
PermissionGuard and code-level checks.| Scope | Permission Code | Description |
|---|---|---|
| Menu Visibility | PRODUCT_UNIT_OF_MEASUREMENT.MENU |
Sidebar menu visibility. |
| Page Access | PRODUCT_UNIT_OF_MEASUREMENT.LISTING |
Access to /product-unit-of-measurement. |
| View Access | PRODUCT_UNIT_OF_MEASUREMENT.VIEW |
Access to /add-product-unit-of-measurement. |
| Create Action | PRODUCT_UNIT_OF_MEASUREMENT.UPDATE |
Visibility of the + Add button. |
| Edit/Save Action | PRODUCT_UNIT_OF_MEASUREMENT.UPDATE |
Ability to save changes (Create/Update). |
| Delete Action | PRODUCT_UNIT_OF_MEASUREMENT.DELETE |
Visibility of the Delete đī¸ icon. |
B. API Interaction
Base URL:
${environment.baseApiUrl}1. Retrieve PUM List
Endpoint
/productUnitOfMeasurements/getQuery
Method
POST
Key Params
join: productfilter: Dynamic filters for unitOfMeasurement and productId.2. Get Single PUM (Edit Mode)
Endpoint
/productUnitOfMeasurements/getQuery
Method
POST
Query Params
filter: id||$eq||{id}limit: 13. Create PUM
Endpoint
/productUnitOfMeasurements/create
Method
POST
{
"productId": Number,
"unitOfMeasurement": "String",
"conversionRate": Number,
"cimaProductCode": "String"
}
4. Update PUM
Endpoint
/productUnitOfMeasurements/update
Method
POST
Payload is same as Create, but includes "id": Number.
5. Delete PUM
Endpoint
/productUnitOfMeasurements/delete
Method
POST
{ "id": Number }
6. Helper APIs (Dropdowns)
Products
/products/getQuery (isDeleted=0)
UOM Options
/settings/getQuery (type="Unit Of Measurement")
CIMA Codes
/settings/getQuery (type="CIMA Product Code")
Asia Cement Codes
/settings/getQuery (type="Asia Cement Product Code")
C. Validation & Business Logic
1. Mandatory Fields Validation
- Trigger: On Save.
- Logic: Checks if
productId,unitOfMeasurement, orconversionRateare empty. - Error: Displays specific error messages (e.g., "Please select the product", "Please enter the conversion rate").
2. Conversion Logic & Constraints
Context: The conversion rate is critical for calculating tonnage vs. quantity in orders.
Note: There is no explicit backend validation check for unique Product+UOM combinations in the provided code. The system relies on the user ensuring duplicates are not created.