From cdac0c23777fc9fa15c56c7ee7ce19f4e31a6642 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Thu, 26 Sep 2024 13:05:37 +0530 Subject: [PATCH 01/10] Gift-card Digital appliaction --- src/Components/CutomBreadcrumb.jsx | 43 +- src/Contexts/GlobalStateProvider.jsx | 1576 +++++++++-------- src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx | 26 +- .../id/DigitalApplication.jsx | 360 ++++ src/Routes/Routes.js | 4 +- 5 files changed, 1195 insertions(+), 814 deletions(-) create mode 100644 src/Pages/OptiFiiGifsAndVouchers/id/DigitalApplication.jsx diff --git a/src/Components/CutomBreadcrumb.jsx b/src/Components/CutomBreadcrumb.jsx index 1fa7c9c..586f227 100644 --- a/src/Components/CutomBreadcrumb.jsx +++ b/src/Components/CutomBreadcrumb.jsx @@ -43,7 +43,9 @@ const CustomBreadcrumb = () => { breadcrumbs.push({ path: currentPath, title: menuItem.title }); } else { // For nested paths without direct match, create a custom breadcrumb title - const customTitle = part.replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()); + const customTitle = part + .replace(/-/g, " ") + .replace(/\b\w/g, (c) => c.toUpperCase()); breadcrumbs.push({ path: currentPath, title: customTitle }); } }); @@ -63,7 +65,7 @@ const CustomBreadcrumb = () => { mt={1} borderBottom={"1px dashed #DEE2E6"} > - + */} {breadcrumbs.map((item, index) => ( - - - {/* */} - / - - + + + + / + ))} diff --git a/src/Contexts/GlobalStateProvider.jsx b/src/Contexts/GlobalStateProvider.jsx index 234d6bd..9c8340a 100644 --- a/src/Contexts/GlobalStateProvider.jsx +++ b/src/Contexts/GlobalStateProvider.jsx @@ -42,953 +42,969 @@ export const generateUniqueId = () => { const GlobalStateProvider = ({ children }) => { const [isAuthenticate, setIsAuthenticate] = useState(false); - const [ employees, setEmployees ] = useState([ + const [employees, setEmployees] = useState([ { - "id": 1, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 1, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 2, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 2, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 3, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 3, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 4, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 4, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 5, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Inactive", + id: 5, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Inactive", }, { - "id": 6, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Inactive", + id: 6, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Inactive", }, { - "id": 7, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 7, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 8, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Inactive", + id: 8, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Inactive", }, { - "id": 9, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 9, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 10, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 10, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 11, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Inactive", + id: 11, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Inactive", }, { - "id": 7, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 7, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 8, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 8, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 9, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 9, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 10, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Inactive", + id: 10, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Inactive", }, { - "id": 11, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 11, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 7, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 7, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 8, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 8, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 9, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 9, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 10, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", + id: 10, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", }, { - "id": 11, - "EmpID":"124589", - "Name": "Status", - "emailAddress": "in***@wdimails.com", - "mobileNumber": "+91 ***8451254", - "Grade": "L1", - "Department": "Sales", - "Role":"Sr. Manager", - "status":"Active", - } - ] - ) + id: 11, + EmpID: "124589", + Name: "Status", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 ***8451254", + Grade: "L1", + Department: "Sales", + Role: "Sr. Manager", + status: "Active", + }, + ]); const [reportsHistory, setReportsHistory] = useState([ { - "id": 1, - "name": "Office Supplies - July 2024", - "lastUpdated": "31-07-2024 10:15 am", - "reportType": "Expense", - "totalExpense": 350.75, - "status": "Approved" + id: 1, + name: "Office Supplies - July 2024", + lastUpdated: "31-07-2024 10:15 am", + reportType: "Expense", + totalExpense: 350.75, + status: "Approved", }, { - "id": 2, - "name": "Travel Reimbursement - Q2 2024", - "lastUpdated": "15-08-2024 02:45 pm", - "reportType": "Expense", - "totalExpense": 1250.00, - "status": "Approved" + id: 2, + name: "Travel Reimbursement - Q2 2024", + lastUpdated: "15-08-2024 02:45 pm", + reportType: "Expense", + totalExpense: 1250.0, + status: "Approved", }, { - "id": 3, - "name": "Client Meeting Expenses - August 2024", - "lastUpdated": "28-08-2024 09:30 am", - "reportType": "Expense", - "totalExpense": 600.50, - "status": "Fully Reimbursed" + id: 3, + name: "Client Meeting Expenses - August 2024", + lastUpdated: "28-08-2024 09:30 am", + reportType: "Expense", + totalExpense: 600.5, + status: "Fully Reimbursed", }, { - "id": 4, - "name": "Marketing Campaign - Q3 2024", - "lastUpdated": "10-09-2024 11:00 am", - "reportType": "Expense", - "totalExpense": 2300.00, - "status": "Disapproved" + id: 4, + name: "Marketing Campaign - Q3 2024", + lastUpdated: "10-09-2024 11:00 am", + reportType: "Expense", + totalExpense: 2300.0, + status: "Disapproved", }, { - "id": 5, - "name": "Team Building Event - September 2024", - "lastUpdated": "22-09-2024 04:20 pm", - "reportType": "Expense", - "totalExpense": 800.00, - "status": "Fully Reimbursed" + id: 5, + name: "Team Building Event - September 2024", + lastUpdated: "22-09-2024 04:20 pm", + reportType: "Expense", + totalExpense: 800.0, + status: "Fully Reimbursed", }, { - "id": 6, - "name": "Office Renovation - Phase 1", - "lastUpdated": "30-09-2024 03:10 pm", - "reportType": "Expense", - "totalExpense": 4500.00, - "status": "Saved" + id: 6, + name: "Office Renovation - Phase 1", + lastUpdated: "30-09-2024 03:10 pm", + reportType: "Expense", + totalExpense: 4500.0, + status: "Saved", }, { - "id": 7, - "name": "Software Licenses - 2024 Renewal", - "lastUpdated": "05-10-2024 01:50 pm", - "reportType": "Expense", - "totalExpense": 3200.00, - "status": "Saved" + id: 7, + name: "Software Licenses - 2024 Renewal", + lastUpdated: "05-10-2024 01:50 pm", + reportType: "Expense", + totalExpense: 3200.0, + status: "Saved", }, { - "id": 8, - "name": "Conference Attendance - October 2024", - "lastUpdated": "15-10-2024 09:00 am", - "reportType": "Expense", - "totalExpense": 1500.00, - "status": "Partially Reimbursed" + id: 8, + name: "Conference Attendance - October 2024", + lastUpdated: "15-10-2024 09:00 am", + reportType: "Expense", + totalExpense: 1500.0, + status: "Partially Reimbursed", }, { - "id": 9, - "name": "Holiday Party - December 2024", - "lastUpdated": "20-12-2024 05:30 pm", - "reportType": "Expense", - "totalExpense": 2500.00, - "status": "Saved" + id: 9, + name: "Holiday Party - December 2024", + lastUpdated: "20-12-2024 05:30 pm", + reportType: "Expense", + totalExpense: 2500.0, + status: "Saved", }, { - "id": 10, - "name": "Client Gifts - End of Year 2024", - "lastUpdated": "31-12-2024 02:00 pm", - "reportType": "Expense", - "totalExpense": 1200.00, - "status": "Approved" + id: 10, + name: "Client Gifts - End of Year 2024", + lastUpdated: "31-12-2024 02:00 pm", + reportType: "Expense", + totalExpense: 1200.0, + status: "Approved", }, { - "id": 11, - "name": "Training Programs - January 2025", - "lastUpdated": "15-01-2025 10:30 am", - "reportType": "Expense", - "totalExpense": 900.00, - "status": "Saved" + id: 11, + name: "Training Programs - January 2025", + lastUpdated: "15-01-2025 10:30 am", + reportType: "Expense", + totalExpense: 900.0, + status: "Saved", }, { - "id": 7, - "name": "Software Licenses - 2024 Renewal", - "lastUpdated": "05-10-2024 01:50 pm", - "reportType": "Expense", - "totalExpense": 3200.00, - "status": "Saved" + id: 7, + name: "Software Licenses - 2024 Renewal", + lastUpdated: "05-10-2024 01:50 pm", + reportType: "Expense", + totalExpense: 3200.0, + status: "Saved", }, { - "id": 8, - "name": "Conference Attendance - October 2024", - "lastUpdated": "15-10-2024 09:00 am", - "reportType": "Expense", - "totalExpense": 1500.00, - "status": "Partially Reimbursed" + id: 8, + name: "Conference Attendance - October 2024", + lastUpdated: "15-10-2024 09:00 am", + reportType: "Expense", + totalExpense: 1500.0, + status: "Partially Reimbursed", }, { - "id": 9, - "name": "Holiday Party - December 2024", - "lastUpdated": "20-12-2024 05:30 pm", - "reportType": "Expense", - "totalExpense": 2500.00, - "status": "Saved" + id: 9, + name: "Holiday Party - December 2024", + lastUpdated: "20-12-2024 05:30 pm", + reportType: "Expense", + totalExpense: 2500.0, + status: "Saved", }, { - "id": 10, - "name": "Client Gifts - End of Year 2024", - "lastUpdated": "31-12-2024 02:00 pm", - "reportType": "Expense", - "totalExpense": 1200.00, - "status": "Approved" + id: 10, + name: "Client Gifts - End of Year 2024", + lastUpdated: "31-12-2024 02:00 pm", + reportType: "Expense", + totalExpense: 1200.0, + status: "Approved", }, { - "id": 11, - "name": "Training Programs - January 2025", - "lastUpdated": "15-01-2025 10:30 am", - "reportType": "Expense", - "totalExpense": 900.00, - "status": "Saved" + id: 11, + name: "Training Programs - January 2025", + lastUpdated: "15-01-2025 10:30 am", + reportType: "Expense", + totalExpense: 900.0, + status: "Saved", }, { - "id": 7, - "name": "Software Licenses - 2024 Renewal", - "lastUpdated": "05-10-2024 01:50 pm", - "reportType": "Expense", - "totalExpense": 3200.00, - "status": "Saved" + id: 7, + name: "Software Licenses - 2024 Renewal", + lastUpdated: "05-10-2024 01:50 pm", + reportType: "Expense", + totalExpense: 3200.0, + status: "Saved", }, { - "id": 8, - "name": "Conference Attendance - October 2024", - "lastUpdated": "15-10-2024 09:00 am", - "reportType": "Expense", - "totalExpense": 1500.00, - "status": "Partially Reimbursed" + id: 8, + name: "Conference Attendance - October 2024", + lastUpdated: "15-10-2024 09:00 am", + reportType: "Expense", + totalExpense: 1500.0, + status: "Partially Reimbursed", }, { - "id": 9, - "name": "Holiday Party - December 2024", - "lastUpdated": "20-12-2024 05:30 pm", - "reportType": "Expense", - "totalExpense": 2500.00, - "status": "Saved" + id: 9, + name: "Holiday Party - December 2024", + lastUpdated: "20-12-2024 05:30 pm", + reportType: "Expense", + totalExpense: 2500.0, + status: "Saved", }, { - "id": 10, - "name": "Client Gifts - End of Year 2024", - "lastUpdated": "31-12-2024 02:00 pm", - "reportType": "Expense", - "totalExpense": 1200.00, - "status": "Approved" + id: 10, + name: "Client Gifts - End of Year 2024", + lastUpdated: "31-12-2024 02:00 pm", + reportType: "Expense", + totalExpense: 1200.0, + status: "Approved", }, { - "id": 11, - "name": "Training Programs - January 2025", - "lastUpdated": "15-01-2025 10:30 am", - "reportType": "Expense", - "totalExpense": 900.00, - "status": "Saved" - } - ] - ) + id: 11, + name: "Training Programs - January 2025", + lastUpdated: "15-01-2025 10:30 am", + reportType: "Expense", + totalExpense: 900.0, + status: "Saved", + }, + ]); - const [ department, setDepartment ] = useState([ + const [department, setDepartment] = useState([ { - "id": 1, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 1, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 2, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 2, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 3, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 3, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 4, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 4, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 5, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 5, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 6, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 6, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 7, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 7, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 8, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 8, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 9, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 9, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, { - "id": 10, - "department":"FInance", - "role": "Sr. Manager", - "createdBy": "Reethik Thota", - "dateTime": "12 June 2024, 10.00 am", - "approvedBy": "Pooja Patade", + id: 10, + department: "FInance", + role: "Sr. Manager", + createdBy: "Reethik Thota", + dateTime: "12 June 2024, 10.00 am", + approvedBy: "Pooja Patade", }, - ] - ) + ]); - const [ roles, setRoles ] = useState([ + const [roles, setRoles] = useState([ { - "id": 1, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Published", + id: 1, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Published", }, { - "id": 2, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Published", + id: 2, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Published", }, { - "id": 3, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 3, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, { - "id": 4, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Published", + id: 4, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Published", }, { - "id": 5, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 5, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, { - "id": 6, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 6, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, { - "id": 7, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 7, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, { - "id": 8, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 8, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, { - "id": 9, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Published", + id: 9, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Published", }, { - "id": 10, - "role":"Sr Manager", - "department": "Finance", - "createdDuration": "11 June 2024, 10 am", - "createdBy": "Pooja Patade", - "permissions": "Subadmin", - "status": "Saved as draft", + id: 10, + role: "Sr Manager", + department: "Finance", + createdDuration: "11 June 2024, 10 am", + createdBy: "Pooja Patade", + permissions: "Subadmin", + status: "Saved as draft", }, + ]); - ] - ) + const [employeePermissions, setEmployeePermissions] = useState([ + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + { + id: "12451", + name: "Kartikey Gautam", + emailID: "kg@wdimails.com", + department: "Finance", + role: "Sr. Accountant", + permissions: "Subadmin", + }, + ]); - const [ employeePermissions, setEmployeePermissions ] = useState([ + const [reimbursementStatus, setReimbursementStatus] = useState([ { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", }, { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", }, { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", }, { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Fully reimbursed", + approver: "Sales", + disburser: "Sales", }, { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", - }, - { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", - }, - { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", - }, - { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", - }, - { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", - }, - { - "id": "12451", - "name":"Kartikey Gautam", - "emailID": "kg@wdimails.com", - "department": "Finance", - "role": "Sr. Accountant", - "permissions": "Subadmin", + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Fully reimbursed", + approver: "Sales", + disburser: "Sales", }, + ]); - ] - ) + const [advanceStatus, setAdvanceStatus] = useState([ + { + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", + }, + { + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", + }, + { + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Approved", + approver: "Sales", + disburser: "Sales", + }, + { + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Fully reimbursed", + approver: "Sales", + disburser: "Sales", + }, + { + reportName: "Jan 12, 2022", + reportBy: "in***@wdimails.com", + reportAmount: "+91 ***8451254", + dateTime: "Sales", + orderStatus: "Fully reimbursed", + approver: "Sales", + disburser: "Sales", + }, + ]); - const [ reimbursementStatus, setReimbursementStatus ] = useState([ + const [digital, setDigital] = useState([ { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + id: 1, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Active", + CardDeliveryStatus: "Delivered", + quantity: "500", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + id: 2, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Active", + CardDeliveryStatus: "Not Delivered", + quantity: "500", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + id: 3, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Activate", + CardDeliveryStatus: "Delivered", + quantity: "500", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Fully reimbursed", - "approver": "Sales", - "disburser":"Sales", + id: 3, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Partially Active", + CardDeliveryStatus: "Partially Delivered", + quantity: "500", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Fully reimbursed", - "approver": "Sales", - "disburser":"Sales", + id: 4, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Active", + CardDeliveryStatus: "Not Delivered", + quantity: "500", }, - ] - ) + { + id: 5, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Partially Active", + CardDeliveryStatus: "Not Delivered", + quantity: "500", + }, + { + id: 6, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Active", + CardDeliveryStatus: "Delivered", + quantity: "500", + }, + { + id: 7, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Activate", + CardDeliveryStatus: "Delivered", + quantity: "500", + }, + { + id: 8, + orderid: "#451245", + laodStatus: "Fully Loaded", + dateTime: "10 June 2024, 10am", + totalvaluation: "₹ 70,000", + activationStatus: "Activate", + CardDeliveryStatus: "Delivered", + quantity: "500", + }, + ]); - const [ advanceStatus, setAdvanceStatus ] = useState([ + const [ApplicationStatus, setApplicationStatus] = useState([ { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "10,000", + ActiveStatus: "Active", + emailAddressMobile: "+91 *** 154874", + MemberSince: "5 July, 2023", + Action: "Activate card", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "10,000", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Activate card", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Approved", - "approver": "Sales", - "disburser":"Sales", + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "load Card", + ActiveStatus: "Activate", + emailAddressMobile: "+91 *** 154874", + MemberSince: "5 July, 2023", + Action: "Load card", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Fully reimbursed", - "approver": "Sales", - "disburser":"Sales", + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "10,000", + ActiveStatus: "Active", + emailAddressMobile: "+91 *** 154874", + MemberSince: "5 July, 2023", + Action: "Load card", }, { - "reportName": "Jan 12, 2022", - "reportBy":"in***@wdimails.com", - "reportAmount": "+91 ***8451254", - "dateTime": "Sales", - "orderStatus": "Fully reimbursed", - "approver": "Sales", - "disburser":"Sales", - }, - - ] - ) - - const [digital , setDigital]=useState([ - { - id:1, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Active", - "CardDeliveryStatus" : "Delivered", - "quantity":"500" + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "load Card", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Load card", }, { - id:2, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Active", - "CardDeliveryStatus" : "Not Delivered", - "quantity":"500" + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "load Card", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Activate card", }, { - id:3, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Activate", - "CardDeliveryStatus" : "Delivered", - "quantity":"500" + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "10,000", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Activate card", }, { - id:3, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Partially Active", - "CardDeliveryStatus" : "Partially Delivered", - "quantity":"500" - + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "10,000", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Load card", }, { - id:4, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Active", - "CardDeliveryStatus" : "Not Delivered", - "quantity":"500" + EmpID: 124589, + Name: "Pooja Shah", + emailAddress: "in***@wdimails.com", + mobileNumber: "+91 *** 154874", + Department: "Sales", + LoadStatus: "load Card", + ActiveStatus: "Activate", + emailAddressMobile: "in***@wdimails.com", + MemberSince: "5 July, 2023", + Action: "Activate card", }, - { - id:5, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Partially Active", - "CardDeliveryStatus" : "Not Delivered", - "quantity":"500" - }, - { - id:6, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Active", - "CardDeliveryStatus" : "Delivered", - "quantity":"500" - }, - { - id:7, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Activate", - "CardDeliveryStatus" : "Delivered", - "quantity":"500" - }, - { - id:8, - "orderid":"#451245", - "laodStatus":"Fully Loaded", - "dateTime":"10 June 2024, 10am", - "totalvaluation":"₹ 70,000", - "activationStatus":"Activate", - "CardDeliveryStatus" : "Delivered", - "quantity":"500" - }, - ]) - - const [ApplicationStatus , setApplicationStatus] = useState([ - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"10,000", - ActiveStatus:"Active" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"10,000", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"load Card", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"10,000", - ActiveStatus:"Active" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"load Card", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"load Card", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"10,000", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"10,000", - ActiveStatus:"Activate" - }, - { - EmpID:124589, - Name :"Pooja Shah", - emailAddress :"in***@wdimails.com", - mobileNumber :"+91 *** 154874", - Department:"Sales", - LoadStatus :"load Card", - ActiveStatus:"Activate" - }, - ]) + ]); return ( { setReportsHistory, isAuthenticate, setIsAuthenticate, - employees, + employees, setEmployees, department, setDepartment, @@ -1012,7 +1028,7 @@ const GlobalStateProvider = ({ children }) => { digital, setDigital, ApplicationStatus, - setAdvanceStatus + setAdvanceStatus, }} > {children} diff --git a/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx b/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx index e9a0d8d..23644d1 100644 --- a/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx +++ b/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx @@ -356,14 +356,15 @@ const GiftCard = () => { "Sr. no": ( // - - {/* + {/* { rounded={"full"} /> */} - {item?.id} - + {item?.id} + ), "Order ID": ( + { {item?.orderid} + ), "Email Address": item?.emailAddress, "Date & time": item?.dateTime, @@ -547,13 +550,12 @@ const GiftCard = () => { bg={index % 2 === 0 ? "#6311cb14" : "#fff"} rounded={"full"} /> */} - {item?.id} ), "Order ID": ( - + { +// return ( +// + +// +// ); +// }; + +// export default ApplicationStatus; +import { + Box, + Button, + Divider, + HStack, + Icon, + Image, + Input, + InputGroup, + InputLeftElement, + Menu, + MenuButton, + MenuItem, + MenuList, + Radio, + Tag, + TagLabel, + Text, + VStack, +} from "@chakra-ui/react"; +import React, { useContext, useEffect, useState } from "react"; +import MiniHeader from "../../../Components/MiniHeader"; +import GlobalStateContext from "../../../Contexts/GlobalStateContext"; +import NormalTable from "../../../Components/DataTable/NormalTable"; +import { + AddIcon, + CalendarIcon, + ChevronDownIcon, + EmailIcon, + SearchIcon, + ViewIcon, +} from "@chakra-ui/icons"; +import { + MdFilterList, + MdNotificationsNone, + MdOutlineHeadsetMic, +} from "react-icons/md"; +import { RiDeleteBin5Line, RiWallet3Line } from "react-icons/ri"; +import { AiOutlineEdit } from "react-icons/ai"; +import { FaRegEye } from "react-icons/fa"; +import { PiReceipt } from "react-icons/pi"; +import { OPACITY_ON_LOAD } from "../../../Layout/animations"; +import { Link } from "react-router-dom"; +import backFund from "../../../assets/backfund.svg"; +import PrimaryButton from "../../../Components/Buttons/PrimaryButton"; +import { FaArrowUpFromBracket } from "react-icons/fa6"; +import SecondaryButton from "../../../Components/Buttons/SecondaryButton"; +import { LuListFilter } from "react-icons/lu"; +import { BsFilterRight } from "react-icons/bs"; +import pdfIcon from "../../../assets/pdfIcon.svg"; +import ExcelIcon from "../../../assets/ExcelIcon.svg"; +import redinfo from "../../../assets/redinfo.png"; +import pooja from "../../../assets/poojaShah.png"; + +const DigitalApplicationStatus = () => { + const { ApplicationStatus } = useContext(GlobalStateContext); + const [isLoading, setIsLoading] = useState(false); + const [searchTerm, setSearchTerm] = useState(""); + + useEffect(() => { + // Set isLoading to true + setIsLoading(true); + + // Simulate a 3-second delay + const timer = setTimeout(() => { + setIsLoading(false); // Set isLoading to false after 3 seconds + }, 500); + + // Cleanup the timer when the component unmounts or when the useEffect re-runs + return () => clearTimeout(timer); + }, []); // Empty dependency array means this effect runs once after the component mounts + + // ===============================[ Table Header ] + const tableHeadRow = [ + "Emp ID", + "Name", + "Email address/Mobile number", + // "Mobile number", + "Member since", + "Load Status", + "Action", + ]; + + // const extractedArray = reportsHistory.map((item)=>({ })) + + const extractedArray = ApplicationStatus.map((item, index) => ({ + "Emp ID": ( + // + + {/* */} + {item?.EmpID} + + // + ), + Name: ( + + + + {item?.Name} + + + ), + "Email address/Mobile number": item?.emailAddressMobile, + "Member since": item?.MemberSince, + Grade: item?.Grade, + Department: item?.Department, + Role: item?.Role, + "Load Status": ( + + {item?.LoadStatus === "10,000" ? ( + {item?.LoadStatus} + ) : item?.LoadStatus === "load Card" ? ( + + + {item?.LoadStatus} + + ) : null} + + // + // {item?.status} + // + ), + + Action: ( + + {item?.Action === "Activate card" ? ( + + {item?.Action} + + ) : item?.Action === "Load card" ? ( + + {item?.Action} + + ) : null} + + ), + })); + + return ( + + + + + + + #45152487 + + + Order ID + + + + + Digital Card + + + Card + + + + + Order accepted + + + + + + + + } + rightIcon={} + fontSize={"xs"} + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Sort + + + Ascending + Descending + Recently Viewed + Recently Added + + + + + + + } + rightIcon={} + fontSize={"xs"} + colorScheme="gray" + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Export + + + + Export as PDF + + + Export as Excel + + + + + } + rightIcon={} + fontSize={"xs"} + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Filter + + + Ascending + Descending + Recently Viewed + Recently Added + + + + + + + + + + ); +}; + +export default DigitalApplicationStatus; diff --git a/src/Routes/Routes.js b/src/Routes/Routes.js index 1133010..4b1584b 100644 --- a/src/Routes/Routes.js +++ b/src/Routes/Routes.js @@ -18,6 +18,7 @@ import Roles from "../Pages/ManageHumanResource/ManageDepartmentAndRoles/Roles"; import OptiFiiExpenseDashboard from "../Pages/OptiFiiExpense/OptiFiiExpenseDashboard"; import GiftCard from "../Pages/OptiFiiGifsAndVouchers/GiftCard"; import ApplicationStatus from "../Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus"; +import DigitalApplicationStatus from "../Pages/OptiFiiGifsAndVouchers/id/DigitalApplication"; export const RouteLink = [ { path: "/", Component: Dashbaord }, { path: "/expenses", Component: Expenses }, @@ -38,5 +39,6 @@ export const RouteLink = [ { path: "/roles", Component: Roles }, { path: "/optiFii-expense-dashboard", Component: OptiFiiExpenseDashboard }, { path: "/gift-card", Component: GiftCard }, - { path: "/application-status", Component: ApplicationStatus }, + { path: "/gift-card/application-status", Component: ApplicationStatus }, + { path: "/gift-card/digital-application-status", Component: DigitalApplicationStatus }, ]; From 95d7de79b3bcc9398b7d515c4dc86cb5c1d77161 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Thu, 26 Sep 2024 20:12:04 +0530 Subject: [PATCH 02/10] Cards Modal --- src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx | 49 +-- .../id/DigitalApplication.jsx | 408 ++++++++++-------- 2 files changed, 235 insertions(+), 222 deletions(-) diff --git a/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx b/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx index 23644d1..f55a9ba 100644 --- a/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx +++ b/src/Pages/OptiFiiGifsAndVouchers/GiftCard.jsx @@ -17,6 +17,7 @@ import { Tag, TagLabel, Text, + useDisclosure, VStack, } from "@chakra-ui/react"; import { @@ -216,21 +217,11 @@ const GiftCard = () => { bgColor="#F9F5FF" left="5.9rem" boxShadow="md" + justifyContent={"center"} > - - - + + + +{users} - - {users} - - ), @@ -451,21 +442,11 @@ const GiftCard = () => { bgColor="#F9F5FF" left="5.9rem" boxShadow="md" + justifyContent={"center"} > - - - + + + +{users} - - {users} - - ), @@ -630,21 +611,11 @@ const GiftCard = () => { bgColor="#F9F5FF" left="5.9rem" boxShadow="md" + justifyContent={"center"} > - - - + + + +{users} - - {users} - - ), diff --git a/src/Pages/OptiFiiGifsAndVouchers/id/DigitalApplication.jsx b/src/Pages/OptiFiiGifsAndVouchers/id/DigitalApplication.jsx index 4eda1ab..e4065eb 100644 --- a/src/Pages/OptiFiiGifsAndVouchers/id/DigitalApplication.jsx +++ b/src/Pages/OptiFiiGifsAndVouchers/id/DigitalApplication.jsx @@ -15,6 +15,8 @@ import { Box, Button, Divider, + FormControl, + FormLabel, HStack, Icon, Image, @@ -29,6 +31,7 @@ import { Tag, TagLabel, Text, + useDisclosure, VStack, } from "@chakra-ui/react"; import React, { useContext, useEffect, useState } from "react"; @@ -64,41 +67,63 @@ import pdfIcon from "../../../assets/pdfIcon.svg"; import ExcelIcon from "../../../assets/ExcelIcon.svg"; import redinfo from "../../../assets/redinfo.png"; import pooja from "../../../assets/poojaShah.png"; - +import { + Modal, + ModalOverlay, + ModalContent, + ModalHeader, + ModalFooter, + ModalBody, + ModalCloseButton, +} from "@chakra-ui/react"; const DigitalApplicationStatus = () => { const { ApplicationStatus } = useContext(GlobalStateContext); const [isLoading, setIsLoading] = useState(false); const [searchTerm, setSearchTerm] = useState(""); - + const { isOpen, onOpen, onClose } = useDisclosure(); + const [mobileNumber, setMobileNumber] = useState(""); + const [otp, setOtp] = useState(new Array(4).fill("")); + const [selectedAction, setSelectedAction] = useState(""); useEffect(() => { - // Set isLoading to true setIsLoading(true); - // Simulate a 3-second delay const timer = setTimeout(() => { - setIsLoading(false); // Set isLoading to false after 3 seconds + setIsLoading(false); }, 500); - // Cleanup the timer when the component unmounts or when the useEffect re-runs return () => clearTimeout(timer); - }, []); // Empty dependency array means this effect runs once after the component mounts + }, []); - // ===============================[ Table Header ] + // Table Header const tableHeadRow = [ "Emp ID", "Name", "Email address/Mobile number", - // "Mobile number", "Member since", "Load Status", "Action", ]; - // const extractedArray = reportsHistory.map((item)=>({ })) + const handleChange = (e, index) => { + const value = e.target.value; + if (/^[0-9]$/.test(value)) { + const newOtp = [...otp]; + newOtp[index] = value; + setOtp(newOtp); + if (index < 3 && value) { + document.getElementById(`otp-input-${index + 1}`).focus(); + } + } + }; + + const handleGetOtp = () => { + alert("OTP sent to " + mobileNumber); + }; + + // Extracting the array for the table data const extractedArray = ApplicationStatus.map((item, index) => ({ "Emp ID": ( - // { alignItems={"center"} fontSize={"xs"} > - {/* */} {item?.EmpID} - // ), Name: ( @@ -127,9 +144,6 @@ const DigitalApplicationStatus = () => { ), "Email address/Mobile number": item?.emailAddressMobile, "Member since": item?.MemberSince, - Grade: item?.Grade, - Department: item?.Department, - Role: item?.Role, "Load Status": ( {item?.LoadStatus === "10,000" ? ( @@ -148,35 +162,11 @@ const DigitalApplicationStatus = () => { gap={1} > - {item?.LoadStatus} + {item?.LoadStatus} ) : null} - // - // {item?.status} - // ), - Action: ( { color="#027A48" p={1} px={3} - // border="1px solid #007E23" + onClick={() => { + setSelectedAction(item?.Action); // Set action to "Activate card" + onOpen(); + }} > - {item?.Action} + {item?.Action} ) : item?.Action === "Load card" ? ( { color="#CC4E4B" p={1} px={3} - // border="1px solid #007E23" + onClick={() => { + setSelectedAction(item?.Action); // Set action to "Load card" + onOpen(); + }} > - {item?.Action} + {item?.Action} ) : null} @@ -217,142 +213,188 @@ const DigitalApplicationStatus = () => { return ( - + + {/* Modal for Activate or Load card based on action */} + - - - - - #45152487 - - - Order ID - - - - - Digital Card - - - Card - - - - - Order accepted - - - - - - - - } - rightIcon={} - fontSize={"xs"} - color={"gray.700"} - variant="outline" - size={"sm"} - me={2} - > - Sort - - - Ascending - Descending - Recently Viewed - Recently Added - - - - + + + + {selectedAction === "Load card" ? "Load Card" : "Activate Card"} + + + + {selectedAction === "Activate card" ? ( - - } - rightIcon={} - fontSize={"xs"} - colorScheme="gray" - color={"gray.700"} - variant="outline" - size={"sm"} - me={2} + + + Order Id : + + + #451245 + + + + + + + Mobile Number + + + +91 + setMobileNumber(e.target.value)} + maxLength={10} + type="tele" + size={"sm"} + rounded={5} + variant="none" + /> + + + - - } - rightIcon={} - fontSize={"xs"} - color={"gray.700"} - variant="outline" - size={"sm"} - me={2} - > - Filter - - - Ascending - Descending - Recently Viewed - Recently Added - - + Get OTP + + {/* Mobile Number + + + +91 + setMobileNumber(e.target.value)} + maxLength={10} + type="tel" + variant="none" + width="100%" + h={"40px"} + fontSize="small" + /> + + + */} + + + OTP + + + {otp.map((_, index) => ( + handleChange(e, index)} + maxLength={1} + textAlign="center" + variant="outline" + width="50px" + type="tel" + /> + ))} + + - - - - - + ) : ( + + + + Order Id : + + + #451245 + + + + + + + Enter Denomination + + + $ + + + + + + )} + + + + + + + ); }; From cf21de4784af12481e43b98ed53d055927c32913 Mon Sep 17 00:00:00 2001 From: priyanshuvish Date: Fri, 27 Sep 2024 12:11:44 +0530 Subject: [PATCH 03/10] Pending pages --- src/Pages/Onboarding/Header.jsx | 2 +- .../Onboarding/OnboardingDirectorDetails.jsx | 2 +- src/Pages/Onboarding/OnboardingFrame.jsx | 41 +++++++++++++++--- .../OnboardingSelectPackageModalChild.jsx | 2 + .../Onboarding/OnboardingYourDetails.jsx | 6 +-- src/assets/onboarding_bg.webp | Bin 0 -> 37426 bytes 6 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 src/assets/onboarding_bg.webp diff --git a/src/Pages/Onboarding/Header.jsx b/src/Pages/Onboarding/Header.jsx index 83ee191..7f696a2 100644 --- a/src/Pages/Onboarding/Header.jsx +++ b/src/Pages/Onboarding/Header.jsx @@ -20,7 +20,7 @@ const Header = () => { {navLinks.map((link, index) => ( { cursor="pointer" onClick={() => handleAddDirector()} > - + Add director 2 + + Add director diff --git a/src/Pages/Onboarding/OnboardingFrame.jsx b/src/Pages/Onboarding/OnboardingFrame.jsx index 5bdea71..bc5c0a9 100644 --- a/src/Pages/Onboarding/OnboardingFrame.jsx +++ b/src/Pages/Onboarding/OnboardingFrame.jsx @@ -1,11 +1,11 @@ -import React, { useState } from 'react'; +import React from 'react'; import { Box, Text, Stepper, Step, StepIndicator, StepStatus, StepSeparator, useSteps, - StepIcon, StepTitle, Divider, Button, HStack, IconButton, Flex, + StepTitle, Divider, Button, HStack, IconButton, Flex, useDisclosure } from '@chakra-ui/react'; import Header from './Header'; -import onboarding_bg from "../../assets/onboarding_bg.svg"; +import onboarding_bg from "../../assets/onboarding_bg.webp"; import { ArrowBackIcon, ArrowForwardIcon, CheckIcon, Icon } from '@chakra-ui/icons'; import { FaUser, FaBuilding, FaClipboard, FaUserTie, FaBoxOpen } from 'react-icons/fa'; import OnboardingYourDetails from './OnboardingYourDetails'; @@ -61,7 +61,7 @@ const OnboardingFrame = () => {
{ py={6} px={4} borderRadius={'md'} - minH={"82vh"} + maxH={"82.9vh"} + overflowY={"auto"} + sx={{ + /* Custom scrollbar styling */ + '&::-webkit-scrollbar': { + width: '6px', + }, + '&::-webkit-scrollbar-thumb': { + backgroundColor: '#6311CB', + borderRadius: '6px', + }, + '&::-webkit-scrollbar-track': { + backgroundColor: '#F6F0FF', + }, + }} > @@ -105,6 +119,7 @@ const OnboardingFrame = () => { orientation="vertical" h="400" gap="0" + my={"5"} sx={{ '--stepper-accent-color': '#6311CB' }} > {steps.map((step, index) => ( @@ -148,7 +163,21 @@ const OnboardingFrame = () => { my={5} boxShadow={'md'} zIndex={2} - minH={"82vh"} + maxH="calc(82vh - 0px)" + overflowY={"auto"} + sx={{ + /* Custom scrollbar styling */ + '&::-webkit-scrollbar': { + width: '6px', + }, + '&::-webkit-scrollbar-thumb': { + backgroundColor: '#6311CB', + borderRadius: '6px', + }, + '&::-webkit-scrollbar-track': { + backgroundColor: '#F6F0FF', + }, + }} > diff --git a/src/Pages/Onboarding/OnboardingSelectPackageModalChild.jsx b/src/Pages/Onboarding/OnboardingSelectPackageModalChild.jsx index 3c0dc36..8489493 100644 --- a/src/Pages/Onboarding/OnboardingSelectPackageModalChild.jsx +++ b/src/Pages/Onboarding/OnboardingSelectPackageModalChild.jsx @@ -14,6 +14,8 @@ const MotionPolyline = motion.polyline; const OnboardingSelectPackageModalChild = ({isOpen,onClose}) => { return ( + + <> diff --git a/src/Pages/Onboarding/OnboardingYourDetails.jsx b/src/Pages/Onboarding/OnboardingYourDetails.jsx index de83661..50528cc 100644 --- a/src/Pages/Onboarding/OnboardingYourDetails.jsx +++ b/src/Pages/Onboarding/OnboardingYourDetails.jsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Box, Container, HStack, Image, Input, InputGroup, InputLeftElement, Text } from '@chakra-ui/react'; +import { Box, Image, Input, InputGroup, InputLeftElement, Text } from '@chakra-ui/react'; import { CiUser, CiMail } from "react-icons/ci"; import optifii_logo from '../../assets/optifii_logo.svg'; import PhoneInput from "react-phone-input-2"; @@ -13,7 +13,7 @@ const OnboardingYourDetails = () => { return ( - + @@ -64,7 +64,7 @@ const OnboardingYourDetails = () => { /> - + ?cZWOrJ{%>6&zb02$&6w^pQ*aaeuYz0S`hb5h{^P0_{`1k-H`+4)=Jds-mx|Bt zyzH|G=%~v&j3fO1dY#A4C(paudTRb9>J|Fc>xZ3}?pLgToL{4-`0l!YLND7Mxli41 zN^Mzhlz;2=W%8f!ydnJ)uYdkasQ=j2L(Y8sf7#)`?7!&x2>VOJ$Ab@t|L4o2`ksQn z>*$a1oc#Er9&7)fJzvEC@dTvuv+(yB)9P9>`fTb@j7F6yDFOxAJ11o9os-65V8nol zt)I|j2~)dVnQ*%6HIO6(fRVgL1+>7B5;+RnjI5ZqL~2jI6FeJcd2|D+D!9k(ARHOM z9TcQXWB4-EWvI?F9d?8vHBcP{E7R_QF3{gI zZ)K_X;A*mVZb|xv)I$P5NC^Qd%y822q*0d8u%&HXrg!g975z){r^UrXr zxBZRaj_&ZHrz5y3tS-*~m{?$QSmttOGZcBI61Fe>7mRF7ZHhEc1#v-(tami47O4n( zAdPJ~G58k6i#OJY>F`jYuAU#d@iYSL+_cZUIjn>uT3eKn-Ty61CtF_4M%c&`oIABz z=MpZfx+&)rK6WgH+z=BDLkhC~T59chah@Puld^VB|Gn-+k2LHuAvRb~5(_$PuCavI0Oz z2>{SzMEx7MCRtWQRwDQNc!=NM(M6?}wXtzR=D4cCSowmun%{$Y(gmxNl+5*-h1ejP z+imkp^Ug5JmNz3$~hmoIAg3jpm#gUpq`?|gC3#Kc3M_4#R;alNtKj|N0Tr( z-{7#KUZZ(;ThVg$$XJDh1j zBlulqBFxawz~p8Zk!A!$4o3arkss99a!;NeWjMsI{jvJ8z+<~6&Jkn{VDfc{<$lTP zG+M{?ucoWPJ(!CGMZiPXWy++(9?=Dba_MN%x8lt6o-Y3&CMF_oliO`
X>Mt|q1 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

-y^4fh$tk^Ub#j}9mq+WK~{B` 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 literal 0 HcmV?d00001 From 995f4a443cd6068ecd1f40b85b1cef66341a759f Mon Sep 17 00:00:00 2001 From: priyanshuvish Date: Fri, 27 Sep 2024 13:23:46 +0530 Subject: [PATCH 04/10] table pending --- .../OptiFiiExpense/ReimbursementRequest.jsx | 33 ++++- .../ReimbursementRequestView.jsx | 140 ++++++++++++++++++ src/Routes/Routes.js | 2 + 3 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx diff --git a/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx b/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx index ff4666f..84318c1 100644 --- a/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx +++ b/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx @@ -1,15 +1,42 @@ -import { Box } from "@chakra-ui/react"; +import { Box, HStack, Text, VStack } from "@chakra-ui/react"; import React from "react"; import MiniHeader from "../../Components/MiniHeader"; +import { MdOutlineNoFood } from "react-icons/md"; const ReimbursementRequest = () => { return ( - + /> */} + + + + + + + + + + Food + + + Created by - Reethik Thota + + + + + + Created by - Reethik Thota + + + ₹ 50,000 + + + + ); }; diff --git a/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx new file mode 100644 index 0000000..0b30343 --- /dev/null +++ b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx @@ -0,0 +1,140 @@ +import { Badge, Box, HStack, Image, Text, VStack } from "@chakra-ui/react"; +import React from "react"; +import MiniHeader from "../../Components/MiniHeader"; +import { MdOutlineNoFood } from "react-icons/md"; +import { IoMdCheckmark } from "react-icons/io"; + +const ReimbursementRequestView = () => { + return ( + + {/* */} + + + + + + + + + + + + Approved + + + + By Sr. Manager + + + + + In progress + + + + + Pending + + + By Sr. Manager + + + + + Pending + + + By Sr. Manager + + + + + Pending + + + By Sr. Manager + + + + + + + + + + + Report number : 1254587841 + + + Reimbursement report 2024 + + + + + Amount to be reimbursed + + + ₹ 50,000 + + + + + + + + + Submitted by + + + Dan Abramov + + + Pooja Shah + + + poojashah @wdipl.com + + + + + + Duration - 10 June - 28 June + + + + + Pending approval + + + + + Manav sain + + + manavsain@wdipl.com + + + Dan Abramov + + + + + + ); +}; + +export default ReimbursementRequestView; diff --git a/src/Routes/Routes.js b/src/Routes/Routes.js index 972b6de..340580f 100644 --- a/src/Routes/Routes.js +++ b/src/Routes/Routes.js @@ -20,6 +20,7 @@ import GiftCard from "../Pages/OptiFiiGifsAndVouchers/GiftCard"; import ApplicationStatus from "../Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus"; import DigitalApplicationStatus from "../Pages/OptiFiiGifsAndVouchers/id/DigitalApplication"; import GiftDashboard from "../Pages/OptiFiiGifsAndVouchers/GiftDashboard"; +import ReimbursementRequestView from "../Pages/OptiFiiExpense/ReimbursementRequestView"; export const RouteLink = [ { path: "/", Component: Dashbaord }, { path: "/expenses", Component: Expenses }, @@ -30,6 +31,7 @@ export const RouteLink = [ { path: "/Manage-roles", Component: ManageDepartmentAndRoles }, { path: "/wallet-program", Component: WalletProgram }, { path: "/reimbursement-request", Component: ReimbursementRequest }, + { path: "/reimbursement-request-view", Component: ReimbursementRequestView }, { path: "/advance-expense-request", Component: AdvanceExpenseRequest }, { path: "/optiFii-benefit", Component: OptiFiiTaxBenefit }, { path: "/optiFii-vouchers", Component: OptiFiiGifsAndVouchers }, From 4692082c6a35347e7986d7a47b5eaaf079644f16 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Fri, 27 Sep 2024 14:55:31 +0530 Subject: [PATCH 05/10] Wallet Program --- src/Contexts/GlobalStateProvider.jsx | 108 ++++++- src/Pages/OptiFiiExpense/WalletProgram.jsx | 306 +++++++++++++++++- .../id/ApplicationStatus.jsx | 1 + .../id/DigitalApplication.jsx | 34 +- src/assets/icons/Food.png | Bin 0 -> 966 bytes src/assets/icons/Fuel.png | Bin 0 -> 1678 bytes src/assets/icons/bookStack.png | Bin 0 -> 1961 bytes src/assets/icons/gadget.png | Bin 0 -> 1752 bytes src/assets/icons/gift.png | Bin 0 -> 1758 bytes src/assets/icons/telecom.png | Bin 0 -> 1765 bytes 10 files changed, 439 insertions(+), 10 deletions(-) create mode 100644 src/assets/icons/Food.png create mode 100644 src/assets/icons/Fuel.png create mode 100644 src/assets/icons/bookStack.png create mode 100644 src/assets/icons/gadget.png create mode 100644 src/assets/icons/gift.png create mode 100644 src/assets/icons/telecom.png diff --git a/src/Contexts/GlobalStateProvider.jsx b/src/Contexts/GlobalStateProvider.jsx index 9c8340a..e53008e 100644 --- a/src/Contexts/GlobalStateProvider.jsx +++ b/src/Contexts/GlobalStateProvider.jsx @@ -9,7 +9,17 @@ import { HiOutlineReceiptPercent } from "react-icons/hi2"; import { IoMdQrScanner } from "react-icons/io"; import { GrDocumentPdf } from "react-icons/gr"; import { AiOutlineFileGif } from "react-icons/ai"; - +import { MdOutlineNoFood } from "react-icons/md"; +import { LuFuel } from "react-icons/lu"; +import { GoGift } from "react-icons/go"; +import { FaWifi } from "react-icons/fa"; +import { SiBookstack } from "react-icons/si"; +import Food from "../assets/icons/Food.png"; +import Fuel from "../assets/icons/Fuel.png"; +import Gift from "../assets/icons/gift.png"; +import books from "../assets/icons/bookStack.png" +import telecom from "../assets/icons/telecom.png" +import gadget from "../assets/icons/gadget.png" const getRandomDate = (start, end) => { const date = new Date( start.getTime() + Math.random() * (end.getTime() - start.getTime()) @@ -1006,6 +1016,101 @@ const GlobalStateProvider = ({ children }) => { }, ]); + const [walletProgram, setWalletProgram] = useState( + [ + { + id: 1, + walletName: [{ name: "Food", icon: Food }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 2, + walletName: [{ name: "Fuel", icon: Fuel }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 3, + walletName: [{ name: "Gift", icon: Gift }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 4, + walletName: [{ name: "Telecom", icon: telecom }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000",cls + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 5, + walletName: [{ name: "Books & periodicals", icon: books }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 6, + walletName: [{ name: "Learning & development", icon: books }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 7, + walletName: [{ name: "Gadget & equipment", icon: gadget }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 8, + walletName: [{ name: "Telecom", icon: telecom }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + { + id: 9, + walletName: [{ name: "Food", icon: Food }], + WalletType : "Prefilled", + department :"sales", + status :"Active", + WalletAmount :"₹ 50,000", + CreatedOn :"Jan 12, 2022", + CreatedBy:"Jenny wilson" + }, + ] +); + return ( { setDigital, ApplicationStatus, setAdvanceStatus, + walletProgram }} > {children} diff --git a/src/Pages/OptiFiiExpense/WalletProgram.jsx b/src/Pages/OptiFiiExpense/WalletProgram.jsx index 414f0ea..510bd99 100644 --- a/src/Pages/OptiFiiExpense/WalletProgram.jsx +++ b/src/Pages/OptiFiiExpense/WalletProgram.jsx @@ -1,15 +1,305 @@ -import { Box } from "@chakra-ui/react"; -import React from "react"; +import { + Box, + Button, + Divider, + HStack, + Icon, + Image, + Input, + InputGroup, + InputLeftElement, + Menu, + MenuButton, + MenuItem, + MenuList, + Radio, + Tag, + TagLabel, + Text, + VStack, +} from "@chakra-ui/react"; +import React, { useContext, useEffect, useState } from "react"; import MiniHeader from "../../Components/MiniHeader"; +import GlobalStateContext from "../../Contexts/GlobalStateContext"; +import NormalTable from "../../Components/DataTable/NormalTable"; +import { CiBoxList } from "react-icons/ci"; +import { BsFillGridFill } from "react-icons/bs"; +import { + AddIcon, + CalendarIcon, + ChevronDownIcon, + EmailIcon, + SearchIcon, + ViewIcon, +} from "@chakra-ui/icons"; +import { + MdFilterList, + MdNotificationsNone, + MdOutlineHeadsetMic, +} from "react-icons/md"; +import { MdOutlineUnarchive } from "react-icons/md"; + +import { RiDeleteBin5Line, RiWallet3Line } from "react-icons/ri"; +import { AiOutlineEdit } from "react-icons/ai"; +import { FaRegEye } from "react-icons/fa"; +import { PiReceipt } from "react-icons/pi"; +import { OPACITY_ON_LOAD } from "../../Layout/animations"; +import { Link } from "react-router-dom"; +import backFund from "../../assets/backfund.svg"; +import PrimaryButton from "../../Components/Buttons/PrimaryButton"; +import { FaArrowUpFromBracket } from "react-icons/fa6"; +import SecondaryButton from "../../Components/Buttons/SecondaryButton"; +import { LuListFilter } from "react-icons/lu"; +import { BsFilterRight } from "react-icons/bs"; +import pdfIcon from "../../assets/pdfIcon.svg"; +import ExcelIcon from "../../assets/ExcelIcon.svg"; const WalletProgram = () => { + const { walletProgram } = useContext(GlobalStateContext); + const [isLoading, setIsLoading] = useState(false); + const [searchTerm, setSearchTerm] = useState(""); + + useEffect(() => { + // Set isLoading to true + setIsLoading(true); + + // Simulate a 3-second delay + const timer = setTimeout(() => { + setIsLoading(false); // Set isLoading to false after 3 seconds + }, 500); + + // Cleanup the timer when the component unmounts or when the useEffect re-runs + return () => clearTimeout(timer); + }, []); // Empty dependency array means this effect runs once after the component mounts + + // ===============================[ Table Header ] + const tableHeadRow = [ + "ID", + "Wallet Name", + "Wallet type", + "Department", + "Status", + "Wallet amount", + "Created on", + "Created by", + ]; + + // const extractedArray = reportsHistory.map((item)=>({ })) + walletProgram.map((item) => console.log(item)); + const extractedArray = walletProgram.map((item, index) => ({ + ID: ( + // + + {item?.id} + + // + ), + "Wallet Name": ( + + {item.walletName[0]?.icon} + + {/* */} + {item?.walletName[0]?.name} + + ), + "Wallet type": item?.WalletType, + Department: item?.mobileNumber, + Grade: item?.Grade, + Department: item?.department, + Role: item?.Role, + Status: ( + + {item?.status} + + ), + "Wallet amount": item?.WalletAmount, + "Created on": item?.CreatedOn, + "Created by": item?.CreatedBy, + })); + return ( - - + + + + + + + + + setSearchTerm(e.target.value)} + /> + + + +

+ } + rightIcon={} + fontSize={"xs"} + colorScheme="gray" + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Export + + + + Export as PDF + + + Export as Excel + + + + } title={"Create wallet"} /> + + + + + + + } + rightIcon={} + fontSize={"xs"} + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Sort + + + Ascending + Descending + Recently Viewed + Recently Added + + + + + {/* + } + title={"Pull back funds"} + /> + */} + + } + rightIcon={} + fontSize={"xs"} + color={"gray.700"} + variant="outline" + size={"sm"} + me={2} + > + Filter + + + Ascending + Descending + Recently Viewed + Recently Added + + + + + + + + + + + ); }; diff --git a/src/Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus.jsx b/src/Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus.jsx index 6cdc2b8..85e0046 100644 --- a/src/Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus.jsx +++ b/src/Pages/OptiFiiGifsAndVouchers/id/ApplicationStatus.jsx @@ -223,6 +223,7 @@ const Employees = () => { return ( { return ( + + + + #45152487 + + + Order ID + + + + Order accepted + + + {/* Table and other UI components */} { data={extractedArray} isLoading={isLoading} /> + {/* Modal for Activate or Load card based on action */} { px={"8px"} borderRadius="10px" > - $ + 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 Y0kY*xm;f;7O#lD@07*qoM6N<$g7_CLaR2}S literal 0 HcmV?d00001 diff --git a/src/assets/icons/bookStack.png b/src/assets/icons/bookStack.png new file mode 100644 index 0000000000000000000000000000000000000000..7bed4b2e0156f584ad35b58f6ed318569c4bd536 GIT binary patch literal 1961 zcmV;a2UhrrP)Px+V@X6oRCodHoNaE~HWA=mqv^AKE6d*d$nb01to4lqi~{UQ9}|;sAlHck-wI^TLO+H#Tbi zJ3gL081!y_+*1KL67zn=h%K?0~{{s9?q@gQ0awf{@_5FJH_mjRaN+=JfLo1yb{yWgMvP`ykH z-;tW?4tZ7uI2BwxI6OeZU9*3=CcqP+LY@AvU!K_Sy@5Nx;n%4=5uUh?pww71hsgx) zWnXM`Q`hmZ4QR&PCH9=Ft){}#wF@R*yDHHDIBs1-o4#-8g>NAObCN1>B>)`suHG~q zQr`AeZr%r-*=Cc2M_zE^aTov;&{6qA{g+>!v=JZ!is+3LtvsQOGid}~a)`zn+vKG+ zMYh$1RS(lR$hHL$6*zIb(O}c2C@g}?T0iREKF;uR*}DVxx|4OIHt$Csxl}@q0ehPP z%klpitU_gV)gH^FD_^lSdNom)^8i zp&T9)RjwejR-qmuU~1L4R$(?ksz~>`leS-Otw}2MJ@O%N$!Xw*p8}8E`CfQ2a>;q% zOvn4(%Ohr9bu1C7m6e`4hj()@CxJKpJMhAbzzb&?|DOQa?~#vnfRyHq{eJkc>c&uT zk=iCu8xL*dg;3x5$R&U7yO&3SM*#RNQf3-(9V(RumrDgk| zIxqDyfVHR$Qx(jVnyed6ptfbesX7*`l&U%nG;pV`dWW3QC5`rGA)=kJU$im-KTlCcT_Vrvym{v&Dvbh61b_#s zQyZc=^RG0=WCZ)gMr4;Dr+kgUb5u9h3enbZj}{B4ZzB`xuXKULLy=*6mdAhcosp}JgBKMq&H|52Yy}oN{IdlyV1WhI z7{N!yfh10Yl8z_&qr6(9Q(H9NrY>Wg3N#jdVkHojDNY(}<~TU*+Y;zpTBEM!tSm&P zGKVTd>&tkh#({*L&!sysNu}D-4<&s++YoI9778Oa>2d|txk-*`E{NJ83Jp3~!anLV zabBFzn~%q~`T_TG5!aNeE9l z^Bk6Jqu%F`adxSyTp@y~jgD%BlqyNi5&Z$vJjD3TF;m~M3Bp7T6e2Wg zlMDrI`b72xBiJ<$z{ux$K*)^Fy8MwJ<#P)@#%mA{bmFd%(J8c3Se~oyQ!k~%E zrmB(eM4g|N0YwD4R-^ij*-RBOm}@o4A!hnQ29ParLY-#Q#Ct0vGJ_^Ak2huy>dYIP z2Jvv4JQo?|T7S3qeIa1DNB{WVx!x`XOm)(IOM7xB)hb}B?WkN>F`0(>NcuZR;Un7=wMX6Cu2mCe;KU`Ob{jyJ9*u}V%B~}ieD8eSUPV8Nkq9iR zY~PKa2S2$=szeT0i}_}ehj}+$l?WbR+o#{%e{^L@+oJPv{y1Gn<3W3cirp%y>|0Dy&B vp(Itx1Xwr*J{RZV_YLnIw7hUv>A3#^e4E7qU)t@O00000NkvXXu0mjf%|Nc9 literal 0 HcmV?d00001 diff --git a/src/assets/icons/gadget.png b/src/assets/icons/gadget.png new file mode 100644 index 0000000000000000000000000000000000000000..426cc3e1acbbeb5c322a98cb6bfa4288e1f5ac34 GIT binary patch literal 1752 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 A_5c6? literal 0 HcmV?d00001 diff --git a/src/assets/icons/telecom.png b/src/assets/icons/telecom.png new file mode 100644 index 0000000000000000000000000000000000000000..11d43fdff4ce1a59c5f98bbcfd6d5dbee2c206b3 GIT binary patch literal 1765 zcmVPx*pGibPRCodHoL^4cNF2u_RjSlgtF6Q?RVk<;wznl}S)>p<6sh6>+eaSu0=WPO z*gXIj-~u^7_W)dg*L~n=UrLBQ1tfZatiEH9NhY50*q-s91SBii9@{gY`TZX!t=8k; zauPT`o<8Yz|9#4DIKG@CE-)%U>2+>@?ps$|J=?eTt=kX%cChDJq$k_Z&h3!jaNX{! z$$IzK;CX>=H1ARj7=s508K|u103Tr8H{aH}-RaZjkxA(>1E(ToS>cJ=GoUG5tN&@h z!(c=ME#vq>XY#T4mb`A9bk+eLKS7OwiP^4N@_2asK48Lb)>4mmt;u?sHjjssbsv*m z8x?PY^oaoXonWtWsXW-6KI?TRA4Q#P%JKfj)mA0y?Y{rE))Yu8{Tw*ocS=?7-VS-K z(y^wsfzv4k(UAEM`ZyO#*HS|Nc!88FP`I{=>#X4fD1@yQHhgXpO_9Fwf}o5 zyD0BDz=PUJ2Arh6W6usQskB03AGXVZ6DUhBq|+44M3vU9%GBPeN#59X{1H?n|DWzH4eTH4m8#a9dagAT{|#ttNQlji|dHZhfb-4_Qnu32G}Rb0DWV&NhGBy zFfT;cWjT)OP7KkrZ#J`BENV+bmxXY|A5j~Y^3I{?o`sLYb~^ri{0XO}sXwt@)Rm3NfiOX?T|l<4v=Omd>9kK zRGpZ-eJBm0$7eCfT*AU@;goM~@bL0nfkJ1RH}|Y4&MXZg;xwvyv@(NuPhNsAavqrq ztNQfAxKi&#aea><)^B||45qn&+wxCzsD6IJu|w$#4zEsFWo^ zTR3LlY|@Nn;RGkL#?PzO9g~W;7iBF6h#15bZr$Ir6Fo5Lc#f(!5A(iCHQ#IBy`++e z_wbSiSjw^4xNi3UDBwo09R}T44HU$Lwr|u~$vDIX2wkNx*~5hAW^5pQALl%%i9V)&6SabcE8~OK z2{Kg*nPk>Z8f)ZGQl*eVM8jIy#+pD>mO=)yPM%t)I_A9>JhHMBGKlchb&4DF4qn%F z!nlwD6Mfb(i_rxo%Y8DdF%R_c9ofk8z-4QjOO1Jm*vGQqvcXXu4}NtZiAm;Tt7;z) zx5!3jSh5S?nO4csXa~sP_BO^ptwQ|x*}5_NvscRwa?rke_(lMe9uuF-s@ld>STqSs z2XfngB^s;IRA&72Rb0Lj}1ovHM7 zlnj*~cl+*luPXIb0gObw&haF|mxZNHm4Q{!rfx8yy0x%JW00000NkvXX Hu0mjf(B?`U literal 0 HcmV?d00001 From 34dfd23265d1ec56a28585b7dafb4324ec06de3c Mon Sep 17 00:00:00 2001 From: npcdazai Date: Fri, 27 Sep 2024 14:57:50 +0530 Subject: [PATCH 06/10] NAN --- src/Contexts/GlobalStateProvider.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Contexts/GlobalStateProvider.jsx b/src/Contexts/GlobalStateProvider.jsx index e53008e..0b6ce26 100644 --- a/src/Contexts/GlobalStateProvider.jsx +++ b/src/Contexts/GlobalStateProvider.jsx @@ -1054,7 +1054,7 @@ const GlobalStateProvider = ({ children }) => { WalletType : "Prefilled", department :"sales", status :"Active", - WalletAmount :"₹ 50,000",cls + WalletAmount :"₹ 50,000", CreatedOn :"Jan 12, 2022", CreatedBy:"Jenny wilson" }, From 06df488fcb731a101c7f208cbac9b5019c2d6001 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Fri, 27 Sep 2024 15:12:27 +0530 Subject: [PATCH 07/10] Status --- src/Contexts/GlobalStateProvider.jsx | 6 +++--- src/Pages/OptiFiiExpense/WalletProgram.jsx | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Contexts/GlobalStateProvider.jsx b/src/Contexts/GlobalStateProvider.jsx index 0b6ce26..4bcf31b 100644 --- a/src/Contexts/GlobalStateProvider.jsx +++ b/src/Contexts/GlobalStateProvider.jsx @@ -1053,7 +1053,7 @@ const GlobalStateProvider = ({ children }) => { walletName: [{ name: "Telecom", icon: telecom }], WalletType : "Prefilled", department :"sales", - status :"Active", + status :"Saved as draft", WalletAmount :"₹ 50,000", CreatedOn :"Jan 12, 2022", CreatedBy:"Jenny wilson" @@ -1093,7 +1093,7 @@ const GlobalStateProvider = ({ children }) => { walletName: [{ name: "Telecom", icon: telecom }], WalletType : "Prefilled", department :"sales", - status :"Active", + status :"Pending", WalletAmount :"₹ 50,000", CreatedOn :"Jan 12, 2022", CreatedBy:"Jenny wilson" @@ -1103,7 +1103,7 @@ const GlobalStateProvider = ({ children }) => { walletName: [{ name: "Food", icon: Food }], WalletType : "Prefilled", department :"sales", - status :"Active", + status :"Pending", WalletAmount :"₹ 50,000", CreatedOn :"Jan 12, 2022", CreatedBy:"Jenny wilson" diff --git a/src/Pages/OptiFiiExpense/WalletProgram.jsx b/src/Pages/OptiFiiExpense/WalletProgram.jsx index 510bd99..5657146 100644 --- a/src/Pages/OptiFiiExpense/WalletProgram.jsx +++ b/src/Pages/OptiFiiExpense/WalletProgram.jsx @@ -122,20 +122,20 @@ const WalletProgram = () => { my={1} size={"sm"} borderRadius="full" - colorScheme={ + bgColor={ item?.status === "Active" - ? "green" + ? "#00A43814" : item?.status === "Inactive" - ? "red" - : "gray" + ? "#C33FAD21" + : "#E0BC0114" } - border={`1px solid ${ + color={ item?.status === "Active" - ? "green" + ? "#00A438" : item?.status === "Inactive" - ? "red" - : "gray" - }`} + ? "#C33FAD" + : "#E0BC01" + } p={1} px={3} > From 25cfd9cc3beb510a1a1154c18409cbff0461d6f1 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Fri, 27 Sep 2024 17:15:31 +0530 Subject: [PATCH 08/10] Expenses Cards --- src/Pages/OptiFiiExpense/Grid/ActiveCards.jsx | 183 +++++++++++++++++ src/Pages/OptiFiiExpense/Grid/Decline.jsx | 183 +++++++++++++++++ .../OptiFiiExpense/Grid/PendingApproval.jsx | 185 ++++++++++++++++++ src/Pages/OptiFiiExpense/WalletProgram.jsx | 73 ++++++- 4 files changed, 618 insertions(+), 6 deletions(-) create mode 100644 src/Pages/OptiFiiExpense/Grid/ActiveCards.jsx create mode 100644 src/Pages/OptiFiiExpense/Grid/Decline.jsx create mode 100644 src/Pages/OptiFiiExpense/Grid/PendingApproval.jsx diff --git a/src/Pages/OptiFiiExpense/Grid/ActiveCards.jsx b/src/Pages/OptiFiiExpense/Grid/ActiveCards.jsx new file mode 100644 index 0000000..d233589 --- /dev/null +++ b/src/Pages/OptiFiiExpense/Grid/ActiveCards.jsx @@ -0,0 +1,183 @@ +import { Box, Button, Image, Text } from "@chakra-ui/react"; +import React from "react"; +import Food from "../../../assets/icons/Food.png"; +import Fuel from "../../../assets/icons/Fuel.png"; +import Gift from "../../../assets/icons/gift.png"; +import Telecom from "../../../assets/icons/telecom.png"; +import { SlOptionsVertical } from "react-icons/sl"; + +const data = [ + { + icon: Food, + name: "Food", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "Active", + }, + { + icon: Fuel, + name: "Fuel", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "Active", + }, + { + icon: Gift, + name: "Gift", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "Active", + }, + { + icon: Telecom, + name: "Telecom", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "Active", + }, +]; + +const ActiveCards = () => { + return ( + + {data.map((item) => { + return ( + + + + + {item?.name} + + {item?.subtitle} + + + + + + + + + + + + + Wallet type + + + {item?.walletType} + + + + + + Department + + + {item?.department} + + + + + + Wallet amount + + + {item?.walletamount} + + + + + + + Created by + + + {item?.CreatedBy} + + + + + + Approved by + + + {item?.ApprovedBy} + + + + + + ); + })} + + ); +}; + +export default ActiveCards; diff --git a/src/Pages/OptiFiiExpense/Grid/Decline.jsx b/src/Pages/OptiFiiExpense/Grid/Decline.jsx new file mode 100644 index 0000000..57ffdea --- /dev/null +++ b/src/Pages/OptiFiiExpense/Grid/Decline.jsx @@ -0,0 +1,183 @@ +import { Box, Button, Image, Text } from "@chakra-ui/react"; +import React from "react"; +import Food from "../../../assets/icons/Food.png"; +import Fuel from "../../../assets/icons/Fuel.png"; +import Gift from "../../../assets/icons/gift.png"; +import Telecom from "../../../assets/icons/telecom.png"; +import { SlOptionsVertical } from "react-icons/sl"; + +const data = [ + { + icon: Food, + name: "Food", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "DECLINED", + }, + { + icon: Fuel, + name: "Fuel", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "DECLINED", + }, + { + icon: Gift, + name: "Gift", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "DECLINED", + }, + { + icon: Telecom, + name: "Telecom", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "DECLINED", + }, +]; + +const Decline = () => { + return ( + + {data.map((item) => { + return ( + + + + + {item?.name} + + {item?.subtitle} + + + + + + + + + + + + + Wallet type + + + {item?.walletType} + + + + + + Department + + + {item?.department} + + + + + + Wallet amount + + + {item?.walletamount} + + + + + + + Created by + + + {item?.CreatedBy} + + + + + + Approved by + + + {item?.ApprovedBy} + + + + + + ); + })} + + ); +}; + +export default Decline; diff --git a/src/Pages/OptiFiiExpense/Grid/PendingApproval.jsx b/src/Pages/OptiFiiExpense/Grid/PendingApproval.jsx new file mode 100644 index 0000000..45a49c6 --- /dev/null +++ b/src/Pages/OptiFiiExpense/Grid/PendingApproval.jsx @@ -0,0 +1,185 @@ +import { Box, Button, Image, Text } from "@chakra-ui/react"; +import React from "react"; +import Food from "../../../assets/icons/Food.png"; +import Fuel from "../../../assets/icons/Fuel.png"; +import Gift from "../../../assets/icons/gift.png"; +import Telecom from "../../../assets/icons/telecom.png"; +import { SlOptionsVertical } from "react-icons/sl"; + +const data = [ + { + icon: Food, + name: "Food", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "PENDING FOR APPROVAL", + }, + { + icon: Fuel, + name: "Fuel", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "PENDING FOR APPROVAL", + }, + { + icon: Gift, + name: "Gift", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "PENDING FOR APPROVAL", + }, + { + icon: Telecom, + name: "Telecom", + subtitle: "Created on 12 June 2024", + walletType: "Prefilled", + department: "Sales", + walletamount: "₹ 50,000", + CreatedBy: "Kartikey Gautam", + ApprovedBy: "Manav Sain", + Status: "PENDING FOR APPROVAL", + }, +]; + +const PendingApproval = () => { + return ( + + {data.map((item) => { + return ( + + + + + {item?.name} + + {item?.subtitle} + + + + + + + + + + + + + Wallet type + + + {item?.walletType} + + + + + + Department + + + {item?.department} + + + + + + Wallet amount + + + {item?.walletamount} + + + + + + + Created by + + + {item?.CreatedBy} + + + + + + Approved by + + + {item?.ApprovedBy} + + + + + + ); + })} + + ); +}; + +export default PendingApproval; diff --git a/src/Pages/OptiFiiExpense/WalletProgram.jsx b/src/Pages/OptiFiiExpense/WalletProgram.jsx index 5657146..82d40fb 100644 --- a/src/Pages/OptiFiiExpense/WalletProgram.jsx +++ b/src/Pages/OptiFiiExpense/WalletProgram.jsx @@ -53,11 +53,23 @@ import { LuListFilter } from "react-icons/lu"; import { BsFilterRight } from "react-icons/bs"; import pdfIcon from "../../assets/pdfIcon.svg"; import ExcelIcon from "../../assets/ExcelIcon.svg"; +import ActiveCards from "./Grid/ActiveCards"; +import PendingApproval from "./Grid/PendingApproval"; +import Decline from "./Grid/Decline"; +import { + Tabs, + TabList, + Tab, + TabIndicator, + TabPanels, + TabPanel, +} from "@chakra-ui/react"; const WalletProgram = () => { const { walletProgram } = useContext(GlobalStateContext); const [isLoading, setIsLoading] = useState(false); const [searchTerm, setSearchTerm] = useState(""); + const [showGrid, setShowGird] = useState(true); useEffect(() => { // Set isLoading to true @@ -287,18 +299,67 @@ const WalletProgram = () => { fontWeight={600} fontSize="small" color="#3725EA" + onClick={() => setShowGird(!showGrid)} > {" "} - + {showGrid ? ( + + ) : ( + + + + + Active wallets + + + Pending for approval + + + Declined wallets + + + + + + + + + + + )} ); From e93de37cbf2c8e83348b88314709284908e7f6c7 Mon Sep 17 00:00:00 2001 From: npcdazai Date: Fri, 27 Sep 2024 17:33:30 +0530 Subject: [PATCH 09/10] Gird --- src/Pages/OptiFiiExpense/WalletProgram.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Pages/OptiFiiExpense/WalletProgram.jsx b/src/Pages/OptiFiiExpense/WalletProgram.jsx index 82d40fb..f2f3755 100644 --- a/src/Pages/OptiFiiExpense/WalletProgram.jsx +++ b/src/Pages/OptiFiiExpense/WalletProgram.jsx @@ -288,9 +288,10 @@ const WalletProgram = () => { fontWeight={600} fontSize="small" color="#3725EA" + onClick={() => setShowGird(!showGrid)} leftIcon={} > - List + {showGrid && "List"} From ba00a89f90e3855e494c0486ab5ad06a689b60f4 Mon Sep 17 00:00:00 2001 From: priyanshuvish Date: Fri, 27 Sep 2024 18:43:47 +0530 Subject: [PATCH 10/10] blueCard component pending --- src/Components/Cards/BlueCard.jsx | 41 +++++ src/Contexts/GlobalStateProvider.jsx | 2 +- .../OptiFiiExpenseDashboard.jsx | 2 + .../OptiFiiExpense/ReimbursementRequest.jsx | 158 ++++++++++++++--- .../ReimbursementRequestView.jsx | 159 ++++++++++++++++-- 5 files changed, 326 insertions(+), 36 deletions(-) create mode 100644 src/Components/Cards/BlueCard.jsx diff --git a/src/Components/Cards/BlueCard.jsx b/src/Components/Cards/BlueCard.jsx new file mode 100644 index 0000000..2e300bd --- /dev/null +++ b/src/Components/Cards/BlueCard.jsx @@ -0,0 +1,41 @@ +import { Box, Stack, Text, } from '@chakra-ui/react' +import React from 'react' +import { MdGroups } from 'react-icons/md' + +function BlueCard() { + return ( + + + + + + + + {item.title} + + + + {item.count} + + + + + + + + {item.linkText} + + + + ) +} + +export default BlueCard \ No newline at end of file diff --git a/src/Contexts/GlobalStateProvider.jsx b/src/Contexts/GlobalStateProvider.jsx index 9c8340a..d74ae2f 100644 --- a/src/Contexts/GlobalStateProvider.jsx +++ b/src/Contexts/GlobalStateProvider.jsx @@ -46,7 +46,7 @@ const GlobalStateProvider = ({ children }) => { { id: 1, EmpID: "124589", - Name: "Status", + Name: "Jackson", emailAddress: "in***@wdimails.com", mobileNumber: "+91 ***8451254", Grade: "L1", diff --git a/src/Pages/OptiFiiExpense/OptiFiiExpenseDashboard.jsx b/src/Pages/OptiFiiExpense/OptiFiiExpenseDashboard.jsx index 2057af2..cee5cf5 100644 --- a/src/Pages/OptiFiiExpense/OptiFiiExpenseDashboard.jsx +++ b/src/Pages/OptiFiiExpense/OptiFiiExpenseDashboard.jsx @@ -220,6 +220,8 @@ const OptiFiiExpenseDashboard = () => { ))} + + {gridItemsData.map((item, index) => ( diff --git a/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx b/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx index 84318c1..b51c5a7 100644 --- a/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx +++ b/src/Pages/OptiFiiExpense/ReimbursementRequest.jsx @@ -1,42 +1,154 @@ -import { Box, HStack, Text, VStack } from "@chakra-ui/react"; -import React from "react"; +import { + Box, + Button, + HStack, + Icon, + Checkbox, + Tag, + TagLabel, + Text, + Image, +} from "@chakra-ui/react"; +import React, { useContext, useEffect, useState } from "react"; import MiniHeader from "../../Components/MiniHeader"; +import GlobalStateContext from "../../Contexts/GlobalStateContext"; +import NormalTable from "../../Components/DataTable/NormalTable"; +import { RiDeleteBin5Line } from "react-icons/ri"; +import { AiOutlineEdit } from "react-icons/ai"; +import { FaRegEye } from "react-icons/fa"; +import { PiReceipt } from "react-icons/pi"; import { MdOutlineNoFood } from "react-icons/md"; +import { OPACITY_ON_LOAD } from "../../Layout/animations"; +import { useNavigate } from "react-router-dom"; + const ReimbursementRequest = () => { + + + const navigate = useNavigate(); + const { employees } = useContext(GlobalStateContext); + const [isLoading, setIsLoading] = useState(false); + + useEffect(() => { + // Set isLoading to true + setIsLoading(true); + + // Simulate a 3-second delay + const timer = setTimeout(() => { + setIsLoading(false); // Set isLoading to false after 3 seconds + }, 500); + + // Cleanup the timer when the component unmounts or when the useEffect re-runs + return () => clearTimeout(timer); + }, []); // Empty dependency array means this effect runs once after the component mounts + + // ===============================[ Table Header ] + const tableHeadRow = [ + "Select", + "Sr. No", + "Name", + "Status", + "Email Address", + "Mobile number", + "Grade", + "Department", + "Role", + "Action", + ]; + + // const extractedArray = reportsHistory.map((item)=>({ })) + + const extractedArray = employees.map((item, index) => ({ + "Sr. No": ( + + {index + 1} + + ), + "Name": item?.Name, + "Email Address": item?.emailAddress, + "Mobile number": item?.mobileNumber, + Grade: item?.Grade, + Department: item?.Department, + Role: item?.Role, + Status: ( + + Dan Abramov + + Pooja Shah + + + ), + Action: ( + + + ), + })); + return ( - + {/* */} - - - - - - + + + + + + + + + Food + + + Created by - Reethik Thota + + + - - Food - - + Created by - Reethik Thota + + ₹ 50,000 + - - - Created by - Reethik Thota - - - ₹ 50,000 - - - - + + + + ); }; diff --git a/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx index 0b30343..dd5017d 100644 --- a/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx +++ b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx @@ -1,23 +1,146 @@ -import { Badge, Box, HStack, Image, Text, VStack } from "@chakra-ui/react"; -import React from "react"; +import { + Box, + Button, + HStack, + VStack, + Icon, + Checkbox, + Tag, + TagLabel, + Text, + Image, + useDisclosure, + Alert, + CloseButton, + AlertDescription, +} from "@chakra-ui/react"; +import React, { useContext, useEffect, useState } from "react"; import MiniHeader from "../../Components/MiniHeader"; +import GlobalStateContext from "../../Contexts/GlobalStateContext"; +import NormalTable from "../../Components/DataTable/NormalTable"; +import { RiDeleteBin5Line } from "react-icons/ri"; +import { AiOutlineEdit } from "react-icons/ai"; +import { LiaFileInvoiceSolid } from "react-icons/lia"; +import { PiReceipt } from "react-icons/pi"; import { MdOutlineNoFood } from "react-icons/md"; +import { OPACITY_ON_LOAD } from "../../Layout/animations"; import { IoMdCheckmark } from "react-icons/io"; +import { RxCross2 } from "react-icons/rx"; +import PrimaryButton from "../../Components/Buttons/PrimaryButton" +import SecondaryButton from "../../Components/Buttons/SecondaryButton" const ReimbursementRequestView = () => { + + const [alertStatus, setAlertStatus] = useState(null); + + const handleApprove = () => { + setAlertStatus('success'); + }; + + const handleReject = () => { + setAlertStatus('error'); + }; + + const { employees } = useContext(GlobalStateContext); + const [isLoading, setIsLoading] = useState(false); + + useEffect(() => { + // Set isLoading to true + setIsLoading(true); + + // Simulate a 3-second delay + const timer = setTimeout(() => { + setIsLoading(false); // Set isLoading to false after 3 seconds + }, 500); + + // Cleanup the timer when the component unmounts or when the useEffect re-runs + return () => clearTimeout(timer); + }, []); // Empty dependency array means this effect runs once after the component mounts + + // ===============================[ Table Header ] + const tableHeadRow = [ + "Select", + "Sr. No", + "Name", + "Email Address", + "Mobile number", + "Grade", + "Department", + "Role", + "Action", + ]; + + // const extractedArray = reportsHistory.map((item)=>({ })) + + const extractedArray = employees.map((item, index) => ({ + "Sr. No": ( + + {index + 1} + + ), + Name: item?.Name, + "Email Address": item?.emailAddress, + "Mobile number": item?.mobileNumber, + Grade: item?.Grade, + Department: item?.Department, + Role: item?.Role, + Action: ( + + + + + + Invoice243 + + + ), + })); + return ( - + + + + + + {/* */} + {alertStatus === 'success' && ( + + + + + + Approved by giftryt + + + + + )} - - - - - + {alertStatus === 'error' && ( + + + + + + Rejected by giftryt + + + + + )} + @@ -62,8 +185,6 @@ const ReimbursementRequestView = () => { - - @@ -83,8 +204,7 @@ const ReimbursementRequestView = () => { - - + Submitted by @@ -132,7 +252,22 @@ const ReimbursementRequestView = () => { + + + + + + + + + ); };