From 465cc8f9b0ed206bd543731a15c01f40767be26c Mon Sep 17 00:00:00 2001 From: Malini Date: Mon, 23 Feb 2026 12:17:57 +0530 Subject: [PATCH] conditions changed in remarks --- .../Admin/configuration/CompanyProfile.jsx | 20 +++++++- .../configuration/EditCompanyProfile.jsx | 49 +++++++++++++------ 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx b/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx index 995d8d8..ecfa8fe 100644 --- a/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx +++ b/ipi-survey-platform/src/pages/Admin/configuration/CompanyProfile.jsx @@ -139,6 +139,24 @@ const formatDate = (dateString) => { return `${day}/${month}/${year}`; }; +const extractIndustryCode = (value) => { + if (value === null || value === undefined) return ''; + const normalized = String(value).trim(); + if (!normalized) return ''; + + const leadingDigits = normalized.match(/^(\d+)/); + const beforeDash = normalized.split('-')[0]?.trim(); + const rawCode = (leadingDigits?.[1] ?? beforeDash ?? normalized); + + return String(rawCode).trim().replace(/^0+(?=\d)/, ''); +}; + +const getIndustryCodeFromIsicSelection = (selectedValue, options = []) => { + if (selectedValue === null || selectedValue === undefined || selectedValue === '') return ''; + const selected = options.find((opt) => String(opt?.value) === String(selectedValue)); + return extractIndustryCode(selected?.label ?? selectedValue); +}; + const createEmptyProfile = () => ({ apiId: null, userProfileName: '', @@ -1066,7 +1084,7 @@ const CompanyProfile = () => { - {form.industryCodeProduction && form.industryCodeBusiness && form.industryCodeBusiness !== form.industryCodeProduction && ( + {form.industryCodeProduction && form.industryCodeBusiness && extractIndustryCode(form.industryCodeBusiness) !== getIndustryCodeFromIsicSelection(form.industryCodeProduction, isicOptions) && (
{ employmentNonEmiratiFemale: data.non_emirati_female || 0, }; }; - + const computeEmploymentTotals = (data) => { const emiratiMale = parseInt(data.employmentEmiratiMale) || 0; const nonEmiratiMale = parseInt(data.employmentNonEmiratiMale) || 0; const emiratiFemale = parseInt(data.employmentEmiratiFemale) || 0; const nonEmiratiFemale = parseInt(data.employmentNonEmiratiFemale) || 0; - + const totalEmployees = emiratiMale + nonEmiratiMale + emiratiFemale + nonEmiratiFemale; const totalEmirati = emiratiMale + emiratiFemale; - + return { employmentTotalEmployees: totalEmployees, employmentTotalEmirati: totalEmirati }; }; - + +const extractIndustryCode = (value) => { + if (value === null || value === undefined) return ''; + const normalized = String(value).trim(); + if (!normalized) return ''; + + const leadingDigits = normalized.match(/^(\d+)/); + const beforeDash = normalized.split('-')[0]?.trim(); + const rawCode = (leadingDigits?.[1] ?? beforeDash ?? normalized); + + return String(rawCode).trim().replace(/^0+(?=\d)/, ''); +}; + +const getIndustryCodeFromIsicSelection = (selectedValue, options = []) => { + if (selectedValue === null || selectedValue === undefined || selectedValue === '') return ''; + const selected = options.find((opt) => String(opt?.value) === String(selectedValue)); + return extractIndustryCode(selected?.label ?? selectedValue); +}; + const EditCompanyProfile = () => { const navigate = useNavigate(); const { id: establishmentId } = useParams(); const [loading, setLoading] = useState(false); const [form, setForm] = useState(createEmptyProfile()); + const [activeStep, setActiveStep] = useState(0); const [fieldErrors, setFieldErrors] = useState({}); const [passwordError, setPasswordError] = useState(""); const [confirmError, setConfirmError] = useState(""); const [passwordReuseError, setPasswordReuseError] = useState(""); - + const [emirateOptions, setEmirateOptions] = useState([]); const [emirateLookup, setEmirateLookup] = useState({}); const [contactCityOptions, setContactCityOptions] = useState([]); @@ -109,7 +128,7 @@ const EditCompanyProfile = () => { const [checkedProducts, setCheckedProducts] = useState(new Set()); const initialSnapshotRef = useRef(null); const productListRef = useRef(null); - + const formSteps = React.useMemo( () => [ { label: 'Profile' }, @@ -120,7 +139,7 @@ const EditCompanyProfile = () => { ], [] ); - + const requiredFieldsByStep = React.useMemo( () => ({ 0: [ @@ -152,7 +171,7 @@ const EditCompanyProfile = () => { }), [] ); - + const validateStepFields = useCallback((stepIndex) => { setPasswordReuseError(""); @@ -184,7 +203,7 @@ const EditCompanyProfile = () => { }); return valid; }, [form, requiredFieldsByStep, selectedProducts, checkedProducts]); - + const handleFormChange = useCallback((field, value) => { // Clear remarks if either industry code field is changed if (field === 'industryCodeBusiness' || field === 'industryCodeCurrent') { @@ -222,7 +241,7 @@ const EditCompanyProfile = () => { })); } }, [fieldErrors]); - + const handleNext = useCallback(() => { if (validateStepFields(activeStep)) { if (activeStep < formSteps.length - 1) { @@ -230,11 +249,11 @@ const EditCompanyProfile = () => { } } }, [activeStep, formSteps.length, validateStepFields]); - + const handlePrev = useCallback(() => { if (activeStep > 0) setActiveStep(activeStep - 1); }, [activeStep]); - + // Load cities based on selected emirate using your service function const loadCities = useCallback(async (emirateName) => { if (!emirateName) { @@ -262,7 +281,7 @@ const EditCompanyProfile = () => { setIsLoadingCities(false); } }, [emirateOptions]); - + // Load products and filter out selected ones const loadProducts = useCallback(async () => { try { @@ -286,7 +305,7 @@ const EditCompanyProfile = () => { setIsLoadingProducts(false); } }, [selectedProducts]); - + // Product search handler const handleProductSearch = (e) => { const searchTerm = e.target.value.toLowerCase(); @@ -935,7 +954,7 @@ const EditCompanyProfile = () => { rows={3} /> */}
-{form.industryCodeBusiness && form.industryCodeBusiness !== form.industryCodeCurrent && ( +{form.industryCodeBusiness && extractIndustryCode(form.industryCodeBusiness) !== getIndustryCodeFromIsicSelection(form.industryCodeCurrent, isicOptions) && (