diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 9a11f6f..d39d4e3 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -6970,7 +6970,7 @@ const DisplayPartnerSession = (props) => { setalert_type("error"); return; } - + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); const stored_cookie = getCookie('tokenmysypart'); @@ -16096,7 +16096,7 @@ const DisplayPartnerSession = (props) => { Modalités d'organisation - + {Dialog_1_message} @@ -16117,7 +16117,7 @@ const DisplayPartnerSession = (props) => { disabled={Boolean(parseInt(selected_inscription_invoice_status))} style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', - maxHeight: '10rem', height: '5rem', minHeight: '5rem', marginBottom: '3rem' + maxHeight: '10rem', height: '6rem', minHeight: '5rem', marginBottom: '3rem' }} value={p_session_mode_animation_detail_organisation} onChange={(e) => { diff --git a/src/components/Emarge_QR_Code.js b/src/components/Emarge_QR_Code.js index 54a0bb0..9c4308b 100644 --- a/src/components/Emarge_QR_Code.js +++ b/src/components/Emarge_QR_Code.js @@ -218,7 +218,7 @@ function Emarge_QR_Code() { } else if (String(res.data.status) === String("Err_Connexion")) { - alert('Erreur: ' + res.data.message); + alert( res.data.message); history.push("/Connexion"); return; } @@ -233,7 +233,7 @@ function Emarge_QR_Code() { setLoading(false); console.warn('get_E_Document ee: Not good man :( = ', error); setget_E_Document_api("false"); - get_E_Document_message(" Impossible de recuperer le E-Document") + // get_E_Document_message(" Impossible de recuperer le E-Document") }) } @@ -706,7 +706,7 @@ function Emarge_QR_Code() { > {!erreur_recup_e_doc && Authentification } - {erreur_recup_e_doc && Authentification - Identifiants invalides } + {erreur_recup_e_doc && {erreur_recup_e_doc} } @@ -788,7 +788,7 @@ function Emarge_QR_Code() { } -

Emargement électronique

+

Emargement électronique

@@ -955,8 +955,12 @@ function Emarge_QR_Code() {
+ - { Signature_E_Document(1); @@ -1007,7 +1011,7 @@ function Emarge_QR_Code() {
)} - + */} diff --git a/src/components/Module_Session_Planification.js b/src/components/Module_Session_Planification.js index af30684..8b4afa3 100644 --- a/src/components/Module_Session_Planification.js +++ b/src/components/Module_Session_Planification.js @@ -1,6 +1,6 @@ import React, { useRef, useState, useEffect } from "react"; import TextField from '@mui/material/TextField'; - +import { FcRegisteredTrademark } from "react-icons/fc"; import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css import Button from '@mui/material/Button'; import axios from "axios"; @@ -8,7 +8,7 @@ import { getCookie } from 'react-use-cookie'; import { useHistory } from "react-router-dom"; import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid'; import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css"; - +import fileDownload from 'js-file-download'; import { FcViewDetails, FcInfo } from "react-icons/fc"; import 'react-tooltip/dist/react-tooltip.css' import { Tooltip } from 'react-tooltip' @@ -968,6 +968,8 @@ const Module_Session_Planification = (props) => { const [p_detail_sequence_session_id, setp_detail_sequence_session_id] = useState(""); const [p_detail_sequence_volume_theorique, setp_detail_sequence_volume_theorique] = useState(""); + const [p_detail_sequence_last_emargement_request_date, setp_detail_sequence_last_emargement_request_date] = useState(""); + const [p_detail_sequence_obligatoire, setp_detail_sequence_obligatoire] = useState(""); const [p_detail_justified, setp_detail_justified] = useState(false); @@ -1612,7 +1614,11 @@ const Module_Session_Planification = (props) => { var local_obligatoire = JSON.parse(x).obligatoire; + var local_last_emargement_request_date = "" + if (JSON.parse(x).last_emargement_request_date) { + local_last_emargement_request_date = JSON.parse(x).last_emargement_request_date; + } // Si il n'y pas de relief avec le groupe d'apprenant, on va introduire un relief avec la notion de présentiel et distantiel if (local_session_color === "" && local_mode_animation === "1") { @@ -1646,6 +1652,7 @@ const Module_Session_Planification = (props) => { "local_ue_planif_line_id": local_session_ue_planif_line_id, "tab_grp_apprenant_ids": local_tab_grp_apprenant_ids, "liste_groupe_code": local_liste_groupe_code, + "local_last_emargement_request_date": local_last_emargement_request_date, }; new_data2.push(node); @@ -1758,7 +1765,11 @@ const Module_Session_Planification = (props) => { // sequence en distantiel, on va mettre un code couleur local_session_color = "#4ea860" } + var local_last_emargement_request_date = "" + if (JSON.parse(x).last_emargement_request_date) { + local_last_emargement_request_date = JSON.parse(x).last_emargement_request_date; + } //--- var node = { @@ -1784,6 +1795,7 @@ const Module_Session_Planification = (props) => { "local_ue_planif_line_id": local_session_ue_planif_line_id, "tab_grp_apprenant_ids": local_tab_grp_apprenant_ids, "liste_groupe_code": local_liste_groupe_code, + "local_last_emargement_request_date": local_last_emargement_request_date, }; new_data2.push(node); @@ -2624,7 +2636,7 @@ const Module_Session_Planification = (props) => { setGetall_List_Sequence_Ressource_result([]); setselectionModel_sequence([]); - // console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps); + // console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps); //console.log(" ### arg.event.extendedProps.local_type = ", arg.event.extendedProps.local_type); @@ -2738,6 +2750,12 @@ const Module_Session_Planification = (props) => { else setp_detail_sequence_volume_theorique(""); + if (arg.event.extendedProps.local_last_emargement_request_date) { + setp_detail_sequence_last_emargement_request_date(arg.event.extendedProps.local_last_emargement_request_date); + } + else + setp_detail_sequence_last_emargement_request_date(""); + if (arg.event.extendedProps.local_agenda) { @@ -2785,6 +2803,11 @@ const Module_Session_Planification = (props) => { { "id": "", "label": "", "value": "" }, ] + const New_Option_Type_Emargement = [ + { "id": "qr_code", "label": "QR Code", "value": "qr_code" }, + { "id": "email", "label": "eMail", "value": "email" }, + { "id": "", "label": "", "value": "" }, + ] const datagridSx = { borderRadius: 2, @@ -3950,6 +3973,110 @@ const Module_Session_Planification = (props) => { const fixedVal_grp_apprenant = []; const [val_grp_apprenant, setval_grp_apprenant] = useState([...fixedVal_grp_apprenant]); + const [Dialog_EMARGEMENT_message, setDialog_EMARGEMENT_message] = React.useState(false); + const [Dialog_EMARGEMENT_open, setDialog_EMARGEMENT_open] = React.useState(false); + + function Close_Dialog_EMARGEMENT() { + setDialog_EMARGEMENT_open(false); + setselected_type_emargement("qr_code"); + setemargement_time_valide("-1"); + + } + + const [selected_type_emargement, setselected_type_emargement] = useState("qr_code"); + const [emargement_time_valide, setemargement_time_valide] = useState("-1"); + + const [Init_And_Send_QR_Code_Emargement_api, setInit_And_Send_QR_Code_Emargement_api] = useState(); + const [Init_And_Send_QR_Code_Emargement_message, setInit_And_Send_QR_Code_Emargement_message] = useState(); + const [Init_And_Send_QR_Code_Emargement_result, setInit_And_Send_QR_Code_Emargement_result] = useState(); + const Init_And_Send_QR_Code_Emargement = event => { + + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + + var url = process.env.REACT_APP_API_URL + "myclass/api/Init_Emargement_And_Create_QR_Code_From_Inscription/" + stored_cookie + "/" + selected_session_id + "/" + selected_sequence_id + "/" + emargement_time_valide; + + var nom_fichier_cmd = "Emargement_QR_Code.png"; + setLoading(true); + axios.get(url, { responseType: 'blob', },) + .then((res) => { + setLoading(false); + //console.log(" In Export_Dashbord_to_CSV res.data = " + res.data); + if (String(res.data) === String("false")) { + alert("Impossible de générer le QR code (2) "); + } else { + fileDownload(res.data, nom_fichier_cmd); + Close_Dialog_EMARGEMENT(); + + } + }).catch((error) => { + setLoading(false); + console.error('Error:', error); + alert(" Impossible de générer le QR code ") + + }); + + + setLoading(false); + } + + + const [Init_And_Send_Email_Emargement_api, setInit_And_Send_Email_Emargement_api] = useState(); + const [Init_And_Send_Email_Emargement_message, setInit_And_Send_Email_Emargement_message] = useState(); + const [Init_And_Send_Email_Emargement_result, setInit_And_Send_Email_Emargement_result] = useState(); + const Init_And_Send_Email_Emargement = event => { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("session_id", selected_session_id); + form.append("tab_sequence_ids", selected_sequence_id); + form.append("qr_time_valide", emargement_time_valide); + + + //console.log(" form == ", form); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Init_Emargement_And_Send_Email_Code_From_Inscription/"; + + + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Init_And_Send_Email_Emargement res.data.status = " + res.data.status); + //console.log(" In Init_And_Send_Email_Emargement res.data.message r_class = " + res.data.message); + + setLoading(false); + if (String(res.data.status) === String("true")) { + setInit_And_Send_Email_Emargement_api("true"); + setInit_And_Send_Email_Emargement_result(res.data.message); + + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + Close_Dialog_EMARGEMENT(); + } + else { + setInit_And_Send_Email_Emargement_api("false"); + setInit_And_Send_Email_Emargement_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + } + + }).catch((error) => { + + + setLoading(false); + console.warn('UpdateStagiaireData : Not good man :( Init_And_Send_Email_Emargement = ' + error); + setInit_And_Send_Email_Emargement_api("false"); + alert(" Impossible d'envoyer les demandes d'émargement par email"); + }) + } return (
@@ -3970,6 +4097,140 @@ const Module_Session_Planification = (props) => { {/*** FIN Affichage des messages d'alerte*/} + {/*** Dialog ajout EMARGEMENT */} + + null} + + PaperProps={{ + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: position_h_myRef_seq_calendrier_01, + margin: "2px", + maxWidth: 'unset' + }, + }} + disableRestoreFocus + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + + className="displaypartnersession mysy_MuiPaper-root" + disableEnforceFocus={true} + > + + + Emargement + + + + {p_detail_sequence_last_emargement_request_date.length > 5 &&
+ /!\ Une demande d'émargement a déjà été enregistrée le {p_detail_sequence_last_emargement_request_date}.
+ En effectuant une nouvelle demande, tous les émargements non validés seront réinitialisés. +
} + +
Type d'émargement
+ {New_Option_Type_Emargement && New_Option_Type_Emargement.length > 0 && (data).value === String(selected_type_emargement))[0].label} + options={New_Option_Type_Emargement} + onChange={(event, value) => { + + if (value && value.value) { + setselected_type_emargement(value.value); + + } else { + setselected_type_emargement(""); + } + + }} + + renderInput={(params) => + } + />} +
+ +
Durée de valididé (min)
+ { + setemargement_time_valide(e.target.value); + } + } + /> +
+ + + +
+ + +
+
+ + +
+ +
+ +
+ +
+ + + + + +
+ +
+ {/*** Fin ajout Dialog EMARGEMENT */} + + {/*** Dialog ajout RECORD MODEL PLANNING */} @@ -6034,9 +6295,26 @@ const Module_Session_Planification = (props) => { {String(selected_sequence_id).length > 3 && } + + {String(selected_sequence_id).length > 3 && val_grp_apprenant.length > 0 && + }
} + + {String(submenu_seq_dialog) === "dialog_ressource" &&
@@ -6433,33 +6711,6 @@ const Module_Session_Planification = (props) => { - - {/*
Groupe apprenants - - {New_Getall_Partner_Groupe_Inscrit_result && New_Getall_Partner_Groupe_Inscrit_result.length > 0 && (data)._id === String(p_detail_sequence_groupe_apprenant_id))[0].label} - options={New_Getall_Partner_Groupe_Inscrit_result} - onChange={(event, value) => { - if (value && value._id) { - setp_detail_sequence_groupe_apprenant_id(value._id); - } else { - setp_detail_sequence_groupe_apprenant_id(""); - } - - - }} - - renderInput={(params) => - } - />} - -
*/} -
Groupe apprenants {New_Getall_Partner_Groupe_Inscrit_result && New_Getall_Partner_Groupe_Inscrit_result.length > 0 && + + + ); +} + + +const useStyles = makeStyles((theme) => ({ + + dialog: { + position: 'absolute', + // left: 10, + top: 400 + }, + + paper: { + overflowY: 'unset', + }, + customizedButton: { + position: 'absolute', + left: '98%', + top: '-3%', + backgroundColor: 'lightgray', + color: 'gray', + }, +})); + + + + +const DisplayPartnerSession = (props) => { + registerLocale('fr', fr); + const stored_cookie_session_display_view = getCookie('mysy_session_display_view'); + const stored_cookie_session_data_row_grouped_by = getCookie('mysy_session_data_row_grouped_by'); + + const classes = useStyles(); + + const history = useHistory(); + const [submenu, setsubmenu] = useState(""); + const [rowss, setRows] = useState([]); + + const [actionmass_preinsc_val, setactionmass_preinsc_val] = useState(); + const [one_SessionstartDateInscription, setone_SessionstartDateInscription] = useState(); + const [one_SessionendDateInscription, setone_SessionendDateInscription] = useState(); + const [one_SessionendDate, setone_SessionendDate] = useState(); + const [one_SessionstartDate, setone_SessionstartDate] = useState(); + const [one_urlpreview_certif, setone_urlpreview_certif] = useState(); + const [one_field_contenu_ftion, setone_field_contenu_ftion] = useState(""); + + const filters = [ + { value: 'code_session', label: 'Code Session' }, + { value: 'class_title', label: 'Titre Formation' }, + { value: 'certif', label: 'Certification' } + ] + + const [selectedfilt1, setselectedfilt1] = useState(""); + const [selectedfilt2, setselectedfilt2] = useState(""); + const [selectedfilt3, setselectedfilt3] = useState(""); + const [reftrainingtoupdate, setreftrainingtoupdate] = useState(); + const [externalcodetraining_toupdate, setexternalcodetraining_toupdate] = useState(); + + + const [is_recherche, setis_recherche] = useState("0"); + + + const [selectedtraining, setselectedtraining] = useState([]) + + const BorderLinearProgress = styled(LinearProgress)(() => ({ + height: "20px", + width: "60px", + borderRadius: "2px", + backgroundColor: " #ebf5fb", + "& .MuiLinearProgress-bar": { + backgroundColor: "#1bd900", + transition: "none", + transformOrigin: "left", + }, + })); + + function ExpandableCell_50({ value }) { + const [expanded, setExpanded] = React.useState(false); + + return ( + + ); + } + + + + function Display_Colunm_text({ value }) { + + return ( +
+ {value}  + +
+ ); + } + + + const [datagrid_columns_size_model1, setdatagrid_columns_size_model1] = useState(200); + const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(100); + + + const ITEM_HEIGHT_PROMO = 48; + const ITEM_HEIGHT = 48; + + + const [anchorEl_promo, setanchorEl_promo] = React.useState(null); + const [anchorEl, setAnchorEl] = React.useState(null); + + const open_promo = Boolean(anchorEl_promo); + const open = Boolean(anchorEl); + + const options_menu_vertical_promotion = [ + 'Décaler', + 'Archiver/Désarch.', + 'Supprimer', + ]; + + const options_menu_vertical = [ + 'Renvoyer Conf.', + 'Mémo & Comment.', + 'Annuler Insc.', + ]; + + + + const handleClick_option_button_vertical_promo = (event) => { + setanchorEl_promo(event.currentTarget); + }; + const handleClick_option_button_vertical = (event) => { + setAnchorEl(event.currentTarget); + }; + + + const handleClose_option_button_vertical_promo = (event, value) => { + setanchorEl_promo(null); + }; + const handleClose_option_button_vertical = (event, value) => { + setAnchorEl(null); + }; + + + + const columns = [ + { field: 'id', headerName: 'id', hide: true, disableExport: true, }, + { field: '_id', headerName: '_id', hide: true, disableExport: true, }, + { field: 'class_id', headerName: 'class_id', hide: true, disableExport: true, }, + { field: 'class_lms_class_code', headerName: 'class_lms_class_code', hide: true, disableExport: true, }, + { field: 'is_bpf', headerName: 'is_bpf', hide: true, }, + + { field: 'session_alert_message', headerName: 'session_alert_message', hide: true, disableExport: true, }, + { field: 'class_internal_url', headerName: 'class_internal_url', hide: true, disableExport: true, }, + + { + field: 'is_session_alert', headerName: '', hide: false, Width: 50, flex: 1, disableExport: true, + renderCell: (cellValues) => { + return ( +
+ {cellValues.row.is_session_alert && String(cellValues.row.is_session_alert) === "1" && } + {cellValues.row.is_session_alert && String(cellValues.row.is_session_alert) !== "1" && ""} + +
+ + ); + } + + }, + + { field: 'code_session', headerName: 'Code Session', hide: false, minWidth: 200, flex: 1, renderCell: (params) => , }, + { field: 'session_title', headerName: 'Titre', hide: false, flex: 1, minWidth: 250, renderCell: (params) => , }, + + { + field: 'statut', headerName: 'Statut', hide: true, width: datagrid_columns_size_model2, + renderCell: (cellValues) => { + return ( + +
+ {String(cellValues.row.statut) === "1" && "Actif"}  + {String(cellValues.row.statut) !== "1" && "Inactif"}  +
+ + ); + }, + + }, + + { + field: 'etape', headerName: 'Etape', hide: false, width: datagrid_columns_size_model2, renderCell: (params) => , + + }, + + { + field: 'archive', headerName: 'Archivé', hide: true, Width: 50, editable: false, renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.archive) === "1" && "Oui"}  + {String(cellValues.row.archive) !== "1" && "Non"}  + +
+ + ); + }, + }, + + + + { field: 'class_external_code', headerName: 'Code Formation', align: "center", hideable: true, flex: 1, hide: true, minWidth: 150, renderCell: (params) => , }, + { field: 'date_debut', headerName: 'Debut', hide: false, minWidth: 150, renderCell: (params) => , }, + { field: 'date_fin', headerName: 'Fin', minWidth: 150, renderCell: (params) => , }, + + { + field: 'mode_animation', headerName: 'Mode', width: datagrid_columns_size_model2, + renderCell: (cellValues) => { + return ( + +
+ {String(cellValues.row.mode_animation) === "0" && "Prés."}  + {String(cellValues.row.mode_animation) === "1" && "Dist."}  + {String(cellValues.row.mode_animation) === "2" && "Hybr."}  + +
+ + ); + }, + }, + + + { field: 'formateur', headerName: 'Formateur', minWidth: datagrid_columns_size_model1, hide: true, hideable: true, renderCell: (params) => , }, + { field: 'nb_participant', headerName: 'Nb Parti.', minWidth: datagrid_columns_size_model2, align: "center", hide: false, renderCell: (params) => , }, + { + field: 'taux_remplissage', headerName: 'Remplissage', align: "center", flex: 1, minWidth: 100, maxWidth: 150, flex: 1, + align: "left", + renderCell: (params) => { + return ( + <> + + {`${(params?.row.taux_remplissage * 100).toFixed(0)}%`} + + ); + }, + }, + { field: 'nb_inscrit', headerName: 'Insc', minWidth: 20, align: "center", hide: true, hideable: true, renderCell: (params) => , }, + { field: 'nb_preinscrit', headerName: 'Preinsc.', minWidth: 20, align: "center", hide: false, hideable: true, renderCell: (params) => , }, + { + field: 'prix_session', headerName: 'Prix', minWidth: 20, align: "center", + renderCell: (params) => , + }, + { field: 'title', headerName: 'Formation', minWidth: 250, flex: 1, align: "center", hide: true, hideable: true, renderCell: (params) => , }, + { field: 'domaine', headerName: 'Domaine', minWidth: datagrid_columns_size_model1, align: "center", hide: true, renderCell: (params) => , }, + { field: 'published', headerName: 'publié', minWidth: datagrid_columns_size_model1, align: "center", hide: true, renderCell: (params) => , }, + + { field: 'site_formation_id', headerName: 'site_formation_id', with: 0, align: "center", hide: true, disableExport: true, }, + + + { field: 'qty_in_quotation', headerName: 'Place Non validé ', with: 150, align: "center", hide: false, renderCell: (params) => , }, + { field: 'qty_in_quotation_list_quotation', headerName: 'List Devis ', with: 150, align: "center", hide: false, renderCell: (params) => , }, + + { field: 'site_formation_nom', headerName: 'Site Ftion', with: 150, align: "center", hide: true, renderCell: (params) => , }, + + { + field: 'invoiced_statut', headerName: 'Facturé', minWidth: 100, flex: 1, maxWidth: 150, hide: false, editable: false, + renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.invoiced_statut) === "2" && "Oui"} + {String(cellValues.row.invoiced_statut) === "1" && "Part."} + {String(cellValues.row.invoiced_statut) !== "1" && String(cellValues.row.invoiced_statut) !== "2" && "Non"} +
+ ); + }, + }, + + { field: 'duration', headerName: 'Durée', minWidth: datagrid_columns_size_model2, align: "center", hide: true, renderCell: (params) => , }, + + { + field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", disableExport: true, + renderCell: (cellValues) => { + return ( +
+ {String(props.check_user_acces_right("session", "write")) === "1" && } +
+ ); + }, + }, + ] + + + const [session_debut_for_decalage, setsession_debut_for_decalage] = React.useState(''); + const [session_fin_for_decalage, setsession_fin_for_decalage] = React.useState(''); + + const [session_new_debut_for_decalage, setsession_new_debut_for_decalage] = React.useState(''); + const [session_id_for_decalage, setsession_id_for_decalage] = React.useState(''); + + const [promo_archive_status, setpromo_archive_status] = React.useState(''); + + const [working_cellValues_promo, setworking_cellValues_promo] = useState(false); + const [dialogOpen_supp_promo, setdialogOpen_supp_promo] = useState(false); + const Dialog_menuitem_close_supp_prmo = () => { + setdialogOpen_supp_promo(false) + }; + + + const [dialogOpen_archive, setdialogOpen_archive] = useState(false); + const Dialog_menuitem_close_archive = () => { + setdialogOpen_archive(false) + }; + + const options_menu_vertical_preinsc = [ + '', + 'Mise à jour', + 'Mémo & Comment.', + 'Valider Insc.', + 'Refuser Insc.', + 'Supprimer', + + ]; + const [working_cellValues_preisnc, setworking_cellValues_preisnc] = useState(false); + const [anchorEl_preinsc, setAnchorEl_preinsc] = React.useState(null); + const open_preinsc = Boolean(anchorEl_preinsc); + const handleClick_option_button_vertical_preinsc = (event) => { + setAnchorEl_preinsc(event.currentTarget); + }; + const handleClose_option_button_vertical_preinsc = (event, value) => { + + setAnchorEl_preinsc(null); + }; + + + const [dialogOpen_refus_inscription, setdialogOpen_refus_inscription] = useState(false); + const Dialog_menuitem_close_refus_inscription = () => { + setdialogOpen_refus_inscription(false) + }; + + + const [dialogOpen_suppr_preinscription, setdialogOpen_suppr_preinscription] = useState(false); + const Dialog_menuitem_suppr_preinscription = () => { + setdialogOpen_suppr_preinscription(false) + }; + + const columns_preinscrit = [ + { field: 'id', headerName: 'id', hide: true }, + { field: '_id', headerName: '_id', hide: true }, + + { + field: 'civilite', headerName: 'Civ.', minWidth: 90, flex: 1, maxWidth: 100, hide: false, editable: false, editable: false, + + renderCell: (cellValues) => { + return ( + +
+ {New_civilite && New_civilite.length > 0 && cellValues.row.civilite && + + } + +
+ + ); + }, + }, + + { field: 'nom', headerName: 'nom', minWidth: 200, flex: 1, hide: false, editable: true, renderCell: (params) => , }, + { field: 'prenom', headerName: 'prenom', minWidth: 200, flex: 1, hide: false, editable: true, renderCell: (params) => , }, + { field: 'email', headerName: 'email', minWidth: 200, flex: 1, flex: 1, renderCell: (params) => , }, + + { field: 'telephone', headerName: 'telephone', minWidth: 150, flex: 1, flex: 1, renderCell: (params) => , }, + + { field: 'client_rattachement_nom', headerName: 'Client', minWidth: 150, flex: 1, hide: false, editable: false, renderCell: (params) => , }, + { field: 'client_rattachement_id', headerName: 'Client_id', Width: 0, hide: true, editable: false, }, + + { + field: 'client_facture', headerName: 'Client Fact.', minWidth: 150, flex: 1, hide: false, editable: false, + + renderCell: (cellValues) => { + return ( +
+ {New_Get_List_Partner_Clients_result && New_Get_List_Partner_Clients_result.length > 0 && } +
+ + ); + } + }, + + { field: 'employeur', headerName: 'Employeur', minWidth: 150, flex: 1, maxWidth: 200, hide: true, editable: true, renderCell: (params) => , }, + { field: 'opco', headerName: 'Centre Opco', minWidth: 100, flex: 1, maxWidth: 150, hide: true, editable: false }, + { + field: 'modefinancement', headerName: 'Financement', minWidth: 100, flex: 1, maxWidth: 150, hide: true, editable: false, + renderCell: (cellValues) => { + return ( + +
+ {New_Financement && New_Financement.length > 0 && cellValues.row.modefinancement && + + } + +
+ + ); + }, + }, + { field: 'amount', headerName: 'Montant Formation', minWidth: 100, flex: 1, maxWidth: 150, type: 'number', flex: 1, editable: true, renderCell: (params) => , }, + + { + field: 'comment_or_memo', headerName: 'Memo & Comment.', Width: 50, hide: false, editable: false, + renderCell: (cellValues) => { + return ( +
{ + + setp_detail_inscription_comment(cellValues.row.comment); + setp_detail_inscription_memo(cellValues.row.memo); + setselected_inscription_id(cellValues.row._id); + setselected_inscription_email(cellValues.row.email); + setselected_inscription_invoice_status("0"); + setselected_inscription_status("0"); + setDialog_Memo_Comment_open(true); + }}> + {(cellValues.row.comment && String(cellValues.row.comment).length > 2 || + cellValues.row.memo && String(cellValues.row.memo).length > 2) + && } + +
+ + ); + } + }, + + { + field: "update", headerName: 'Mise à jour', + renderCell: (cellValues) => { + return ( + <> + {String(props.check_user_acces_right("session", "write")) === "1" && { + handleClick_accept(event, cellValues); + }} + > + + + } + modal + nested + position="center center" + > + {close => ( +
+ +
MySy Information
+
+ {' '} + + Confirmer la mise à jour des informations du stagiaire +
+
+
+ + +
+
+ +
+
+
+ )} +
} + + + + ); + } + }, + + + { + field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", + renderCell: (cellValues) => { + return ( +
+ + {String(props.check_user_acces_right("session", "write")) === "1" &&