CLIENT
👥 Technical Specification: Client Setup
📋 Feature Overview
🛠️ Technical Implementation
A. Permissions & Access Control
Note: Access is controlled via templatecomponent-level checks.
PermissionGuard and | Scope | Permission Code | Description & Page Usage |
|---|---|---|
| Menu Visibility | CLIENT.MENU |
Sidebar menu visibility.
|
| Page |
CLIENT.LISTING |
Access to listing route.\listing-client-profile |
| Page Routing | CLIENT.VIEW |
\add-client-profile-manage |
| Create Action | CLIENT.CREATE |
Visibility of the + Add button.\listing-client-profile |
CLIENT.VIEW |
Controls visibility of the Edit icon.\listing-client-profile |
|
| Delete Action | CLIENT.DELETE |
Visibility of the Delete 🗑️ icon.\listing-client-profile |
| Update Action | CLIENT.UPDATE |
Ability to save changes on Edit screen.\add-client-profile-manage |
B. API Interaction
Base URL:
${environment.baseApiUrl}1. RetrieveListing Client ListProfile
\listing-client-profile/clients/getQuery
POST
filterisDeleted||$eq||0sortclientName, registrationNumber, clientCode, isDeleted=0/client/delete
POSTPurpose: Delete Client
2. DeleteAdd Client
Profile \listing-client-profile{ "id": Number }
AssignUserDialog\add-client-profile-manage/countries/getQuery
POSTPurpose: Populate
countryDataSource/states/getQuery
POSTFilter:
countryId/districts/getQuery
POSTFilter:
stateId/settings/getQuery
POSTFilter:
type='Client Type'/clients/getQuery
POST
filterid||$eq||{id}idjoin/clients/getQuery
Filter: Master-Detail)Uniqueness
clientCode (\add-client-profile-manageCheck)/clients/mdCreate
Purpose: Master-Detail Create
/clients/mdUpdate
POSTPurpose: Master-Detail Update
{ "clientCode": "String", "clientName": "String", "deliveryAddressList": [ ... ], "clientType": "String", "countryId": Number }
\add-client-profile-manage\add-client-profile-manageC. Validation & Business Logic
1. Unique Code Validation \add-client-profile-manage
Trigger:On Save.Logic:Calls/clients/getQuery. Filter:clientCode||$eq||{inputCode}.Error:Blocking error: "Client code already exists".
2. Delivery Address Validation \add-client-profile-manage
Trigger:On Save.Logic:Checksthis.dataSource.deliveryAddressList.Error:If list is null or empty: "Please add delivery address".
3. User Assignment Logic AssignUserDialog
Ensures a client can be linked to a system user (User ID) for Client Portal login.
Behavior:If a link exists, it updates the record inclient_userstable; otherwise, it creates a new record.