|
|
|
@ -26,6 +26,7 @@ export default function CriteriaSetting() { |
|
|
|
|
const [criteriaTarget, setCriteriaTarget] = useState(DEFAULT_SETTING_CRITERIA); |
|
|
|
|
const [showAlert, setShowAlert] = useState(false); |
|
|
|
|
const [alertMessage, setAlertMessage] = useState(""); |
|
|
|
|
const [isApply, setIsApply] = useState(false) |
|
|
|
|
|
|
|
|
|
const schoolList = isJsonString(decodeURIComponent(_schoolList)) |
|
|
|
|
? JSON.parse(decodeURIComponent(_schoolList)) |
|
|
|
@ -60,6 +61,35 @@ export default function CriteriaSetting() { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const isValid = () => { |
|
|
|
|
if (criteriaTarget.assign.enable) { |
|
|
|
|
if (!criteriaTarget.studentDone.enable) { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.assign.target1 &&
|
|
|
|
|
criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.assign.target1 < criteriaTarget.assign.target2) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.assign.target1 &&
|
|
|
|
|
criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.assign.target1 < criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.studentDone.target1 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target2 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} else if (criteriaTarget.studentDone.enable) { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.studentDone.target1 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target2 != null && |
|
|
|
|
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const saveCriteriaSetting = async () => { |
|
|
|
|
try { |
|
|
|
|
const dataSave = { |
|
|
|
@ -70,20 +100,54 @@ export default function CriteriaSetting() { |
|
|
|
|
student_done_active: criteriaTarget.studentDone.enable ? 1 : 0, |
|
|
|
|
student_done_target_1: criteriaTarget.studentDone.target1, |
|
|
|
|
student_done_target_2: criteriaTarget.studentDone.target2, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
let res; |
|
|
|
|
|
|
|
|
|
if (isApply) { |
|
|
|
|
res = await handleApply(dataSave); |
|
|
|
|
} else { |
|
|
|
|
res = await handleNonApply(dataSave); |
|
|
|
|
} |
|
|
|
|
const res = await apiCaller( |
|
|
|
|
"/report/api_report/assignCriteriaToOrganization", |
|
|
|
|
"PUT", |
|
|
|
|
dataSave, |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if (res?.status) { |
|
|
|
|
setAlertMessage(res?.msg); |
|
|
|
|
setShowAlert(true); |
|
|
|
|
} |
|
|
|
|
} catch (err) { |
|
|
|
|
console.log("err: ", err); |
|
|
|
|
console.error("Error: ", err); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const handleApply = async (dataSave) => { |
|
|
|
|
if (isValid()) { |
|
|
|
|
return await apiCaller( |
|
|
|
|
"/report/api_report/removeCriteriaFromOrganization", |
|
|
|
|
"PUT", |
|
|
|
|
{ school_list: schoolList } |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
return await apiCaller( |
|
|
|
|
"/report/api_report/assignCriteriaToOrganization", |
|
|
|
|
"PUT", |
|
|
|
|
dataSave |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const handleNonApply = async (dataSave) => { |
|
|
|
|
if (!isValid()) { |
|
|
|
|
return await apiCaller( |
|
|
|
|
"/report/api_report/assignCriteriaToOrganization", |
|
|
|
|
"PUT", |
|
|
|
|
dataSave |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
setAlertMessage("Bạn chưa thực hiện bất kỳ thay đổi nào"); |
|
|
|
|
setShowAlert(true); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const getData = async () => { |
|
|
|
|
try { |
|
|
|
@ -93,6 +157,7 @@ export default function CriteriaSetting() { |
|
|
|
|
"GET", |
|
|
|
|
); |
|
|
|
|
if (res?.status) { |
|
|
|
|
setIsApply(res?.data?.status_criteria ==='1') |
|
|
|
|
setCriteriaTarget({ |
|
|
|
|
assign: { |
|
|
|
|
target1: res?.data?.assign_number_target_1 || DEFAULT_SETTING_CRITERIA.assign.target1, |
|
|
|
@ -122,6 +187,7 @@ export default function CriteriaSetting() { |
|
|
|
|
"GET", |
|
|
|
|
); |
|
|
|
|
if (res?.status) { |
|
|
|
|
setIsApply(res?.data?.status_criteria ==='1') |
|
|
|
|
setCriteriaTarget({ |
|
|
|
|
assign: { |
|
|
|
|
target1: res?.data?.assign_number_target_1 || DEFAULT_SETTING_CRITERIA.assign.target1, |
|
|
|
@ -160,34 +226,6 @@ export default function CriteriaSetting() { |
|
|
|
|
return !isRead |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const isValid = () => { |
|
|
|
|
if (criteriaTarget.assign.enable) { |
|
|
|
|
if (!criteriaTarget.studentDone.enable) { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.assign.target1 &&
|
|
|
|
|
criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.assign.target1 < criteriaTarget.assign.target2) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.assign.target1 &&
|
|
|
|
|
criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.assign.target1 < criteriaTarget.assign.target2 &&
|
|
|
|
|
criteriaTarget.studentDone.target1 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target2 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} else if (criteriaTarget.studentDone.enable) { |
|
|
|
|
return ( |
|
|
|
|
!(criteriaTarget.studentDone.target1 != null &&
|
|
|
|
|
criteriaTarget.studentDone.target2 != null && |
|
|
|
|
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
const renderRightItem = ({ title, desc, valueName, unit, key, maxLengthInput }) => { |
|
|
|
|
return ( |
|
|
|
|
<div |
|
|
|
@ -339,8 +377,8 @@ export default function CriteriaSetting() { |
|
|
|
|
> |
|
|
|
|
Quay lại |
|
|
|
|
</PrimaryButton> |
|
|
|
|
{authentication?.user?.role === USER_ROLE.ADMIN && ( |
|
|
|
|
<PrimaryButton onClick={saveCriteriaSetting} isDisabled={isValid()}>Lưu</PrimaryButton> |
|
|
|
|
{(authentication?.user?.role === USER_ROLE.ADMIN || authentication?.user?.role === USER_ROLE.HEADMASTER) && ( |
|
|
|
|
<PrimaryButton onClick={saveCriteriaSetting}>Lưu</PrimaryButton> |
|
|
|
|
)} |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|