diff --git a/src/_screens/criteria/criteria-setting/index.js b/src/_screens/criteria/criteria-setting/index.js index f063b49..5371987 100644 --- a/src/_screens/criteria/criteria-setting/index.js +++ b/src/_screens/criteria/criteria-setting/index.js @@ -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,30 +61,93 @@ export default function CriteriaSetting() { } } - const saveCriteriaSetting = async () => { - try { - const dataSave = { - school_list: schoolList, - assign_number_active: criteriaTarget.assign.enable ? 1 : 0, - assign_number_target_1: criteriaTarget.assign.target1, - assign_number_target_2: criteriaTarget.assign.target2, - student_done_active: criteriaTarget.studentDone.enable ? 1 : 0, - student_done_target_1: criteriaTarget.studentDone.target1, - student_done_target_2: criteriaTarget.studentDone.target2, - } - const res = await apiCaller( - "/report/api_report/assignCriteriaToOrganization", - "PUT", - dataSave, - ); - if (res?.status) { - setAlertMessage(res?.msg); + 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 = { + school_list: schoolList, + assign_number_active: criteriaTarget.assign.enable ? 1 : 0, + assign_number_target_1: criteriaTarget.assign.target1, + assign_number_target_2: criteriaTarget.assign.target2, + 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); + } + + if (res?.status) { + setAlertMessage(res?.msg); + setShowAlert(true); + } + } catch (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; } - } catch (err) { - console.log("err: ", err); - } - } + }; 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 (
Quay lại - {authentication?.user?.role === USER_ROLE.ADMIN && ( - Lưu + {(authentication?.user?.role === USER_ROLE.ADMIN || authentication?.user?.role === USER_ROLE.HEADMASTER) && ( + Lưu )}