diff --git a/ipi-survey-platform/src/components/admin/SubmissionTable.jsx b/ipi-survey-platform/src/components/admin/SubmissionTable.jsx index 650b58c..8f7da4b 100644 --- a/ipi-survey-platform/src/components/admin/SubmissionTable.jsx +++ b/ipi-survey-platform/src/components/admin/SubmissionTable.jsx @@ -36,7 +36,12 @@ const SubmissionTable = ({ selectedQuarter, selectedYear }) => { const response = await apiClient.get(`/admin_dashboard?${params.toString()}`); const result = response?.data; if (result?.status === 'success') { - setData(result.recent_submissions || []); + // Map the data to include the updated_at as reviewerOn + const mappedData = (result.recent_submissions || []).map(item => ({ + ...item, + reviewerOn: item.updated_at || null + })); + setData(mappedData); } else { console.error('Error: Invalid response', result); } @@ -177,7 +182,6 @@ const handleApproveConfirm = async () => { toast.success('Submission approved successfully'); const currentUser = JSON.parse(sessionStorage.getItem("user_profile"))?.name || 'Admin'; - const currentTime = new Date().toISOString(); const updatedAt = response?.data?.updated_at || new Date().toISOString(); // Update the status of the current item in the data array @@ -188,7 +192,8 @@ const handleApproveConfirm = async () => { ...item, status: 'Approved', reviewer_name: currentUser, - reviewerOn: updatedAt + reviewerOn: updatedAt, + updated_at: updatedAt } : item ) @@ -231,7 +236,6 @@ const handleRejectConfirm = async () => { toast.error('Submission has been rejected'); const currentUser = JSON.parse(sessionStorage.getItem("user_profile"))?.name || 'Admin'; - const currentTime = new Date().toISOString(); const updatedAt = response?.data?.updated_at || new Date().toISOString(); // Update the status of the current item in the data array @@ -242,7 +246,8 @@ const handleRejectConfirm = async () => { ...item, status: 'Rejected', reviewer_name: currentUser, - reviewerOn: updatedAt + reviewerOn: updatedAt, + updated_at: updatedAt } : item ) @@ -306,9 +311,9 @@ const tableRows = filtered.map((item) => [ item?.status?.toLowerCase() === 'approved' || item?.status?.toLowerCase() === 'rejected' ? (item?.reviewer_name || JSON.parse(sessionStorage.getItem("user_profile"))?.name || 'Admin') : '-', - // Reviewed On - show reviewerOn after approval/rejection, otherwise show '-' + // Reviewed On - show updated_at after approval/rejection, otherwise show '-' item?.status?.toLowerCase() === 'approved' || item?.status?.toLowerCase() === 'rejected' - ? {formatDate(item?.reviewerOn)} + ? {formatDate(item?.updated_at || item?.reviewerOn)} : '-', item, ]); diff --git a/ipi-survey-platform/src/pages/Admin/Validations.jsx b/ipi-survey-platform/src/pages/Admin/Validations.jsx index 20d8ddf..35da305 100644 --- a/ipi-survey-platform/src/pages/Admin/Validations.jsx +++ b/ipi-survey-platform/src/pages/Admin/Validations.jsx @@ -153,11 +153,11 @@ const ManageSubmissions = () => { year: String(item.year ?? '-'), quarter: item.quarter ?? '-', products: item?.product_count || '-', - submittedBy: userProfile?.name || '-', + submittedBy: item.created_by_name || '-', submittedAt: formatDateTime(item.created_at), status: item.status ?? '-', - reviewer: userProfile?.name || '-', - reviewerOn: formatDateTime(item.updated_at || item.created_at), + reviewer: item.reviewer_name || '-', + reviewerOn: formatDateTime(item.updated_at ), })); setSubmissions(mapped); } else { @@ -198,7 +198,6 @@ const ManageSubmissions = () => { showToast('error', 'Submission has been rejected'); // Refresh the submissions list const data = await fetchDashboardData(selectedQuarter, selectedYear); - const userProfile = JSON.parse(sessionStorage.getItem("user_profile")); const mapped = (data || []).map((item) => ({ id: item.id, establishment: item?.establishment?.factory_name || '-', @@ -206,11 +205,11 @@ const ManageSubmissions = () => { year: String(item.year ?? '-'), quarter: item.quarter ?? '-', products: item?.product_count || '-', - submittedBy: userProfile?.name || '-', + submittedBy: item.created_by_name || '-', submittedAt: formatDateTime(item.created_at), status: item.status ?? '-', - reviewer: userProfile?.name || '-', - reviewerOn: formatDateTime(item.created_at), + reviewer: item.reviewer_name || '-', + reviewerOn: formatDateTime(item.updated_at), })); setSubmissions(mapped); setRejectReason(''); @@ -241,7 +240,6 @@ React.useEffect(() => { try { setLoading(true); const data = await fetchDashboardData(selectedQuarter, selectedYear); - const userProfile = JSON.parse(sessionStorage.getItem("user_profile")); const mapped = (data || []).map((item) => ({ id: item.id, establishment: item?.establishment?.factory_name || '-', @@ -249,10 +247,10 @@ React.useEffect(() => { year: String(item.year ?? '-'), quarter: item.quarter ?? '-', products: item?.product_count || '-', - submittedBy: userProfile?.name || '-', + submittedBy: item.created_by_name || '-', submittedAt: formatDateTime(item.created_at), - status: item.status ?? '-', - reviewer: userProfile?.name || '-', + status: item.status || 'Pending', + reviewer: item.reviewer_name || '-', reviewerOn: formatDateTime(item.updated_at || item.created_at), })); @@ -320,8 +318,6 @@ React.useEffect(() => { // Then fetch the submissions with the current quarter and year const data = await fetchDashboardData(currentQuarter, currentYear); - const userProfile = JSON.parse(sessionStorage.getItem("user_profile") || '{}'); - const mapped = (data || []).map((item) => ({ id: item.id, establishment: item?.establishment?.factory_name || '-', @@ -329,10 +325,10 @@ React.useEffect(() => { year: String(item.year ?? '-'), quarter: item.quarter ?? '-', products: item?.product_count || '-', - submittedBy: userProfile?.name || '-', + submittedBy: item.created_by_name || '-', submittedAt: formatDateTime(item.created_at), status: item.status || 'Pending', - reviewer: userProfile?.name || '-', + reviewer: item.reviewer_name || '-', reviewerOn: formatDateTime(item.updated_at || item.created_at), }));