diff --git a/src/components/Apprenant.js b/src/components/Apprenant.js index 7685f29..874fd68 100644 --- a/src/components/Apprenant.js +++ b/src/components/Apprenant.js @@ -23,7 +23,7 @@ import { FcSearch } from "react-icons/fc"; import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; -import { format } from 'date-fns' +import { format, set } from 'date-fns' import moment from "moment"; import InputAdornment from '@mui/material/InputAdornment'; import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai"; @@ -49,6 +49,7 @@ import { HiDocumentCheck } from "react-icons/hi2"; import { BsSend } from "react-icons/bs"; import Autocomplete from '@mui/material/Autocomplete'; import { FcOpenedFolder } from "react-icons/fc"; +import Module_Absence from "./Module_Absence"; const Apprenant = (props) => { @@ -70,7 +71,7 @@ const Apprenant = (props) => { const columns = [ { field: 'id', headerName: 'id', hide: true }, { field: '_id', headerName: '_id', hide: true }, - { field: 'civilite', headerName: 'Civ.', hide: false, flex: 1, minWidth: 20, maxWidth: 50 }, + { field: 'civilite', headerName: 'Civ.', hide: false, flex: 1, minWidth: 50, maxWidth: 70 }, { field: 'nom', headerName: 'Nom', hide: false, flex: 1, minWidth: 250 }, { field: 'prenom', headerName: 'Prénom', hide: false, flex: 1, minWidth: 250 }, { field: 'email', headerName: 'Email', hide: false, flex: 1, minWidth: 250 }, @@ -84,6 +85,7 @@ const Apprenant = (props) => { @@ -160,6 +159,117 @@ const Apprenant = (props) => { ] + const columns_apprenant_inscriptions = [ + { field: 'id', headerName: 'id', hide: true }, + { field: '_id', headerName: '_id', hide: true }, + { field: 'session_id', headerName: 'session_id', hide: true, Width: 1 }, + { field: 'session_code', headerName: 'Code Session', hide: false, flex: 1, minWidth: 100, }, + { field: 'class_title', headerName: 'Titre Formation', hide: false, flex: 1, minWidth: 150, }, + { field: 'class_internal_url', headerName: 'class_internal_url', hide: true, Width: 1 }, + { field: 'status', headerName: 'Statut', hide: false, flex: 1, minWidth: 50, maxWidth: 70 }, + { field: 'date_debut', headerName: 'Début', hide: false, flex: 1, minWidth: 150, maxWidth: 200 }, + { field: 'date_fin', headerName: 'Fin', hide: false, flex: 1, minWidth: 150, maxWidth: 200 }, + { field: 'presentiel', headerName: 'Présentiel', hide: false, flex: 1, minWidth: 50, maxWidth: 70 }, + { field: 'distanciel', headerName: 'Distantiel', hide: false, flex: 1, minWidth: 50, maxWidth: 70 }, + + + + { + field: "Detail", headerName: 'Voir detail', + renderCell: (cellValues) => { + return ( + + + + ); + } + }, + + { + field: "delete", headerName: 'Supprimer', + renderCell: (cellValues) => { + return ( + + + + + } + modal + nested + position="center center" + > + {close => ( +
+ +
MySy Information
+
+ {' '} + + En confirmant cette opération, la session de formation sera définitivement supprimée.
+ +
+
+
+ + +
+
+ +
+
+
+ )} +
+ + + ); + } + }, + + + ] + + + function handleClick_delete_Apprenant(event, cellValues) { + + setgridline_id(''); + setadd_One_Apprenant(''); + setapprenant_data_edit_mode(''); + setapprenant_data_changed(''); + + var local_apprenant_id = cellValues.row._id; + + + Delete_Apprenant_Data(local_apprenant_id); + } + + const [p_detail_civilite, setp_detail_civilite] = useState(""); const [p_detail_email, setp_detail_email] = useState(""); const [p_detail_nom, setp_detail_nom] = useState(""); @@ -273,7 +383,7 @@ const Apprenant = (props) => { function Get_Current_Apprenant_Data(local_selected_apprenant_id) { var my_id = local_selected_apprenant_id; - if (selected_apprenant_id) + if (!local_selected_apprenant_id) my_id = selected_apprenant_id Clear_Detail_Apprenant_Fields(); @@ -498,11 +608,136 @@ const Apprenant = (props) => { } + + const [Record_All_PJ_api, setRecord_All_PJ_api] = useState(); + const [Record_All_PJ_result, setRecord_All_PJ_result] = useState(); + const [Record_All_PJ_message, setRecord_All_PJ_message] = useState(); + function Record_All_PJ() { + + if (!p_detail_one_file_to_download_type_name) { + alert(" Vous devez donner un nom à la pièce jointe"); + return; + } + + if (file_1_name && file_1_name.name) { + console.log(" ### Traitement de : ", file_1_name.name); + + const formData = new FormData(); + formData.append('File', file_1_name); + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + formData.append("token", stored_cookie); + formData.append("file_business_object", p_detail_one_file_to_download_type_name); + formData.append("file_name", file_1_name.name); + formData.append("status", "0"); + formData.append("object_owner_collection", "apprenant"); + formData.append("object_owner_id", selected_apprenant_id); + + //formData.append("class_internal_url", internal_url); + //console.log("token = " + stored_cookie); + + + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Store_User_Downloaded_File/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + + //console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Success:', result['message']); + setRecord_All_PJ_result(result['message']); + setRecord_All_PJ_api("true"); + + Get_List_Of_All_PJ(selected_apprenant_id); + setfile_1_name(); + setp_detail_one_file_to_download_type_name(); + //GetCurrentClass_trainingsession(); + alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée") + + } + else { + setRecord_All_PJ_message(result['message']); + setRecord_All_PJ_api("false"); + } + + }) + .catch((error) => { + console.error(' Record_All_PJ Error:', error); + setRecord_All_PJ_api("false"); + }); + + } + + if (file_2_name && file_2_name.name) { + console.log(" ### Traitement de : ", file_2_name.name); + } + + } + + + const [Delete_one_attached_document_api, setDelete_one_attached_document_api] = useState(); + const [Delete_one_attached_document_result, setDelete_one_attached_document_result] = useState(); + const [Delete_one_attached_document_message, setDelete_one_attached_document_message] = useState(); + const Delete_one_attached_document = (event) => { + const stored_cookie = getCookie('tokenmysypart'); + + var formData = new FormData(); + var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; + var file_name = event.target.id; + + + formData.append("token", stored_cookie); + formData.append("file_name", file_name); + + var url = process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/"; + + + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + + //console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Success:', result['message']); + setDelete_one_attached_document_result(result['message']); + setDelete_one_attached_document_api("true"); + Get_List_Of_All_PJ(selected_apprenant_id); + alert(result['message']) + + } + else { + setDelete_one_attached_document_message(result['message']); + setDelete_one_attached_document_api("false"); + } + + }) + .catch((error) => { + console.error(' Record_All_PJ Error:', error); + setDelete_one_attached_document_api("false"); + alert(" Impossible de supprimer le document") + + }); + + + } + + const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState(); const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); - - function Get_List_Of_All_PJ(local_employee_id) { + function Get_List_Of_All_PJ(local_apprenand_id) { const formData = new FormData(); @@ -510,8 +745,8 @@ const Apprenant = (props) => { const stored_cookie = getCookie('tokenmysypart'); formData.append("token", stored_cookie); - formData.append("object_owner_collection", "inscription"); - formData.append("object_owner_id", local_employee_id); + formData.append("object_owner_collection", "apprenant"); + formData.append("object_owner_id", local_apprenand_id); //formData.append("class_internal_url", internal_url); @@ -552,13 +787,25 @@ const Apprenant = (props) => { + function Delete_file_1_name() { + setfile_1_name(); + } + + function Delete_file_2_name() { + setfile_2_name(); + } + + const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState(); + + + const [getPartnerImages_api, setgetPartnerImages_api] = useState(); const [getPartnerImages_message, setgetPartnerImages_message] = useState(); const [getPartnerImages_result, setgetPartnerImages_result] = useState(); function Get_Apprenant_Images(local_selected_apprenant_id) { var my_id = local_selected_apprenant_id; - if (selected_apprenant_id) + if (!local_selected_apprenant_id) my_id = selected_apprenant_id var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Apprenant_Recorded_Image_from_front/"; @@ -639,9 +886,137 @@ const Apprenant = (props) => { setfield_detail_tuteur2_email(''); setfield_detail_tuteur2_telephone(''); + setisimgclassSelected(""); + setuserimgclassprofil(""); + setisimgclassSelected_recid(""); + + + + + if (document.getElementsByName("field_detail_civilite") && document.getElementsByName("field_detail_civilite")[0]) { + document.getElementsByName("field_detail_civilite")[0].value = ""; + } + + if (document.getElementsByName("field_detail_email") && document.getElementsByName("field_detail_email")[0]) { + document.getElementsByName("field_detail_email")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_nom") && document.getElementsByName("field_detail_nom")[0]) { + document.getElementsByName("field_detail_nom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_prenom") && document.getElementsByName("field_detail_prenom")[0]) { + document.getElementsByName("field_detail_prenom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_telephone") && document.getElementsByName("field_detail_telephone")[0]) { + document.getElementsByName("field_detail_telephone")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_employeur") && document.getElementsByName("field_detail_employeur")[0]) { + document.getElementsByName("field_detail_employeur")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_adresse") && document.getElementsByName("field_detail_adresse")[0]) { + document.getElementsByName("field_detail_adresse")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_code_postal") && document.getElementsByName("field_detail_code_postal")[0]) { + document.getElementsByName("field_detail_code_postal")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_ville") && document.getElementsByName("field_detail_ville")[0]) { + document.getElementsByName("field_detail_ville")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_pays") && document.getElementsByName("field_detail_pays")[0]) { + document.getElementsByName("field_detail_pays")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur1_nom") && document.getElementsByName("field_detail_tuteur1_nom")[0]) { + document.getElementsByName("field_detail_tuteur1_nom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur1_nom") && document.getElementsByName("field_detail_tuteur1_nom")[0]) { + document.getElementsByName("field_detail_tuteur1_nom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur1_prenom") && document.getElementsByName("field_detail_tuteur1_prenom")[0]) { + document.getElementsByName("field_detail_tuteur1_prenom")[0].value = ""; + ; + } + + if (document.getElementsByName("field_detail_tuteur1_email") && document.getElementsByName("field_detail_tuteur1_email")[0]) { + document.getElementsByName("field_detail_tuteur1_email")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur1_telephone") && document.getElementsByName("field_detail_tuteur1_telephone")[0]) { + document.getElementsByName("field_detail_tuteur1_telephone")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur2_nom") && document.getElementsByName("field_detail_tuteur2_nom")[0]) { + document.getElementsByName("field_detail_tuteur2_nom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur2_prenom") && document.getElementsByName("field_detail_tuteur2_prenom")[0]) { + document.getElementsByName("field_detail_tuteur2_prenom")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur2_email") && document.getElementsByName("field_detail_tuteur2_email")[0]) { + document.getElementsByName("field_detail_tuteur2_email")[0].value = ""; + + } + + if (document.getElementsByName("field_detail_tuteur2_telephone") && document.getElementsByName("field_detail_tuteur2_telephone")[0]) { + document.getElementsByName("field_detail_tuteur2_telephone")[0].value = ""; + + } + + } + function Clear_One_Apprenant_Fields() { + + setp_one_civilite(''); + setp_one_email(''); + setp_one_nom(''); + setp_one_prenom(''); + setp_one_telephone(''); + setp_one_employeur(''); + setp_one_client_rattachement_id(''); + setp_one_adresse(''); + setp_one_code_postal(''); + setp_one_ville(''); + setp_one_pays(''); + + setp_one_tuteur1_nom(''); + setp_one_tuteur1_prenom(''); + setp_one_tuteur1_email(''); + setp_one_tuteur1_telephone(''); + setp_one_tuteur2_nom(''); + setp_one_tuteur2_prenom(''); + setp_one_tuteur2_email(''); + setp_one_tuteur2_telephone(''); + + } + + function Disable_Detail_Apprenant_Fields() { @@ -745,23 +1120,374 @@ const Apprenant = (props) => { } + function Enable_Detail_Apprenant_Fields() { + + setapprenant_data_edit_mode('1'); + + + if (document.getElementsByName("field_detail_civilite") && document.getElementsByName("field_detail_civilite")[0]) { + document.getElementsByName("field_detail_civilite")[0].disabled = false; + document.getElementsByName("field_detail_civilite")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_email") && document.getElementsByName("field_detail_email")[0]) { + document.getElementsByName("field_detail_email")[0].disabled = false; + document.getElementsByName("field_detail_email")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_nom") && document.getElementsByName("field_detail_nom")[0]) { + document.getElementsByName("field_detail_nom")[0].disabled = false; + document.getElementsByName("field_detail_nom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_prenom") && document.getElementsByName("field_detail_prenom")[0]) { + document.getElementsByName("field_detail_prenom")[0].disabled = false; + document.getElementsByName("field_detail_prenom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_telephone") && document.getElementsByName("field_detail_telephone")[0]) { + document.getElementsByName("field_detail_telephone")[0].disabled = false; + document.getElementsByName("field_detail_telephone")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_employeur") && document.getElementsByName("field_detail_employeur")[0]) { + document.getElementsByName("field_detail_employeur")[0].disabled = false; + document.getElementsByName("field_detail_employeur")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_adresse") && document.getElementsByName("field_detail_adresse")[0]) { + document.getElementsByName("field_detail_adresse")[0].disabled = false; + document.getElementsByName("field_detail_adresse")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_code_postal") && document.getElementsByName("field_detail_code_postal")[0]) { + document.getElementsByName("field_detail_code_postal")[0].disabled = false; + document.getElementsByName("field_detail_code_postal")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_ville") && document.getElementsByName("field_detail_ville")[0]) { + document.getElementsByName("field_detail_ville")[0].disabled = false; + document.getElementsByName("field_detail_ville")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_pays") && document.getElementsByName("field_detail_pays")[0]) { + document.getElementsByName("field_detail_pays")[0].disabled = false; + document.getElementsByName("field_detail_pays")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur1_nom") && document.getElementsByName("field_detail_tuteur1_nom")[0]) { + document.getElementsByName("field_detail_tuteur1_nom")[0].disabled = false; + document.getElementsByName("field_detail_tuteur1_nom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur1_nom") && document.getElementsByName("field_detail_tuteur1_nom")[0]) { + document.getElementsByName("field_detail_tuteur1_nom")[0].disabled = false; + document.getElementsByName("field_detail_tuteur1_nom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur1_prenom") && document.getElementsByName("field_detail_tuteur1_prenom")[0]) { + document.getElementsByName("field_detail_tuteur1_prenom")[0].disabled = false; + document.getElementsByName("field_detail_tuteur1_prenom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur1_email") && document.getElementsByName("field_detail_tuteur1_email")[0]) { + document.getElementsByName("field_detail_tuteur1_email")[0].disabled = false; + document.getElementsByName("field_detail_tuteur1_email")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur1_telephone") && document.getElementsByName("field_detail_tuteur1_telephone")[0]) { + document.getElementsByName("field_detail_tuteur1_telephone")[0].disabled = false; + document.getElementsByName("field_detail_tuteur1_telephone")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur2_nom") && document.getElementsByName("field_detail_tuteur2_nom")[0]) { + document.getElementsByName("field_detail_tuteur2_nom")[0].disabled = false; + document.getElementsByName("field_detail_tuteur2_nom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur2_prenom") && document.getElementsByName("field_detail_tuteur2_prenom")[0]) { + document.getElementsByName("field_detail_tuteur2_prenom")[0].disabled = false; + document.getElementsByName("field_detail_tuteur2_prenom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur2_email") && document.getElementsByName("field_detail_tuteur2_email")[0]) { + document.getElementsByName("field_detail_tuteur2_email")[0].disabled = false; + document.getElementsByName("field_detail_tuteur2_email")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("field_detail_tuteur2_telephone") && document.getElementsByName("field_detail_tuteur2_telephone")[0]) { + document.getElementsByName("field_detail_tuteur2_telephone")[0].disabled = false; + document.getElementsByName("field_detail_tuteur2_telephone")[0].style.backgroundColor = "#FFFFFF"; + } + + + + } + + function Annule_Detail_Apprenant_Fields() { + + setdisplay_detail_apprenant('1'); + + Get_Current_Apprenant_Data(selected_apprenant_id); + Get_Apprenant_Images(selected_apprenant_id); + Get_List_Of_All_PJ(selected_apprenant_id); + + setapprenant_data_changed(""); + setapprenant_data_edit_mode(""); + setadd_One_Apprenant(''); + + + } + + + const [Update_Apprenant_Data_api, setUpdate_Apprenant_Data_api] = useState(); + const [Update_Apprenant_Data_message, setUpdate_Apprenant_Data_message] = useState(); + const [Update_Apprenant_Data_result, setUpdate_Apprenant_Data_result] = useState(); + function Update_Apprenant_Data() { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + if (p_detail_nom.trim() == "") { + alert(" Vous devez saisir le nom de l'apprenant"); + return; + } + + + if (p_detail_prenom.trim() == "") { + alert(" Vous devez saisir le prenom de l'apprenant"); + return; + } + + + if (p_detail_email.trim() == "") { + alert(" Vous devez saisir l'email de l'apprenant"); + return; + } + + if (p_detail_civilite.trim() == "") { + alert(" Vous devez saisir la civilité de l'apprenant"); + return; + } + + + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_detail_email.trim().match(validRegex)) { + alert("L'adresse email est invalide."); + return; + } + + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("_id", selected_apprenant_id); + form.append("nom", p_detail_nom); + form.append("email", p_detail_email); + form.append("prenom", p_detail_prenom); + form.append("civilite", p_detail_civilite); + + if (p_detail_telephone) + form.append("telephone", p_detail_telephone); + else + form.append("telephone", ""); + + + if (p_detail_employeur) + form.append("employeur", p_detail_employeur); + else + form.append("employeur", ""); + + + if (p_detail_client_rattachement_id) + form.append("client_rattachement_id", p_detail_client_rattachement_id); + else + form.append("client_rattachement_id", ""); + + + if (p_detail_adresse) + form.append("adresse", p_detail_adresse); + else + form.append("adresse", ""); + + if (p_detail_code_postal) + form.append("code_postal", p_detail_code_postal); + else + form.append("code_postal", ""); + + + if (p_detail_ville) + form.append("ville", p_detail_ville); + else + form.append("ville", ""); + + if (p_detail_pays) + form.append("pays", p_detail_pays); + else + form.append("pays", ""); + + + if (p_detail_tuteur1_nom) + form.append("tuteur1_nom", p_detail_tuteur1_nom); + else + form.append("tuteur1_nom", ""); + + if (p_detail_tuteur1_prenom) + form.append("tuteur1_prenom", p_detail_tuteur1_prenom); + else + form.append("tuteur1_prenom", ""); + + + if (p_detail_tuteur1_email) { + form.append("tuteur1_email", p_detail_tuteur1_email); + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_detail_tuteur1_email.trim().match(validRegex)) { + alert("L'adresse email du tuteur 1 est invalide."); + return; + } + } + else + form.append("tuteur1_email", ""); + + if (p_detail_tuteur1_telephone) + form.append("tuteur1_telephone", p_detail_tuteur1_telephone); + else + form.append("tuteur1_telephone", ""); + + + if (p_detail_tuteur2_nom) + form.append("tuteur2_nom", p_detail_tuteur2_nom); + else + form.append("tuteur2_nom", ""); + + if (p_detail_tuteur2_prenom) + form.append("tuteur2_prenom", p_detail_tuteur2_prenom); + else + form.append("tuteur2_prenom", ""); + + + if (p_detail_tuteur2_email) { + form.append("tuteur2_email", p_detail_tuteur2_email); + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_detail_tuteur2_email.trim().match(validRegex)) { + alert("L'adresse email du tuteur 2 est invalide."); + return; + } + } + else + form.append("tuteur2_email", ""); + + if (p_detail_tuteur2_telephone) + form.append("tuteur2_telephone", p_detail_tuteur2_telephone); + else + form.append("tuteur2_telephone", ""); + + + /* + Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire + */ + for (let i = 0; i < spec_field_updated_values_hooks.length; i++) { + var local_value = String(spec_field_updated_values_hooks[i].field_value); + + + if (String(spec_field_updated_values_hooks[i].field_type) === "float") { + + local_value = local_value.replaceAll(",", "."); + + if (isNaN(local_value)) { + alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " doit être numérique.") + return; + } + + } + else if (String(spec_field_updated_values_hooks[i].field_type) === "string") { + + } + + + if (String(spec_field_updated_values_hooks[i].is_mandatory) === "1") { + if (String(local_value).trim().length <= 0) { + alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " est obligatoire.") + return; + } + + } + + form.append(String(spec_field_updated_values_hooks[i].field_name), local_value); + } + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Apprenant/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Update_Apprenant_Data res.data.status = " + res.data.status); + //console.log(" In Update_Apprenant_Data res.data.message r_class = " + res.data.message); + + setLoading(false); + if (String(res.data.status) === String("true")) { + setUpdate_Apprenant_Data_api("true"); + setUpdate_Apprenant_Data_result(res.data.message); + + Get_All_Apprenant(); + Show_Detailled_Apprenant_Data(); + + Disable_Detail_Apprenant_Fields(); + + alert(res.data.message); + + + if (document.getElementById('myRef_head')) { + var divh = document.getElementById('myRef_head').offsetTop; + window.scrollTo({ + top: divh, + behavior: "smooth", + }); + } + + } + else { + + setUpdate_Apprenant_Data_api("false"); + setUpdate_Apprenant_Data_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('UpdateStagiaireData : Not good man :( Update_Apprenant_Data = ' + error); + setUpdate_Apprenant_Data_api("false"); + alert(" Impossible de mettre à jour l'apprenant"); + + }) + } + const spec_field_updated_values = [] const [spec_field_updated_values_hooks, setspec_field_updated_values_hooks] = useState([]); + const [selected_apprenant_email, setselected_apprenant_email] = useState(""); + function handleClick_edit_apprenant_From_Line(selected_row_id) { + Clear_Detail_Apprenant_Fields(); var line = JSON.parse(Get_All_Apprenant_result[selected_row_id]); - setadd_One_Apprenant(''); setdisplay_detail_apprenant('1'); + setgridline_id(selected_row_id); setselected_apprenant_id(line._id); + setselected_apprenant_email(line.email); + Get_Current_Apprenant_Data(line._id); + + Get_Apprenant_Images(line._id); Get_List_Of_All_PJ(line._id); + + Get_Appenant_List_Inscription(line._id); + } @@ -819,6 +1545,39 @@ const Apprenant = (props) => { setDialog_2_open(false); }; + + const [Dialog_apprenant_message, setDialog_apprenant_message] = React.useState(false); + const [Dialog_apprenant_open, setDialog_apprenant_open] = React.useState(false); + function Dialog_apprenant_handle_change_participant_session(message) { + setDialog_apprenant_message(message); + setDialog_apprenant_open(true); + } + + const Dialog_apprenant_handleClose = () => { + + }; + + const Dialog_apprenant_handleClose_buton = () => { + setDialog_apprenant_open(false); + }; + + + const [Dialog_add_inscription_message, setDialog_add_inscription_message] = React.useState(false); + const [Dialog_add_inscription_open, setDialog_add_inscription_open] = React.useState(false); + function Dialog_add_inscription_handle_change_participant_session(message) { + setDialog_add_inscription_message(message); + setDialog_add_inscription_open(true); + } + + const Dialog_add_inscription_handleClose = () => { + + }; + + const Dialog_add_inscription_handleClose_buton = () => { + setDialog_add_inscription_open(false); + }; + + const [actionmass_ftion_val, setactionmass_ftion_val] = useState(); const actionmass_ftion = (event) => { const value = event.target.value; @@ -1181,19 +1940,130 @@ const Apprenant = (props) => { }) } + + const [Get_Appenant_List_Inscription_api, setGet_Appenant_List_Inscription_api] = useState(); + const [Get_Appenant_List_Inscription_message, setGet_Appenant_List_Inscription_message] = useState(); + const [Get_Appenant_List_Inscription_result, setGet_Appenant_List_Inscription_result] = useState([]); + function Get_Appenant_List_Inscription(local_selecte_apprenant_id) { + + var form = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + + form.append("token", stored_cookie); + form.append("_id", local_selecte_apprenant_id); + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Apprenant_List_Inscription/"; + + axios.post(myurl, form).then(res => { + //console.log(" In Get_Appenant_List_Inscription res.data.status = " + res.data.status); + //console.log(" In Get_Appenant_List_Inscription res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setGet_Appenant_List_Inscription_api("true"); + setGet_Appenant_List_Inscription_result(res.data.message); + } + else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setGet_Appenant_List_Inscription_api("false"); + setGet_Appenant_List_Inscription_message(res.data.message); + alert('Erreur: ' + res.data.message); + } + + }).catch((error) => { + console.warn('Not good man :( Get_Appenant_List_Inscription = ', error); + setGet_Appenant_List_Inscription_api("false"); + alert('Erreur: Impossible de recuperer la liste des inscriptions'); + }) + } + const myRef_details = useRef(null) + + + const [New_Getall_TrainingSession_result, setNew_Getall_TrainingSession_result] = useState(); + + const [Getall_TrainingSession_api, setGetall_TrainingSession_api] = useState(); + const [Getall_TrainingSession_message, setGetall_TrainingSession_message] = useState(); + const [Getall_TrainingSession_result, setGetall_TrainingSession_result] = useState(); + function Getall_TrainingSession(event) { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/"; + + + axios.post(myurl, form).then(res => { + + if (String(res.data.status) === String("true")) { + //console.log(" In Getall_TrainingSession res.data.status = " + res.data.status); + //console.log(" In Getall_TrainingSession res.data.message r_class = " + res.data.message); + setGetall_TrainingSession_api("true"); + setGetall_TrainingSession_result(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_internal_url = JSON.parse(x).class_internal_url; + var local_title_session = JSON.parse(x).titre; + var local_code_session = JSON.parse(x).code_session; + + + + //--- + var node = { + "_id": local_id, + "id": localid, + "label": local_code_session, + "class_internal_url": local_internal_url, + "titre": local_title_session, + "code_session": local_code_session, + }; + new_data2.push(node); + + // return {"_id": " + str(local_id) + ", "label": " + local_courrier_template_ref_interne + '" , "courrier_template_ref_interne": "' + local_courrier_template_ref_interne + '", "nom_champ_technique": "' + local_nom_champ_technique + '", "nom_champ_fonctionel": "' + local_nom_champ_fonctionel + '","valide": "1" }; + + }); + + + if (new_data2.length > 0) + setNew_Getall_TrainingSession_result(new_data2); + + //console.log(" ### new_data2 = ", new_data2) + + + } + else { + setGetall_TrainingSession_api("false"); + setGetall_TrainingSession_message(res.data.message); + } + + }).catch((error) => { + console.warn('Not good man :( Getall_TrainingSession = ', error); + setGetall_TrainingSession_api("false"); + //setmyApimyApiMessage("") + }) + } + useEffect(() => { - Get_Partner_Object_Specific_Fields_apprenant(); - Getall_Training_Employee_No_Filter(); Getall_Training_Materiel_No_Filter(); Get_List_Partner_Clients(); Get_All_Apprenant(); + Getall_TrainingSession(); + window.scrollTo({ top: 0, behavior: "smooth", @@ -1217,7 +2087,39 @@ const Apprenant = (props) => { }, []) + + const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState(); + const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState(); + const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState(); + const Download_one_attached_document = (event) => { + const stored_cookie = getCookie('tokenmysypart'); + + + var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; + var token = stored_cookie; + var file_name = event.target.id; + + + var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name; + setLoading(true); + + axios.get(url, { responseType: 'blob', },) + .then((res) => { + setLoading(false); + fileDownload(res.data, nom_fiche_detaillee); + setDownload_one_attached_document_api("true"); + }).catch((error) => { + setLoading(false); + console.error('Error:', error); + setDownload_one_attached_document_api("false"); + + }); + } + + const [selectionModel, setSelectionModel] = React.useState([]); + const [selectionModel_apprenant_inscription, setselectionModel_apprenant_inscription] = React.useState([]); + const [p_filtre1, setp_filtre1] = useState(); const [p_filtre1_value, setp_filtre1_value] = useState(); @@ -1237,6 +2139,34 @@ const Apprenant = (props) => { const [apprenant_file_name, setapprenant_file_name] = useState(); + + + const [apprenants_file_change_1_api, setapprenants_file_change_1_api] = useState(); + const [apprenants_file_change_1_result, setapprenants_file_change_1_result] = useState(); + const [apprenants_file_change_1_message, setapprenants_file_change_1_message] = useState(); + const apprenants_file_change_1 = event => { + + const fileUploaded = event.target.files[0]; + let file_size = event.target.files[0].size; + let file_type = event.target.files[0].type; + + setfile_1_name(event.target.files[0]); + + + console.log("file_size = ", file_size, " file_type = ", file_type); + if (file_size > 10000000) { + alert("Le fichier ne doit pas depasser un 1 Méga octets"); + console.log("Le fichier ne doit pas depasser un 1 Méga octets"); + return; + } + + + return; + + }; + + + const [liste_apprenants_file_change_api, setliste_apprenants_file_change_api] = useState(); const [liste_apprenants_file_change_result, setliste_apprenants_file_change_result] = useState(); const [liste_apprenants_file_change_message, setliste_apprenants_file_change_message] = useState(); @@ -1267,7 +2197,7 @@ const Apprenant = (props) => { fetch( - process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass_mass_for_many_session/", + process.env.REACT_APP_API_URL + "myclass/api/Add_Apprenant_mass/", { method: 'POST', body: formData, @@ -1314,6 +2244,7 @@ const Apprenant = (props) => { const hiddenFileInput_apprenant = React.useRef(null); const [apprenants_file_name, setapprenants_file_name] = useState(); + function submenu_import_apprenant() { setapprenants_file_name(); setliste_apprenants_file_change_api(); @@ -1327,19 +2258,37 @@ const Apprenant = (props) => { const [display_detail_absence, setdisplay_detail_absence] = useState(""); const [display_detail_historique, setdisplay_detail_historique] = useState(""); - + + async function submenu_add_one_inscription() { + setDialog_add_inscription_open(true); + } + async function submenu_add_one_apprenant() { setsubmenu(""); - - await sleep(5); - setadd_One_Apprenant("1"); + setdisplay_detail_apprenant(''); + setgridline_id(''); + setselected_apprenant_id(''); + Clear_One_Apprenant_Fields(); + + //await sleep(5); + setdisplay_detail_apprenant(""); setdisplay_detail_inscriptions(""); setdisplay_detail_absence(""); setdisplay_detail_historique(""); + + + if (document.getElementById('detail_apprenant')) { + // myRef.current.scrollIntoView({ behavior: "smooth" }); + var divh = document.getElementById('detail_apprenant').offsetTop; + window.scrollTo({ + top: divh, + behavior: "smooth", + }); + } } @@ -1347,7 +2296,7 @@ const Apprenant = (props) => { async function submenu_detail_apprenant() { setsubmenu("detail_apprenant"); - await sleep(5); + //await sleep(5); setdisplay_detail_apprenant("1"); setadd_One_Apprenant(""); @@ -1361,7 +2310,7 @@ const Apprenant = (props) => { async function submenu_inscriptions() { setsubmenu("inscriptions"); - await sleep(5); + //await sleep(5); setdisplay_detail_inscriptions("1"); setadd_One_Apprenant(""); @@ -1373,7 +2322,7 @@ const Apprenant = (props) => { async function submenu_absence() { setsubmenu("absences"); - await sleep(5); + //await sleep(5); setdisplay_detail_absence("1"); setadd_One_Apprenant(""); @@ -1386,7 +2335,7 @@ const Apprenant = (props) => { async function submenu_historique() { setsubmenu("historique"); - await sleep(5); + //await sleep(5); setdisplay_detail_historique("1"); setadd_One_Apprenant(""); @@ -1397,7 +2346,612 @@ const Apprenant = (props) => { } + function Show_Detailled_Apprenant_Data() { + + Dialog_apprenant_handleClose_buton(); + + setadd_One_Apprenant(''); + setapprenant_data_edit_mode(''); + setdisplay_detail_apprenant('1'); + + Get_Current_Apprenant_Data(selected_apprenant_id); + Get_Apprenant_Images(selected_apprenant_id); + Get_List_Of_All_PJ(selected_apprenant_id); + + Get_Appenant_List_Inscription(selected_apprenant_id); + + Get_Appenant_List_Inscription(selected_apprenant_id); + + } + + + const myRef = useRef(null) + + /* + *** ALGORITHME + 1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec + 2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc" + - avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur' + + 3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]); + 4 - Afficher en html les elements 'rows_champs_specifics' + 5 - Gerer la modification avec la fonction 'change_champs_spec_handle' + 6 - On recuperer les valeur lors du click d'enregistrement. + + */ + + + const list_nom_champs_spec = [] + const [spec_champs_valeur, setspec_champs_valeur] = useState([]); + + //const spec_champs_valeur = "" + + + + const [display_champs_specifics, setdisplay_champs_specifics] = useState("0"); + + function afficher_champs_spec() { + + setdisplay_champs_specifics("1"); + //setrows_champs_specifics(spec_champs_valeur); + + } + + function findIndexByProperty(data, key, value) { + for (var i = 0; i < data.length; i++) { + + if (data[i][key] == value) { + return i; + } + } + return -1; + } + + + function findValueByProperty(data, key, value) { + for (var i = 0; i < data.length; i++) { + if (data[i][key] == value) { + + var tmp_val = JSON.parse(data[i]); + + return tmp_val.field_value + + } + } + return ""; + } + + function change_champs_spec_handle() { + + for (let i = 0; i < rows_champs_specifics.length; i++) { + + var field_name = JSON.parse(rows_champs_specifics[i]).field_name; + var field_type = JSON.parse(rows_champs_specifics[i]).field_type; + var field_label = JSON.parse(rows_champs_specifics[i]).field_label; + var is_mandatory = JSON.parse(rows_champs_specifics[i]).is_mandatory; + + + + if (document.getElementsByName(String(field_name))[0]) { + + var field_value = document.getElementsByName(String(field_name))[0].value; + var new_val = { 'field_name': field_name, 'field_value': field_value, 'field_type': field_type, 'field_label': field_label, 'is_mandatory': is_mandatory } + var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name); + if (johnIndex > -1) { + spec_field_updated_values[johnIndex] = new_val; + + } else { + spec_field_updated_values.push(new_val); + } + } + + } + + //setrows_champs_specifics(spec_champs_valeur); + + //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values); + setspec_field_updated_values_hooks(spec_field_updated_values) + } + + + + const [file_1_name, setfile_1_name] = useState(); + const [file_2_name, setfile_2_name] = useState(); + + const [Add_One_Apprenant_Data_api, setAdd_One_Apprenant_Data_api] = useState(); + const [Add_One_Apprenant_Data_message, setAdd_One_Apprenant_Data_message] = useState(); + const [Add_One_Apprenant_Data_result, setAdd_One_Apprenant_Data_result] = useState(); + function Add_One_Apprenant_Data() { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + // Controle sur les champs + + if (p_one_nom.trim() == "") { + alert(" Vous devez saisir le nom de l'apprenant"); + return; + } + + + if (p_one_prenom.trim() == "") { + alert(" Vous devez saisir le prenom de l'apprenant"); + return; + } + + + if (p_one_email.trim() == "") { + alert(" Vous devez saisir l'email de l'apprenant"); + return; + } + + if (p_one_civilite.trim() == "") { + alert(" Vous devez saisir la civilité de l'apprenant"); + return; + } + + + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_one_email.trim().match(validRegex)) { + alert("L'adresse email est invalide."); + return; + } + + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("nom", p_one_nom); + form.append("email", p_one_email); + form.append("prenom", p_one_prenom); + form.append("civilite", p_one_civilite); + + + + if (p_one_telephone) + form.append("telephone", p_one_telephone); + else + form.append("telephone", ""); + + + if (p_one_employeur) + form.append("employeur", p_one_employeur); + else + form.append("employeur", ""); + + + if (p_one_client_rattachement_id) + form.append("client_rattachement_id", p_one_client_rattachement_id); + else + form.append("client_rattachement_id", ""); + + + if (p_one_adresse) + form.append("adresse", p_one_adresse); + else + form.append("adresse", ""); + + if (p_one_code_postal) + form.append("code_postal", p_one_code_postal); + else + form.append("code_postal", ""); + + + if (p_one_ville) + form.append("ville", p_one_ville); + else + form.append("ville", ""); + + if (p_one_pays) + form.append("pays", p_one_pays); + else + form.append("pays", ""); + + + if (p_one_tuteur1_nom) + form.append("tuteur1_nom", p_one_tuteur1_nom); + else + form.append("tuteur1_nom", ""); + + if (p_one_tuteur1_prenom) + form.append("tuteur1_prenom", p_one_tuteur1_prenom); + else + form.append("tuteur1_prenom", ""); + + + if (p_one_tuteur1_email) { + form.append("tuteur1_email", p_one_tuteur1_email); + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_one_tuteur1_email.trim().match(validRegex)) { + alert("L'adresse email du tuteur 1 est invalide."); + return; + } + } + else + form.append("tuteur1_email", ""); + + if (p_one_tuteur1_telephone) + form.append("tuteur1_telephone", p_one_tuteur1_telephone); + else + form.append("tuteur1_telephone", ""); + + + if (p_one_tuteur2_nom) + form.append("tuteur2_nom", p_one_tuteur2_nom); + else + form.append("tuteur2_nom", ""); + + if (p_one_tuteur2_prenom) + form.append("tuteur2_prenom", p_one_tuteur2_prenom); + else + form.append("tuteur2_prenom", ""); + + + if (p_one_tuteur2_email) { + form.append("tuteur2_email", p_one_tuteur2_email); + var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + if (!p_one_tuteur2_email.trim().match(validRegex)) { + alert("L'adresse email du tuteur 2 est invalide."); + return; + } + } + else + form.append("tuteur2_email", ""); + + if (p_one_tuteur2_telephone) + form.append("tuteur2_telephone", p_one_tuteur2_telephone); + else + form.append("tuteur2_telephone", ""); + + + + + /* + Gestion des champs spécifiques ajoutés pour l'apprenant + */ + for (let i = 0; i < spec_field_updated_values_hooks.length; i++) { + var local_value = String(spec_field_updated_values_hooks[i].field_value); + + if (String(spec_field_updated_values_hooks[i].field_type) === "float") { + + local_value = local_value.replaceAll(",", "."); + + if (isNaN(local_value)) { + alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " doit être numérique.") + return; + } + + } + else if (String(spec_field_updated_values_hooks[i].field_type) === "string") { + + } + if (String(spec_field_updated_values_hooks[i].is_mandatory) === "1") { + if (String(local_value).trim().length <= 0) { + alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " est obligatoire.") + return; + } + + } + + form.append(String(spec_field_updated_values_hooks[i].field_name), local_value); + } + + + //console.log(" form == ", form); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Apprenant/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Add_One_Apprenant_Data res.data.status = " + res.data.status); + //console.log(" In Add_One_Apprenant_Data res.data.message r_class = " + res.data.message); + + setLoading(false); + if (String(res.data.status) === String("true")) { + Clear_One_Apprenant_Fields(); + setAdd_One_Apprenant_Data_api("true"); + setAdd_One_Apprenant_Data_result(res.data.message); + + Get_All_Apprenant(); + + setapprenant_data_changed(""); + setapprenant_data_edit_mode(""); + setadd_One_Apprenant("0"); + + alert(res.data.message); + if (document.getElementById('myRef_head')) { + var divh = document.getElementById('myRef_head').offsetTop; + window.scrollTo({ + top: divh, + behavior: "smooth", + }); + } + + } + else { + setAdd_One_Apprenant_Data_api("false"); + setAdd_One_Apprenant_Data_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Add_One_Apprenant_Data : Not good man :( Add_One_Apprenant_Data = ' + error); + setAdd_One_Apprenant_Data_api("false"); + alert(" Impossible d'ajouter l'apprenant "); + + }) + } + + + const [p_dialog_session_id, setp_dialog_session_id] = useState(""); + const [p_dialog_type_apprenant, setp_dialog_type_apprenant] = useState(""); + const [p_dialog_financement, setp_dialog_financement] = useState(""); + + + + const [Add_Inscription_Apprenant_api, setAdd_Inscription_Apprenant_api] = useState(); + const [Add_Inscription_Apprenant_message, setAdd_Inscription_Apprenant_message] = useState(); + const [Add_Inscription_Apprenant_result, setAdd_Inscription_Apprenant_result] = useState(); + function Add_Inscription_Apprenant() { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("_id", selected_apprenant_id); + form.append("session_id", p_dialog_session_id); + form.append("type_apprenant", p_dialog_type_apprenant); + form.append("modefinancement", p_dialog_financement); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Apprenant_Inscrire_Session/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Add_Inscription_Apprenant res.data.status = " + res.data.status); + //console.log(" In Add_Inscription_Apprenant res.data.message r_class = " + res.data.message); + + setLoading(false); + if (String(res.data.status) === String("true")) { + + setAdd_Inscription_Apprenant_api("true"); + setAdd_Inscription_Apprenant_result(res.data.message); + + Dialog_add_inscription_handleClose_buton(); + Get_Appenant_List_Inscription(selected_apprenant_id); + Get_All_Apprenant(); + + setp_dialog_session_id(''); + setp_dialog_type_apprenant(''); + setp_dialog_financement(''); + + alert(res.data.message); + if (document.getElementById('myRef_head')) { + var divh = document.getElementById('myRef_head').offsetTop; + window.scrollTo({ + top: divh, + behavior: "smooth", + }); + } + + } + else { + setAdd_Inscription_Apprenant_api("false"); + setAdd_Inscription_Apprenant_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Add_Inscription_Apprenant : Not good man :( Add_Inscription_Apprenant = ' + error); + setAdd_Inscription_Apprenant_api("false"); + alert(" Impossible d'ajouter l'inscription "); + + }) + } + + + const [Delete_Apprenant_Data_api, setDelete_Apprenant_Data_api] = useState(); + const [Delete_Apprenant_Data_message, setDelete_Apprenant_Data_message] = useState(); + const [Delete_Apprenant_Data_result, setDelete_Apprenant_Data_result] = useState(); + function Delete_Apprenant_Data(apprenand_id) { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("apprenant_id", apprenand_id); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Given_Apprenant/"; + + setLoading(true); + + axios.post(myurl, form).then(res => { + //console.log(" In Delete_Apprenant_Data res.data.status = " + res.data.status); + //console.log(" In Delete_Apprenant_Data res.data.message r_class = " + res.data.message); + setLoading(false); + if (String(res.data.status) === String("true")) { + setDelete_Apprenant_Data_api("true"); + setDelete_Apprenant_Data_result(res.data.message); + + setadd_One_Apprenant(''); + setdisplay_detail_apprenant(''); + Clear_Detail_Apprenant_Fields(); + setselected_apprenant_id(''); + setgridline_id(''); + Get_All_Apprenant(); + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + alert(res.data.message); + } + else { + setDelete_Apprenant_Data_api("false"); + setDelete_Apprenant_Data_message(res.data.message); + alert(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.log('Delete_Apprenant_Data : Not good man :( Delete_Apprenant_Data = ' + error); + setDelete_Apprenant_Data_api("false"); + alert(" Impossible de supprimer l'apprenant"); + }) + } + + + const myRef_head = useRef(null); + const [apprenant_data_changed, setapprenant_data_changed] = useState(''); + const [apprenant_data_edit_mode, setapprenant_data_edit_mode] = useState(''); + + + function Annule_add_one_Apprenant() { + setdisplay_detail_apprenant(""); + setadd_One_Apprenant(""); + setsubmenu(""); + setSelectionModel([]); + } + + const imglogoclasschangeHandler = (event) => { + + + let file_size = event.target.files[0].size; + + //or if you like to have name and type + //console.log(event.target.files); + + let file_name = event.target.files[0].name; + let file_type = event.target.files[0].type; + + + + //alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a); + if (file_size > 1000000) { + alert("L'image ne doit pas dépasser un 1 Méga octets"); + return; + } + setisimgclassSelected(event.target.files[0]); + setisimgclassSelectedfile(true); + + setuserimgclassprofil(URL.createObjectURL(event.target.files[0])); + setuserimgclassprofilchanged("1"); + + }; + + + const [record_apprenant_Image_api, setrecord_apprenant_Image_api] = useState(); + const [record_apprenant_Image_message, setrecord_apprenant_Image_message] = useState(); + const [record_apprenant_Image_result, setrecord_apprenant_Image_result] = useState(); + function record_apprenant_Image(l) { + + const formData = new FormData(); + const url = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Apprenant_Image/"; + + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append("apprenant_id", selected_apprenant_id); + + formData.append('file_img', isimgclassSelected); + formData.append('file_img_recid', isimgclassSelected_recid); + + setLoading(true); + //console.log(" ### formData = ", formData); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + setLoading(false); + //console.log('Success:', result['message'], "result['status'] = ", result['status']); + + if (String(result['status']) === String("true")) { + setrecord_apprenant_Image_api("true"); + setuserimgclassprofilchanged(""); + alert(" L'image a été enregistrée "); + + } else if (String(result['status']) === String("Err_Connexion")) { + alert('Erreur: ' + result['message']); + history.push("/Connexion"); + } else { + setrecord_apprenant_Image_api("false"); + alert(" Erreur : " + result['message']); + } + + }) + .catch((error) => { + setLoading(false); + console.error('Error:', error); + setrecord_apprenant_Image_api("false"); + alert(" Erreur : Impossible d'enregistrer l'image "); + + }); + + + }; + + function removeRecodedLogoImage() { + if (!isimgclassSelected_recid || String(isimgclassSelected_recid).length < 3) { + alert(" Image incorrecte. Impossible de la supprimer "); + return; + } + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("image_recid", isimgclassSelected_recid); + + setLoading(true); + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Delete_Apprenant_Image/", + { + method: 'POST', + body: form, + } + ).then((response) => response.json()) + .then((result) => { + setLoading(false); + // console.log(' removeRecodedClassImage : status:', result['status']); + // console.log('removeRecodedClassImage : Success:', result['message']); + + + if (String(result['status']) === String("true")) { + setisimgclassSelected(""); + setisimgclassSelected_recid(""); + setisimgclassSelectedfile(""); + setuserimgclassprofil(""); + + Get_Apprenant_Images(selected_apprenant_id); + + } + else if (String(result['status']) === String("Err_Connexion")) { + alert('Erreur: ' + result['message']); + history.push("/Connexion"); + return; + } + + else { + alert(result['message']); + } + + }) + .catch((error) => { + setLoading(false); + console.error('Error:', error); + alert(" Impossible de supprimer l'image "); + }); + + } + + + return (
@@ -1426,53 +2980,159 @@ const Apprenant = (props) => { -
-
- Civilité + Apprenant + + +
+
+ Civilité +
+ {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && + String(selected_apprenant_id).length > 0 &&
+ {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).civilite} +
}
- {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && - String(selected_apprenant_id).length > 0 &&
- {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).civilite} -
} -
-
-
- Nom +
+
+ Nom +
+ {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && + String(selected_apprenant_id).length > 0 &&
+ {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).nom} +
}
- {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && - String(selected_apprenant_id).length > 0 &&
- {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).nom} -
} -
-
-
- Prénom +
+
+ Prénom +
+ {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && + String(selected_apprenant_id).length > 0 &&
+ {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).prenom} +
}
- {Get_All_Apprenant_result && selected_apprenant_row_id && selected_apprenant_id && - String(selected_apprenant_id).length > 0 &&
- {JSON.parse(Get_All_Apprenant_result[selected_apprenant_row_id]).prenom} -
} -
-
  +
  -
+
+
- +
- + +
+
+ +
+ + +
+ + + + Ajouter une inscription + + + {New_Getall_TrainingSession_result &&
Session + + { + if (value && value._id) { + setp_dialog_session_id(value._id); + + } + + }} + + + renderInput={(params) => + } + /> +
} + +
Type apprenant + { + setp_dialog_type_apprenant(e.target.value); + } + } + + > + + salariés   + Autre   + + +
+ +
Mode Financement + { + setp_dialog_financement(e.target.value); + } + } + + > + + Fonds Propres   + Autre   + + +
+ + + + +
  + +
+
+ + +
+
+ +
+
+
@@ -1643,9 +3303,10 @@ const Apprenant = (props) => {

-
+
-
+
@@ -1781,10 +3442,11 @@ const Apprenant = (props) => { setgridline_id(newSelectionModel.row.id); setselected_apprenant_id(newSelectionModel.row._id); setselected_apprenant_row_id(newSelectionModel.row.id); + setselected_apprenant_email(newSelectionModel.row.email); - setDialog_2_message(String(JSON.parse(Get_All_Apprenant_result[newSelectionModel.row.id]).title)); - setDialog_2_open(true); + setDialog_apprenant_message(String(JSON.parse(Get_All_Apprenant_result[newSelectionModel.row.id]).title)); + setDialog_apprenant_open(true); }} @@ -1938,7 +3600,7 @@ const Apprenant = (props) => {
- @@ -1969,8 +3631,6 @@ const Apprenant = (props) => {
 
- display_detail_apprenant = {display_detail_apprenant}
- add_One_Apprenant = {add_One_Apprenant}
{((selected_apprenant_id && String(selected_apprenant_id).length > 2) || (String(add_One_Apprenant) === "1")) &&
@@ -1995,6 +3655,7 @@ const Apprenant = (props) => { InputLabelProps={{ shrink: true, }} + select disabled={false} className="disabled_style enable_style" value={p_one_civilite} @@ -2003,7 +3664,12 @@ const Apprenant = (props) => { } } - /> + > + M.    + Mme.   + Neutre   + +
@@ -2069,7 +3735,7 @@ const Apprenant = (props) => { />
-
Téléphone
+
Téléphone
{ />
+ {/* -- debut champs specifiques **/} + +
+
+
+
Vos champs spécifiques
+ + {rows_champs_specifics && + rows_champs_specifics.map((champ_spec) => ( + +
{JSON.parse(champ_spec).field_label}
+
+ {String(JSON.parse(champ_spec).field_type) === "float" && { + change_champs_spec_handle(e.target.value); + + }} + //onChange={change_champs_spec_handle} + + + />} + + {String(JSON.parse(champ_spec).field_type) === "string" && { + change_champs_spec_handle(e.target.value); + + }} + //onChange={change_champs_spec_handle} + + + />} + +
+ ))} + +
+ +
+ +
+   +
+ {/* -- end champs specifiques **/} + + +
+
+ + {
+ + + +
} + + {
+ +
} +
+ +
+   +
} - + {String(display_detail_apprenant) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id &&
+
+
-
Civilité
+
+
+
+ +
+
+
+ {} + + {/*isimgclassSelected && */} + {isimgclassdeleted && String(isimgclassdeleted) === "1" && } + {isimgclassdeleted && String(isimgclassdeleted) === "0" && } + {isimgclassSelected && String(isimgclassSaved) === "0" && } +
+ +
+
+
  • + L'image doit etre carrée. +
  • +
  • + Les formats autorisés sont : ['jpg', 'jpeg', 'png', 'jpe', 'webp'] +
  • +
  • + Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels
    + Les dimensions maximales sont de 256pixels X 256pixels +
  • +
  • + La taille de l'image ne doit pas dépasser 1 mega octet +
  • +
    + +
    +
    + + + + {String(apprenant_data_edit_mode) !== "1" &&
    Civilité
    { disabled={false} className="disabled_style enable_style" value={p_detail_civilite} + + + /> + +
    } + + {String(apprenant_data_edit_mode) === "1" &&
    Civilité
    + { setp_detail_civilite(e.target.value); + setapprenant_data_changed("1"); } } - /> -
    + > + M.    + Mme.   + Neutre   + + +
    }
    Nom
    { value={p_detail_nom} onChange={(e) => { setp_detail_nom(e.target.value); + setapprenant_data_changed("1"); } } @@ -2238,6 +4072,7 @@ const Apprenant = (props) => { value={p_detail_prenom} onChange={(e) => { setp_detail_prenom(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2258,6 +4093,7 @@ const Apprenant = (props) => { value={p_detail_email} onChange={(e) => { setp_detail_email(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2278,6 +4114,7 @@ const Apprenant = (props) => { value={p_detail_telephone} onChange={(e) => { setp_detail_telephone(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2299,6 +4136,7 @@ const Apprenant = (props) => { value={p_detail_adresse} onChange={(e) => { setp_detail_adresse(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2320,6 +4158,7 @@ const Apprenant = (props) => { value={p_detail_code_postal} onChange={(e) => { setp_detail_code_postal(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2341,6 +4180,7 @@ const Apprenant = (props) => { value={p_detail_ville} onChange={(e) => { setp_detail_ville(e.target.value); + setapprenant_data_changed("1"); } } /> @@ -2361,11 +4201,183 @@ const Apprenant = (props) => { value={p_detail_pays} onChange={(e) => { setp_detail_pays(e.target.value); + setapprenant_data_changed("1"); } } />
    +
    +
    +
    +
    +
    + Liste des pièces jointes
    + +
    + +
    + {file_1_name && file_1_name.name && + } + + {Record_All_PJ_api && String(Record_All_PJ_api) === "true" &&
    Pièce jointe enregistrée
    } + + {Record_All_PJ_api && String(Record_All_PJ_api) === "false" &&
    {Record_All_PJ_message}
    } + + +
    + + + + {file_1_name && file_1_name.name &&
    + +
    + +
    + + +
    } + + {Get_List_Of_All_PJ_result &&
    +
    + Liste des pièces jointes
    +
    + {Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => ( +
    +
    + Supprimer + + + } + modal + nested + position="center center" + > + {close => ( +
    + +
    MySy Information
    +
    + {' '} + + En confirmant cette opération, la pièce jointe sera définitivement supprimée.
    + + +
    +
    +
    + + +
    +
    + +
    +
    +
    + )} +
    + +
    + ))} +
    +
    +
    } +
    + +
    +   +
    + + {String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" &&
    + /!\ Pensez à enregistrer les modifications +
    } +
    + + {String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" &&
    + + + +
    } + + {String(apprenant_data_edit_mode) === "1" &&
    + +
    } +
    + + + {String(apprenant_data_edit_mode) !== "1" &&
    + + + +
    } +
    +   +
    } @@ -2373,11 +4385,269 @@ const Apprenant = (props) => { {String(display_detail_inscriptions) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id &&
    +
    +
    + +
    +   + + { + setselectionModel_apprenant_inscription(newSelectionModel); + + }} + selectionModel={selectionModel_apprenant_inscription} + + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={Get_Appenant_List_Inscription_result.map((item, index) => ( + { + id: index, + _id: JSON.parse(item)._id, + session_id: JSON.parse(item).session_id, + session_code: JSON.parse(item).code_session, + class_title: JSON.parse(item).class_title, + status: JSON.parse(item).status, + date_debut: JSON.parse(item).date_debut, + date_fin: JSON.parse(item).date_fin, + presentiel: JSON.parse(item).distantiel, + distanciel: JSON.parse(item).presentiel, + + } + ))} + + columns={columns_apprenant_inscriptions} + pageSize={10} + className="datagridclass" + + onRowDoubleClick={(newSelectionModel) => { + /* setgridline_id(newSelectionModel.row.id); + setselected_apprenant_id(newSelectionModel.row._id); + setselected_apprenant_row_id(newSelectionModel.row.id); + setselected_apprenant_email(newSelectionModel.row.email); + + + setDialog_apprenant_message(String(JSON.parse(Get_All_Apprenant_result[newSelectionModel.row.id]).title)); + setDialog_apprenant_open(true);*/ + + }} + + + + rowsPerPageOptions={[10]} + disableSelectionOnClick + components={{ + Toolbar: GridToolbar, + }} + //sx={datagridSx} + getCellClassName={(params) => { + //field === 'distantiel' + if (params.field === 'distantiel' && String(params.value) === "1") { + return 'cell--distantiel'; + } + if (params.field === "presentiel" && String(params.value) == "1") { + return 'cell--presentiel'; + } + + + + + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.id) === String(gridline_id)) { + return 'line--statut--selected'; + } + else if (parseInt(String(params.row.id)) % 2 === 0) { + return 'line--statut--pair'; + } + else if (parseInt(String(params.row.id)) % 2 !== 0) { + return 'line--statut--impair'; + } + + }} + + + /> + +
    + +
    + +
    + + {selectionModel && selectionModel.length >= 1 &&
    + +   + + Action    + Supprimer   + Dupliquer   + + + + {actionmass_ftion_val && + } + +
    } +
    + +
    + +
    + +
    + + + + + +
    + + + +
    +
    + +
    +
    } {String(display_detail_absence) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id &&
    - +
    } {String(display_detail_historique) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id &&
    diff --git a/src/components/ButtonHilight.js b/src/components/ButtonHilight.js index e94a5ea..7cfbde7 100644 --- a/src/components/ButtonHilight.js +++ b/src/components/ButtonHilight.js @@ -126,6 +126,8 @@ const ButtonHilight = () => { }; + + const handleClose_Account = () => { alert(" my account"); setAccountMenu(null); diff --git a/src/components/DisplayDetailClass_new_v2.js b/src/components/DisplayDetailClass_new_v2.js index ceed0b4..7f7ab7b 100644 --- a/src/components/DisplayDetailClass_new_v2.js +++ b/src/components/DisplayDetailClass_new_v2.js @@ -1773,7 +1773,7 @@ const DisplayDetailClass_new_v2 = (props) => {
    */}
    { history.push("/QuiSommesNous") }}> - Qui Sommes nous ? + Qui Sommes nous?
    diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js index 8bb440d..bbd74a3 100644 --- a/src/components/DisplayPartnerStagiaires.js +++ b/src/components/DisplayPartnerStagiaires.js @@ -8242,6 +8242,7 @@ const DisplayPartnerStagiaires = (props) => {
    } diff --git a/src/components/Employes.js b/src/components/Employes.js index cfa26f1..a437493 100644 --- a/src/components/Employes.js +++ b/src/components/Employes.js @@ -747,6 +747,8 @@ const Employes = (props) => { var employe_email = line.email; setselected_employe_email(employe_email); + setgridline_id(selected_row_id); + setAffectation_data_changed(); //console.log(" ### employe_id = ", employe_id); Display_Detail_Employe(employe_id); @@ -1780,10 +1782,12 @@ const Employes = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Ressource_Humaine/"; + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Update_One_Employee_Data res.data.status = " + res.data.status); //console.log(" In Update_One_Employee_Data res.data.message r_class = " + res.data.message); + setLoading(false); if (String(res.data.status) === String("true")) { setUpdate_One_Employee_Data_api("true"); setUpdate_One_Employee_Data_result(res.data.message); @@ -1814,7 +1818,7 @@ const Employes = (props) => { } }).catch((error) => { - + setLoading(false); console.warn('UpdateStagiaireData : Not good man :( Update_One_Employee_Data = ' + error); setUpdate_One_Employee_Data_api("false"); alert(" Impossible de mettre à jour l'employé"); @@ -1838,7 +1842,7 @@ const Employes = (props) => { formData.append('file_img', isimgclassSelected); formData.append('file_img_recid', isimgclassSelected_recid); - + setLoading(true); //console.log(" ### formData = ", formData); fetch( url, @@ -1849,7 +1853,8 @@ const Employes = (props) => { ) .then((response) => response.json()) .then((result) => { - console.log('Success:', result['message'], "result['status'] = ", result['status']); + setLoading(false); + //console.log('Success:', result['message'], "result['status'] = ", result['status']); if (String(result['status']) === String("true")) { setrecord_employee_Image_api("true"); @@ -1866,6 +1871,7 @@ const Employes = (props) => { }) .catch((error) => { + setLoading(false); console.error('Error:', error); setrecord_employee_Image_api("false"); alert(" Erreur : Impossible d'enregistrer l'image "); @@ -1942,6 +1948,7 @@ const Employes = (props) => { form.append("token", stored_cookie); form.append("image_recid", isimgclassSelected_recid); + setLoading(true); fetch( process.env.REACT_APP_API_URL + "myclass/api/DeleteImage_Stagiaire_v2/", { @@ -1950,9 +1957,9 @@ const Employes = (props) => { } ).then((response) => response.json()) .then((result) => { - - console.log(' removeRecodedClassImage : status:', result['status']); - console.log('removeRecodedClassImage : Success:', result['message']); + setLoading(false); + //console.log(' removeRecodedClassImage : status:', result['status']); + //console.log('removeRecodedClassImage : Success:', result['message']); if (String(result['status']) === String("true")) { @@ -1975,6 +1982,7 @@ const Employes = (props) => { }) .catch((error) => { + setLoading(false); console.error('Error:', error); alert(" Impossible de supprimer l'image "); }); @@ -2103,16 +2111,16 @@ const Employes = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Ressource_Humaine/"; - + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Delete_Employee res.data.status = " + res.data.status); //console.log(" In Delete_Employee res.data.message r_class = " + res.data.message); - + setLoading(false); if (String(res.data.status) === String("true")) { setDelete_Employee_api("true"); setDelete_Employee_result(res.data.message); clean_all_filters(); - alert(" L'employé a été correctement supprimé.") + alert(res.data.message); } else { setDelete_Employee_api("false"); @@ -2122,7 +2130,7 @@ const Employes = (props) => { } }).catch((error) => { - + setLoading(false); console.log('Delete_Employee : Not good man :( Delete_Employee = ' + error); setDelete_Employee_api("false"); alert(" Impossible de supprimer l'employee"); @@ -2146,10 +2154,12 @@ const Employes = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Affectation_Ressource_Humaine_Poste/"; + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Delete_affection res.data.status = " + res.data.status); //console.log(" In Delete_affection res.data.message r_class = " + res.data.message); + setLoading(false); if (String(res.data.status) === String("true")) { setDelete_affection_api("true"); setDelete_affection_result(res.data.message); @@ -2168,7 +2178,7 @@ const Employes = (props) => { } }).catch((error) => { - + setLoading(false); console.log('Delete_affection : Not good man :( Delete_affection = ' + error); setDelete_affection_api("false"); alert(" Impossible de supprimer la fonction"); @@ -2199,8 +2209,8 @@ const Employes = (props) => { setadd_One_Employee("1"); setsubmenu("detail_employe"); - if (document.getElementById('myRef_new_employee')) { - var divh = document.getElementById('myRef_new_employee').offsetTop; + if (document.getElementById('myRef')) { + var divh = document.getElementById('myRef').offsetTop; window.scrollTo({ top: divh, behavior: "smooth", @@ -2226,6 +2236,11 @@ const Employes = (props) => { // Controle sur les champs + if (p_one_detail_civilite.trim() == "") { + alert(" Vous devez saisir la civilité de l'employé"); + return; + } + if (p_one_detail_nom.trim() == "") { alert(" Vous devez saisir le nom de l'employé"); return; @@ -2245,7 +2260,7 @@ const Employes = (props) => { var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; - if (!p_one_detail_mail.match(validRegex)) { + if (!p_one_detail_mail.trim().match(validRegex)) { alert("L'adresse email est invalide."); return; } @@ -2257,6 +2272,7 @@ const Employes = (props) => { form.append("nom", p_one_detail_nom); form.append("email", p_one_detail_mail); form.append("prenom", p_one_detail_prenom); + form.append("civilite", p_one_detail_civilite); @@ -2304,10 +2320,7 @@ const Employes = (props) => { form.append("fonction", ""); - if (p_one_detail_civilite) - form.append("civilite", p_one_detail_civilite); - else - form.append("civilite", ""); + if (p_one_detail_resp_hierarchie_id) @@ -2373,10 +2386,11 @@ const Employes = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Ressource_Humaine/"; + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Add_One_Employee_Data res.data.status = " + res.data.status); //console.log(" In Add_One_Employee_Data res.data.message r_class = " + res.data.message); - + setLoading(false); if (String(res.data.status) === String("true")) { setAdd_One_Employee_Data_api("true"); setAdd_One_Employee_Data_result(res.data.message); @@ -2404,7 +2418,7 @@ const Employes = (props) => { } }).catch((error) => { - + setLoading(false); console.warn('UpdateStagiaireData : Not good man :( Add_One_Employee_Data = ' + error); setAdd_One_Employee_Data_api("false"); alert(" Impossible d'ajouter l'employé"); @@ -2854,10 +2868,12 @@ const Employes = (props) => { //console.log(" affectation form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Affectation_Ressource_Humaine_Poste/"; - + setLoading(true); axios.post(myurl, form).then(res => { - console.log(" In Update_One_Affectation_Data res.data.status = " + res.data.status); - console.log(" In Update_One_Affectation_Data res.data.message r_class = " + res.data.message); + //console.log(" In Update_One_Affectation_Data res.data.status = " + res.data.status); + //console.log(" In Update_One_Affectation_Data res.data.message r_class = " + res.data.message); + + setLoading(false); if (String(res.data.status) === String("true")) { setUpdate_One_Affectation_Data_api("true"); @@ -2888,6 +2904,7 @@ const Employes = (props) => { } }).catch((error) => { + setLoading(false); console.log('UpdateStagiaireData : Not good man :( Update_One_Affectation_Data = ' + error); setUpdate_One_Affectation_Data_api("false"); @@ -2978,14 +2995,16 @@ const Employes = (props) => { form.append("related_target_collection_id", ""); - console.log(" Add_one_affectation affectation form == ", form); + //console.log(" Add_one_affectation affectation form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Affectation_Ressource_Humaine_Poste/"; - + setLoading(true); axios.post(myurl, form).then(res => { - console.log(" In Add_one_affectation res.data.status = " + res.data.status); - console.log(" In Add_one_affectation res.data.message r_class = " + res.data.message); + //console.log(" In Add_one_affectation res.data.status = " + res.data.status); + //console.log(" In Add_one_affectation res.data.message r_class = " + res.data.message); + + setLoading(false); if (String(res.data.status) === String("true")) { setAdd_one_affectation_api("true"); @@ -3010,6 +3029,7 @@ const Employes = (props) => { } else { + setLoading(false); setAdd_one_affectation_api("false"); setAdd_one_affectation_message(res.data.message); alert(res.data.message); @@ -3066,14 +3086,16 @@ const Employes = (props) => { - console.log(" form == ", form); + //console.log(" form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_User_Access_Right/"; - + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Update_user_access_right_Data res.data.status = " + res.data.status); //console.log(" In Update_user_access_right_Data res.data.message r_class = " + res.data.message); + setLoading(false); + if (String(res.data.status) === String("true")) { setUpdate_user_access_right_Data_api("true"); setUpdate_user_access_right_Data_result(res.data.message); @@ -3088,7 +3110,7 @@ const Employes = (props) => { } }).catch((error) => { - + 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é"); @@ -3302,11 +3324,12 @@ const Employes = (props) => { - console.log(" form == ", form); + //console.log(" form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Employee_Login_Pass/"; - + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); //console.log(" In Add_Update_Employee_Login_Pass_Data res.data.status = " + res.data.status); //console.log(" In Add_Update_Employee_Login_Pass_Data res.data.message r_class = " + res.data.message); @@ -3330,7 +3353,7 @@ const Employes = (props) => { } }).catch((error) => { - + setLoading(false); console.warn('UpdateStagiaireData : Not good man :( Add_Update_Employee_Login_Pass_Data = ' + error); setAdd_Update_Employee_Login_Pass_Data_api("false"); alert(" Impossible de créer ou mettre à jour le compte l'employé"); @@ -3365,7 +3388,6 @@ const Employes = (props) => { const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState(); const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState(); const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState(); - const Download_one_attached_document = (event) => { const stored_cookie = getCookie('tokenmysypart'); @@ -3376,13 +3398,15 @@ const Employes = (props) => { var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name; - + setLoading(true); axios.get(url, { responseType: 'blob', },) .then((res) => { + setLoading(false); fileDownload(res.data, nom_fiche_detaillee); setDownload_one_attached_document_api("true"); }).catch((error) => { + setLoading(false); console.error('Error:', error); setDownload_one_attached_document_api("false"); @@ -3423,34 +3447,6 @@ const Employes = (props) => { return; - fetch( - process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/", - { - method: 'POST', - body: formData, - } - ) - .then((response) => response.json()) - .then((result) => { - - //console.log(" ## result['status'] = ", result['status']) - if (String(result['status']) === String("true")) { - //console.log('Success:', result['message']); - setsessions_file_change_1_result(result['message']); - setsessions_file_change_1_api("true"); - //GetCurrentClass_trainingsession(); - - } - else { - setsessions_file_change_1_message(result['message']); - setsessions_file_change_1_api("false"); - } - - }) - .catch((error) => { - console.error('Error:', error); - setsessions_file_change_1_api("false"); - }); }; @@ -3520,7 +3516,6 @@ const Employes = (props) => { const [Record_All_PJ_api, setRecord_All_PJ_api] = useState(); const [Record_All_PJ_result, setRecord_All_PJ_result] = useState(); const [Record_All_PJ_message, setRecord_All_PJ_message] = useState(); - function Record_All_PJ() { if (!p_detail_one_file_to_download_type_name) { @@ -3593,7 +3588,6 @@ const Employes = (props) => { const [Delete_one_attached_document_api, setDelete_one_attached_document_api] = useState(); const [Delete_one_attached_document_result, setDelete_one_attached_document_result] = useState(); const [Delete_one_attached_document_message, setDelete_one_attached_document_message] = useState(); - const Delete_one_attached_document = (event) => { const stored_cookie = getCookie('tokenmysypart'); @@ -3646,7 +3640,6 @@ const Employes = (props) => { const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState(); const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); - function Get_List_Of_All_PJ(local_employee_id) { const formData = new FormData(); @@ -4020,6 +4013,29 @@ const Employes = (props) => { var form = new FormData(); + if (!p_employe_contrat_type_contrat || String(p_employe_contrat_type_contrat).trim() === "") { + alert(" Le type de contrat est obigatoire "); + return; + } + + if (!p_employe_contrat_type_employe || String(p_employe_contrat_type_employe).trim() === "") { + alert(" Le type d'employé est obigatoire "); + return; + } + + if (!p_employe_contrat_date_debut || String(p_employe_contrat_date_debut).trim() === "") { + alert(" Le début du contrat est obigatoire "); + 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 "); + return; + } + + + } const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); @@ -4301,7 +4317,7 @@ const Employes = (props) => { Contrat employé -
    Type de contrat +
    Type de contrat {
    -
    Type d'employé +
    Type d'employé {
    -
    Debut +
    Debut { } } > -   - + {Get_Partner_Purchase_Prices_result && Get_Partner_Purchase_Prices_result.map((myclient) => ( { ))} - +
    @@ -4470,26 +4486,26 @@ const Employes = (props) => { } - {String(p_employe_contrat_groupe_prix_achat_id) === "" &&
    Prix - + {String(p_employe_contrat_groupe_prix_achat_id) === "" && } @@ -4504,10 +4520,10 @@ const Employes = (props) => { fullWidth - value={p_employe_contrat_cout} + value={p_employe_contrat_comment} onChange={(e) => { if (String(e.target.value).length <= 255) { - setp_employe_contrat_cout(e.target.value); + setp_employe_contrat_comment(e.target.value); setdialog_contrat_data_changed("1"); } } @@ -5157,49 +5173,7 @@ const Employes = (props) => {
    -
    Nom
    - { - setp_detail_nom(e.target.value); - setEmployee_data_changed("1"); - } - } - - /> -
    - -
    Prénom
    - { - setp_detail_prenom(e.target.value); - setEmployee_data_changed("1"); - }} - /> -
    - - {String(employee_data_edit_mode) !== "1" &&
    Civilité
    + {String(employee_data_edit_mode) !== "1" &&
    Civilité
    { />
    } - {String(employee_data_edit_mode) === "1" &&
    Civilité
    + {String(employee_data_edit_mode) === "1" &&
    Civilité
    {
    } -
    Email
    +
    Nom
    + { + setp_detail_nom(e.target.value); + setEmployee_data_changed("1"); + } + } + + /> +
    + +
    Prénom
    + { + setp_detail_prenom(e.target.value); + setEmployee_data_changed("1"); + }} + /> +
    + + + +
    Email
    {
    -
    Nom
    - { - setp_one_detail_nom(e.target.value); - setEmployee_data_changed("1"); - } - } - - /> -
    - -
    Prénom
    - { - setp_one_detail_prenom(e.target.value); - setEmployee_data_changed("1"); - }} - /> -
    - -
    Civilité
    +
    Civilité
    {
    -
    Email
    +
    Nom
    + { + setp_one_detail_nom(e.target.value); + setEmployee_data_changed("1"); + } + } + + /> +
    + +
    Prénom
    + { + setp_one_detail_prenom(e.target.value); + setEmployee_data_changed("1"); + }} + /> +
    + + + +
    Email
    { }; const handleQuisommesNousMenu = (event) => { - setproduitMenu(event.currentTarget); history.push("/QuiSommesNous") }; diff --git a/src/components/Module_Absence.js b/src/components/Module_Absence.js index 24e52fb..3520f61 100644 --- a/src/components/Module_Absence.js +++ b/src/components/Module_Absence.js @@ -58,6 +58,7 @@ const Module_Absence = (props) => { const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id); const [selected_attendee_email, setselected_attendee_email] = useState(props.attendee_email); + const [selected_related_collection, setselected_related_collection] = useState(props.related_collection); const history = useHistory(); const [isLoading, setLoading] = useState(); @@ -198,7 +199,7 @@ const Module_Absence = (props) => { const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); - form.append("related_collection", "inscription"); + form.append("related_collection", props.related_collection); form.append("related_collection_email", selected_attendee_email); @@ -280,7 +281,7 @@ const Module_Absence = (props) => { const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); - form.append("related_collection", "inscription"); + form.append("related_collection", props.related_collection); form.append("related_collection_email", attendee_email); @@ -364,7 +365,7 @@ const Module_Absence = (props) => { const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); - form.append("related_collection", "inscription"); + form.append("related_collection", props.related_collection); form.append("related_collection_email", local_selected_attendee_email); @@ -447,7 +448,7 @@ const Module_Absence = (props) => { const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); - form.append("related_collection", "inscription"); + form.append("related_collection", props.related_collection); form.append("related_collection_email", local_selected_attendee_email); var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Ressource_Info_Data_Satgiaire/"; @@ -798,7 +799,7 @@ const [Get_Partner_Debut_Fin_Journee_api, setGet_Partner_Debut_Fin_Journee_api] const [endDate, setendDate] = useState(new Date()); - const [selected_related_collection, setselected_related_collection] = useState(); + const [Update_One_Agenda_Event_api, setUpdate_One_Agenda_Event_api] = useState(); @@ -833,7 +834,7 @@ const [Get_Partner_Debut_Fin_Journee_api, setGet_Partner_Debut_Fin_Journee_api] form.append("token", stored_cookie); form.append("_id", p_detail_event_id); form.append("inscription_id", props.inscription_id); - form.append("related_collection", "inscription"); + form.append("related_collection", props.related_collection); form.append("event_title", new_title); form.append("event_start", new_start_date); diff --git a/src/components/QuisSommesNous_V2.js b/src/components/QuisSommesNous_V2.js index 694abf9..5b91476 100644 --- a/src/components/QuisSommesNous_V2.js +++ b/src/components/QuisSommesNous_V2.js @@ -61,7 +61,7 @@ const QuiSommesNous_v2 = () => {
    -
    +
    @@ -176,14 +176,14 @@ const QuiSommesNous_v2 = () => {
    -
    +  
    -
    +
    diff --git a/src/styles/components/_apprenant.scss b/src/styles/components/_apprenant.scss index e4d7628..d5c48eb 100644 --- a/src/styles/components/_apprenant.scss +++ b/src/styles/components/_apprenant.scss @@ -2111,7 +2111,7 @@ .bton_add_session { background: #c8cfd5; color: black; - width: 20% !important; + width: 25% !important; } .bton_add_session_create_automatic { diff --git a/src/styles/components/_quisommesnous_v2.scss b/src/styles/components/_quisommesnous_v2.scss index ac066ab..4b3c12a 100644 --- a/src/styles/components/_quisommesnous_v2.scss +++ b/src/styles/components/_quisommesnous_v2.scss @@ -522,6 +522,7 @@ top: 9rem; z-index: 1; width: 100%; + background: white; } .pieddepage { @@ -938,6 +939,7 @@ top: 9rem; z-index: 1; width: 100%; + background: #104277; } .pieddepage { @@ -1110,7 +1112,7 @@ margin-left: auto; margin-right: auto; height: 13rem; - margin-top: 5rem; + // margin-top: 5rem; } .text_head_new { @@ -1362,6 +1364,7 @@ top: 7rem; z-index: 1; width: 100%; + background: #104277; } .pieddepage { @@ -1537,7 +1540,7 @@ margin-left: auto; margin-right: auto; height: 15rem; - margin-top: 5rem; + //margin-top: 5rem; } .text_head_new { @@ -1638,11 +1641,12 @@ } .main_sub_div { - height: 220rem; + height: 230rem; margin-left: auto; margin-right: auto; width: 90%; background: white; + padding-top: 2rem !important; } .detail_block{