@djb25/digit-ui-module-ekyc 1.0.27 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djb25/digit-ui-module-ekyc",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "Digit UI Module for Ekyc",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.modern.js",
@@ -77,7 +77,7 @@ const AssignEkyc = () => {
77
77
 
78
78
  const SearchFormFields = useCallback(
79
79
  ({ registerRef, searchFormState, controlSearchForm }) => (
80
- <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} className="search" />
80
+ <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType="mobile" className="search" />
81
81
  ),
82
82
  []
83
83
  );
@@ -1,7 +1,9 @@
1
1
  import React, { useMemo, useState, useEffect } from "react";
2
2
  import { Modal, Close, Table, Toast } from "@djb25/digit-ui-react-components";
3
+ import { useTranslation } from "react-i18next";
3
4
 
4
5
  const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
6
+ const { t } = useTranslation();
5
7
  const [selectedKnos, setSelectedKnos] = useState([]);
6
8
  const [isBulkSelection, setIsBulkSelection] = useState(false);
7
9
  const [currentPage, setCurrentPage] = useState(0);
@@ -14,6 +16,7 @@ const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
14
16
  const [filters, setFilters] = useState({
15
17
  kno: "", // search value
16
18
  pincode: "",
19
+ zoneCode: "",
17
20
  zoneName: "",
18
21
  ward: "",
19
22
  assembly: "",
@@ -23,6 +26,95 @@ const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
23
26
 
24
27
  const [debouncedFilters, setDebouncedFilters] = useState(filters);
25
28
 
29
+ const { data: zroLocationsData, isLoading: isZroLoading } = Digit.Hooks.ws.useWSConfigMDMS.ZROLocation("dl.djb");
30
+ const mappedZROLocation = useMemo(() => {
31
+ return (zroLocationsData || []).map((item) => ({
32
+ code: item.code,
33
+ name: item.name,
34
+ }));
35
+ }, [zroLocationsData]);
36
+
37
+ const { data: egovLocationData } = Digit.Hooks.useCommonMDMS("dl.djb", "egov-location", ["TenantBoundary"]);
38
+
39
+ const boundaryData = useMemo(() => {
40
+ const tenantBoundary = egovLocationData?.["egov-location"]?.TenantBoundary || [];
41
+ const revenueData = tenantBoundary.find((item) => item?.hierarchyType?.code === "REVENUE");
42
+ const boundary = revenueData?.boundary || [];
43
+ return Array.isArray(boundary) ? boundary : [boundary];
44
+ }, [egovLocationData]);
45
+
46
+ const { assemblyOptions, wardOptions } = useMemo(() => {
47
+ const assemblies = new Map();
48
+ const wards = new Map();
49
+
50
+ const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];
51
+
52
+ const traverse = (node) => {
53
+ if (!node) return;
54
+ if (node.label === "Ward" || node.label === "WARD" || node.label === "Block" || node.label === "BLOCK") {
55
+ const code = node.code || node.localname || node.name;
56
+ const name = node.name || node.localname || code;
57
+ if (code) wards.set(code, { code, name: name });
58
+ }
59
+ if (node.label === "Assembly Constituency" || node.label === "ASSEMBLY_CONSTITUENCY") {
60
+ const code = node.code || node.localname || node.name;
61
+ const name = node.name || node.localname || code;
62
+ if (code) assemblies.set(code, { code, name: name });
63
+ }
64
+ if (node.children && node.children.length > 0) {
65
+ node.children.forEach(traverse);
66
+ }
67
+ };
68
+
69
+ boundaries.forEach(traverse);
70
+
71
+ return {
72
+ assemblyOptions: Array.from(assemblies.values()).sort((a, b) => a.name.localeCompare(b.name)),
73
+ wardOptions: Array.from(wards.values()).sort((a, b) => a.name.localeCompare(b.name)),
74
+ };
75
+ }, [boundaryData]);
76
+
77
+ const structuredLocalityData = useMemo(() => {
78
+ let localities = [];
79
+ const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];
80
+
81
+ const extractLocalities = (node) => {
82
+ if (!node) return;
83
+
84
+ if (node.label === "Locality" || node.label === "LOCALITY") {
85
+ localities.push({
86
+ ...node,
87
+ name: node.localname || node.name || node.code,
88
+ });
89
+ }
90
+ if (node.children && node.children.length > 0) {
91
+ node.children.forEach((child) => extractLocalities(child));
92
+ }
93
+ };
94
+
95
+ boundaries.forEach((rootNode) => extractLocalities(rootNode));
96
+
97
+ return localities;
98
+ }, [boundaryData]);
99
+
100
+ const fetchedPincodes = useMemo(() => {
101
+ const pinSet = new Set();
102
+
103
+ structuredLocalityData.forEach((loc) => {
104
+ if (loc.pincode) {
105
+ const pins = Array.isArray(loc.pincode) ? loc.pincode : [loc.pincode];
106
+ pins.forEach((p) => {
107
+ if (p) {
108
+ const sanitizedPin = p.toString().split(".")[0];
109
+ pinSet.add(sanitizedPin);
110
+ }
111
+ });
112
+ }
113
+ });
114
+
115
+ return Array.from(pinSet).sort();
116
+ }, [structuredLocalityData]);
117
+
26
118
  useEffect(() => {
27
119
  const timer = setTimeout(() => {
28
120
  setDebouncedFilters(filters);
@@ -33,13 +125,18 @@ const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
33
125
 
34
126
  useEffect(() => {
35
127
  setCurrentPage(0);
36
- }, [debouncedFilters]);
128
+ }, [debouncedFilters, filters.kno]);
37
129
 
38
130
  const { data: applicationData, isFetching: isLoading } = Digit.Hooks.ekyc.useEkycApplicationList(
39
131
  {
132
+ /*
40
133
  ...(debouncedFilters.kno && {
41
134
  kno: debouncedFilters.kno,
42
135
  }),
136
+ */
137
+ ...(filters.kno && {
138
+ kno: filters.kno,
139
+ }),
43
140
 
44
141
  ...(debouncedFilters.ekycStatus && {
45
142
  ekycStatus: debouncedFilters.ekycStatus,
@@ -237,44 +334,65 @@ const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
237
334
  <div className="filters-grid">
238
335
  <input className="form-control" placeholder="KNO" value={filters.kno} onChange={(e) => handleFilterChange("kno", e.target.value)} />
239
336
 
240
- <input
337
+ <select
241
338
  className="form-control"
242
- placeholder="Pincode"
243
339
  value={filters.pincode}
244
340
  onChange={(e) => handleFilterChange("pincode", e.target.value)}
245
- />
246
-
247
- <input
341
+ >
342
+ <option value="">Select Pincode</option>
343
+ {fetchedPincodes.map((pin) => (
344
+ <option key={pin} value={pin}>
345
+ {pin}
346
+ </option>
347
+ ))}
348
+ </select>
349
+
350
+ <select
248
351
  className="form-control"
249
- placeholder="Zone"
250
352
  value={filters.zoneName}
251
- onChange={(e) => handleFilterChange("zoneName", e.target.value)}
252
- />
253
-
254
- {/* <SelectEkycZones
255
- t={t}
256
- isMultiSelect={false}
257
- config={{
258
- key: "zoneCode",
259
- }}
260
- formData={{
261
- zoneIds: filters.zoneCode ? [{ code: filters.zoneCode, name: filters.zoneName }] : [],
262
- }}
263
- onSelect={(key, value) => {
264
- console.log(value);
265
- handleFilterChange("zoneName", value);
353
+ onChange={(e) => {
354
+ const val = e.target.value;
355
+ setFilters((prev) => ({
356
+ ...prev,
357
+ zoneCode: val,
358
+ zoneName: val,
359
+ }));
266
360
  }}
267
- placeHolder="Zones"
268
- /> */}
269
-
270
- {/* <input className="form-control" placeholder="Ward" value={filters.ward} onChange={(e) => handleFilterChange("ward", e.target.value)} />
271
-
272
- <input
361
+ disabled={isZroLoading}
362
+ >
363
+ <option value="">{isZroLoading ? "Loading ZRO Locations..." : "Select ZRO Location"}</option>
364
+ {mappedZROLocation.map((loc) => (
365
+ <option key={loc.code} value={loc.name}>
366
+ {loc.name}
367
+ </option>
368
+ ))}http://localhost:3000/digit-ui/employee/ekyc/assign
369
+ </select>
370
+
371
+ <select
372
+ className="form-control"
373
+ value={filters.ward}
374
+ onChange={(e) => handleFilterChange("ward", e.target.value)}
375
+ >
376
+ <option value="">Select Ward</option>
377
+ {wardOptions.map((ward) => (
378
+ <option key={ward.code} value={ward.name}>
379
+ {ward.name}
380
+ </option>
381
+ ))}
382
+ </select>
383
+
384
+ <select
273
385
  className="form-control"
274
- placeholder="Assembly"
275
386
  value={filters.assembly}
276
387
  onChange={(e) => handleFilterChange("assembly", e.target.value)}
277
- />
388
+ >
389
+ <option value="">Select Assembly</option>
390
+ {assemblyOptions.map((assembly) => (
391
+ <option key={assembly.code} value={assembly.name}>
392
+ {assembly.name}
393
+ </option>
394
+ ))}
395
+ </select>
278
396
 
279
397
  <input className="form-control" placeholder="MR Key" value={filters.mrkey} onChange={(e) => handleFilterChange("mrkey", e.target.value)} />
280
398
 
@@ -283,7 +401,7 @@ const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
283
401
  <option value="PENDING">Pending</option>
284
402
  <option value="APPROVED">Approved</option>
285
403
  <option value="REJECTED">Rejected</option>
286
- </select> */}
404
+ </select>
287
405
  </div>
288
406
 
289
407
  {/* Table */}
@@ -80,7 +80,7 @@ const DesktopInbox = ({ tableConfig, filterComponent, ...props }) => {
80
80
  Header: t("EKYC_EKYC_STATUS"),
81
81
  accessor: "ekycStatus",
82
82
  Cell: ({ row }) => {
83
- const ekycStatus = row.original?.ekycStatus || row.original?.ekycstatus || "NA";
83
+ const ekycStatus = (row.original?.ekycStatus || row.original?.ekycstatus || "NA").toUpperCase();
84
84
  return <span className={`ekyc-status-tag ${ekycStatus}`}>{t(`${ekycStatus}`)}</span>
85
85
  }
86
86
  },
@@ -177,8 +177,8 @@ const Review = () => {
177
177
  const [toastData, setToastData] = useState({ error: false, label: "" });
178
178
 
179
179
  const options = [
180
- { action: t("Approve") },
181
- { action: t("Reject") }
180
+ { action: t("APPROVE") },
181
+ { action: t("REJECT") }
182
182
  ];
183
183
 
184
184
  const flowState = location.state || {};
@@ -3,17 +3,46 @@ import { Controller } from "react-hook-form";
3
3
  import { CardLabelError, TextInput, CustomTooltip, Label } from "@djb25/digit-ui-react-components";
4
4
  import { useTranslation } from "react-i18next";
5
5
 
6
- const SearchFormFieldsComponents = ({ searchFormState, controlSearchForm }) => {
6
+ const SearchFormFieldsComponents = ({ searchFormState, controlSearchForm, searchType }) => {
7
7
  const { t } = useTranslation();
8
8
  const { errors } = searchFormState;
9
9
 
10
+ if (searchType === "mobile") {
11
+ return (
12
+ <React.Fragment>
13
+ {/* MOBILE NUMBER */}
14
+ <span className="mobile-input">
15
+ <Label className="flex-roww flex-gap-2">
16
+ {t("ES_COMMON_MOBILE_NUM") || "Mobile Number"}
17
+ <CustomTooltip message={t("EKYC_MOBILE_NUMBER_MESSAGE")} />
18
+ </Label>
19
+
20
+ <Controller
21
+ name="mobileNumber"
22
+ control={controlSearchForm}
23
+ defaultValue=""
24
+ rules={{
25
+ pattern: {
26
+ value: /^[6-9]\d{9}$/,
27
+ message: t("ERR_INVALID_MOBILE_NUMBER"),
28
+ },
29
+ }}
30
+ render={({ onChange, value }) => <TextInput value={value || ""} onChange={(e) => onChange(e.target.value)} />}
31
+ />
32
+
33
+ {errors?.mobileNumber && <CardLabelError>{errors.mobileNumber.message}</CardLabelError>}
34
+ </span>
35
+ </React.Fragment>
36
+ );
37
+ }
38
+
10
39
  return (
11
40
  <React.Fragment>
12
- {/* MOBILE NUMBER */}
41
+ {/* K NUMBER (KNO) */}
13
42
  <span className="mobile-input">
14
43
  <Label className="flex-roww flex-gap-2">
15
44
  {t("EKYC_K.NUMBER") || "K Number"}
16
- <CustomTooltip message={t("EKYC_MOBILE_NUMBER_MESSAGE")} />
45
+ <CustomTooltip message={t("EKYC_K.NUMBER_MESSAGE")} />
17
46
  </Label>
18
47
 
19
48
  <Controller
@@ -31,23 +60,6 @@ const SearchFormFieldsComponents = ({ searchFormState, controlSearchForm }) => {
31
60
 
32
61
  {errors?.kNumber && <CardLabelError>{errors.kNumber.message}</CardLabelError>}
33
62
  </span>
34
-
35
- {/* K NAME */}
36
- {/* <span className="mobile-input">
37
- <Label className="flex-roww flex-gap-2">
38
- {t("EKYC_K_NAME") || "K Name"}
39
- <CustomTooltip message={t("EKYC_K_NAME_MESSAGE")} />
40
- </Label>
41
-
42
- <Controller
43
- name="kName"
44
- control={controlSearchForm}
45
- defaultValue=""
46
- render={({ onChange, value }) => <TextInput value={value || ""} onChange={(e) => onChange(e.target.value)} />}
47
- />
48
-
49
- {errors?.kName && <CardLabelError>{errors.kName.message}</CardLabelError>}
50
- </span> */}
51
63
  </React.Fragment>
52
64
  );
53
65
  };
@@ -278,9 +278,10 @@ const SurveyorDetailsDashboard = () => {
278
278
 
279
279
  <div className="designation">{surveyor?.description || t("FIELD_SURVEYOR")}</div>
280
280
 
281
- <div className="employee-id">
281
+ {/* <div className="employee-id">
282
282
  {t("EMPLOYEE_ID")}: {employeeId}
283
- </div>
283
+ </div> */}
284
+
284
285
  </div>
285
286
  </div>
286
287
 
@@ -373,7 +374,7 @@ const SurveyorDetailsDashboard = () => {
373
374
  {/* Charts */}
374
375
  <div className="charts-wrapper">
375
376
  {/* Weekly Chart */}
376
- <div className="chart-card">
377
+ {/* <div className="chart-card">
377
378
  <h3 className="chart-title">{t("WEEKLY_SURVEY_PROGRESS")}</h3>
378
379
 
379
380
  <ResponsiveContainer width="100%" height={300}>
@@ -389,10 +390,10 @@ const SurveyorDetailsDashboard = () => {
389
390
  <Bar dataKey="completed" fill="#0B2559" radius={[6, 6, 0, 0]} />
390
391
  </BarChart>
391
392
  </ResponsiveContainer>
392
- </div>
393
+ </div> */}
393
394
 
394
395
  {/* Pie Chart */}
395
- <div className="chart-card">
396
+ {/* <div className="chart-card">
396
397
  <h3 className="chart-title">{t("CASE_DISTRIBUTION")}</h3>
397
398
 
398
399
  <ResponsiveContainer width="100%" height={300}>
@@ -408,7 +409,7 @@ const SurveyorDetailsDashboard = () => {
408
409
  <Legend />
409
410
  </PieChart>
410
411
  </ResponsiveContainer>
411
- </div>
412
+ </div> */}
412
413
  </div>
413
414
 
414
415
  {/* Details */}
@@ -440,8 +441,8 @@ const SurveyorDetailsDashboard = () => {
440
441
  </div>
441
442
 
442
443
  <div className="detail-item">
443
- <span className="label">{t("VENDOR_ID")}:</span>
444
- <span className="value">{surveyor?.vendorId || "N/A"}</span>
444
+ <span className="label">{t("VENDOR_NAME") || "Vendor Name"}:</span>
445
+ <span className="value">{vendorName}</span>
445
446
  </div>
446
447
  </div>
447
448
  </div>
@@ -498,7 +499,7 @@ const SurveyorDetailsDashboard = () => {
498
499
  />
499
500
  )}
500
501
  </ActionBar>
501
-
502
+
502
503
  )
503
504
  }
504
505
 
@@ -110,7 +110,7 @@ const MeterDetailsConfig = (t, formData = {}, uploadPhoto, meterPhoto, meterPhot
110
110
 
111
111
  if (meterStatus === "Metered") {
112
112
  fields.push({
113
- label: t("Meter Photo *"),
113
+ label: t("Meter Photo"),
114
114
  isMandatory: true,
115
115
  type: "custom",
116
116
  key: "meterPhoto",
@@ -201,7 +201,7 @@ const MeterDetailsConfig = (t, formData = {}, uploadPhoto, meterPhoto, meterPhot
201
201
  // 🔹 Bill-received fields
202
202
  if (lastBillReceived === "Yes") {
203
203
  fields.push({
204
- label: t("When was the last bill received *"),
204
+ label: t("When was the last bill received"),
205
205
  isMandatory: true,
206
206
  type: "custom",
207
207
  key: "billMonthYear",
@@ -43,11 +43,7 @@ const useInboxTableConfig = ({
43
43
  Cell: ({ row }) => {
44
44
  const kno = row.original?.kno || row.original?.applicationNumber || "NA";
45
45
  return (
46
- <span
47
- className="ekyc-application-link"
48
- style={{ color: "#add8f7", cursor: "pointer", fontWeight: "bold" }}
49
- onClick={() => handleReview(kno)}
50
- >
46
+ <span className="ekyc-application-link" onClick={() => handleReview(kno)}>
51
47
  {kno}
52
48
  </span>
53
49
  );
@@ -70,7 +66,7 @@ const useInboxTableConfig = ({
70
66
  Header: t("EKYC_EKYC_STATUS"),
71
67
  accessor: "ekycStatus",
72
68
  Cell: ({ row }) => {
73
- const ekycStatus = row.original?.ekycStatus || row.original?.ekycstatus || "NA";
69
+ const ekycStatus = (row.original?.ekycStatus || row.original?.ekycstatus || "NA").toUpperCase();
74
70
  return <span className={`ekyc-status-tag ${ekycStatus}`}>{t(`${ekycStatus}`)}</span>;
75
71
  },
76
72
  },
@@ -93,14 +89,6 @@ const useInboxTableConfig = ({
93
89
  ];
94
90
 
95
91
  return {
96
- getCellProps: (cellInfo) => {
97
- return {
98
- style: {
99
- padding: "8px",
100
- fontSize: "12px",
101
- },
102
- };
103
- },
104
92
  disableSort: false,
105
93
  autoSort: false,
106
94
  manualPagination: true,
@@ -15,7 +15,7 @@ const Home = () => {
15
15
  links: [],
16
16
  };
17
17
  const citizenInfo = Digit.SessionStorage.get("User")?.info?.roles;
18
- const roles = citizenInfo.map((ele) => ele.code);
18
+ const roles = Array.isArray(citizenInfo) ? citizenInfo.map((ele) => ele.code) : [];
19
19
 
20
20
  if (roles.includes("EKYC_SURVEYOR")) {
21
21
  propsForModuleCard.links.push({
@@ -88,7 +88,7 @@ const Inbox = ({ parentRoute }) => {
88
88
  applicationNumber: item.propertyInfo?.kno || "",
89
89
  citizenName: item.connectionDetails?.consumerName || "",
90
90
  status: item.connectionDetails?.statusflag || "",
91
- ekycStatus: item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || "NA",
91
+ ekycStatus: (item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || "NA").toUpperCase(),
92
92
  sla: 0,
93
93
  };
94
94
  }
@@ -102,7 +102,7 @@ const Inbox = ({ parentRoute }) => {
102
102
  applicationNumber: item.kno || item.applicationNumber || "",
103
103
  citizenName: item.consumerName || item.citizenName || "",
104
104
  status: item.status || "",
105
- ekycStatus: item.ekycStatus || item.ekycstatus || "NA",
105
+ ekycStatus: (item.ekycStatus || item.ekycstatus || "NA").toUpperCase(),
106
106
  sla: item.sla ?? 0,
107
107
  };
108
108
  });
@@ -111,13 +111,13 @@ const Inbox = ({ parentRoute }) => {
111
111
  const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;
112
112
 
113
113
  const checkPathName = location.pathname.includes("ekyc/inbox");
114
- const PropsForInboxLinks = {
115
- headerText: "EKYC_MODULE",
116
- };
114
+ // const PropsForInboxLinks = {
115
+ // headerText: "EKYC_MODULE",
116
+ // };
117
117
 
118
118
  const SearchFormFields = useCallback(
119
119
  ({ registerRef, searchFormState, controlSearchForm }) => (
120
- <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} className="search" />
120
+ <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType="kno" className="search" />
121
121
  ),
122
122
  []
123
123
  );
@@ -157,18 +157,18 @@ const Inbox = ({ parentRoute }) => {
157
157
  className: "search-form-wns-inbox",
158
158
  };
159
159
 
160
- const FilterFormFields = useCallback(
161
- ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,
162
- []
163
- );
164
-
165
- const propsForFilterForm = {
166
- FilterFormFields,
167
- onFilterFormSubmit: () => { },
168
- filterFormDefaultValues: "",
169
- resetFilterFormDefaultValues: "",
170
- onFilterFormReset: () => { },
171
- };
160
+ // const FilterFormFields = useCallback(
161
+ // ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,
162
+ // []
163
+ // );
164
+
165
+ // const propsForFilterForm = {
166
+ // FilterFormFields,
167
+ // onFilterFormSubmit: () => { },
168
+ // filterFormDefaultValues: "",
169
+ // resetFilterFormDefaultValues: "",
170
+ // onFilterFormReset: () => { },
171
+ // };
172
172
 
173
173
  function formReducer(state, payload) {
174
174
  const storageKey = payload.checkPathName ? "EKYC.INBOX" : "EKYC.SW.INBOX";
@@ -87,7 +87,7 @@ const Inbox = ({ parentRoute, businessService = "EKYC", initialStates = {}, filt
87
87
  applicationNumber: item.propertyInfo?.kno || "",
88
88
  citizenName: item.connectionDetails?.consumerName || "",
89
89
  status: item.connectionDetails?.statusflag || "",
90
- ekycStatus: item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || "NA",
90
+ ekycStatus: (item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || "NA").toUpperCase(),
91
91
  sla: 0,
92
92
  };
93
93
  }
@@ -102,7 +102,7 @@ const Inbox = ({ parentRoute, businessService = "EKYC", initialStates = {}, filt
102
102
  applicationNumber: item.kno || item.applicationNumber || "",
103
103
  citizenName: fullName || item.consumerName || item.citizenName || "",
104
104
  status: item.status || "",
105
- ekycStatus: item.ekycStatus || item.ekycstatus || "NA",
105
+ ekycStatus: (item.ekycStatus || item.ekycstatus || "NA").toUpperCase(),
106
106
  sla: item.sla ?? 0,
107
107
  };
108
108
  });
@@ -117,7 +117,7 @@ const Inbox = ({ parentRoute, businessService = "EKYC", initialStates = {}, filt
117
117
 
118
118
  const SearchFormFields = useCallback(
119
119
  ({ registerRef, searchFormState, controlSearchForm }) => (
120
- <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} className="search" />
120
+ <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType="kno" className="search" />
121
121
  ),
122
122
  []
123
123
  );
@@ -27,13 +27,26 @@ export const downloadSurveyorPDF = async ({
27
27
  const email = "contact@delhijalboard.nic.in";
28
28
  const phoneNumber = "+91-11-23538416";
29
29
 
30
+ const currentDate = new Date();
31
+ const formattedDate = currentDate.toLocaleDateString("en-IN", {
32
+ day: "2-digit",
33
+ month: "2-digit",
34
+ year: "numeric"
35
+ });
36
+ const formattedTime = currentDate.toLocaleTimeString("en-IN", {
37
+ hour: "2-digit",
38
+ minute: "2-digit",
39
+ second: "2-digit",
40
+ hour12: false
41
+ });
42
+ const downloadDateTime = `${formattedDate} ${formattedTime}`;
43
+
30
44
  const details = [
31
45
  {
32
46
  title: t("SURVEYOR_DETAILS"),
33
47
  asSectionHeader: true,
34
48
  values: [
35
49
  { title: t("SURVEYOR_NAME"), value: surveyorName },
36
- { title: t("EMPLOYEE_ID"), value: employeeId },
37
50
  { title: t("MOBILE_NUMBER"), value: mobileNumber },
38
51
  { title: t("VENDOR_NAME"), value: vendorName },
39
52
  { title: t("SUPERVISOR_NAME"), value: supervisorName }
@@ -68,6 +81,8 @@ export const downloadSurveyorPDF = async ({
68
81
  applicationNumber: employeeId,
69
82
  rows,
70
83
  t,
84
+ hideApplicationNumber: true,
85
+ downloadTime: downloadDateTime,
71
86
  });
72
87
  } else {
73
88
  console.error("Digit.Utils.pdf.generateSurveyorReport is not available");