View Attendance

Screen to view muster roll details for selected muster roll.

Objective:

  • To view weekly muster roll details/attendance for selected muster roll

  • To view the workflow history of the muster roll

Workflow Details

Users can navigate to this screen by clicking on the muster roll id on the inbox page

The view screen consists of register details on top, Enrolled user details in tabular format, Workflow history and Actions that can be performed on selected muster. Initially, muster has ‘Submitted’ status.

Technical Implementation Details

View Attendance screen technical implementation can be found in the below file.

Hooks used

To fetch muster roll details, ‘useViewAttendance’ is used which takes tenant id and muster roll number.

To fetch workflow details, ‘useWorkflowDetails is used which takes tenant id, muster roll number, and business service (muster-roll-approval) as module code and config.

APIs used

Endpoint:

/muster-roll/v1/_search

Sample curl for Search muster API:

curl --location --request POST 'https://works-dev.digit.org/muster-roll/v1/_search?tenantId=pb.amritsar&musterRollNumber=MR/2022-23/01/24/000356' \
--header 'Content-Type: application/json' \
--data-raw '{
  "RequestInfo": {
    "apiId": "asset-services",
    "ver": null,
    "ts": null,
    "action": null,
    "did": null,
    "key": null,
    "msgId": "search with from and to values",
    "authToken": "6ea7d654-234c-4da6-a43f-8b83a3100593",
    "userInfo": {
        "id": 109,
        "uuid": "be99b2c2-5780-4b1c-8e41-e3f8a972ebda",
        "userName": "Nipsyyyy",
        "name": "Nipun ",
        "mobileNumber": "9667076655",
        "emailId": null,
        "locale": null,
        "type": "EMPLOYEE",
        "roles": [
            {
                "name": "Employee",
                "code": "EMPLOYEE",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "EST_CHECKER",
                "code": "EST_CHECKER",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "Organization admin",
                "code": "ORG_ADMIN",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "EST TECH SANC",
                "code": "EST_TECH_SANC",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "HRMS Admin",
                "code": "HRMS_ADMIN",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "Organization staff",
                "code": "ORG_STAFF",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "EST CREATOR",
                "code": "EST_CREATOR",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "LOI APPROVER",
                "code": "LOI_APPROVER",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "EST FIN SANC",
                "code": "EST_FIN_SANC",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "LOI CREATOR",
                "code": "LOI_CREATOR",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "SUPER USER",
                "code": "SUPERUSER",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "EST TECH SANC",
                "code": "EST_ADMIN_SANC",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "MUNICIPAL ENGINEER",
                "code": "MUNICIPAL_ENGINEER",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "LOI CHECKER",
                "code": "LOI_CHECKER",
                "tenantId": "pb.amritsar"
            },
            {
                "name": "JUNIOR ENGINEER",
                "code": "JUNIOR_ENGINEER",
                "tenantId": "pb.amritsar"
            }
        ],
        "active": true,
        "tenantId": "pb.amritsar",
        "permanentCity": "Amritsar"
    }
  }
}'

MDMS Used

Wage seeker skills data is fetched from MDMS using 'getMultipleTypesWithFilter' service.

const getWageSeekerSkills = async () => {
  const skills = {}
  const response = await Digit.MDMSService.getMultipleTypesWithFilter(Digit.ULBService.getStateId(), "common-masters", [{"name": "WageSeekerSkills"}])
  response?.['common-masters']?.WageSeekerSkills.forEach(item => (skills[item.code] = item))
  return skills
}

Localisation

Localisation keys are added under the ‘rainmaker-attendencemgmt’ locale module. In future, if any new labels are implemented in the attendance module they should also be pushed in the locale DB under rainmaker-attendencemgmt locale module. Below is an example of a few locale labels for Hindi and English.

{
    "code": "ATM_ACTUAL_WORKING_DAYS",
    "message": "वास्तविक कार्य दिवस",
    "module": "rainmaker-attendencemgmt",
    "locale": "hi_IN"
}
{
    "code": "ATM_ACTUAL_WORKING_DAYS",
    "message": "Actual Working Days",
    "module": "rainmaker-attendencemgmt",
    "locale": "en_IN"
}

Customisation

The content on this screen is rendered based on the configuration passed on ApplicationDetails template component. Its implementation can be found in the below file.

API Role Action Mapping

APIRole CodeAction IdActions

/muster-roll/v1/_search

JUNIOR_ENGINEER

37
  • View Individual Muster Roll

/muster-roll/v1/_search

MUNICIPAL_ENGINEER

37
  • View Individual Muster Roll

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.