bug fixed

This commit is contained in:
Malini 2026-01-28 18:58:33 +05:30
parent d616ba2f50
commit 67fe4e288b
4 changed files with 138 additions and 63 deletions

View File

@ -75,12 +75,18 @@ export const DetailedOverview = ({ submission, onBack }) => {
try {
setIsLoading(true);
setError(null);
const response = await fetchSubmissionDetail(submission.id);
const response = await fetchSubmissionDetail(submission.id);
console.log('Submission Detail API Response:', response); // Add this line
if (response && response.data) {
setSubmissionData(response.data);
setQuarterPeriods(response.quarter_periods);
// Log the products array to verify it's being set correctly
// Store quarter_window.end_date in localStorage
if (response.quarter_window?.end_date) {
localStorage.setItem('quarterWindowEndDate', response.quarter_window.end_date);
console.log('Stored quarter_window.end_date in localStorage');
}
if (response.data.products) {
}
} else {

View File

@ -7,6 +7,7 @@ const getSafeEstablishmentId = () => {
};
import { useNavigate, useLocation } from 'react-router-dom';
import { getEstablishmentProducts } from '../../../services/submissions/submissionService';
import { getEmirates } from '../../../services/masters/masterService';
import Table from '@/components/common/Table';
const caretDownSrc = '/assets/images/CaretDown.svg';
@ -78,10 +79,8 @@ const defaultEmployeeInfo = {
totalEmployees: '',
totalEmirati: '',
};
const getCurrentQuarterAndYear = () => {
const now = new Date();
@ -111,11 +110,42 @@ const EstablishmentInfo = ({
const [products, setProducts] = React.useState([]);
const [loadingProducts, setLoadingProducts] = React.useState(false);
const [productsError, setProductsError] = React.useState('');
const [emirates, setEmirates] = React.useState([]);
const [emirateName, setEmirateName] = React.useState('');
const navigate = useNavigate();
const location = useLocation();
// Use a ref to persist the survey data across re-renders
const surveyDataRef = React.useRef(null);
// Fetch emirates on component mount
React.useEffect(() => {
const fetchEmiratesData = async () => {
try {
const response = await getEmirates();
if (response?.data) {
setEmirates(response.data);
}
} catch (error) {
console.error('Error fetching emirates:', error);
}
};
fetchEmiratesData();
}, []);
// Update emirate name when emirate ID or emirates list changes
React.useEffect(() => {
if (data?.emirate && emirates.length > 0) {
const emirate = emirates.find(e => e.id === parseInt(data.emirate));
setEmirateName(emirate?.name || data.emirate);
} else if (data?.emirate) {
// If we have an emirate ID but no emirates list yet, keep the ID as fallback
setEmirateName(data.emirate);
} else {
setEmirateName('');
}
}, [data?.emirate, emirates]);
// Fetch establishment products
React.useEffect(() => {
const fetchProducts = async () => {
@ -140,9 +170,9 @@ const EstablishmentInfo = ({
fetchProducts();
}, []);
const remarksresubmit = JSON.parse(localStorage.getItem('resubmissionData'))?.product?.remarks || '';
localStorage.setItem('surveyRemarks', remarksresubmit)
const remarksresubmit = JSON.parse(localStorage.getItem('resubmissionData'))?.product?.remarks || '';
localStorage.setItem('surveyRemarks', remarksresubmit)
const [surveyData, setSurveyData] = React.useState(() => {
// For resubmission, use the quarter/year from the submission data
@ -257,7 +287,7 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
try {
// Get existing resubmission data if it exists
const existingData = JSON.parse(localStorage.getItem('resubmissionData') || '{}');
console.log("existingData",existingData)
// Update with establishment data
const updatedData = {
...existingData,
@ -276,6 +306,8 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
quarter: data.quarter || surveyData.quarter,
year: data.year || surveyData.year
};
console.log("updatedData",updatedData)
// Save back to localStorage
localStorage.setItem('resubmissionData', JSON.stringify(updatedData));
@ -294,7 +326,7 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
industryCode: data.industryCode || '',
licenseNumber: data.licenseNumber || '',
isicCode: data.isicCode || '',
emirate: data.emirate || '',
emirate: emirateName || '',
establishment_contact_email: data.establishment_contact_email || '',
employeeInfo: {
...defaultEmployeeInfo,
@ -302,7 +334,7 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
},
...data,
}),
[data, surveyData.quarter, surveyData.year]
[data, surveyData.quarter, surveyData.year, emirateName]
);
const handleFieldChange = (field) => (event) => {
@ -312,32 +344,19 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
});
};
// const handleEditProfile = (e) => {
// e.preventDefault();
// const establishmentId = sessionStorage.getItem('establishment_id');
// if (!establishmentId) {
// alert('No establishment ID found in session');
// return;
// }
// localStorage.setItem('returnTo', window.location.pathname);
// sessionStorage.setItem('edit_profile_from', 'EstablishmentUser');
// // navigate(`/profile/edit/${establishmentId}`);
// };
const handleEditProfile = (e) => {
e.preventDefault();
e.preventDefault();
const establishmentId = localStorage.getItem('establishment_id');
if (!establishmentId) {
alert('No establishment ID found in session');
return;
}
const establishmentId = localStorage.getItem('establishment_id');
if (!establishmentId) {
alert('No establishment ID found in session');
return;
}
localStorage.setItem('returnTo', window.location.pathname);
localStorage.setItem('edit_profile_from', 'EstablishmentUser');
navigate(`/edit-profile/${establishmentId}`);
};
localStorage.setItem('returnTo', window.location.pathname);
localStorage.setItem('edit_profile_from', 'EstablishmentUser');
navigate(`/edit-profile/${establishmentId}`);
};
const handleEmployeeChange = (field) => (event) => {
onChange({
@ -405,8 +424,19 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
day: 'numeric'
})
) : (
<span className="#6C4527">Mar 31, 2026</span>
)}
(() => {
const endDate = localStorage.getItem('quarterWindowEndDate');
return endDate ? (
new Date(endDate).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})
) : (
<span className="#6C4527">-</span>
);
})()
)}
</span>
</div>
<div className="flex items-center gap-1">
@ -554,10 +584,8 @@ localStorage.setItem('surveyRemarks', remarksresubmit)
<Field
label="Emirate"
placeholder="Enter Emirate"
value={info.emirate}
onChange={handleFieldChange('emirate')}
value={emirateName}
disabled={true}
/>
</div>
</Card>

View File

@ -1194,26 +1194,28 @@ const location = useLocation();
<div className="flex items-center space-x-1">
<img src={calendarIcon} alt="" className="h-4 w-4" />
<span className="font-medium">Due:</span>
{(() => {
// Try to get endDate from localStorage first
const savedSurveyPeriod = localStorage.getItem('currentSurveyPeriod');
let endDateToUse = surveyData.endDate;
if (savedSurveyPeriod) {
const { endDate } = JSON.parse(savedSurveyPeriod);
endDateToUse = endDate || surveyData.endDate;
}
return endDateToUse ? (
new Date(endDateToUse).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})
) : (
<span className="text-amber-600">-</span>
);
})()}
<span className="text-sm text-[#6C4527] whitespace-nowrap">
{surveyData.endDate ? (
new Date(surveyData.endDate).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})
) : (
(() => {
const endDate = localStorage.getItem('quarterWindowEndDate');
return endDate ? (
new Date(endDate).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})
) : (
<span className="#6C4527">-</span>
);
})()
)}
</span>
</div>
<div className="flex items-center space-x-1">

View File

@ -1,6 +1,7 @@
import React, { useState, useEffect } from 'react';
import Table from '@/components/common/Table';
import { getQuarterPeriods } from '@/services/submissions/submissionService';
import { getEmirates } from '@/services/masters/masterService';
const caretUpSrc = '/assets/images/caret-up.svg';
const caretDownSrc = '/assets/images/CaretDown-black.svg';
const establishmentIconSrc = '/assets/images/Establishment.svg';
@ -56,13 +57,22 @@ const formatNumber = (value) => {
return new Intl.NumberFormat('en-US').format(number);
};
const buildEstablishmentDetails = (establishment) => {
const buildEstablishmentDetails = (establishment, emirateName) => {
if (!establishment) return [];
let userEmail = '';
try {
const userProfile = JSON.parse(localStorage.getItem('user_profile'));
userEmail = userProfile?.email || '';
} catch (e) {
console.error('Error parsing user profile from localStorage:', e);
}
const email = establishment.establishment_contact_email || userEmail || '';
return [
{ icon: establishmentIconSrc, label: 'Establishment Name', value: establishment.establishmentName },
{ icon: establishmentIdIconSrc, label: 'Establishment ID', value: establishment.licenseNumber },
{ icon: emailIconSrc, label: 'Email', value: establishment.establishment_contact_email },
{ icon: emiratesIconSrc, label: 'Emirate', value: establishment.emirate },
{ icon: emailIconSrc, label: 'Email', value: email },
{ icon: emiratesIconSrc, label: 'Emirate', value: emirateName || establishment.emirate },
];
};
@ -346,6 +356,35 @@ const ReviewSubmit = ({
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState(null);
const [confirm, setConfirm] = React.useState(false);
const [emirates, setEmirates] = useState([]);
const [emirateName, setEmirateName] = useState('');
useEffect(() => {
const fetchEmiratesData = async () => {
try {
const response = await getEmirates();
if (response?.data) {
setEmirates(response.data);
}
} catch (error) {
console.error('Error fetching emirates:', error);
}
};
fetchEmiratesData();
}, []);
useEffect(() => {
if (establishment?.emirate && emirates.length > 0) {
const emirate = emirates.find(e => e.id === parseInt(establishment.emirate));
setEmirateName(emirate?.name || establishment.emirate);
} else if (establishment?.emirate) {
// Fallback to ID if emirates list is not yet loaded
setEmirateName(establishment.emirate);
} else {
setEmirateName('');
}
}, [establishment?.emirate, emirates]);
useEffect(() => {
const fetchQuarterPeriods = async () => {
@ -405,7 +444,7 @@ const ReviewSubmit = ({
}
}
};
const establishmentDetails = React.useMemo(() => buildEstablishmentDetails(establishment), [establishment]);
const establishmentDetails = React.useMemo(() => buildEstablishmentDetails(establishment, emirateName), [establishment, emirateName]);
const employmentDetails = React.useMemo(() => buildEmploymentDetails(establishment), [establishment]);
const productRows = React.useMemo(() => buildProductRows(products), [products]);