diff --git a/ipi-survey-platform/src/components/dashboard/SubmissionHistory.jsx b/ipi-survey-platform/src/components/dashboard/SubmissionHistory.jsx index f775abe..26d834e 100644 --- a/ipi-survey-platform/src/components/dashboard/SubmissionHistory.jsx +++ b/ipi-survey-platform/src/components/dashboard/SubmissionHistory.jsx @@ -287,9 +287,17 @@ const handleDeleteDraft = async (e, submission) => { + View Details + + )} diff --git a/ipi-survey-platform/src/components/survey/ReviewSubmit/ReviewSubmit.jsx b/ipi-survey-platform/src/components/survey/ReviewSubmit/ReviewSubmit.jsx index f784f78..c62821f 100644 --- a/ipi-survey-platform/src/components/survey/ReviewSubmit/ReviewSubmit.jsx +++ b/ipi-survey-platform/src/components/survey/ReviewSubmit/ReviewSubmit.jsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import Table from '@/components/common/Table'; -import { getQuarterPeriods , resubmitSurvey } from '@/services/submissions/submissionService'; +import { getQuarterPeriods , submitSurvey, resubmitSurvey } from '@/services/submissions/submissionService'; import { getEmirates, fetchVariationReasons, fetchZeroTargetReasons } from '@/services/masters/masterService'; const caretUpSrc = '/assets/images/caret-up.svg'; const caretDownSrc = '/assets/images/CaretDown-black.svg'; @@ -523,10 +523,19 @@ if (!establishment) { const formattedProducts = products.map(product => { // Get the selected product option to access product_id const selectedProduct = productOptions.find(p => p.value === product.product); - const existingProduct = currentSubmission.products?.find(p => - p.product_id === product.product_id || - p.product?.id === product.product_id - ); +const existingProduct = currentSubmission.products?.find(p => + p.product_id === (selectedProduct?.product_id || product.product_id) || + p.product?.id === (selectedProduct?.product_id || product.product_id) +); +console.log('Existing product match:', { + productId: product.id, + productProductId: product.product_id, + selectedProductId: selectedProduct?.product_id, + foundExistingProduct: !!existingProduct, + existingProductId: existingProduct?.id, + existingProductProductId: existingProduct?.product_id, + allExistingProductIds: currentSubmission.products?.map(p => p.id) || [] +}); return { id: existingProduct?.id || 0, product_id: selectedProduct?.product_id || product.product_id || null, @@ -589,23 +598,36 @@ if (!establishment) { if (submissionId) { // Update existing submission response = await resubmitSurvey(submissionId, payload); - alert('Draft updated successfully'); - + alert('Draft updated successfully') } else { // Create new submission response = await submitSurvey(payload); // Update local storage with the new submission ID if this was a create operation - if (response && response.id) { - const updatedSubmission = { ...currentSubmission, id: response.id }; - localStorage.setItem('currentSubmission', JSON.stringify(updatedSubmission)); + if (response && response.submission_data) { + localStorage.setItem('currentSubmission', JSON.stringify(response.submission_data)); } alert('Draft saved successfully') } + // Add this debug log + console.log('API Response:', { + status: response?.status, + data: response?.data, + submissionId: submissionId + }); } catch (error) { - console.error('Error saving draft:', error); + console.error('Error details:', { + message: error.message, + response: error.response?.data, + status: error.response?.status, + config: { + url: error.config?.url, + method: error.config?.method, + data: error.config?.data + } + }); alert(error.message || 'Failed to save draft'); } finally { setIsSavingDraft(false); diff --git a/ipi-survey-platform/src/pages/Overview/Overview.jsx b/ipi-survey-platform/src/pages/Overview/Overview.jsx index 2ed0084..b21bba3 100644 --- a/ipi-survey-platform/src/pages/Overview/Overview.jsx +++ b/ipi-survey-platform/src/pages/Overview/Overview.jsx @@ -182,7 +182,13 @@ const handleDeleteDraft = async (e, record) => { /> - ) : 'View Details', + ) : + View Details ]); }, [filteredRows, uae_currency]);