PRODUCT UNIT OF MEASUREMENT
📏 Technical Specification: Product Unit of Measurement (PUM)
📋 Feature Overview
🛠️ Technical Implementation
A. Permissions & Access Control
Note: Access is controlled via
PermissionGuard and code-level checks.| Scope | Permission Code | Description & Page Usage |
|---|---|---|
| Menu Visibility | PRODUCT_UNIT_OF_MEASUREMENT.MENU |
Sidebar menu visibility.
|
| Page |
PRODUCT_UNIT_OF_MEASUREMENT.LISTING |
Access to listing route.\product-unit-of-measurement |
| Page Routing | PRODUCT_UNIT_OF_MEASUREMENT.VIEW |
Access to add route.
|
| View Access | PRODUCT_UNIT_OF_MEASUREMENT.VIEW |
Controls visibility of action buttons (Edit).\product-unit-of-measurement |
| Create Action | PRODUCT_UNIT_OF_MEASUREMENT.UPDATE |
Visibility of the + Add button.\product-unit-of-measurement |
| Delete Action | PRODUCT_UNIT_OF_MEASUREMENT.DELETE |
Visibility of the Delete 🗑️ icon.\product-unit-of-measurement |
| Edit/Save Action | PRODUCT_UNIT_OF_MEASUREMENT.UPDATE |
Ability to save changes (Create/Update).\add-product-unit-of-measurement |
B. API Interaction
Base URL:
${environment.baseApiUrl}1. Retrieve PUM List
\product-unit-of-measurementjoinfilter\product-unit-of-measurement/products/getQuery
POSTPurpose: Populate
productDataSource for filtering/settings/getQuery
POSTFilter:
type='Unit Of Measurement'/productUnitOfMeasurements/getQuery
POSTFilter:
unitOfMeasurement, productId/productUnitOfMeasurements/delete
{ "id": Number }
2.
3. Get SingleAdd PUM (Edit Mode)Manage
Endpoint
Method
Query Params
:Filter:
: 1(Fetch specific record)
4.
Endpoint/productUnitOfMeasurements/update
POST
/productUnitOfMeasurements/createPurpose: MethodUpdate POSTexisting record
\add-product-unit-of-measurement/products/getQuery
POSTFilter:
isDeleted=0/settings/getQuery
POSTFilter:
type='Unit Of Measurement'/settings/getQuery
POSTFilter:
type='CIMA Product Code'/settings/getQuery
POSTFilter:
type='Asia Cement Product Code'/productUnitOfMeasurements/getQuery
POST
filterid||$eq||{id}idlimit/productUnitOfMeasurements/create
POSTPurpose: Create PUMnew
\add-product-unit-of-measurementrecord{ "productId": Number, "unitOfMeasurement": "String", "conversionRate": Number, "cimaProductCode": "String" }
\add-product-unit-of-measurement\add-product-unit-of-measurementC. Validation & Business Logic
1. Mandatory Fields Validation \add-product-unit-of-measurement
Trigger:On Save.Logic:Checks ifproductId,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.