From 71df40806803d6dd136db473a8be0b99daf1f535 Mon Sep 17 00:00:00 2001 From: cherif Date: Thu, 23 Nov 2023 21:42:55 +0100 Subject: [PATCH] 23/11/2023 - 21h30 --- src/components/DisplayPartnerSession.js | 642 +++++++++++++++++- .../DisplayPartnerTrainingsPagination.js | 4 - src/components/GestionAdministrative.js | 150 ++-- 3 files changed, 749 insertions(+), 47 deletions(-) diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 1ea71cf..8bf3f6c 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -42,7 +42,7 @@ import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; import { Fab } from "@material-ui/core"; import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; - +import { confirmAlert } from 'react-confirm-alert'; import ToggleSwitch from "./ToggleSwitch"; const DisplayPartnerSession = (props) => { @@ -666,6 +666,81 @@ const DisplayPartnerSession = (props) => { ] + const columns_list_emargement = [ + { field: 'id', headerName: 'id', hide: true }, + { field: '_id', headerName: '_id', hide: true }, + { field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 }, + { field: 'sequence_start', headerName: 'Debut', width: 100, hideable: false, flex: 1 }, + { field: 'sequence_end', headerName: 'Fin', width: 100, hideable: false, flex: 1 }, + { field: 'is_present', headerName: 'Présent', width: 100, hide: false, editable: true, type: 'boolean', }, + + { field: 'email', headerName: 'email', width: 250, hideable: false, flex: 1 }, + { field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true }, + { field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: false }, + + { + field: "valide", headerName: 'Valider', + renderCell: (cellValues) => { + return ( + + + + ); + } + }, + + ] + + const columns_list_evaluation = [ + { field: 'id', headerName: 'id', hide: true }, + { field: 'email', headerName: 'email', width: 200, hideable: true, resizable: true }, + { field: 'nom', headerName: 'nom', width: 200, hide: false, editable: true }, + { field: 'prenom', headerName: 'prenom', width: 200, hide: false, editable: false }, + { + field: 'eval_status', headerName: 'Statut', width: 100, editable: false, flex: true, + valueFormatter: (params) => { + if (String(params.value) === "0") + return "Envoyé"; + else if (String(params.value) === "1") + return "Evalué"; + else + return "A envoyer"; + }, + }, + { field: 'eval_eval', headerName: 'Evaluation', width: 100, editable: false, flex: true }, + { field: 'eval_note', headerName: 'Note', width: 100, editable: false, }, + { field: 'eval_pedagogie', headerName: 'Pédagogie', width: 100, editable: false, }, + { field: 'eval_date', headerName: 'Date evalution', width: 100, editable: false, }, + {/* + field: "valide", headerName: 'Valider', + renderCell: (cellValues) => { + return ( + + + + ); + } + */}, + + ] + + const columns_sequence = [ { field: 'id', headerName: 'id', hide: true }, { field: '_id', headerName: '_id', hide: true }, @@ -1005,6 +1080,8 @@ const DisplayPartnerSession = (props) => { GetListePreinscrit(cellValues.row._id, cellValues.row.class_internal_url); GetListeInscrit(cellValues.row._id, cellValues.row.class_internal_url); + + GetListeEmargement(cellValues.row._id, cellValues.row.class_internal_url); } @@ -1043,6 +1120,8 @@ const DisplayPartnerSession = (props) => { GetListePreinscrit(line._id, line.class_internal_url); GetListeInscrit(line._id, line.class_internal_url); + + GetListeEmargement(line._id, line.class_internal_url); } const [Get_List_Partner_Clients_api, setGet_List_Partner_Clients_api] = useState(); const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = useState(); @@ -1361,6 +1440,48 @@ const DisplayPartnerSession = (props) => { } + async function submenu_emargement() { + setsubmenu("emargement"); + + await sleep(5); + if (!edit_session_form) { + desableSessionFields(); + } + + if (document.getElementById("emargement")) { + document.getElementById("emargement").style.backgroundColor = "#104277"; + document.getElementById("emargement").style.color = "white"; + } + + + if (document.getElementById("sequence_session")) { + document.getElementById("sequence_session").style.backgroundColor = "#d8edfc"; + document.getElementById("sequence_session").style.color = "black"; + } + + + if (document.getElementById("detail_session")) { + document.getElementById("detail_session").style.backgroundColor = "#d8edfc"; + document.getElementById("detail_session").style.color = "black"; + } + + if (document.getElementById("inscrit")) { + document.getElementById("inscrit").style.backgroundColor = "#d8edfc"; + document.getElementById("inscrit").style.color = "black"; + } + + if (document.getElementById("preinscrit")) { + document.getElementById("preinscrit").style.backgroundColor = "#d8edfc"; + document.getElementById("preinscrit").style.color = "black"; + } + + + + + } + + + function handleClickSessionManagement(event, cellValues) { var code_session = cellValues.row.code_session; setselected_code_session(cellValues.row.code_session); @@ -1375,6 +1496,9 @@ const DisplayPartnerSession = (props) => { GetListePreinscrit(cellValues.row._id, cellValues.row.class_internal_url); GetListeInscrit(cellValues.row._id, cellValues.row.class_internal_url); + + GetListeEmargement(cellValues.row._id, cellValues.row.class_internal_url); + } const [selected_code_session, setselected_code_session] = useState(); @@ -1430,6 +1554,8 @@ const DisplayPartnerSession = (props) => { GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); + alert(" Les stagiaires ont été correctement importés"); submenu_inscrit(); @@ -1981,6 +2107,7 @@ const DisplayPartnerSession = (props) => { //setreduction_session("1"); GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); submenu_inscrit(); One_clearParticipantFields(); @@ -2237,6 +2364,7 @@ const DisplayPartnerSession = (props) => { setactionmass_insc_val(); GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); } @@ -2301,6 +2429,7 @@ const DisplayPartnerSession = (props) => { setDeleteStagiaireData_result(res.data.message); GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); setretval_ch("1"); alert(" La mise à jour été correctement faite.") @@ -2537,6 +2666,8 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); + submenu_inscrit(); } else if (String(res.data.status) === String("Err_Connexion")) { @@ -4224,6 +4355,8 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair GetListePreinscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url); + GetListeEmargement(selected_session_id, selected_internal_url); + setretval_ch("1"); alert(" La mise à jour été correctement faite.") } @@ -6869,7 +7002,387 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair const [update_sequence, setupdate_sequence] = useState(); - function submenu_add_automatic_sequence() { + /* Recuperation de la liste d'emargement */ + const [selectionModel_emarg, setSelectionModel_emarg] = React.useState([]); + const [rowss_emarg, setRows_emarg] = useState([]); + const [GetListePreinscrit_emarg_api, setGetListePreinscrit_emarg_api] = useState(); + const [GetListePreinscrit_emarg_meassage, setGetListePreinscrit_emarg_meassage] = useState(); + const [GetListePreinscrit_emarg_result, setGetListePreinscrit_emarg_result] = useState([]) + function GetListeEmargement(localsessionid, class_internal_url) { + clean_old_messages(); + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("class_internal_url", class_internal_url); + form.append("session_id", localsessionid); + + /* + + /!\ : Cette fonction a besoin d'un token actif + */ + + if (String(stored_cookie) === String("")) { + alert(" La session n'est plus valide "); + history.push("/Connexion"); + return; + } + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetTableauEmargement/"; + + setLoading(true); + + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + setLoading(false); + //console.log('Success:', data['message'], "data['status'] = ", data['status']); + setGetListePreinscrit_emarg_result(data['message']); + setRows_emarg(data['message']); + if (String(data['status']) === String("Err_Connexion")) { + alert('Erreur: ' + data['message']); + history.push("/Connexion"); + } + else if (String(data['status']) === String("true")) { + setGetListePreinscrit_emarg_api("true"); + + } else { + //console.log("erreur rrrr:" + data['status']) + setGetListePreinscrit_emarg_api("false"); + + } + + }).catch((error) => { + setLoading(false); + console.error('Error:', error); + setGetListePreinscrit_emarg_api("false"); + }); + + } + + + const [actionmass_emarg_val, setactionmass_emarg_val] = useState(); + const actionmass_emarg = (event) => { + const value = event.target.value; + + + if (String(value) === "valider" || String(value) === "demande emargement") { + setactionmass_emarg_val(value); + } + else { + setactionmass_emarg_val(); + } + } + + function GetSelectedRows_Emarg_Ids() { + + var tab_tmp = [] + for (var i = 0; i < selectionModel_emarg.length; i++) { + var myid = parseInt(String(selectionModel_emarg[i])); + //var line = JSON.parse(rowss[myid]); + tab_tmp.push(myid); + } + return tab_tmp; + + } + + async function actionmass_emarge_Traitemet() { + var liste_formation = GetSelectedRows_Emarg_Ids(); + for (var i = 0; i < liste_formation.length; i++) { + var line = JSON.parse(rowss_emarg[liste_formation[i]]); + //console.log(" line = ", line); + var email = line.email; + //console.log(" Traitement de email = ", email); + + if (String(actionmass_emarg_val) === "demande emargement") { + ActionMassListEmargement(); + } + await sleep(50) + } + setSelectionModel_emarg([]); + setactionmass_emarg_val(); + + GetListeEmargement(selected_session_id, selected_internal_url); + + } + + const [ActionMassListEmargement_api, setActionMassListEmargement_api] = useState(); + const [ActionMassListEmargement_message, setActionMassListEmargement_message] = useState(); + const [ActionMassListEmargement_result, setActionMassListEmargement_result] = useState(); + function ActionMassListEmargement(e) { + + clean_old_messages(); + if (selectionModel_emarg.length <= 0) { + alert(" Selectionnez un enregistrement pour envoyer la demande d'emargement"); + return; + } + + var actionenmasse = "" + if (document.getElementById("actionmass_emarge")) { + actionenmasse = document.getElementById("actionmass_emarge").value; + } + + var liste_emargement_id = GetSelectedRowsEmargement(); + + //console.log("liste_formation = " + liste_emargement_id); + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("tab_ids", liste_emargement_id); + var myurl = process.env.REACT_APP_API_URL + "myclass/api/EmargementMail/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + + setActionMassListEmargement_api("true"); + setActionMassListEmargement_result(res.data.message); + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setActionMassListEmargement_api("false"); + setActionMassListEmargement_message(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.warn('ActionMassListEmargement : Not good man :( mysearchtext = ' + error); + setActionMassListEmargement_api("false"); + + }) + + + + if (String(actionenmasse) === String("depublier")) { + + alert("depublier"); + } + + else if (String(actionenmasse) === String("publier")) { + alert("publier"); + } + + else if (String(actionenmasse) === String("supprimer")) { + alert("supprimer"); + } + } + + function ConfirmInitListEmargement() { + confirmAlert({ + message: "Confirmez la (re)initialisation de la liste d'emargement ? Toutes les confirmations seront perdues", + + buttons: [ + { + label: 'Oui', + onClick: () => { CreateListEmargement() } + }, + { + label: 'Non', + onClick: () => { return } + + } + ], + closeOnEscape: false, + closeOnClickOutside: false, + keyCodeForClose: [8, 32], + willUnmount: () => { }, + afterClose: () => { }, + onClickOutside: () => { }, + onKeypress: () => { }, + onKeypressEscape: () => { }, + }); + } + + const [CreateListEmargement_api, setCreateListEmargement_api] = useState(); + const [CreateListEmargement_message, setCreateListEmargement_message] = useState(); + const [CreateListEmargement_result, setCreateListEmargement_result] = useState(); + function CreateListEmargement() { + clean_old_messages(); + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("class_internal_url", selected_internal_url); + form.append("session_id", selected_session_id); + + //alert(" mysession = "+mysession); + + //var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement/"; + + // Update du 23/11/2023 : Les emargements sont basé sur les séquence déjà créées + var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement_From_Sequence/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setCreateListEmargement_api("true"); + setCreateListEmargement_result(res.data.message); + GetListeEmargement(selected_session_id, selected_internal_url); + + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setCreateListEmargement_api("false"); + setCreateListEmargement_message(res.data.message); + alert(res.data.messag); + } + + }).catch((error) => { + setLoading(false); + console.warn('CreateListEmargement : Not good man :( mysearchtext = ' + error); + setCreateListEmargement_api("false"); + alert(" Impossible d'initialiser la liste d'émargement"); + + }) + } + + const [selectedemargement, setselectedemargement] = useState([]) + function GetSelectedRowsEmargement() { + + var tab_tmp = [] + + + for (var i = 0; i < selectionModel_emarg.length; i++) { + var myid = parseInt(String(selectionModel_emarg[i])); + tab_tmp.push(JSON.parse(rowss_emarg[myid])._id); + + } + setselectedemargement(tab_tmp); + return tab_tmp; + } + + function DownloadListEmargement(event) { + + const stored_cookie = getCookie('tokenmysypart'); + + var nom_liste_emarge = "Liste_Emargement.pdf"; + + var url = process.env.REACT_APP_API_URL + "myclass/api/GerneratePDFEmargementList/" + stored_cookie + "/" + selected_session_id + "/" + selected_internal_url; + setLoading(true); + + + axios.get(url, { responseType: 'blob', },) + .then((res) => { + setLoading(false); + fileDownload(res.data, nom_liste_emarge) + }).catch((error) => { + console.error('Error:', error); + + }); + } + + function ConfirmEnvoiListEmargement() { + confirmAlert({ + message: "Confirmez l'envoi des demandes d'emargement aux participants", + + buttons: [ + { + label: 'Oui', + onClick: () => { ActionMassListEmargement() } + }, + { + label: 'Non', + onClick: () => { return } + + } + ], + closeOnEscape: false, + closeOnClickOutside: false, + keyCodeForClose: [8, 32], + willUnmount: () => { }, + afterClose: () => { }, + onClickOutside: () => { }, + onKeypress: () => { }, + onKeypressEscape: () => { }, + }); + } + + const [UpdateStagiaireEmargement_api, setUpdateStagiaireEmargement_api] = useState(); + const [UpdateStagiaireEmargement_message, setUpdateStagiaireEmargement_message] = useState(); + const [UpdateStagiaireEmargement_result, setUpdateStagiaireEmargement_result] = useState(); + function handleClick_valide_emargement(event, cellValues) { + + var date = cellValues.row.date; + var email = cellValues.row.email; + var matin = cellValues.row.matin; + var matin_val = ""; + var is_present_val = ""; + + + console.log(" ### cellValues.row = ", cellValues.row); + var is_present = cellValues.row.is_present; + + if (is_present === true) { + is_present_val = "1" + } else if (matin === false) { + is_present_val = "0" + } + + + /*console.log(" ### date , email, matin,matin_val, apresmidi, apresmidi_val = ", + date, email, matin, matin_val, apresmidi, apresmidi_val);*/ + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("_id", cellValues.row._id); + form.append("session_id", selected_session_id); + form.append("email", email); + form.append("date", date); + form.append("is_present", is_present_val); + + console.log(" ## form = ", form); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setUpdateStagiaireEmargement_api("true"); + setUpdateStagiaireEmargement_result(res.data.message); + GetListeEmargement(selected_session_id, selected_internal_url); + alert(" La mise à jour a été bien faite"); + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setUpdateStagiaireEmargement_api("false"); + setUpdateStagiaireEmargement_message(res.data.message); + alert(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.warn('handleClick_valide_emargement : Not good man :( mysearchtext = ' + error); + setUpdateStagiaireEmargement_api("false"); + alert(" Impossible de valider l'émargement"); + + }) } @@ -7821,7 +8334,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair - + } @@ -11545,6 +12058,129 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair } + {String(submenu) === String("emargement") &&
+ +
+ + +
+
+ +
+ { + setSelectionModel_emarg(newSelectionModel_emarg); + //console.log("ch selected--" + newSelectionModel_emarg); + + }} + + selectionModel={selectionModel_emarg} + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={rowss_emarg.map((item, index) => ( + { + id: index, + _id: JSON.parse(item)._id, + nom: JSON.parse(item).nom, + prenom: JSON.parse(item).prenom, + email: JSON.parse(item).email, + date: JSON.parse(item).date, + matin: JSON.parse(item).matin, + apresmidi: JSON.parse(item).apresmidi, + + sequence_start: JSON.parse(item).sequence_start, + sequence_end: JSON.parse(item).sequence_end, + is_present: JSON.parse(item).is_present, + + + } + ))} + + columns={columns_list_emargement} + pageSize={10} + className="datagridclass" + + rowsPerPageOptions={[10]} + disableSelectionOnClick + components={{ + Toolbar: GridToolbar, + }} + + + /> + {selectionModel_emarg && selectionModel_emarg.length >= 1 && +
+ +     + + {actionmass_emarg_val && + + Traiter + + } + modal + nested + position="center center" + > + + {close => ( +
+ +
MySy Information
+
+ {' '} + + Confirmer l'action {actionmass_emarg_val} en masse. +
+
+
+ + +
+
+ +
+
+
+ )} +
+ } +
+ + +
+ } + +
+ {/*
+*/} + + +
+ +
} + diff --git a/src/components/DisplayPartnerTrainingsPagination.js b/src/components/DisplayPartnerTrainingsPagination.js index 1fd3409..cb94073 100644 --- a/src/components/DisplayPartnerTrainingsPagination.js +++ b/src/components/DisplayPartnerTrainingsPagination.js @@ -1460,10 +1460,6 @@ const DistplayPartnerTraningsPage = (props) => { } - - -
 

-
{String(myApiResponse) === "False" &&
diff --git a/src/components/GestionAdministrative.js b/src/components/GestionAdministrative.js index 73dce32..4bf3d9f 100644 --- a/src/components/GestionAdministrative.js +++ b/src/components/GestionAdministrative.js @@ -456,12 +456,15 @@ function GestionAdministrative(props) { const columns_list_emargement = [ { field: 'id', headerName: 'id', hide: true }, { field: '_id', headerName: '_id', hide: true }, - { field: 'date', headerName: 'date', width: 100, hideable: false, flex: 1 }, + { field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 }, + { field: 'sequence_start', headerName: 'Debut', width: 100, hideable: false, flex: 1 }, + { field: 'sequence_end', headerName: 'Fin', width: 100, hideable: false, flex: 1 }, + { field: 'is_present', headerName: 'Présent', width: 100, hide: false, editable: true, type: 'boolean', }, + { field: 'email', headerName: 'email', width: 250, hideable: false, flex: 1 }, { field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true }, { field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: false }, - { field: 'matin', headerName: 'Matin', width: 100, hide: false, editable: true, type: 'boolean', }, - { field: 'apresmidi', headerName: 'Apres midi', width: 100, hide: false, editable: true, type: 'boolean', }, + { field: "valide", headerName: 'Valider', renderCell: (cellValues) => { @@ -599,20 +602,19 @@ function GestionAdministrative(props) { var email = cellValues.row.email; var matin = cellValues.row.matin; var matin_val = ""; - var apresmidi = cellValues.row.apresmidi; - var apresmidi_val = ""; + var is_present_val = ""; - if (matin === true) { - matin_val = "1" + + console.log(" ### cellValues.row = ", cellValues.row); + var is_present = cellValues.row.is_present; + + if (is_present === true) { + is_present_val = "1" } else if (matin === false) { - matin_val = "0" + is_present_val = "0" } - if (apresmidi === true) { - apresmidi_val = "1" - } else if (apresmidi === false) { - apresmidi_val = "0" - } + /*console.log(" ### date , email, matin,matin_val, apresmidi, apresmidi_val = ", date, email, matin, matin_val, apresmidi, apresmidi_val);*/ @@ -620,14 +622,13 @@ function GestionAdministrative(props) { //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); + form.append("_id", cellValues.row._id); form.append("session_id", selected_session_id); form.append("email", email); form.append("date", date); - form.append("matin", matin_val); - form.append("apresmidi", apresmidi_val); - form.append("class_internal_url", internal_url); - - //console.log(" ## form = ", form); + form.append("is_present", is_present_val); + + console.log(" ## form = ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/"; axios.post(myurl, form).then(res => { @@ -670,17 +671,18 @@ function GestionAdministrative(props) { var apresmidi = tab_data.apresmidi; var apresmidi_val = ""; - if (matin === true) { - matin_val = "1" + var is_present_val = ""; + + var is_present = tab_data.is_present; + var is_present = ""; + + if (is_present === true) { + is_present_val = "1" } else if (matin === false) { - matin_val = "0" + is_present_val = "0" } - if (apresmidi === true) { - apresmidi_val = "1" - } else if (apresmidi === false) { - apresmidi_val = "0" - } + /*console.log(" ### date , email, matin,matin_val, apresmidi, apresmidi_val = ", date, email, matin, matin_val, apresmidi, apresmidi_val);*/ @@ -691,15 +693,16 @@ function GestionAdministrative(props) { form.append("session_id", mysession); form.append("email", email); form.append("date", date); - form.append("matin", matin_val); - form.append("apresmidi", apresmidi_val); + form.append("is_present", is_present); form.append("class_internal_url", internal_url); var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/"; + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); @@ -717,7 +720,7 @@ function GestionAdministrative(props) { } }).catch((error) => { - + setLoading(false); console.warn('handleClick_valide_emargement : Not good man :( mysearchtext = ' + error); setUpdateStagiaireEmargement_api("false"); @@ -1578,7 +1581,7 @@ function GestionAdministrative(props) { //console.log(" In Getall_Parter_OR_Default_Session_Steps res.data.message r_class = " + res.data.message); setGetall_Parter_OR_Default_Session_Steps_api("true"); setGetall_Parter_OR_Default_Session_Steps_result(res.data.message); - setRows(res.data.message); + } else { setGetall_Parter_OR_Default_Session_Steps_api("false"); @@ -1881,10 +1884,15 @@ function GestionAdministrative(props) { //alert(" mysession = "+mysession); - var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement/"; + //var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement/"; + // Update du 23/11/2023 : Les emargements sont basé sur les séquence déjà créées + var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement_From_Sequence/"; + + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); @@ -1903,7 +1911,7 @@ function GestionAdministrative(props) { } }).catch((error) => { - + setLoading(false); console.warn('CreateListEmargement : Not good man :( mysearchtext = ' + error); setCreateListEmargement_api("false"); alert(" Impossible d'initialiser la liste d'émargement"); @@ -2108,7 +2116,7 @@ function GestionAdministrative(props) { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation/"; - + setLoading(true); //console.log(" ### CreateSessionFormation form = ", form); //return; @@ -2116,7 +2124,7 @@ function GestionAdministrative(props) { axios.post(myurl, form).then(res => { //console.log(" In CreateSessionFormation res.data.status = " + res.data.status); //console.log(" In CreateSessionFormation res.data.message r_class = " + res.data.message); - + setLoading(false); if (String(res.data.status) === String("true")) { setCreateSessionFormation_api("true"); setCreateSessionFormation_result(res.data.message); @@ -2136,7 +2144,7 @@ function GestionAdministrative(props) { } }).catch((error) => { - + setLoading(false); console.warn('CreateSessionFormation : Not good man :( mysearchtext = ' + error); setCreateSessionFormation_api("false"); alert(" Impossible d'ajouter ou mettre à jour la sessions"); @@ -2895,6 +2903,21 @@ function GestionAdministrative(props) { } + if (document.getElementsByName("titre_session")[0]) { + document.getElementsByName("titre_session")[0].disabled = true; + document.getElementsByName("titre_session")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("emplacement_session")[0]) { + document.getElementsByName("emplacement_session")[0].disabled = true; + document.getElementsByName("emplacement_session")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("is_bpf_session")[0]) { + document.getElementsByName("is_bpf_session")[0].disabled = true; + document.getElementsByName("is_bpf_session")[0].style.backgroundColor = "#ECEFF1"; + } + if (document.getElementsByName("distantiel")[0]) { document.getElementsByName("distantiel")[0].disabled = true; document.getElementsByName("distantiel")[0].style.backgroundColor = "#ECEFF1"; @@ -3024,6 +3047,24 @@ function GestionAdministrative(props) { document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#FFFFFF "; } + if (document.getElementsByName("titre_session")[0]) { + document.getElementsByName("titre_session")[0].disabled = false; + document.getElementsByName("titre_session")[0].style.backgroundColor = "#FFFFFF "; + } + + + if (document.getElementsByName("emplacement_session")[0]) { + document.getElementsByName("emplacement_session")[0].disabled = false; + document.getElementsByName("emplacement_session")[0].style.backgroundColor = "#FFFFFF "; + } + + + if (document.getElementsByName("is_bpf_session")[0]) { + document.getElementsByName("is_bpf_session")[0].disabled = false; + document.getElementsByName("is_bpf_session")[0].style.backgroundColor = "#FFFFFF "; + } + + // Pour les champs spécifiques session for (let i = 0; i < rows_champs_specifics_session.length; i++) { @@ -3068,6 +3109,15 @@ function GestionAdministrative(props) { if (document.getElementsByName("distantiel")[0]) document.getElementsByName("distantiel")[0].value = ""; + if (document.getElementsByName("titre_session")[0]) + document.getElementsByName("titre_session")[0].value = ""; + + if (document.getElementsByName("emplacement_session")[0]) + document.getElementsByName("emplacement_session")[0].value = ""; + + if (document.getElementsByName("is_bpf_session")[0]) + document.getElementsByName("is_bpf_session")[0].value = ""; + if (document.getElementsByName("sessiondatedebutinscription")[0]) document.getElementsByName("sessiondatedebutinscription")[0].value = ""; @@ -3123,6 +3173,17 @@ function GestionAdministrative(props) { if (document.getElementsByName("one_session_status")[0]) document.getElementsByName("one_session_status")[0].value = ""; + if (document.getElementsByName("one_titre_session")[0]) + document.getElementsByName("one_titre_session")[0].value = ""; + + if (document.getElementsByName("one_emplacement_session")[0]) + document.getElementsByName("one_emplacement_session")[0].value = ""; + + if (document.getElementsByName("one_is_bpf_session")[0]) + document.getElementsByName("one_is_bpf_session")[0].value = ""; + + + setone_SessionstartDateInscription(); setone_SessionendDateInscription(); setone_SessionendDate(); @@ -3340,11 +3401,14 @@ function GestionAdministrative(props) { form.append("token", stored_cookie); form.append("tab_ids", liste_emargement_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/EmargementMail/"; - axios.post(myurl, form).then(res => { + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setActionMassListEmargement_api("true"); setActionMassListEmargement_result(res.data.message); } else if (String(res.data.status) === String("Err_Connexion")) { @@ -3358,7 +3422,7 @@ function GestionAdministrative(props) { } }).catch((error) => { - + setLoading(false); console.warn('ActionMassListEmargement : Not good man :( mysearchtext = ' + error); setActionMassListEmargement_api("false"); @@ -4756,7 +4820,7 @@ function GestionAdministrative(props) { if (String(actionmass_emarg_val) === "demande emargement") { ActionMassListEmargement(); } - await sleep(100) + await sleep(50) } setSelectionModel_emarg([]); setactionmass_emarg_val(); @@ -6912,8 +6976,8 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair ( { id: index, + _id: JSON.parse(item)._id, nom: JSON.parse(item).nom, prenom: JSON.parse(item).prenom, email: JSON.parse(item).email, date: JSON.parse(item).date, matin: JSON.parse(item).matin, apresmidi: JSON.parse(item).apresmidi, + + sequence_start: JSON.parse(item).sequence_start, + sequence_end: JSON.parse(item).sequence_end, + is_present: JSON.parse(item).is_present, + } ))}