23/11/2023 - 21h30

recette2
cherif 2023-11-23 21:42:55 +01:00
parent 6564400cc5
commit 71df408068
3 changed files with 749 additions and 47 deletions

View File

@ -42,7 +42,7 @@ import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Fab } from "@material-ui/core"; import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { confirmAlert } from 'react-confirm-alert';
import ToggleSwitch from "./ToggleSwitch"; import ToggleSwitch from "./ToggleSwitch";
const DisplayPartnerSession = (props) => { 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 = [ const columns_sequence = [
{ field: 'id', headerName: 'id', hide: true }, { field: 'id', headerName: 'id', hide: true },
{ 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); GetListePreinscrit(cellValues.row._id, cellValues.row.class_internal_url);
GetListeInscrit(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); GetListePreinscrit(line._id, line.class_internal_url);
GetListeInscrit(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_api, setGet_List_Partner_Clients_api] = useState();
const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = 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) { function handleClickSessionManagement(event, cellValues) {
var code_session = cellValues.row.code_session; var code_session = cellValues.row.code_session;
setselected_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); GetListePreinscrit(cellValues.row._id, cellValues.row.class_internal_url);
GetListeInscrit(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(); const [selected_code_session, setselected_code_session] = useState();
@ -1430,6 +1554,8 @@ const DisplayPartnerSession = (props) => {
GetListePreinscrit(selected_session_id, selected_internal_url); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(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"); alert(" Les stagiaires ont été correctement importés");
submenu_inscrit(); submenu_inscrit();
@ -1981,6 +2107,7 @@ const DisplayPartnerSession = (props) => {
//setreduction_session("1"); //setreduction_session("1");
GetListePreinscrit(selected_session_id, selected_internal_url); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url);
GetListeEmargement(selected_session_id, selected_internal_url);
submenu_inscrit(); submenu_inscrit();
One_clearParticipantFields(); One_clearParticipantFields();
@ -2237,6 +2364,7 @@ const DisplayPartnerSession = (props) => {
setactionmass_insc_val(); setactionmass_insc_val();
GetListePreinscrit(selected_session_id, selected_internal_url); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(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); setDeleteStagiaireData_result(res.data.message);
GetListePreinscrit(selected_session_id, selected_internal_url); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url);
GetListeEmargement(selected_session_id, selected_internal_url);
setretval_ch("1"); setretval_ch("1");
alert(" La mise à jour été correctement faite.") 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); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url);
GetListeEmargement(selected_session_id, selected_internal_url);
submenu_inscrit(); submenu_inscrit();
} else if (String(res.data.status) === String("Err_Connexion")) { } 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); GetListePreinscrit(selected_session_id, selected_internal_url);
GetListeInscrit(selected_session_id, selected_internal_url); GetListeInscrit(selected_session_id, selected_internal_url);
GetListeEmargement(selected_session_id, selected_internal_url);
setretval_ch("1"); setretval_ch("1");
alert(" La mise à jour été correctement faite.") 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(); 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" 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_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_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>} </div>}
@ -11545,6 +12058,129 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
</div>} </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>
&nbsp;<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> &nbsp;
{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}>
&times;
</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> </div>

View File

@ -1460,10 +1460,6 @@ const DistplayPartnerTraningsPage = (props) => {
</div>} </div>}
<div className="div_row"> &nbsp; <br /> <br /> </div>
<div style={{ height: "850 px", "width": "100%" }}> <div style={{ height: "850 px", "width": "100%" }}>
{String(myApiResponse) === "False" && <div className='koUpdateData'> {String(myApiResponse) === "False" && <div className='koUpdateData'>

View File

@ -456,12 +456,15 @@ function GestionAdministrative(props) {
const columns_list_emargement = [ const columns_list_emargement = [
{ field: 'id', headerName: 'id', hide: true }, { field: 'id', headerName: 'id', hide: true },
{ 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: 'email', headerName: 'email', width: 250, hideable: false, flex: 1 },
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true }, { field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: false }, { 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', field: "valide", headerName: 'Valider',
renderCell: (cellValues) => { renderCell: (cellValues) => {
@ -599,20 +602,19 @@ function GestionAdministrative(props) {
var email = cellValues.row.email; var email = cellValues.row.email;
var matin = cellValues.row.matin; var matin = cellValues.row.matin;
var matin_val = ""; var matin_val = "";
var apresmidi = cellValues.row.apresmidi; var is_present_val = "";
var apresmidi_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) { } 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 = ", /*console.log(" ### date , email, matin,matin_val, apresmidi, apresmidi_val = ",
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"); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart'); const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie); form.append("token", stored_cookie);
form.append("_id", cellValues.row._id);
form.append("session_id", selected_session_id); form.append("session_id", selected_session_id);
form.append("email", email); form.append("email", email);
form.append("date", date); form.append("date", date);
form.append("matin", matin_val); form.append("is_present", is_present_val);
form.append("apresmidi", apresmidi_val);
form.append("class_internal_url", internal_url); console.log(" ## form = ", form);
//console.log(" ## form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/"; var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/";
axios.post(myurl, form).then(res => { axios.post(myurl, form).then(res => {
@ -670,17 +671,18 @@ function GestionAdministrative(props) {
var apresmidi = tab_data.apresmidi; var apresmidi = tab_data.apresmidi;
var apresmidi_val = ""; var apresmidi_val = "";
if (matin === true) { var is_present_val = "";
matin_val = "1"
var is_present = tab_data.is_present;
var is_present = "";
if (is_present === true) {
is_present_val = "1"
} else if (matin === false) { } 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 = ", /*console.log(" ### date , email, matin,matin_val, apresmidi, apresmidi_val = ",
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("session_id", mysession);
form.append("email", email); form.append("email", email);
form.append("date", date); form.append("date", date);
form.append("matin", matin_val); form.append("is_present", is_present);
form.append("apresmidi", apresmidi_val);
form.append("class_internal_url", internal_url); form.append("class_internal_url", internal_url);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/"; var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateUserEmargementDate/";
setLoading(true);
axios.post(myurl, form).then(res => { axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
@ -717,7 +720,7 @@ function GestionAdministrative(props) {
} }
}).catch((error) => { }).catch((error) => {
setLoading(false);
console.warn('handleClick_valide_emargement : Not good man :( mysearchtext = ' + error); console.warn('handleClick_valide_emargement : Not good man :( mysearchtext = ' + error);
setUpdateStagiaireEmargement_api("false"); 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); //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_api("true");
setGetall_Parter_OR_Default_Session_Steps_result(res.data.message); setGetall_Parter_OR_Default_Session_Steps_result(res.data.message);
setRows(res.data.message);
} }
else { else {
setGetall_Parter_OR_Default_Session_Steps_api("false"); setGetall_Parter_OR_Default_Session_Steps_api("false");
@ -1881,10 +1884,15 @@ function GestionAdministrative(props) {
//alert(" mysession = "+mysession); //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 => { axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
@ -1903,7 +1911,7 @@ function GestionAdministrative(props) {
} }
}).catch((error) => { }).catch((error) => {
setLoading(false);
console.warn('CreateListEmargement : Not good man :( mysearchtext = ' + error); console.warn('CreateListEmargement : Not good man :( mysearchtext = ' + error);
setCreateListEmargement_api("false"); setCreateListEmargement_api("false");
alert(" Impossible d'initialiser la liste d'émargement"); 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/"; var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation/";
setLoading(true);
//console.log(" ### CreateSessionFormation form = ", form); //console.log(" ### CreateSessionFormation form = ", form);
//return; //return;
@ -2116,7 +2124,7 @@ function GestionAdministrative(props) {
axios.post(myurl, form).then(res => { axios.post(myurl, form).then(res => {
//console.log(" In CreateSessionFormation res.data.status = " + res.data.status); //console.log(" In CreateSessionFormation res.data.status = " + res.data.status);
//console.log(" In CreateSessionFormation res.data.message r_class = " + res.data.message); //console.log(" In CreateSessionFormation res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
setCreateSessionFormation_api("true"); setCreateSessionFormation_api("true");
setCreateSessionFormation_result(res.data.message); setCreateSessionFormation_result(res.data.message);
@ -2136,7 +2144,7 @@ function GestionAdministrative(props) {
} }
}).catch((error) => { }).catch((error) => {
setLoading(false);
console.warn('CreateSessionFormation : Not good man :( mysearchtext = ' + error); console.warn('CreateSessionFormation : Not good man :( mysearchtext = ' + error);
setCreateSessionFormation_api("false"); setCreateSessionFormation_api("false");
alert(" Impossible d'ajouter ou mettre à jour la sessions"); 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]) { if (document.getElementsByName("distantiel")[0]) {
document.getElementsByName("distantiel")[0].disabled = true; document.getElementsByName("distantiel")[0].disabled = true;
document.getElementsByName("distantiel")[0].style.backgroundColor = "#ECEFF1"; document.getElementsByName("distantiel")[0].style.backgroundColor = "#ECEFF1";
@ -3024,6 +3047,24 @@ function GestionAdministrative(props) {
document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#FFFFFF "; 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 // Pour les champs spécifiques session
for (let i = 0; i < rows_champs_specifics_session.length; i++) { for (let i = 0; i < rows_champs_specifics_session.length; i++) {
@ -3068,6 +3109,15 @@ function GestionAdministrative(props) {
if (document.getElementsByName("distantiel")[0]) if (document.getElementsByName("distantiel")[0])
document.getElementsByName("distantiel")[0].value = ""; 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]) if (document.getElementsByName("sessiondatedebutinscription")[0])
document.getElementsByName("sessiondatedebutinscription")[0].value = ""; document.getElementsByName("sessiondatedebutinscription")[0].value = "";
@ -3123,6 +3173,17 @@ function GestionAdministrative(props) {
if (document.getElementsByName("one_session_status")[0]) if (document.getElementsByName("one_session_status")[0])
document.getElementsByName("one_session_status")[0].value = ""; 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_SessionstartDateInscription();
setone_SessionendDateInscription(); setone_SessionendDateInscription();
setone_SessionendDate(); setone_SessionendDate();
@ -3340,11 +3401,14 @@ function GestionAdministrative(props) {
form.append("token", stored_cookie); form.append("token", stored_cookie);
form.append("tab_ids", liste_emargement_id); form.append("tab_ids", liste_emargement_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/EmargementMail/"; 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")) { if (String(res.data.status) === String("true")) {
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
setActionMassListEmargement_api("true"); setActionMassListEmargement_api("true");
setActionMassListEmargement_result(res.data.message); setActionMassListEmargement_result(res.data.message);
} else if (String(res.data.status) === String("Err_Connexion")) { } else if (String(res.data.status) === String("Err_Connexion")) {
@ -3358,7 +3422,7 @@ function GestionAdministrative(props) {
} }
}).catch((error) => { }).catch((error) => {
setLoading(false);
console.warn('ActionMassListEmargement : Not good man :( mysearchtext = ' + error); console.warn('ActionMassListEmargement : Not good man :( mysearchtext = ' + error);
setActionMassListEmargement_api("false"); setActionMassListEmargement_api("false");
@ -4756,7 +4820,7 @@ function GestionAdministrative(props) {
if (String(actionmass_emarg_val) === "demande emargement") { if (String(actionmass_emarg_val) === "demande emargement") {
ActionMassListEmargement(); ActionMassListEmargement();
} }
await sleep(100) await sleep(50)
} }
setSelectionModel_emarg([]); setSelectionModel_emarg([]);
setactionmass_emarg_val(); setactionmass_emarg_val();
@ -6912,8 +6976,8 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
name="titre_session" name="emplacement_session"
id="titre_session" id="emplacement_session"
select select
InputLabelProps={{ InputLabelProps={{
shrink: true, 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) => ( rows={rowss_emarg.map((item, index) => (
{ {
id: index, id: index,
_id: JSON.parse(item)._id,
nom: JSON.parse(item).nom, nom: JSON.parse(item).nom,
prenom: JSON.parse(item).prenom, prenom: JSON.parse(item).prenom,
email: JSON.parse(item).email, email: JSON.parse(item).email,
date: JSON.parse(item).date, date: JSON.parse(item).date,
matin: JSON.parse(item).matin, matin: JSON.parse(item).matin,
apresmidi: JSON.parse(item).apresmidi, 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,
} }
))} ))}