From 1ac4dc1c79a07e8a0ca5404317c38a69f55da716 Mon Sep 17 00:00:00 2001 From: cherif Date: Mon, 15 Jan 2024 17:11:12 +0100 Subject: [PATCH] 15/01/2024 - 17h00 --- src/components/Apprenant.js | 5 +- ...ashbord_Ressources_Humaines_Tache_Couts.js | 5 +- src/components/DisplayPartnerSession.js | 27 +- src/components/Employes.js | 447 +++++++++++++++--- src/components/Module_Agenda.js | 130 ++++- src/components/Partner.js | 4 +- src/components/Partner_Securite_Data.js | 27 +- src/components/QuisSommesNous_V2.js | 72 +++ src/components/Recherche_new_v2.js | 2 +- src/components/UpdatePartnerInfo.js | 96 +++- src/styles/components/_apprenant.scss | 10 + .../components/_displaypartnersession.scss | 12 +- .../components/_displaypartnerstagiaire.scss | 8 + src/styles/components/_employes.scss | 82 +++- src/styles/components/_quisommesnous_v2.scss | 4 +- 15 files changed, 774 insertions(+), 157 deletions(-) diff --git a/src/components/Apprenant.js b/src/components/Apprenant.js index ec7b2c5..f453ea7 100644 --- a/src/components/Apprenant.js +++ b/src/components/Apprenant.js @@ -17,6 +17,7 @@ import add_plus from "../mysy_img/plus.png"; import excel_icone from "../mysy_img/excel_icone.png"; import participants from "../mysy_img/participants.png"; import fileDownload from 'js-file-download' +import { FcInfo } from "react-icons/fc"; import Popup from 'reactjs-popup'; import 'reactjs-popup/dist/index.css'; import { FcSearch } from "react-icons/fc"; @@ -5512,7 +5513,7 @@ const Apprenant = (props) => { {p_detail_tuteur1_include_com === true && } @@ -5625,7 +5626,7 @@ const Apprenant = (props) => { {p_detail_tuteur2_include_com === true && } diff --git a/src/components/Dashbord_Ressources_Humaines_Tache_Couts.js b/src/components/Dashbord_Ressources_Humaines_Tache_Couts.js index e0c2cfc..908481b 100644 --- a/src/components/Dashbord_Ressources_Humaines_Tache_Couts.js +++ b/src/components/Dashbord_Ressources_Humaines_Tache_Couts.js @@ -220,9 +220,10 @@ const Dashbord_Ressources_Humaines_Tache_Couts = (props) => { const stored_cookie = getCookie('tokenmysypart'); var nom_fichier_cmd = "export_csv.csv"; + var nom_fichier_cmd_excel = "export_excel.xlsx"; //console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- local_dashbord_internal_id = ", local_dashbord_internal_id); - var url = process.env.REACT_APP_API_URL + "myclass/api/TBD_RH_01_Export_Dashbord_To_Csv/" + stored_cookie + "/" + local_dashbord_internal_id; + var url = process.env.REACT_APP_API_URL + "myclass/api/TBD_RH_01_Export_Dashbord_To_Excel/" + stored_cookie + "/" + local_dashbord_internal_id; //console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url); setLoading(true); @@ -233,7 +234,7 @@ const Dashbord_Ressources_Humaines_Tache_Couts = (props) => { if (String(res.data) === String("false")) { alert("Impossible d'exporter les données (2) "); } else { - fileDownload(res.data, nom_fichier_cmd) + fileDownload(res.data, nom_fichier_cmd_excel) } }).catch((error) => { diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index e4853c6..b46acac 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -1907,6 +1907,9 @@ const DisplayPartnerSession = (props) => { setGetall_Sequence_Of_Session_api("true"); setGetall_Sequence_Of_Session_result(res.data.message); + //console.log(" ##NB_Sequence = ", res.data.message.length); + setnb_sequence(res.data.message.length); + } else { setGetall_Sequence_Of_Session_api("false"); @@ -1960,7 +1963,8 @@ const DisplayPartnerSession = (props) => { /* Recuperation de la liste des inscrits */ const [nb_stagiaire_Inscrit, setnb_stagiaire_Inscrit] = useState("0"); - + + const [nb_sequence, setnb_sequence] = useState("0"); const [selectionModel_preinsc, setselectionModel_preinsc] = React.useState([]); @@ -2082,7 +2086,7 @@ const DisplayPartnerSession = (props) => { top: 0, behavior: "smooth", }); - alert(" Les sessions ont été correctement importées"); + alert(result['message']); } @@ -8384,7 +8388,6 @@ const DisplayPartnerSession = (props) => { // -- end convention const New_Option_Type_Ressource = [ - { "id": "0", "label": "Employe", "value": "ressource_humaine" }, { "id": "1", "label": "Materiel", "value": "ressource_materielle" }, ] @@ -9761,7 +9764,7 @@ const DisplayPartnerSession = (props) => { {selected_code_session && String(selected_code_session).length > 0 &&
- + @@ -11861,14 +11864,7 @@ const DisplayPartnerSession = (props) => {
- -   - - + {
)} - +   +
diff --git a/src/components/Employes.js b/src/components/Employes.js index 83abce5..12a93db 100644 --- a/src/components/Employes.js +++ b/src/components/Employes.js @@ -12,6 +12,9 @@ import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css"; import { Editor } from '@tinymce/tinymce-react'; import parse from 'html-react-parser'; import { FcViewDetails, FcDisapprove } from "react-icons/fc"; +import { FcPodiumWithAudience } from "react-icons/fc"; +import { FcInfo } from "react-icons/fc"; +import { LiaDharmachakraSolid } from "react-icons/lia"; import 'react-tooltip/dist/react-tooltip.css' import { Tooltip } from 'react-tooltip' import add_plus from "../mysy_img/plus.png"; @@ -43,7 +46,7 @@ import VisibilityOff from '@mui/icons-material/VisibilityOff'; import { Fab } from "@material-ui/core"; import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; - +import Autocomplete from '@mui/material/Autocomplete'; import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; const Employes = (props) => { @@ -81,9 +84,9 @@ const Employes = (props) => { const [p_filtre4_value, setp_filtre4_value] = useState(); const columns = [ - { field: '_id', headerName: '_id', hide: true, Width: 0 }, - { field: 'id', headerName: 'id', hide: true, Width: 0 }, - { field: 'date_naissance', headerName: 'date_naissance', hide: true , Width: 0}, + { field: '_id', headerName: '_id', hide: true, Width: 0 }, + { field: 'id', headerName: 'id', hide: true, Width: 0 }, + { field: 'date_naissance', headerName: 'date_naissance', hide: true, Width: 0 }, { field: 'civilite', headerName: 'Civilité', minWidth: 50, flex: 1, maxWidth: 100, hide: false, @@ -457,7 +460,7 @@ const Employes = (props) => { }).catch((error) => { console.warn('Not good man :( Getall_Employee_Acces_Right = ', error); setGetall_Employee_Acces_Right_api("false"); - alert(" Impossible de recuperer la matrice des droits d'acces de l'employé"); + alert(" Impossible de recuperer la matrice des Droits d'accès de l'employé"); //setmyApimyApiMessage("") }) } @@ -500,7 +503,7 @@ const Employes = (props) => { }).catch((error) => { console.warn('Not good man :( Getall_Profil_Acces_Right = ', error); setGetall_Profil_Acces_Right_api("false"); - alert(" Impossible de recuperer la matrice des droits d'acces du profile"); + alert(" Impossible de recuperer la matrice des Droits d'accès du profile"); //setmyApimyApiMessage("") }) } @@ -702,7 +705,7 @@ const Employes = (props) => { }).catch((error) => { console.warn('Not good man :( Check_User_Access_Right = ', error); setCheck_User_Access_Right_api("false"); - alert(" Impossible de recuperer la matrice des droits d'acces de l'employé"); + alert(" Impossible de recuperer la matrice des Droits d'accès de l'employé"); return 0; //setmyApimyApiMessage("") }) @@ -850,6 +853,12 @@ const Employes = (props) => { setp_one_detail_resp_hierarchie_nom(''); setp_one_detail_resp_hierarchie_prenom(''); + setp_detail_user_login(''); + setp_detail_lms_virtualhost_url(''); + setp_detail_mysy_lms_user_id(''); + setp_detail_lms_account_disable(''); + + } function handleClick_delete(event, cellValues) { @@ -895,8 +904,13 @@ const Employes = (props) => { const [p_detail_resp_hierarchie_nom, setp_detail_resp_hierarchie_nom] = useState(""); const [p_detail_resp_hierarchie_prenom, setp_detail_resp_hierarchie_prenom] = useState(""); - const [p_detail_user_login, setp_detail_user_login] = useState(); - const [p_detail_user_pass, setp_detail_user_pass] = useState(); + const [p_detail_user_login, setp_detail_user_login] = useState(""); + const [p_detail_lms_virtualhost_url, setp_detail_lms_virtualhost_url] = useState(""); + const [p_detail_mysy_lms_user_id, setp_detail_mysy_lms_user_id] = useState(""); + + const [p_detail_lms_account_disable, setp_detail_lms_account_disable] = useState(""); + + const [p_detail_user_pass, setp_detail_user_pass] = useState(""); const [p_one_detail_nom, setp_one_detail_nom] = useState(); @@ -1039,9 +1053,33 @@ const Employes = (props) => { setp_detail_user_login(mylocal_employe.user_login); setp_new_login(mylocal_employe.user_login) } else { - setp_new_login(mylocal_employe.email) + setp_new_login(mylocal_employe.email); + setp_detail_user_login(""); } + if (mylocal_employe.lms_virtualhost_url) { + setp_detail_lms_virtualhost_url(mylocal_employe.lms_virtualhost_url); + + } else { + setp_detail_lms_virtualhost_url(''); + } + + if (mylocal_employe.mysy_lms_user_id) { + setp_detail_mysy_lms_user_id(mylocal_employe.mysy_lms_user_id); + + } else { + setp_detail_mysy_lms_user_id(''); + } + + if (mylocal_employe.lms_account_disable) { + setp_detail_lms_account_disable(mylocal_employe.lms_account_disable); + + } else { + setp_detail_lms_account_disable(''); + } + + + setp_detail_ismanager("0"); if (mylocal_employe.ismanager) { @@ -1209,6 +1247,7 @@ const Employes = (props) => { }) } + const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([]); const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState(); const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState(); @@ -1233,6 +1272,33 @@ const Employes = (props) => { setGetall_Training_Employee_No_Filter_api("true"); setGetall_Training_Employee_No_Filter_result(res.data.message); setRows(res.data.message); + + var new_data2 = []; + const new_data = res.data.message.map((x) => { + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_nom = JSON.parse(x).nom; + var local_prenom = JSON.parse(x).prenom; + var local_ismanager = JSON.parse(x).ismanager; + + + //--- + var node = { + "_id": local_id, + "id": localid, + "label": local_nom + " " + local_prenom, + "nom": local_nom, + "prenom": local_prenom, + "ismanager": local_ismanager + }; + new_data2.push(node); + }); + + if (new_data2.length > 0) + setNew_Getall_Training_Employee_No_Filter_result(new_data2); + } else { setGetall_Training_Employee_No_Filter_api("false"); @@ -1277,7 +1343,7 @@ const Employes = (props) => { //console.log("token = " + stored_cookie); setLoading(true); - fetch( + fetch( process.env.REACT_APP_API_URL + "myclass/api/Add_Ressource_Humaine_mass/", { method: 'POST', @@ -2457,11 +2523,17 @@ const Employes = (props) => { setAdd_One_Employee_Data_api("true"); setAdd_One_Employee_Data_result(res.data.message); - Getall_Training_Employee(); + Getall_Training_Employee_No_Filter(); + Get_List_Managers(); setemployee_data_changed(""); setemployee_data_edit_mode(""); + clearEmployeeFields(); + setadd_One_Employee(""); + setselected_id(''); + setgridline_id(''); + setsubmenu(''); alert(res.data.message); if (document.getElementById('myRef_head')) { @@ -2681,6 +2753,34 @@ const Employes = (props) => { } + const New_Option_Oui_Non = [ + { + value: '1', + label: 'Oui', + }, + { + value: '0', + label: 'Non', + }, + + ]; + + + const New_Option_Civilite = [ + { + value: 'M', + label: 'M', + }, + { + value: 'Mme', + label: 'Mme', + }, + { + value: 'Neutre', + label: 'Neutre', + }, + ]; + const [display_affectation, setdisplay_affectation] = useState(); const [p_affect_poste, setp_affect_poste] = useState(); const [p_affect_date_du, setp_affect_date_du] = useState(new Date().toLocaleDateString('fr-FR')); @@ -3175,7 +3275,7 @@ const Employes = (props) => { setLoading(false); console.warn('UpdateStagiaireData : Not good man :( Update_user_access_right_Data = ' + error); setUpdate_user_access_right_Data_api("false"); - alert(" Impossible de mettre à jour les droits d'acces de l'employé"); + alert(" Impossible de mettre à jour les Droits d'accès de l'employé"); }) } @@ -4096,7 +4196,7 @@ const Employes = (props) => { return; } - + if (!p_employe_contrat_groupe_prix_achat_id || String(p_employe_contrat_groupe_prix_achat_id).trim() === "") { if (!p_employe_contrat_cout || String(p_employe_contrat_cout).trim() === "") { alert(" Le prix est obigatoire "); @@ -4111,7 +4211,7 @@ const Employes = (props) => { } - + const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); @@ -4228,6 +4328,94 @@ const Employes = (props) => { } + const [Create_Lms_Trainer_Account_api, setCreate_Lms_Trainer_Account_api] = useState(); + const [Create_Lms_Trainer_Account_message, setCreate_Lms_Trainer_Account_message] = useState(); + const [Create_Lms_Trainer_Account_result, setCreate_Lms_Trainer_Account_result] = useState(); + function Create_Lms_Trainer_Account() { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("rh_id", selected_id); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/HR_Create_LMS_Trainer_Account/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In Create_Lms_Trainer_Account res.data.status = " + res.data.status); + //console.log(" In Create_Lms_Trainer_Account res.data.message r_class = " + res.data.message); + setCreate_Lms_Trainer_Account_api("true"); + setCreate_Lms_Trainer_Account_result(res.data.message); + + handleClick_edit_employee_From_Line(gridline_id); + + alert(res.data.message); + } + else { + setCreate_Lms_Trainer_Account_api("false"); + setCreate_Lms_Trainer_Account_message(res.data.message); + alert(res.data.message) + } + + }).catch((error) => { + setLoading(false); + console.warn('Not good man :( Create_Lms_Trainer_Account = ', error); + setCreate_Lms_Trainer_Account_api("false"); + alert(" Impossible de créer les acces LMS pour Enseignant"); + //setmyApimyApiMessage("") + }) + } + + + const [Disable_Lms_Trainer_Account_api, setDisable_Lms_Trainer_Account_api] = useState(); + const [Disable_Lms_Trainer_Account_message, setDisable_Lms_Trainer_Account_message] = useState(); + const [Disable_Lms_Trainer_Account_result, setDisable_Lms_Trainer_Account_result] = useState(); + function Disable_Lms_Trainer_Account() { + + var form = new FormData(); + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("rh_id_to_disable", selected_id); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Disable_MySy_LMS_Account/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + if (String(res.data.status) === String("true")) { + + //console.log(" In Disable_Lms_Trainer_Account res.data.status = " + res.data.status); + //console.log(" In Disable_Lms_Trainer_Account res.data.message r_class = " + res.data.message); + setDisable_Lms_Trainer_Account_api("true"); + setDisable_Lms_Trainer_Account_result(res.data.message); + + handleClick_edit_employee_From_Line(gridline_id); + + alert(res.data.message); + } + else { + setDisable_Lms_Trainer_Account_api("false"); + setDisable_Lms_Trainer_Account_message(res.data.message); + alert(res.data.message) + } + + }).catch((error) => { + setLoading(false); + console.warn('Not good man :( Disable_Lms_Trainer_Account = ', error); + setDisable_Lms_Trainer_Account_api("false"); + alert(" Impossible de créer les acces LMS pour Enseignant"); + //setmyApimyApiMessage("") + }) + } + + return (
@@ -4316,7 +4504,7 @@ const Employes = (props) => {
Adresse postale
- {String(gridline_id) !== "" && Getall_Training_Employee_No_Filter_result && selected_id && + {String(gridline_id) !== "" && Getall_Training_Employee_No_Filter_result && selected_id && String(selected_id).length > 0 &&
{JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_adresse}
{JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_code_postal} {JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_ville}
@@ -4417,7 +4605,7 @@ const Employes = (props) => { > MySy Information - + Mise à jour Login & Mot de passe @@ -4498,7 +4686,7 @@ const Employes = (props) => { } } /> - +
@@ -4511,7 +4699,11 @@ const Employes = (props) => {
- + + + + +
@@ -5253,18 +5445,14 @@ const Employes = (props) => { setselected_row_data_json_age(""); get_Employee_Images(newSelectionModel.row._id); setgridline_id(newSelectionModel.row.id); - var local_date_naissance = newSelectionModel.row.date_naissance; - - if (local_date_naissance) { + if (newSelectionModel.row.date_naissance) { + var local_date_naissance = newSelectionModel.row.date_naissance; var date_eval = new Date(moment(local_date_naissance, "DD/MM/YYYY")); var diff = Date.now() - date_eval.getTime(); var age = new Date(diff); var reel_age = Math.abs(age.getUTCFullYear() - 1970); setselected_row_data_json_age(reel_age) - - - } setDialog_employe_open(true); @@ -5376,11 +5564,7 @@ const Employes = (props) => {
 
- {/*
- - - -
*/} +
@@ -5389,7 +5573,7 @@ const Employes = (props) => { {String(submenu) === "detail_employe" && String(add_One_Employee) !== "1" &&
- +
@@ -5978,49 +6162,97 @@ const Employes = (props) => { {/* -- end champs specifiques **/}
-
+
+
+
+
- {String(employee_data_edit_mode) !== "1" &&
Login
- +
+ Login & Mot de passe +
+ {String(p_detail_user_login) === "" && + } + /!\ Cet utilisateur n'a pas de login & mot de passe   + +
} + {String(employee_data_edit_mode) !== "1" &&
+ + + Login  
+
+ Login
- +
} - InputLabelProps={{ - shrink: true, - }} - disabled={false} - className="disabled_style" - value={p_detail_user_login} - /> -
} + + + {String(employee_data_edit_mode) === "1" &&
+ + Login
+ +  
+ + +
} +
+ +
+ +
+ Accès E-Learning +
+ {String(p_detail_lms_account_disable) === "1" || ( + String(p_detail_mysy_lms_user_id) === "" && String(p_detail_lms_virtualhost_url) === "" + && String(p_detail_user_login) !== "") && }  
+ + {String(p_detail_lms_account_disable) !== "1" && + String(p_detail_mysy_lms_user_id) !== "" && String(p_detail_lms_virtualhost_url) !== "" + && String(p_detail_user_login) !== "" && } +
-
+
+
+
+
+ Pièces jointes +
- Liste des pièces jointes
-