From 998f6b6b94106915d4a28e341465a5c6735b3cc1 Mon Sep 17 00:00:00 2001 From: KarthiKKVardhan Date: Wed, 13 May 2026 18:44:45 +0530 Subject: [PATCH] Profile Employment Details Fields required Validation --- ipi-survey-platform/src/main.jsx | 2 +- .../Admin/configuration/CompanyProfile.jsx | 51 +++++++++++++------ .../configuration/EditCompanyProfile.jsx | 14 +++-- 3 files changed, 46 insertions(+), 21 deletions(-) diff --git a/ipi-survey-platform/src/main.jsx b/ipi-survey-platform/src/main.jsx index 8cbb70f..5339633 100644 --- a/ipi-survey-platform/src/main.jsx +++ b/ipi-survey-platform/src/main.jsx @@ -11,5 +11,5 @@ ReactDOM.createRoot(document.getElementById('root')).render( - , + ) \ No newline at end of file diff --git a/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx b/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx index 2ec0cce..4aaba02 100644 --- a/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx +++ b/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx @@ -711,6 +711,12 @@ const CompanyProfile = () => { { field: 'products', label: 'Products' }, ], 4: [ + { field: 'employmentEmiratiMale', label: 'Number of Emirati Male' }, + { field: 'employmentNonEmiratiMale', label: 'Number of Non-Emirati Male' }, + { field: 'employmentEmiratiFemale', label: 'Number of Emirati Female' }, + { field: 'employmentNonEmiratiFemale', label: 'Number of Non-Emirati Female' }, + { field: 'employmentTotalEmployees', label: 'Total Employees' }, + { field: 'employmentTotalEmirati', label: 'Total Emirati' }, // Employment fields are not required ], }), @@ -1271,6 +1277,7 @@ const CompanyProfile = () => { type="number" error={fieldErrors.employmentEmiratiMale} readOnly={modalMode === 'view'} + required /> { type="number" error={fieldErrors.employmentNonEmiratiMale} readOnly={modalMode === 'view'} + required /> { type="number" error={fieldErrors.employmentEmiratiFemale} readOnly={modalMode === 'view'} + required /> { placeholder="Enter Count" width="100%" type="number" + required error={fieldErrors.employmentNonEmiratiFemale} readOnly={modalMode === 'view'} /> @@ -1309,6 +1319,7 @@ const CompanyProfile = () => { width="100%" type="number" readOnly + required /> { width="100%" type="number" readOnly + required /> @@ -2612,7 +2624,13 @@ const handleView = async (id) => { { field: 'corporateName', label: 'Corporate Name' }, { field: 'corporateAddress', label: 'Corporate Address' }, { field: 'corporateEmirate', label: 'Corporate Emirate' }, - { field: 'corporateMobileNumber', label: 'Corporate Mobile Number' } + { field: 'corporateMobileNumber', label: 'Corporate Mobile Number' }, + { field: 'employmentEmiratiMale', label: 'Emirati Male' }, + { field: 'employmentEmiratiFemale', label: 'Emirati Female' }, + { field: 'employmentNonEmiratiMale', label: 'Non-Emirati Male' }, + { field: 'employmentNonEmiratiFemale', label: 'Non-Emirati Female' }, + { field: 'employmentTotalEmirati', label: 'Total Emirati' }, + { field: 'employmentTotalEmployees', label: 'Total Employees' } ]; const handleDeleteConfirm = async () => { @@ -2900,12 +2918,12 @@ const handleView = async (id) => { corporate_mobile_number: form.corporateMobileNumber || '', corporate_email: form.corporateEmail || '', corporate_website: form.corporateWebsite || '', - emirati_male: Number(form.employmentEmiratiMale) || 0, - emirati_female: Number(form.employmentEmiratiFemale) || 0, - non_emirati_male: Number(form.employmentNonEmiratiMale) || 0, - non_emirati_female: Number(form.employmentNonEmiratiFemale) || 0, - total_emirati: Number(totalEmirati) || 0, - total_employees: Number(employmentTotals) || 0, + emirati_male: Number(form.employmentEmiratiMale) || '', + emirati_female: Number(form.employmentEmiratiFemale) || '', + non_emirati_male: Number(form.employmentNonEmiratiMale) || '', + non_emirati_female: Number(form.employmentNonEmiratiFemale) || '', + total_emirati: Number(totalEmirati) || '', + total_employees: Number(employmentTotals) || '', created_by: currentUserId?.id, created_by_name: currentUserId?.name, establishment_user: { @@ -2928,10 +2946,11 @@ const handleView = async (id) => { const createdRecord = apiResponse?.data; createdRecordId = createdRecord?.id ?? createdRecord?.establishment?.id ?? null; apiResultData = createdRecord; + console.log('API Payload for creation:', apiPayload); setIsRefreshing(true); - setTimeout(() => { - window.location.reload(); - }, 1000); + // setTimeout(() => { + // window.location.reload(); + // }, 1000); } catch (apiError) { const apiMessage = apiError?.response?.data?.message || apiError?.message || ''; if (apiMessage.includes("Field 'gender' doesn't have a default value")) { @@ -3011,12 +3030,12 @@ const handleView = async (id) => { corporate_mobile_number: form.corporateMobileNumber || '', corporate_email: form.corporateEmail || '', corporate_website: form.corporateWebsite || '', - emirati_male: Number(form.employmentEmiratiMale) || 0, - emirati_female: Number(form.employmentEmiratiFemale) || 0, - non_emirati_male: Number(form.employmentNonEmiratiMale) || 0, - non_emirati_female: Number(form.employmentNonEmiratiFemale) || 0, - total_emirati: (Number(form.employmentEmiratiMale) || 0) + (Number(form.employmentEmiratiFemale) || 0), - total_employees: Number(form.employmentTotalEmployees) || 0, + emirati_male: Number(form.employmentEmiratiMale) || '', + emirati_female: Number(form.employmentEmiratiFemale) || 'null', + non_emirati_male: Number(form.employmentNonEmiratiMale) || '', + non_emirati_female: Number(form.employmentNonEmiratiFemale) || '', + total_emirati: (Number(form.employmentEmiratiMale) || '') + (Number(form.employmentEmiratiFemale) || ''), + total_employees: Number(form.employmentTotalEmployees) || '', updated_by: 1, updated_at: getCurrentISODate(), // Enhanced product handling for updates - only send product IDs that exist diff --git a/ipi-survey-platform/src/pages/Admin/configuration/EditCompanyProfile.jsx b/ipi-survey-platform/src/pages/Admin/configuration/EditCompanyProfile.jsx index a3f0f16..a8e147f 100644 --- a/ipi-survey-platform/src/pages/Admin/configuration/EditCompanyProfile.jsx +++ b/ipi-survey-platform/src/pages/Admin/configuration/EditCompanyProfile.jsx @@ -828,10 +828,10 @@ const EditCompanyProfile = () => { establishment_mobile_number: form.contactMobileNumber || "", establishment_contact_email: form.contactEmail || "", establishment_website: form.contactWebsite || "", - emirati_male: Number(form.employmentEmiratiMale) || 0, - emirati_female: Number(form.employmentEmiratiFemale) || 0, - non_emirati_male: Number(form.employmentNonEmiratiMale) || 0, - non_emirati_female: Number(form.employmentNonEmiratiFemale) || 0, + emirati_male: Number(form.employmentEmiratiMale) || '', + emirati_female: Number(form.employmentEmiratiFemale) || '', + non_emirati_male: Number(form.employmentNonEmiratiMale) || '', + non_emirati_female: Number(form.employmentNonEmiratiFemale) || '', total_emirati: (Number(form.employmentEmiratiMale) || 0) + (Number(form.employmentEmiratiFemale) || 0), @@ -1438,6 +1438,7 @@ const EditCompanyProfile = () => { placeholder="Enter Count" width="100%" type="text" + required inputMode="numeric" pattern="[0-9]*" error={fieldErrors.employmentEmiratiMale} @@ -1455,6 +1456,7 @@ const EditCompanyProfile = () => { type="text" inputMode="numeric" pattern="[0-9]*" + required error={fieldErrors.employmentNonEmiratiMale} /> { type="text" inputMode="numeric" pattern="[0-9]*" + required error={fieldErrors.employmentEmiratiFemale} /> { type="text" inputMode="numeric" pattern="[0-9]*" + required error={fieldErrors.employmentNonEmiratiFemale} /> { width="100%" type="number" readOnly + required /> { width="100%" type="number" readOnly + required />