From 243d736481731ca311f3fe66c339bc0b890e28de Mon Sep 17 00:00:00 2001 From: cherif Date: Mon, 20 Mar 2023 19:27:58 +0100 Subject: [PATCH] 20/03/23 - 19h45 --- src/components/Abonnement.js | 144 ++++++++++++++++++++++++++++ src/components/UpdatePartnerInfo.js | 2 +- 2 files changed, 145 insertions(+), 1 deletion(-) diff --git a/src/components/Abonnement.js b/src/components/Abonnement.js index 824aab8..1aa0b8d 100644 --- a/src/components/Abonnement.js +++ b/src/components/Abonnement.js @@ -646,6 +646,9 @@ function Abonnement(props) { setchangepartnb_ftion(true); setnew_nb_formations(parnternbformation); get_production_service_by_pack(); + + get_current_active_class_mysy_and_lms(); + if (String(currentpack2).toLowerCase() === String("standard")) { setpackprice("50"); } @@ -708,6 +711,54 @@ function Abonnement(props) { }) } + + const [active_class_in_mysy, setactive_class_in_mysy] = useState(); + const [active_class_in_lms, setactive_class_in_lms] = useState(); + const [get_current_active_class_mysy_and_lms_api, setget_current_active_class_mysy_and_lms_api] = useState(); + const [get_current_active_class_mysy_and_lms_result, setget_current_active_class_mysy_and_lms_result] = useState(); + function get_current_active_class_mysy_and_lms() { + const formData = new FormData(); + const url = process.env.REACT_APP_API_URL + "myclass/api/Get_Active_Ftions_Mysy_and_Lms/"; + formData.append('token', stored_part); + + axios.post(url, formData).then(res => { + if (res.data.status != "False") { + //console.log(" In test res.data.status = " + res.data.status); + //console.log(" In test res.data.mysy_nb_active_class = " + res.data.mysy_nb_active_class); + setget_current_active_class_mysy_and_lms_api("true"); + setget_current_active_class_mysy_and_lms_result(res.data.message); + + + if (res.data.lms_nb_active_class) { + setactive_class_in_lms(res.data.lms_nb_active_class); + } + else { + setactive_class_in_lms("0"); + } + + if (res.data.mysy_nb_active_class) { + setactive_class_in_mysy(res.data.mysy_nb_active_class); + } + else { + setactive_class_in_mysy("0"); + } + + + + } + else { + //console.log(" In test res.data.status = " + res.data.status); + //console.log(" In test res.data.message = " + res.data.message); + setget_current_active_class_mysy_and_lms_api("false"); + + } + + }).catch((error) => { + console.warn('get_current_active_class_mysy_and_lms = ', error); + setget_current_active_class_mysy_and_lms_api("false"); + }) + } + const [neworderid, setneworderid] = useState(""); const [New_Ordervalidation_api, setNew_Ordervalidation_api] = useState(); const [New_Ordervalidation_message, setNew_Ordervalidation_message] = useState(); @@ -761,6 +812,12 @@ function Abonnement(props) { setchangepartnb_ftion(false); setparnternbformation(new_nb_formations); + // Mise à jour du module LMS si les conditions sont remplies. + MySy_LMS_Account_Management(); + + // Mise à jour du plan de payement + Update_Payement_Plan_Qty(); + } else { setNew_Ordervalidation_api("false"); @@ -778,6 +835,72 @@ function Abonnement(props) { } + // Mise à jour du compte LMs Mysy + const [MySy_LMS_Account_Management_api, setMySy_LMS_Account_Management_api] = useState(""); + const [MySy_LMS_Account_Management_message, setMySy_LMS_Account_Management_message] = useState(""); + function MySy_LMS_Account_Management() { + + var formData_tpm = new FormData(); + formData_tpm.append('token', stored_part); + //formData_tpm.append('stripe_payment_id', stripe_pi); + //formData_tpm.append('packs', packs); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/"; + + axios.post(myurl, formData_tpm).then(res => { + console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message); + if (String(res.data.status) === String("true")) { + setMySy_LMS_Account_Management_api("true"); + + } + else { + setMySy_LMS_Account_Management_api("false") + setMySy_LMS_Account_Management_message(String(res.data.message)) + } + + + }).catch((error) => { + console.log('In MySy_LMS_Account_Management ', error); + setMySy_LMS_Account_Management_api("false") + + }) + + } + + // Mise à jour du compte LMs Mysy + const [Update_Payement_Plan_Qty_api, setUpdate_Payement_Qty_Plan_api] = useState(""); + const [Update_Payement_Plan_Qty_message, setUpdate_Payement_Qty_Plan_message] = useState(""); + function Update_Payement_Plan_Qty() { + + var formData_tpm = new FormData(); + formData_tpm.append('token', stored_part); + formData_tpm.append('qty', new_nb_formations); + formData_tpm.append('old_qty', parnternbformation); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/strip_update_subscription_qty/"; + + axios.post(myurl, formData_tpm).then(res => { + console.log('In Update_Payement_Plan status = ', res.data.status, " -- message = ", res.data.message); + if (String(res.data.status) === String("true")) { + setUpdate_Payement_Qty_Plan_api("true"); + + } + else { + setUpdate_Payement_Qty_Plan_api("false") + setUpdate_Payement_Qty_Plan_message(String(res.data.message)) + } + + + }).catch((error) => { + console.log('In Update_Payement_Plan_Qty ', error); + setUpdate_Payement_Qty_Plan_api("false") + + }) + + } + function confirmSNEwAbonnement() { confirmAlert({ title: '', @@ -803,6 +926,27 @@ function Abonnement(props) { alert(" Le nombre de formations est identique à l'abonnement actuel."); return; } + + /* + Important : + Pour reduire le nombre de formation, l'utilisateur doit desactiver les formations dans le LMS et dans mysy + de sorte à ce que le nouveau nombre de formation acheté ne soit pas inferieurs aux nombres de formations active + si non le systeme refuse. + */ + + if (active_class_in_lms && parseInt(active_class_in_lms) > parseInt(new_nb_formations)) { + alert("Vous avez " + active_class_in_lms + " formation(s) active(s) dans le LMS, vous devez réduire ce nombre à au moins " + new_nb_formations + "."); + return; + } + + if (active_class_in_mysy && parseInt(active_class_in_mysy) > parseInt(new_nb_formations)) { + + alert("Vous avez " + active_class_in_mysy + " formation(s) publiée(s) dans le moteur de recherche, vous devez réduire ce nombre à au moins " + new_nb_formations + "."); + + return; + } + + confirmSNEwAbonnement(); } diff --git a/src/components/UpdatePartnerInfo.js b/src/components/UpdatePartnerInfo.js index 4f6e766..09d5b75 100644 --- a/src/components/UpdatePartnerInfo.js +++ b/src/components/UpdatePartnerInfo.js @@ -176,7 +176,7 @@ function UpdateParnterInfo() { function UpdatePartnerPwd() { - setupdatepwd(false); + //setupdatepwd(false); const url = process.env.REACT_APP_API_URL + "myclass/api/update_partner_pwd/"; const formData = new FormData(); formData.append('token', stored_user);