23/11/2023 - 21h30
parent
6564400cc5
commit
71df408068
|
@ -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 (
|
||||
|
||||
<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick_valide_emargement(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<FcApproval />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
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 (
|
||||
|
||||
<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick_valide_emargement(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<FcApproval />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
*/},
|
||||
|
||||
]
|
||||
|
||||
|
||||
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
|
|||
<Button variant="outlined" ref={myRef} onClick={submenu_sequence_session} className="detail_class_submenu" id='sequence_session' name='sequence_session'>Séquences </Button>
|
||||
<Button variant="outlined" onClick={submenu_preinscrit} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Preinscription ({String(nb_stagiaire_Preinscrit)}) </Button>
|
||||
<Button variant="outlined" onClick={submenu_inscrit} className="detail_class_submenu" id='inscrit' name='inscrit'>Inscription ({String(nb_stagiaire_Inscrit)}) </Button>
|
||||
|
||||
<Button variant="outlined" onClick={submenu_emargement} className="detail_class_submenu" id='inscrit' name='inscrit'>Emargement </Button>
|
||||
</div>}
|
||||
|
||||
|
||||
|
@ -11545,6 +12058,129 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
|
||||
</div>}
|
||||
|
||||
{String(submenu) === String("emargement") && <div style={{ "border": "None" }}>
|
||||
|
||||
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
|
||||
<Button className="bton_emarge" onClick={ConfirmInitListEmargement}>Initialiser la liste émargement</Button>
|
||||
<Button className="bton_emarge" onClick={DownloadListEmargement}>Imprimer la liste émargement</Button>
|
||||
<Button className="bton_emarge" onClick={ConfirmEnvoiListEmargement}>Envoyer les demandes d'émargement</Button><br />
|
||||
</div>
|
||||
|
||||
<div className="session_data" style={{ height: 500, width: '100%' }}>
|
||||
<DataGrid
|
||||
checkboxSelection
|
||||
onSelectionModelChange={(newSelectionModel_emarg) => {
|
||||
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 &&
|
||||
<div className="block_en_mass">
|
||||
<nav className='traitement_mass'>Traitement en masse / Emarge</nav>
|
||||
<select
|
||||
id={"actionmassemarg"} name={"actionmassemarg"}
|
||||
onChange={actionmass_emarg}
|
||||
className="action_mass">
|
||||
<option selected value="n/a">Choisir une action</option>
|
||||
<option value="demande emargement">Demande emargement</option>
|
||||
|
||||
</select>
|
||||
|
||||
{actionmass_emarg_val &&
|
||||
<Popup
|
||||
trigger={<Button className="bton_traiter_en_mass" >
|
||||
<FcAcceptDatabase /> Traiter
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
Confirmer l'action <b> {actionmass_emarg_val} </b> en masse.
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
actionmass_emarge_Traitemet();
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
}
|
||||
<br />
|
||||
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
<br />
|
||||
{/*<Button className="bton_emarge" onClick={ActionMassListEmargement}>Envoyer les demandes d'emargement</Button><br />
|
||||
*/}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -1460,10 +1460,6 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
<div className="div_row"> <br /> <br /> </div>
|
||||
|
||||
<div style={{ height: "850 px", "width": "100%" }}>
|
||||
|
||||
{String(myApiResponse) === "False" && <div className='koUpdateData'>
|
||||
|
|
|
@ -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
|
|||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="titre_session"
|
||||
id="titre_session"
|
||||
name="emplacement_session"
|
||||
id="emplacement_session"
|
||||
select
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
|
@ -7903,12 +7967,18 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
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,
|
||||
|
||||
|
||||
}
|
||||
))}
|
||||
|
|
Loading…
Reference in New Issue