Objective
Provide Employee to purpose workflow actions.
Same screen is used for both application details and modify application details.
Based on the conditions, we are showing the details here.
Application Details:
On click on application number from inbox/search screen/connection search, it will route to application details screen.
Search call is made before render the screen and details populated based on the search response.
Hook Details for application Details search:
let { isLoading, isError, data: applicationDetails, error } = Digit.Hooks.ws.useWSDetailsPage(t, tenantId, applicationNumber, serviceType); let workflowDetails = Digit.Hooks.useWorkflowDetails( { tenantId: tenantId, id: applicationNumber, moduleCode: applicationDetails?.processInstancesDetails?.[0]?.businessService, }, { enabled: applicationDetails?.processInstancesDetails?.[0]?.businessService ? true : false, } ); const { data: reciept_data, isLoading: recieptDataLoading } = Digit.Hooks.useRecieptSearch( { tenantId: stateCode, businessService: serviceType == "WATER" ? "WS.ONE_TIME_FEE" : "SW.ONE_TIME_FEE", consumerCodes: applicationDetails?.applicationData?.applicationNo }, { enabled: applicationDetails?.applicationData?.applicationType?.includes("NEW_") } ); const { data: oldData } = Digit.Hooks.ws.useOldValue({ tenantId, filters: { connectionNumber: applicationDetails?.applicationData?.connectionNo, isConnectionSearch: true }, businessService: serviceType, });
Application Details Screen:
Ad-hoc Rebate/penalty and View breakup details: Employee: Ad-hoc Rebate/Penalty and View Breakup in application details.
Modify Application Details:
On click on application number from inbox/search screen/connection search, it will route to application details screen.
Search call is made before render the screen and details populated based on the search response.
Hook Details for application Details search:
let { isLoading, isError, data: applicationDetails, error } = Digit.Hooks.ws.useWSDetailsPage(t, tenantId, applicationNumber, serviceType); let workflowDetails = Digit.Hooks.useWorkflowDetails( { tenantId: tenantId, id: applicationNumber, moduleCode: applicationDetails?.processInstancesDetails?.[0]?.businessService, }, { enabled: applicationDetails?.processInstancesDetails?.[0]?.businessService ? true : false, } ); const { data: reciept_data, isLoading: recieptDataLoading } = Digit.Hooks.useRecieptSearch( { tenantId: stateCode, businessService: serviceType == "WATER" ? "WS.ONE_TIME_FEE" : "SW.ONE_TIME_FEE", consumerCodes: applicationDetails?.applicationData?.applicationNo }, { enabled: applicationDetails?.applicationData?.applicationType?.includes("NEW_") } ); const { data: oldData } = Digit.Hooks.ws.useOldValue({ tenantId, filters: { connectionNumber: applicationDetails?.applicationData?.connectionNo, isConnectionSearch: true }, businessService: serviceType, });
Modify Application Details Screen:
Timeline View:
It is common for all modules, find the path here: https://github.com/egovernments/DIGIT-Dev/blob/develop/frontend/micro-ui/web/micro-ui-internals/packages/modules/templates/ApplicationDetails/index.js
Downloads:
Application:
Method Reference:
const applicationDownloadObject = { order: 3, label: t("WS_APPLICATION"), onClick: handleDownloadPdf, };
2.Estimation Letter
After pending for Field inspection stage is done (if status is pending for approval) Estimation letter will get generated.
Method Reference:
const wsEstimateDownloadObject = { order: 1, label: t("WS_ESTIMATION_NOTICE"), onClick: () => getFiles([applicationDetails?.applicationData?.additionalDetails?.estimationFileStoreId], stateCode), };
3. Sanction letter and Download Receipt
After payment stage is done (status is pending for connection activation) Sanction letter and receipt will get generated.
Sanction Fee Method Reference:
const sanctionDownloadObject = { order: 2, label: t("WS_SANCTION_LETTER"), onClick: () => getFiles([applicationDetails?.applicationData?.additionalDetails?.sanctionFileStoreId], stateCode), };
Receipt Method Reference:
const appFeeDownloadReceipt = { order: 4, label: t("DOWNLOAD_RECEIPT_HEADER"), onClick: () => getRecieptSearch(applicationDetails?.applicationData?.tenantId ? applicationDetails?.applicationData?.tenantId : Digit.ULBService.getCurrentTenantId(), reciept_data?.Payments?.[0], applicationDetails?.applicationData?.applicationNo, receiptKey ), };
Localisation :
Localisation keys are added under the ‘rainmaker-ws’ locale module.
Water & Sewerage workflow:
Role | Action | Next State | Status |
---|---|---|---|
Citizen/ Counter Employee/WS_CEMP/ SW_CEMP | INITIATE | INITIATED | INITIATED |
Citizen/Counter Employee/WS_CEMP / SW_CEMP | EDIT | EDIT/ DOCUMENTVERIFICATION | Pending for Document Verification |
Citizen/Counter Employee/WS_CEMP / SW_CEMP | Send Back to Citizen | Pending for Citizen Action | Pending for Citizen Action |
WS_DOC_VERIFIER / SW_DOC_VERIFIER | VERIFY &FORWARD | FIELDVERIFICATION | Pending for Field Verification |
WS_FIELD_INSPECTOR / SW_FIELD_INSPECTOR | VERIFY &FORWARD | PENDINGAPPROVAL | Pending for APproval |
WS_APPROVER / SW_APPROVER | APPROVE | PENDINGPAYMENT | Pending for Payment |
Citizen/Counter Employee/WS_CEMP / SW_CEMP | PAY | Approved | Approved
|
WS_APPROVER / SW_APPROVER | REJECT | Rejected | Rejected |
WS_CLERK/SW_CLERK | Activate Connection | Connection activated | Connection activated |
Employee Roles and Credentials:
Please find the document attached below:
https://docs.google.com/spreadsheets/d/15p6dmlVUXvopvzyyG06ty2rxtffSMQxN5F2l2FSWoFA/edit#gid=0
API Call Role Action mapping:
S.No. | API | Action id | Roles |
---|---|---|---|
1 |
|
| |
2 |
|
| |
3 |
|
| |
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
|
12 | / |
|
|
13 |
|
|
Add Comment