Profile Employment Details Fields required Validation

This commit is contained in:
KarthiKKVardhan 2026-05-13 18:44:45 +05:30
parent 0fa0510849
commit 998f6b6b94
3 changed files with 46 additions and 21 deletions

View File

@ -11,5 +11,5 @@ ReactDOM.createRoot(document.getElementById('root')).render(
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>,
</React.StrictMode>
)

View File

@ -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
/>
<TextField
label="Number of Non-Emirati Male"
@ -1281,6 +1288,7 @@ const CompanyProfile = () => {
type="number"
error={fieldErrors.employmentNonEmiratiMale}
readOnly={modalMode === 'view'}
required
/>
<TextField
label="Number of Emirati Female"
@ -1291,6 +1299,7 @@ const CompanyProfile = () => {
type="number"
error={fieldErrors.employmentEmiratiFemale}
readOnly={modalMode === 'view'}
required
/>
<TextField
label="Number of Non-Emirati Female"
@ -1299,6 +1308,7 @@ const CompanyProfile = () => {
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
/>
<TextField
label="Total Emirati"
@ -1317,6 +1328,7 @@ const CompanyProfile = () => {
width="100%"
type="number"
readOnly
required
/>
</div>
</div>
@ -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

View File

@ -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}
/>
<TextField
@ -1470,6 +1472,7 @@ const EditCompanyProfile = () => {
type="text"
inputMode="numeric"
pattern="[0-9]*"
required
error={fieldErrors.employmentEmiratiFemale}
/>
<TextField
@ -1485,6 +1488,7 @@ const EditCompanyProfile = () => {
type="text"
inputMode="numeric"
pattern="[0-9]*"
required
error={fieldErrors.employmentNonEmiratiFemale}
/>
<TextField
@ -1494,6 +1498,7 @@ const EditCompanyProfile = () => {
width="100%"
type="number"
readOnly
required
/>
<TextField
label="Total Emirati"
@ -1502,6 +1507,7 @@ const EditCompanyProfile = () => {
width="100%"
type="number"
readOnly
required
/>
</div>
</div>