From 4f083b1f684f820a54975e34f8ae72cdf4be7990 Mon Sep 17 00:00:00 2001 From: Malini Date: Wed, 12 Nov 2025 18:05:14 +0530 Subject: [PATCH] bug fixed --- .../components/overview/ProductDetails.jsx | 151 +++++++++++++++--- .../EstablishmentInfo/EstablishmentInfo.jsx | 39 ++++- .../survey/ProductData/ProductData.jsx | 38 ++--- .../src/pages/Admin/ValidationReview.jsx | 42 +++-- .../src/pages/Survey/Survey.jsx | 19 ++- 5 files changed, 220 insertions(+), 69 deletions(-) diff --git a/ipi-survey-platform/src/components/overview/ProductDetails.jsx b/ipi-survey-platform/src/components/overview/ProductDetails.jsx index b821e9d..d12fec0 100644 --- a/ipi-survey-platform/src/components/overview/ProductDetails.jsx +++ b/ipi-survey-platform/src/components/overview/ProductDetails.jsx @@ -88,6 +88,72 @@ const ProductDetails = ({ product, onBack, showToast: shouldShowToast, onToastSh const navigate = useNavigate(); + // Function to save resubmission data to localStorage + const saveResubmissionData = (productData) => { + try { + console.log('Saving resubmission data:', productData); // Debug log + const resubmissionData = { + submissionId: productData.submission_id, + product: { + id: productData.product?.id, + product_id: productData.product_id, + product_name: productData.product?.product_name, + hs_code: productData.product?.hs_code, + unit: productData.unit ? { + id: productData.unit.id, + uom: productData.unit.uom + } : null, + // Add all relevant product data that needs to be pre-filled + previous_quantity_period_one: productData.previous_quantity_period_one, + previous_quantity_period_two: productData.previous_quantity_period_two, + previous_quantity_period_three: productData.previous_quantity_period_three, + current_quantity_period_one: productData.current_quantity_period_one, + current_quantity_period_two: productData.current_quantity_period_two, + current_quantity_period_three: productData.current_quantity_period_three, + forecast_quantity_period_one: productData.forecast_quantity_period_one, + forecast_quantity_period_two: productData.forecast_quantity_period_two, + forecast_quantity_period_three: productData.forecast_quantity_period_three, + previous_cost_period_one: productData.previous_cost_period_one, + previous_cost_period_two: productData.previous_cost_period_two, + previous_cost_period_three: productData.previous_cost_period_three, + current_cost_period_one: productData.current_cost_period_one, + current_cost_period_two: productData.current_cost_period_two, + current_cost_period_three: productData.current_cost_period_three, + forecast_cost_period_one: productData.forecast_cost_period_one, + forecast_cost_period_two: productData.forecast_cost_period_two, + forecast_cost_period_three: productData.forecast_cost_period_three, + variation_reason: productData.variation_reason, + zero_target_reason: productData.zero_target_reason, + other_variation_reason: productData.other_variation_reason, + other_zero_target_reason: productData.other_zero_target_reason, + remarks: productData.remarks, + annual_installed_capacity: productData.annual_installed_capacity, + // Add quarter and year directly in product data + quarter: productData.quarter || productData.product?.quarter, + year: productData.year || productData.product?.year + }, + establishment: { + id: productData.establishment_id, + name: productData.establishment_name, + permanent_factory_code: productData.permanent_factory_code, + industry_code: productData.industry_code, + license_number: productData.license_number, + isic_code: productData.isic_code, + emirate: productData.emirate + }, + // Add quarter and year at the root level as well + quarter: productData.quarter || productData.product?.quarter, + year: productData.year || productData.product?.year, + timestamp: new Date().toISOString() + }; + + localStorage.setItem('resubmissionData', JSON.stringify(resubmissionData)); + console.log('Resubmission data saved to localStorage'); + } catch (error) { + console.error('Error saving resubmission data to localStorage:', error); + } + }; + if (!product) return null; // Format the product data to match the component's expected structure @@ -182,25 +248,74 @@ const ProductDetails = ({ product, onBack, showToast: shouldShowToast, onToastSh {toast.message} {toast.type === 'rejected' && ( @@ -706,7 +704,7 @@ const ValidationReview = () => { type="button" className="inline-flex h-11 items-center justify-center rounded-[10px] bg-[#92722A] px-6 text-sm font-semibold text-white transition-colors hover:bg-[#B68A35] disabled:opacity-50 disabled:cursor-not-allowed" onClick={() => setIsApproveOpen(true)} - disabled={actionLoading || submissionData?.status === 'Approved'} + disabled={actionLoading || submissionData?.status === 'Approved' || submissionData?.status === 'Rejected'} > {actionLoading ? 'Processing...' : submissionData?.status === 'Approved' ? 'Already Approved' : 'Approve'} diff --git a/ipi-survey-platform/src/pages/Survey/Survey.jsx b/ipi-survey-platform/src/pages/Survey/Survey.jsx index 1f651d3..b0ca44f 100644 --- a/ipi-survey-platform/src/pages/Survey/Survey.jsx +++ b/ipi-survey-platform/src/pages/Survey/Survey.jsx @@ -466,9 +466,22 @@ const Survey = () => { const buildSubmissionPayload = React.useCallback((isResubmitFlow = false) => { const info = establishmentData?.employeeInfo ?? {}; - // Get quarter and year from surveyData if available, otherwise from establishmentData - const quarter = surveyData?.quarter || ''; - const year = surveyData?.year || ''; + // Check for resubmission data in localStorage + let quarter = surveyData?.quarter || ''; + let year = surveyData?.year || ''; + + if (isResubmitFlow) { + const resubmitData = localStorage.getItem('resubmissionData'); + if (resubmitData) { + try { + const parsedData = JSON.parse(resubmitData); + quarter = parsedData.quarter || quarter; + year = parsedData.year || year; + } catch (e) { + console.error('Error parsing resubmission data:', e); + } + } + } return { quarter: quarter,