19/06/2025 -18h
parent
29da61b65a
commit
35f4b013e5
|
@ -1,3 +1,3 @@
|
|||
formation_code_externe;code_session;date_debut;date_fin;nb_participant;adresse;code_postal;ville;pays;date_debut_inscription;date_fin_inscription;distanciel;presentiel;prix_session;session_status;lms_class_code;session_etape;formateur_email;titre;location_type;is_bpf
|
||||
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;05/07/2024;15/07/2024;10;2 passage de la Providence 01;75001;Paris 1;France;03/01/2024;05/07/2024;1;0;1550;1;;0;;Session Fev;intra;1
|
||||
MYSY_Demo_AP_v2;SESS_02_DEMO_AP_V2;20/08/2024;30/08/2024;15;3 passage de la Providence 03;75001;Paris 2;France;04/01/2024;20/08/2024;0;1;1550;1;;0;;Session Avril;extra;1
|
||||
formation_code_externe;code_session;date_debut;date_fin;nb_participant;adresse;code_postal;ville;pays;date_debut_inscription;date_fin_inscription;distanciel;presentiel;prix_session;session_status;lms_class_code;session_etape;formateur_email;titre;location_type;is_bpf;type_session
|
||||
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;05/07/2024;15/07/2024;10;2 passage de la Providence 01;75001;Paris 1;France;03/01/2024;05/07/2024;1;0;1550;1;;0;;Session Fev;intra;1;0
|
||||
MYSY_Demo_AP_v2;SESS_02_DEMO_AP_V2;20/08/2024;30/08/2024;15;3 passage de la Providence 03;75001;Paris 2;France;04/01/2024;20/08/2024;0;1;1550;1;;0;;Session Avril;extra;1;0
|
||||
|
|
|
|
@ -51,7 +51,7 @@ import AutoAwesomeOutlinedIcon from '@mui/icons-material/AutoAwesomeOutlined';
|
|||
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
import MySyIA from "./Module_IA";
|
||||
|
||||
import { FcInfo } from "react-icons/fc";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Draggable from 'react-draggable';
|
||||
|
@ -182,8 +182,8 @@ const AddClassManual = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'code', headerName: 'Code', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'titre', headerName: 'Titre', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'credit', headerName: 'Credit', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'coefficient', headerName: 'Coef.', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'credit', headerName: 'Credit', minWidth: 100, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'coefficient', headerName: 'Coef.', minWidth: 100, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{
|
||||
field: 'pres_dist_hyp', headerName: 'Animation', minWidth: 150, flex: 1,
|
||||
renderCell: (cellValues) => {
|
||||
|
@ -407,6 +407,7 @@ const AddClassManual = (props) => {
|
|||
);
|
||||
}
|
||||
},
|
||||
{ field: 'ponderation_type_eval', headerName: 'Poids. Type Eval.', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
|
||||
{ field: 'max_note', headerName: 'max_note', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
@ -506,7 +507,8 @@ const AddClassManual = (props) => {
|
|||
setselected_ue_id("");
|
||||
setselected_eu_evalution_id("");
|
||||
setsetgridline_evaluation_ue_id("");
|
||||
setp_detail_max_node("");
|
||||
setp_detail_max_note("");
|
||||
setp_detail_ponderation_type_eval("");
|
||||
setclass_unite_enseignement_type_evaluation_id("");
|
||||
|
||||
}
|
||||
|
@ -1199,6 +1201,7 @@ const AddClassManual = (props) => {
|
|||
var local_class_ue_id = JSON.parse(x).class_ue_id;
|
||||
var local_type_evaluation_id = JSON.parse(x).type_evaluation_id;
|
||||
var local_max_note = JSON.parse(x).max_note;
|
||||
var local_ponderation_type_eval = JSON.parse(x).ponderation_type_eval;
|
||||
|
||||
|
||||
//---
|
||||
|
@ -1210,7 +1213,7 @@ const AddClassManual = (props) => {
|
|||
"class_ue_id": local_class_ue_id,
|
||||
"type_evaluation_id": local_type_evaluation_id,
|
||||
"max_note": local_max_note,
|
||||
|
||||
"ponderation_type_eval": local_ponderation_type_eval,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
@ -1225,6 +1228,7 @@ const AddClassManual = (props) => {
|
|||
"class_ue_id": "",
|
||||
"type_evaluation_id": "",
|
||||
"max_note": "",
|
||||
"ponderation_type_eval": ""
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
@ -1247,7 +1251,7 @@ const AddClassManual = (props) => {
|
|||
setLoading(false);
|
||||
console.warn('Not good man :( Getall_Class_List_Evalution = ', error);
|
||||
setGetall_Class_List_Evalution_api("false");
|
||||
alert(" Impossible de recuperer la liste des évaluations de la formatio");
|
||||
alert(" Impossible de recuperer la liste des évaluations de la formation");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
@ -4283,8 +4287,8 @@ const AddClassManual = (props) => {
|
|||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
|
||||
|
||||
form.append("max_note", p_detail_max_node);
|
||||
form.append("max_note", p_detail_max_note);
|
||||
form.append("ponderation_type_eval", p_detail_ponderation_type_eval);
|
||||
|
||||
var myurl = "";
|
||||
|
||||
|
@ -4316,7 +4320,8 @@ const AddClassManual = (props) => {
|
|||
setselected_ue_id("");
|
||||
setselected_eu_evalution_id("");
|
||||
setsetgridline_evaluation_ue_id("");
|
||||
setp_detail_max_node("");
|
||||
setp_detail_max_note("");
|
||||
setp_detail_ponderation_type_eval("");
|
||||
setclass_unite_enseignement_type_evaluation_id("");
|
||||
Getall_Class_List_Evalution();
|
||||
|
||||
|
@ -4397,7 +4402,9 @@ const AddClassManual = (props) => {
|
|||
|
||||
const [class_unite_enseignement_type_evaluation_id, setclass_unite_enseignement_type_evaluation_id] = React.useState("");
|
||||
|
||||
const [p_detail_max_node, setp_detail_max_node] = React.useState("");
|
||||
const [p_detail_max_note, setp_detail_max_note] = React.useState("");
|
||||
|
||||
const [p_detail_ponderation_type_eval, setp_detail_ponderation_type_eval] = React.useState("");
|
||||
|
||||
|
||||
const [add_ue_evalution, setadd_ue_evalution] = React.useState("");
|
||||
|
@ -5406,6 +5413,23 @@ const AddClassManual = (props) => {
|
|||
/>
|
||||
</div>}
|
||||
|
||||
<div className="session_caract_Dialog" > <b> Ponderation Type Eval </b>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_ponderation_type_eval"
|
||||
id="event_dialog_ponderation_type_eval"
|
||||
type="number"
|
||||
fullWidth
|
||||
value={p_detail_ponderation_type_eval}
|
||||
onChange={(e) => {
|
||||
setp_detail_ponderation_type_eval(e.target.value);
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > <b> Max Note </b>
|
||||
<TextField
|
||||
|
@ -5415,9 +5439,9 @@ const AddClassManual = (props) => {
|
|||
id="event_dialog_credit"
|
||||
type="number"
|
||||
fullWidth
|
||||
value={p_detail_max_node}
|
||||
value={p_detail_max_note}
|
||||
onChange={(e) => {
|
||||
setp_detail_max_node(e.target.value);
|
||||
setp_detail_max_note(e.target.value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5756,8 +5780,7 @@ const AddClassManual = (props) => {
|
|||
class_ue_id: JSON.parse(item).class_ue_id,
|
||||
type_evaluation_id: JSON.parse(item).type_evaluation_id,
|
||||
max_note: JSON.parse(item).max_note,
|
||||
|
||||
|
||||
ponderation_type_eval: JSON.parse(item).ponderation_type_eval,
|
||||
}
|
||||
))}
|
||||
|
||||
|
@ -5771,7 +5794,8 @@ const AddClassManual = (props) => {
|
|||
setsetgridline_evaluation_ue_id(newSelectionModel.row.id);
|
||||
setselected_eu_evalution_id(newSelectionModel.row.type_evaluation_id)
|
||||
setselected_ue_id(newSelectionModel.row.class_ue_id);
|
||||
setp_detail_max_node(newSelectionModel.row.max_note);
|
||||
setp_detail_max_note(newSelectionModel.row.max_note);
|
||||
setp_detail_ponderation_type_eval(newSelectionModel.row.ponderation_type_eval);
|
||||
setclass_unite_enseignement_type_evaluation_id(newSelectionModel.row._id);
|
||||
|
||||
Getall_Partner_Type_Evalution_List();
|
||||
|
@ -5840,12 +5864,18 @@ const AddClassManual = (props) => {
|
|||
|
||||
<br />
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<h3> Regle de calcul note finale </h3>
|
||||
<br />
|
||||
|
||||
<nav>
|
||||
{New_Get_List_Regle_Calcul_Note_Formation_result && New_Get_List_Regle_Calcul_Note_Formation_result.length > 0 && <nav>
|
||||
|
||||
Règle de calcul :
|
||||
{New_Get_List_Regle_Calcul_Note_Formation_result && New_Get_List_Regle_Calcul_Note_Formation_result.length > 0 && <Autocomplete
|
||||
Règle de calcul de la note finale:
|
||||
<Tooltip className="tooltip_css" id="detail_regle_calcul2" />
|
||||
<a data-tooltip-id="detail_regle_calcul2" data-tooltip-html={New_Get_List_Regle_Calcul_Note_Formation_result.filter((data) => (data)._id === String(selected_class_note_calculation_id))[0].calcul_rule}>
|
||||
<FcInfo />
|
||||
</a>
|
||||
<br/>
|
||||
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="regle_calcul_note_formation"
|
||||
id="regle_calcul_note_formation"
|
||||
|
@ -5864,13 +5894,12 @@ const AddClassManual = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Formateur" />
|
||||
renderInput={(params) => <TextField {...params} label="Mode de calcul" />
|
||||
}
|
||||
/>}
|
||||
/>
|
||||
|
||||
<br />
|
||||
Exemple de calcul : Moyenne finale = [ UE * Coef (UE) ] / nb_coef
|
||||
</nav>
|
||||
|
||||
</nav>}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -6094,7 +6123,7 @@ const AddClassManual = (props) => {
|
|||
</div>}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
|
@ -6801,23 +6830,23 @@ const AddClassManual = (props) => {
|
|||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="training_caract">
|
||||
{String(JSON.parse(champ_spec).field_type) === "float" &&
|
||||
<TextField
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
label={JSON.parse(champ_spec).field_label}
|
||||
type="number"
|
||||
inputProps={{ min: "1", max: "999999", step: "1" }}
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
//setEmployee_data_changed("1");
|
||||
}}
|
||||
/>}
|
||||
{String(JSON.parse(champ_spec).field_type) === "float" &&
|
||||
<TextField
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
label={JSON.parse(champ_spec).field_label}
|
||||
type="number"
|
||||
inputProps={{ min: "1", max: "999999", step: "1" }}
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
//setEmployee_data_changed("1");
|
||||
}}
|
||||
/>}
|
||||
|
||||
{String(JSON.parse(champ_spec).field_type) === "string" && <TextField
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
|
|
|
@ -2191,6 +2191,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("type_session", "1");
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
|
||||
|
@ -2372,6 +2373,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("archive", "0");
|
||||
form.append("type_session", "1");
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
|
||||
|
||||
|
||||
|
@ -2384,7 +2386,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
setGetall_TrainingSession_result(res.data.message);
|
||||
setRows(res.data.message);
|
||||
|
||||
|
||||
|
||||
var new_data2 = [];
|
||||
|
||||
var timeline_item = [];
|
||||
|
@ -2664,6 +2666,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
form.append(filtre1, filtre1_value);
|
||||
|
||||
form.append("archive", "0");
|
||||
form.append("type_session", "1");
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List_filter_like/";
|
||||
|
||||
|
@ -6418,7 +6421,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
if (new_code_session.trim() == "") {
|
||||
// alert(" Le Code Promoest obligatoire");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le Code Promoest obligatoire");
|
||||
setalert_message("Le Code Promo est obligatoire");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
|
@ -6571,23 +6574,9 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
form.append("session_status", p_session_status);
|
||||
form.append("session_etape", p_session_etape);
|
||||
form.append("type_session", "1");
|
||||
|
||||
|
||||
/*
|
||||
var contenu_ftion = "";
|
||||
if (editorRef_contenu_ftion.current) {
|
||||
contenu_ftion = editorRef_contenu_ftion.current.getContent();
|
||||
|
||||
if (parse(contenu_ftion.replace(/(<([^>]+)>)/ig, '')).length > editorRef_contenu_ftion_limite) {
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Champ 'Contenu de la formation', limite depassée !");
|
||||
setalert_type("error");
|
||||
// alert(" Champ 'Contenu de la formation', limite depassée !")
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.append("contenu_ftion", contenu_ftion);
|
||||
*/
|
||||
/*
|
||||
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
|
||||
*/
|
||||
|
@ -6653,13 +6642,6 @@ const DisplayPartnerPromotion = (props) => {
|
|||
setalert_type("success");
|
||||
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
|
||||
|
||||
} else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
history.push("/Connexion");
|
||||
|
@ -6853,22 +6835,9 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
|
||||
form.append("attestation_certif", "");
|
||||
form.append("type_session", "1");
|
||||
|
||||
/*
|
||||
var contenu_ftion = "";
|
||||
if (one_editorRef_contenu_ftion.current) {
|
||||
contenu_ftion = one_editorRef_contenu_ftion.current.getContent();
|
||||
|
||||
if (parse(contenu_ftion.replace(/(<([^>]+)>)/ig, '')).length > one_editorRef_contenu_ftion_limite) {
|
||||
// alert(" Champ 'Contenu de la formation', limite depassée !")
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Champ 'Contenu de la formation', limite depassée !");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.append("contenu_ftion", contenu_ftion);
|
||||
*/
|
||||
/*
|
||||
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
|
||||
*/
|
||||
|
@ -6940,7 +6909,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
setalert_type("success");
|
||||
|
||||
|
||||
if (document.getElementById('myRef_head')) {
|
||||
if (document.getElementById('myRef_head')) {
|
||||
var divh = document.getElementById('myRef_head').offsetTop;
|
||||
|
||||
window.scrollTo({
|
||||
|
@ -18080,7 +18049,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
<div className="div_row_dialog">
|
||||
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left' }}>
|
||||
Code session
|
||||
Code Promo
|
||||
</div>
|
||||
{rowss && String(session_selected_row_id).length > 0 && <div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
|
||||
{JSON.parse(rowss[session_selected_row_id]).code_session}
|
||||
|
@ -18733,13 +18702,13 @@ const DisplayPartnerPromotion = (props) => {
|
|||
<DialogContent className="DialogContent_width" style={{ "minHeight": "10rem" }}>
|
||||
<DialogContentText>
|
||||
<div style={{ "textAlign": "left" }}>
|
||||
En confirmation cette action, toute la session de formation sera facturée.
|
||||
En confirmation cette action, toute la promotion de formation sera facturée.
|
||||
|
||||
Verifier les informations
|
||||
|
||||
<ul>
|
||||
|
||||
<li> Prix de session </li>
|
||||
<li> Prix </li>
|
||||
<li> Données client </li>
|
||||
<li> etc </li>
|
||||
</ul>
|
||||
|
@ -20999,8 +20968,8 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
{selected_code_session && String(selected_code_session).length > 0 && <div className="div_row">
|
||||
<nav style={{ textAlign: 'center', padding: '10px', fontFamily: 'DM Sans' }}> Promotion <b>{info_affiche_code_session} </b> du
|
||||
<b>{info_affiche_date_debut}</b> au <b> {info_affiche_date_fin}</b>
|
||||
Pl. disponible(s) : <b> {info_affiche_place_disponible} </b> </nav>
|
||||
<b>{String(info_affiche_date_debut)}</b> au <b> {String(info_affiche_date_fin)}</b>
|
||||
Pl. disponible(s) : <b> {String(info_affiche_place_disponible)} </b> </nav>
|
||||
|
||||
</div>}
|
||||
<div>
|
||||
|
@ -21577,7 +21546,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
readOnly={!edit_session_form}
|
||||
readOnly={!edit_session_form}
|
||||
showTimeSelect={false}
|
||||
filterTime={filterPassedTime_start}
|
||||
dateFormat="dd/MM/yyyy"
|
||||
|
@ -21602,7 +21571,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
readOnly={!edit_session_form}
|
||||
readOnly={!edit_session_form}
|
||||
showTimeSelect={false}
|
||||
filterTime={filterPassedTime_end}
|
||||
dateFormat="dd/MM/yyyy"
|
||||
|
@ -21689,7 +21658,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
|
||||
|
||||
<div className="session_caract"> Prix session <br />
|
||||
<div className="session_caract"> Prix Inscription <br />
|
||||
<TextField sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="prix_session"
|
||||
|
@ -23186,7 +23155,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
|
||||
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
|
||||
<div className="titre1"> Ajout d'un nouveau participant à la session <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
<div className="titre1"> Ajout d'un nouveau participant à <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
|
||||
<div className="session_caract"> <b> Civilité </b><br />
|
||||
|
||||
|
@ -23744,9 +23713,9 @@ const DisplayPartnerPromotion = (props) => {
|
|||
<Button variant="outlined"
|
||||
onClick={(event) => {
|
||||
if (String(selected_session_invoiced_statut) === "1") {
|
||||
alert(" La session est en cours de facturation ")
|
||||
alert(" La promo est en cours de facturation ")
|
||||
} else if (String(selected_session_invoiced_statut) === "2") {
|
||||
alert(" La session est déjà facturée ")
|
||||
alert(" La promo est déjà facturée ")
|
||||
} else {
|
||||
|
||||
submenu_import_participant()
|
||||
|
@ -23765,9 +23734,9 @@ const DisplayPartnerPromotion = (props) => {
|
|||
<Button variant="outlined"
|
||||
onClick={(event) => {
|
||||
if (String(selected_session_invoiced_statut) === "1") {
|
||||
alert(" La session est en cours de facturation ")
|
||||
alert(" La promo est en cours de facturation ")
|
||||
} else if (String(selected_session_invoiced_statut) === "2") {
|
||||
alert(" La session est déjà facturée ")
|
||||
alert(" La promo est déjà facturée ")
|
||||
} else {
|
||||
|
||||
submenu_add_one_participant()
|
||||
|
@ -24037,7 +24006,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
</div>}
|
||||
|
||||
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
|
||||
<div className="titre1"> Ajout d'un nouveau participant à la session <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
<div className="titre1"> Ajout d'un nouveau participant à <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
|
||||
<div className="session_caract"> <b> Civilité </b><br />
|
||||
|
||||
|
@ -24604,12 +24573,12 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
{String(actionmass_insc_val) === "confirmation" &&
|
||||
<nav>
|
||||
Confirmer l'inscription à la session de la session de formation ?
|
||||
Confirmer l'inscription à la formation ?
|
||||
</nav>}
|
||||
|
||||
{String(actionmass_insc_val) === "annule inscription" &&
|
||||
<nav>
|
||||
Annuler l'inscription à la session de la session de formation ?
|
||||
Annuler l'inscription à la formation ?
|
||||
</nav>}
|
||||
|
||||
{String(actionmass_insc_val) === "facturer" &&
|
||||
|
@ -24668,9 +24637,9 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
onClick={(event) => {
|
||||
if (String(selected_session_invoiced_statut) === "1") {
|
||||
alert(" La session est en cours de facturation ")
|
||||
alert(" La promo est en cours de facturation ")
|
||||
} else if (String(selected_session_invoiced_statut) === "2") {
|
||||
alert(" La session est déjà facturée ")
|
||||
alert(" La promo est déjà facturée ")
|
||||
} else {
|
||||
|
||||
submenu_import_participant()
|
||||
|
|
|
@ -174,7 +174,7 @@ const DisplayPartnerSession = (props) => {
|
|||
const [one_field_contenu_ftion, setone_field_contenu_ftion] = useState("");
|
||||
|
||||
const filters = [
|
||||
{ value: 'code_session', label: 'Code Promotion' },
|
||||
{ value: 'code_session', label: 'Code Session' },
|
||||
{ value: 'class_title', label: 'Titre Formation' },
|
||||
{ value: 'certif', label: 'Certification' }
|
||||
]
|
||||
|
@ -318,7 +318,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
},
|
||||
|
||||
{ field: 'code_session', headerName: 'Code Promo', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'code_session', headerName: 'Code Session', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'session_title', headerName: 'Titre', hide: false, flex: 1, minWidth: 250, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{
|
||||
|
@ -2191,6 +2191,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("type_session", "0");
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
|
||||
|
@ -2372,6 +2373,8 @@ const DisplayPartnerSession = (props) => {
|
|||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("archive", "0");
|
||||
form.append("type_session", "0");
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
|
||||
|
||||
|
||||
|
@ -2664,6 +2667,7 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append(filtre1, filtre1_value);
|
||||
|
||||
form.append("archive", "0");
|
||||
form.append("type_session", "0");
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List_filter_like/";
|
||||
|
||||
|
@ -6418,7 +6422,7 @@ const DisplayPartnerSession = (props) => {
|
|||
if (new_code_session.trim() == "") {
|
||||
// alert(" Le Code Promoest obligatoire");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le Code Promoest obligatoire");
|
||||
setalert_message("Le Code Session est obligatoire");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
|
@ -6572,6 +6576,8 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append("session_status", p_session_status);
|
||||
form.append("session_etape", p_session_etape);
|
||||
|
||||
form.append("type_session", "0");
|
||||
|
||||
|
||||
/*
|
||||
var contenu_ftion = "";
|
||||
|
@ -6653,12 +6659,6 @@ const DisplayPartnerSession = (props) => {
|
|||
setalert_type("success");
|
||||
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
|
||||
|
||||
} else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
|
@ -6853,22 +6853,9 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
|
||||
form.append("attestation_certif", "");
|
||||
form.append("type_session", "0");
|
||||
|
||||
/*
|
||||
var contenu_ftion = "";
|
||||
if (one_editorRef_contenu_ftion.current) {
|
||||
contenu_ftion = one_editorRef_contenu_ftion.current.getContent();
|
||||
|
||||
if (parse(contenu_ftion.replace(/(<([^>]+)>)/ig, '')).length > one_editorRef_contenu_ftion_limite) {
|
||||
// alert(" Champ 'Contenu de la formation', limite depassée !")
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Champ 'Contenu de la formation', limite depassée !");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.append("contenu_ftion", contenu_ftion);
|
||||
*/
|
||||
|
||||
/*
|
||||
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
|
||||
*/
|
||||
|
@ -12716,13 +12703,13 @@ const DisplayPartnerSession = (props) => {
|
|||
]
|
||||
|
||||
const New_Price_by = [
|
||||
{ "id": "persession", "label": "Par Promotion", "value": "persession" },
|
||||
{ "id": "persession", "label": "Par Session", "value": "persession" },
|
||||
{ "id": "perstagiaire", "label": "Par Stagiaire", "value": "perstagiaire" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
const New_Option_Filter = [
|
||||
{ "id": "code_session", "label": "Code Promotion", "value": "code_session" },
|
||||
{ "id": "code_session", "label": "Code Session", "value": "code_session" },
|
||||
{ "id": "class_external_code", "label": "Ref. Interne", "value": "class_external_code" },
|
||||
{ "id": "class_title", "label": "Titre Formation", "value": "class_title" },
|
||||
{ "id": "session_start_date", "label": "Date début session", "value": "session_start_date" },
|
||||
|
@ -15227,7 +15214,7 @@ const DisplayPartnerSession = (props) => {
|
|||
/>
|
||||
</div>}
|
||||
|
||||
<div className="session_caract_Dialog" > Date Promotion<br />
|
||||
<div className="session_caract_Dialog" > Date Session<br />
|
||||
<div style={{ width: "45%", float: "left", textAlign: "left" }}>
|
||||
<DatePicker
|
||||
name="date_du"
|
||||
|
@ -18783,7 +18770,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
{/* FIN Dialog pour gerer les FACTURATION_FORMATION */}
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Les promotions </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Les sessions de formation </h3>
|
||||
|
||||
<div>
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
|
@ -19785,7 +19772,7 @@ const DisplayPartnerSession = (props) => {
|
|||
<TimelineHeaders>
|
||||
<SidebarHeader>
|
||||
{({ getRootProps }) => {
|
||||
return <div {...getRootProps()}> Date/ <br /> Code Promo</div>
|
||||
return <div {...getRootProps()}> Date/ <br /> Code Session</div>
|
||||
}}
|
||||
</SidebarHeader>
|
||||
<DateHeader unit="month"
|
||||
|
@ -20787,7 +20774,7 @@ const DisplayPartnerSession = (props) => {
|
|||
<TimelineHeaders>
|
||||
<SidebarHeader>
|
||||
{({ getRootProps }) => {
|
||||
return <div {...getRootProps()}> Date/ <br /> Code Promo</div>
|
||||
return <div {...getRootProps()}> Date/ <br /> Code Session</div>
|
||||
}}
|
||||
</SidebarHeader>
|
||||
<DateHeader unit="month"
|
||||
|
@ -20936,7 +20923,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
|
||||
<Button variant="outlined" onClick={submenu_import_session} className="detail_class_submenu bton_import_excel"
|
||||
id='menu_import_participant' name='menu_import_participant'>Importer des Promo Excel
|
||||
id='menu_import_participant' name='menu_import_participant'>Importer des Sessions Excel
|
||||
<img src={excel_icone} alt="ajout csv" className="icon_excel" />
|
||||
</Button>
|
||||
|
||||
|
@ -20947,7 +20934,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
}}
|
||||
className="detail_class_submenu bton_add_session"
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Promo
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Session
|
||||
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
|
||||
|
||||
</Button>
|
||||
|
@ -20998,9 +20985,9 @@ const DisplayPartnerSession = (props) => {
|
|||
</div>}
|
||||
|
||||
{selected_code_session && String(selected_code_session).length > 0 && <div className="div_row">
|
||||
<nav style={{ textAlign: 'center', padding: '10px', fontFamily: 'DM Sans' }}> Promotion <b>{info_affiche_code_session} </b> du
|
||||
<b>{info_affiche_date_debut}</b> au <b> {info_affiche_date_fin}</b>
|
||||
Pl. disponible(s) : <b> {info_affiche_place_disponible} </b> </nav>
|
||||
<nav style={{ textAlign: 'center', padding: '10px', fontFamily: 'DM Sans' }}> Session <b>{info_affiche_code_session} </b> du
|
||||
<b>{String(info_affiche_date_debut)}</b> au <b> {String(info_affiche_date_fin)}</b>
|
||||
Pl. disponible(s) : <b> {String(info_affiche_place_disponible)} </b> </nav>
|
||||
|
||||
</div>}
|
||||
<div>
|
||||
|
@ -21061,7 +21048,7 @@ const DisplayPartnerSession = (props) => {
|
|||
</a>
|
||||
|
||||
</div>
|
||||
<div className="session_caract"><b> Code Promo </b><br />
|
||||
<div className="session_caract"><b> Code Session </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -21079,7 +21066,7 @@ const DisplayPartnerSession = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Titre Promo<br />
|
||||
<div className="session_caract"> Titre <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -22089,7 +22076,7 @@ const DisplayPartnerSession = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"><b> Code Promotion</b><br />
|
||||
<div className="session_caract"><b> Code Session</b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -22107,7 +22094,7 @@ const DisplayPartnerSession = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Titre Promo<br />
|
||||
<div className="session_caract"> Titre <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -24799,7 +24786,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
<div className="session_data" >
|
||||
<div>
|
||||
{String(participant_data_edit_mode) !== "1" && <div className="session_caract"> <b> Promotion </b><br />
|
||||
{String(participant_data_edit_mode) !== "1" && <div className="session_caract"> <b> Session </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -24819,7 +24806,7 @@ const DisplayPartnerSession = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
{String(participant_data_edit_mode) === "1" && <div className="session_caract"> Promotion <br />
|
||||
{String(participant_data_edit_mode) === "1" && <div className="session_caract"> Session <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -775,11 +775,11 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
if (local_ue.niveau_competence) {
|
||||
setp_detail_tab_competence(local_ue.niveau_competence);
|
||||
var tab_tmp = String(local_ue.niveau_competence).split(",");
|
||||
// setVal(tab_tmp);
|
||||
// setVal(tab_tmp);
|
||||
|
||||
} else {
|
||||
setp_detail_tab_competence([]);
|
||||
// setVal([]);
|
||||
// setVal([]);
|
||||
}
|
||||
|
||||
if (local_ue.list_competence_code) {
|
||||
|
@ -790,7 +790,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
}
|
||||
|
||||
if (local_ue.tab_competence_JSON) {
|
||||
if (local_ue.tab_competence_JSON) {
|
||||
setVal(local_ue.tab_competence_JSON);
|
||||
|
||||
} else {
|
||||
|
@ -1003,7 +1003,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
form.append("niveau_competence", tab_competence_id);
|
||||
|
||||
// console.log(" ### val = ", val);
|
||||
// console.log(" ### val = ", val);
|
||||
//console.log(" ### tab_competence_id = ", tab_competence_id);
|
||||
|
||||
|
||||
|
@ -1166,6 +1166,8 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
setdisplay_ue("0");
|
||||
setue_data_edit_mode("");
|
||||
setadd_one_ue("1");
|
||||
setVal([]);
|
||||
|
||||
|
||||
if (document.getElementById('myRef')) {
|
||||
var divh = document.getElementById('myRef').offsetTop;
|
||||
|
@ -1295,6 +1297,11 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
setdisplay_ue("0");
|
||||
setue_data_edit_mode("");
|
||||
setadd_one_ue("");
|
||||
setVal([]);
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
}
|
||||
|
||||
const New_Option_Filter = [
|
||||
|
@ -2617,7 +2624,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
// handleClick_edit_config_From_Line(newSelectionModel.row.id);
|
||||
|
||||
setVal([]);
|
||||
setselected_id(newSelectionModel.row._id);
|
||||
handleClick_edit_ue_From_Line(newSelectionModel.row.id);
|
||||
setsession_file_name("");
|
||||
|
@ -2878,7 +2885,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
/>
|
||||
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && <div>
|
||||
<div className="session_caract"> Compétences<br />
|
||||
|
@ -2889,7 +2896,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
...fixedVal,
|
||||
...newValue.filter((i) => fixedVal.indexOf(i) === -1),
|
||||
]);
|
||||
|
||||
|
||||
}}
|
||||
value={val}
|
||||
options={New_Getall_Partner_Competence_List_result}
|
||||
|
@ -2902,7 +2909,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
@ -2931,7 +2938,14 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && New_Get_List_Regle_Calcul_Note_UE_result && New_Get_List_Regle_Calcul_Note_UE_result.length > 0 &&
|
||||
<div className="session_caract"> Règle de calcul note <br />
|
||||
<div className="session_caract"> Règle de calcul note
|
||||
<Tooltip className="tooltip_css" id="detail_regle_calcul2" />
|
||||
<a data-tooltip-id="detail_regle_calcul2" data-tooltip-html={New_Get_List_Regle_Calcul_Note_UE_result.filter((data) => (data)._id === String(p_detail_note_ue_calculation_rule_id))[0].calcul_rule}>
|
||||
<FcInfo />
|
||||
</a>
|
||||
|
||||
|
||||
<br />
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="detail_ue_note_ue_calculation_rule_id"
|
||||
|
@ -2957,7 +2971,15 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) !== "1" && New_Get_List_Regle_Calcul_Note_UE_result && New_Get_List_Regle_Calcul_Note_UE_result.length > 0 &&
|
||||
<div className="session_caract"> Règle de calcul note <br />
|
||||
|
||||
|
||||
|
||||
<div className="session_caract"> Règle de calcul note
|
||||
<Tooltip className="tooltip_css" id="detail_regle_calcul" />
|
||||
<a data-tooltip-id="detail_regle_calcul" data-tooltip-html={New_Get_List_Regle_Calcul_Note_UE_result.filter((data) => (data)._id === String(p_detail_note_ue_calculation_rule_id))[0].calcul_rule}>
|
||||
<FcInfo />
|
||||
</a>
|
||||
<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -2968,8 +2990,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
//disabled={true}
|
||||
|
||||
disabled={true}
|
||||
value={New_Get_List_Regle_Calcul_Note_UE_result.filter((data) => (data)._id === String(p_detail_note_ue_calculation_rule_id))[0].label}
|
||||
|
||||
|
||||
|
@ -4053,7 +4074,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
<div className="session_caract"> Compétence <br />
|
||||
<div className="session_caract"> Compétence <br />
|
||||
<Autocomplete
|
||||
multiple
|
||||
onChange={(event, newValue) => {
|
||||
|
@ -4098,7 +4119,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Formateur" />
|
||||
renderInput={(params) => <TextField {...params} label="Formule de calcul" />
|
||||
}
|
||||
/>}
|
||||
|
||||
|
|
|
@ -9288,8 +9288,6 @@ const Employes = (props) => {
|
|||
{String(employee_data_edit_mode) === "1" && New_Get_List_RH_Profils_result && New_Get_List_RH_Profils_result.length > 0 &&
|
||||
<div className="session_caract"> Profil <br />
|
||||
|
||||
|
||||
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="detail_profil"
|
||||
|
|
|
@ -425,7 +425,7 @@ const Module_Selection_Evaluation_Apprenants = (props) => {
|
|||
|
||||
|
||||
var line_json = line;
|
||||
console.log(" line_json = ", line_json);
|
||||
// console.log(" line_json = ", line_json);
|
||||
//console.log(" line_json['_id'] = ", line_json['_id']);
|
||||
tab_mongo_preins_ids.push(line_json._id)
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ import axios from "axios";
|
|||
import Rating from '@mui/material/Rating';
|
||||
import parse from 'html-react-parser'
|
||||
import { CiLocationOn } from "react-icons/ci";
|
||||
|
||||
|
||||
const New_C_Formation_2025 = (props) => {
|
||||
const [userconnected, setuserconnected] = useState("0");
|
||||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
|
@ -420,7 +420,7 @@ const New_C_Formation_2025 = (props) => {
|
|||
{/*props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par : <br />
|
||||
{String(props.formation.institut_formation)} </div>*/}
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
<div className="block_main_contente">
|
||||
<div className="block_top_content">
|
||||
|
@ -472,473 +472,7 @@ const New_C_Formation_2025 = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
{/*
|
||||
<div style={{ "width": "100%", marginLeft: '20px' }}>
|
||||
|
||||
{class_img_stored_in_bdd && String(class_img_stored_in_bdd).length > 50 && <div className="forma_img_gauche">
|
||||
<img src={class_img_stored_in_bdd} alt="informatique" style={styles.image} />
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) !== "0" && String(ismetiermanaged) !== "1" &&
|
||||
<div className="forma_img_gauche">
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("it") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_program} alt="informatique" style={styles.image} />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("graphisme") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_graphisme} alt="graphisme" style={styles.image} />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("management") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_management} alt="management" style={styles.image} />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("digital") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_digital} alt="digital" style={styles.image} />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("office") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_bureautic} alt="office" style={styles.image} />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("rh") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_rh} alt="ressources humaines" style={styles.image} />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("vente") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_vente} alt="vente" style={styles.image} />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("dev_perso") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_dev_perso} alt="developpement personnel" style={styles.image} />}
|
||||
|
||||
{String(isclassimage) === "True" && <img src={userimgclassprofil} alt="developpement personnel" style={styles.image} />}
|
||||
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length > 100 && <div className="forma_img_gauche">
|
||||
<img src={userimgclassprofil} alt="autre" style={styles.image} />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length <= 100 && <div className="forma_img_gauche">
|
||||
<img src={img_met_autre} alt="autre" style={styles.image} />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "1" && <div className="forma_img_gauche">
|
||||
<img src={props.formation.img_url} alt="autre" style={styles.image} />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par : <br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="forma_rightbox"
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
window.open(
|
||||
"/Display-Detail-formation/" + props.formation.internal_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
}}>
|
||||
<div className="p_forma">
|
||||
<div className="div_row">
|
||||
|
||||
<div className="div_row_gauche" style={{ "marginTop": "5px" }}>
|
||||
{props.formation.note && String(props.formation.note).length === 1 &&
|
||||
parseInt(String(props.formation.note)) <= 5 &&
|
||||
|
||||
<Rating name="half-rating-read" defaultValue={props.formation.note} precision={0.5} readOnly />
|
||||
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite div_row_droite_cpf">
|
||||
<div className="block_cpf">
|
||||
<div className="block_cpf_txt">
|
||||
|
||||
|
||||
{props.formation.cpf && String(props.formation.cpf) === String("1") &&
|
||||
<div>
|
||||
OUI Éligible au CPF
|
||||
</div>}
|
||||
|
||||
{props.formation.cpf && String(props.formation.cpf) !== String("1") &&
|
||||
<div>
|
||||
NON Éligible au CPF
|
||||
</div>}
|
||||
|
||||
{!props.formation.cpf &&
|
||||
<div>
|
||||
NON Éligible au CPF
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="div_row row_formation_title">
|
||||
<p className="p_class training_title">
|
||||
<b>
|
||||
{String(parse(String(props.formation.title).replace(/(<([^>]+)>)/ig, ''))).substring(0, 100)}
|
||||
</b>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div className="div_row">
|
||||
|
||||
{String(props.formation.price).length == 9 &&
|
||||
<div className="training_price" > <i>Prix : Non communiqué</i>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) === String("0") &&
|
||||
<div className="training_price">Gratuit
|
||||
</div>
|
||||
}
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) !== String("0") && (!props.formation.business_prices ||
|
||||
Object.keys(props.formation.business_prices).length <= 0) &&
|
||||
<div className="training_price">{props.formation.price} € HT
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) !== String("0") &&
|
||||
props.formation.business_prices && Object.keys(props.formation.business_prices).length > 0 &&
|
||||
<div className="training_price">
|
||||
<nav className="discounted_price">{String(props.formation.business_prices[0].discounted_price)} € HT</nav>
|
||||
<nav className="training_price_barre">
|
||||
{props.formation.price} € HT
|
||||
</nav>
|
||||
|
||||
<nav className="discount_block"> (- {String(props.formation.business_prices[0].discount)} % )
|
||||
</nav>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row row_formation_desc">
|
||||
{parse(String(props.formation.description).replace(/(<([^>]+)>)/ig, ''))}
|
||||
|
||||
</div>
|
||||
{GetCurrentClass_trainingsession_cities_result && GetCurrentClass_trainingsession_cities_result.length > 0 &&
|
||||
<nav style={{ "width": "100%", "float": "left", "textAlign": "left", "color": "#619E31" }}>
|
||||
<nav style={{ "width": "auto", "float": "left" }}> <CiLocationOn className="icone_location" /> </nav>
|
||||
|
||||
{GetCurrentClass_trainingsession_cities_result && GetCurrentClass_trainingsession_cities_result.sort().slice(0, 5).map((formation_ville) => (
|
||||
<nav style={{ "width": "auto", "float": "left" }}>
|
||||
|
||||
|
||||
|
||||
{formation_ville &&
|
||||
|
||||
<b> {formation_ville.replaceAll('"', '').substring(0, 20).toLocaleLowerCase().charAt(0).toUpperCase() +
|
||||
formation_ville.replaceAll('"', '').substring(0, 20).toLocaleLowerCase().slice(1)} </b>
|
||||
|
||||
}
|
||||
|
||||
</nav>
|
||||
))}
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
}
|
||||
{!GetCurrentClass_result || GetCurrentClass_result.length <= 0 &&
|
||||
<nav style={{ "width": "100%", "float": "left", "textAlign": "left", "fontWeight": "700" }}><CiLocationOn className="icone_location" /> A venir </nav>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row row_formation_crit">
|
||||
|
||||
<hr style={{ "width": "90%", "marginLeft": "auto", "marginRight": "auto", "marginBottom": "2px", "marginTop": "2px" }} />
|
||||
|
||||
<div className="div_row_gauche div_row_gauche_critere" >
|
||||
<div className="div_row_critere" style={{ "marginTop": "0.5rem", "marginBottom": "0.3rem" }}>
|
||||
{!props.formation.extented_search &&
|
||||
<div className="div_row_gauche">
|
||||
|
||||
|
||||
{props.formation.duration_unit &&
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">Durée
|
||||
</div>
|
||||
|
||||
{String(props.formation.duration_unit) === "heure" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} hr(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "heures" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} hr(s)
|
||||
</div>}
|
||||
|
||||
|
||||
{String(props.formation.duration_unit) === "jour" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} jr(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "mois" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} mois(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "semaine" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} Sem (s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "user_rythme" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
A votre rythme
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{!props.formation.duration_unit &&
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">Durée
|
||||
</div>
|
||||
|
||||
{props.formation.duration && <div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} jr(s)
|
||||
</div>}
|
||||
|
||||
{!props.formation.duration && <div className="criteres ftion_tab_droite">
|
||||
<i> En traitement </i>
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
}
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Certification
|
||||
</div>
|
||||
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.certif && String(props.formation.certif) === String("1") &&
|
||||
<div>
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.certif && String(props.formation.certif) !== String("1") &&
|
||||
<div>
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.certif &&
|
||||
<div>
|
||||
NC
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="media_sociaux" style={{ 'float': "left", marginTop: "0.2rem", }}>
|
||||
<FacebookShareButton
|
||||
url={"https://www.mysy-training.com/Display-Detail-formation/" + props.formation.internal_url}
|
||||
|
||||
quote={props.formation.title + " -- " + props.formation.description}
|
||||
hashtag={"ySyTraining"}
|
||||
>
|
||||
<SocialIcon network="facebook" style={{ height: 20, width: 20 }} />
|
||||
</FacebookShareButton>
|
||||
|
||||
|
||||
<TwitterShareButton
|
||||
url={"https://www.mysy-training.com/Display-Detail-formation/" + props.formation.internal_url}
|
||||
hashtag={"#MySy-Formation"}
|
||||
>
|
||||
<SocialIcon network="twitter" style={{ height: 20, width: 20 }} />
|
||||
</TwitterShareButton>
|
||||
|
||||
|
||||
<LinkedinShareButton
|
||||
url={"https://www.mysy-training.com/Display-Detail-formation/" + props.formation.internal_url}
|
||||
title={" Une nouvelle formation : " + props.formation.title}
|
||||
summary={props.formation.title + " -- " + props.formation.description}
|
||||
|
||||
source={"https://www.mysy-training.com/"}
|
||||
|
||||
>
|
||||
<SocialIcon network="linkedin" style={{ height: 20, width: 20 }} />
|
||||
</LinkedinShareButton>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="div_row_droite" style={{ textAlign: "center" }}>
|
||||
{String(props.formation.coeur) === String("1") && <div>
|
||||
<img class="imgcoeur" src={coeurimg} alt="coup de coeur" />
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Sur site
|
||||
</div>
|
||||
{props.formation.presentiel && props.formation.presentiel.presentiel &&
|
||||
String(props.formation.presentiel.presentiel) === String("1") && <div className="criteres ftion_tab_droite">
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.presentiel && props.formation.presentiel.presentiel &&
|
||||
String(props.formation.presentiel.presentiel) !== String("1") && <div className="criteres ftion_tab_droite">
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.presentiel || !props.formation.presentiel.presentiel &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
A distance
|
||||
</div>
|
||||
{props.formation.presentiel && props.formation.presentiel.distantiel &&
|
||||
String(props.formation.presentiel.distantiel) === String("1") && <div className="criteres ftion_tab_droite">
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.presentiel && props.formation.presentiel.distantiel &&
|
||||
String(props.formation.presentiel.distantiel) !== String("1") && <div className="criteres ftion_tab_droite">
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.presentiel || !props.formation.presentiel.distantiel &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Support
|
||||
</div>
|
||||
{props.formation.support &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.support}
|
||||
</div>}
|
||||
|
||||
{!props.formation.support &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row_droite div_row_droite_critere" >
|
||||
{!props.formation.extented_search && props.formation.coeur != "1" &&
|
||||
<div style={{ 'float': "right", "width": "100%", textAlign: "right", marginTop: "0rem", }}>
|
||||
|
||||
<Button className="bton_se_renseinger"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
|
||||
window.open(
|
||||
"/Display-Detail-formation/" + props.formation.internal_url + "/Information",
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}}
|
||||
|
||||
>Se renseigner </Button>
|
||||
|
||||
|
||||
<Button className="bton_voir_detail"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
//test(props.formation.external_code);
|
||||
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
window.open(
|
||||
"/Display-Detail-formation/" + props.formation.internal_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
}}
|
||||
>Voir details</Button>
|
||||
|
||||
{GetCurrentClass_result && GetCurrentClass_result.length > 0 &&
|
||||
<Button variant="contained" className="bton_sinscrire"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
|
||||
window.open(
|
||||
"/Display-Detail-formation/" + props.formation.internal_url + "/Inscription",
|
||||
'_blank'
|
||||
);
|
||||
|
||||
}}
|
||||
|
||||
>S'incrire</Button>
|
||||
}
|
||||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
*/}
|
||||
|
||||
</div>
|
||||
|
||||
)
|
||||
|
|
|
@ -2353,8 +2353,8 @@ const Notes_Evaluation = (props) => {
|
|||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
console.log(" In Record_Evaluation_Participants_Notes res.data.status = " + res.data.status);
|
||||
console.log(" In Record_Evaluation_Participants_Notes res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Record_Evaluation_Participants_Notes res.data.status = " + res.data.status);
|
||||
// console.log(" In Record_Evaluation_Participants_Notes res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
@ -3959,7 +3959,7 @@ const Notes_Evaluation = (props) => {
|
|||
</Dialog>
|
||||
|
||||
{/*** Fin ajout ressource */}
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Les Evaluations </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Notes & évaluations </h3>
|
||||
<div className="div_row">
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
|
@ -4344,17 +4344,13 @@ const Notes_Evaluation = (props) => {
|
|||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
||||
Getall_Evaluation_Participant_List(newSelectionModel.row._id);
|
||||
|
||||
setselected_id(newSelectionModel.row._id);
|
||||
|
||||
setgridline_id(newSelectionModel.row.id);
|
||||
Getall_Evaluation_Participant_List(newSelectionModel.row._id);
|
||||
|
||||
handleClick_edit_evaluation_From_Line(newSelectionModel.row.id);
|
||||
setselectionModel_evalutions_participant([]);
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
|
||||
|
||||
setselected_id(newSelectionModel.row._id);
|
||||
setgridline_id(newSelectionModel.row.id);
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
|
@ -4427,7 +4423,7 @@ const Notes_Evaluation = (props) => {
|
|||
{selected_id && String(selected_id).length > 5 && p_detail_type_eval_id && New_Getall_Partner_Type_Evalution_List_result.length > 0 &&
|
||||
<div className="div_row">
|
||||
<nav style={{ textAlign: 'center', padding: '10px', fontFamily: 'DM Sans' }}> Evaluation <b>{New_Getall_Partner_Type_Evalution_List_result.filter((data) => (data)._id === String(p_detail_type_eval_id))[0].label} {p_detail_code} </b> du
|
||||
<b>{p_detail_eval_date_heure_debut}</b> au <b> {p_detail_eval_date_heure_fin}</b>
|
||||
<b>{String(p_detail_eval_date_heure_debut)}</b> au <b> {String(p_detail_eval_date_heure_fin)}</b>
|
||||
</nav>
|
||||
|
||||
</div>}
|
||||
|
@ -5234,7 +5230,7 @@ const Notes_Evaluation = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> titre </b> <br />
|
||||
<div className="session_caract"> <b> Titre </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -1465,7 +1465,7 @@ const New_C_Detail_Formation_2025 = (props) => {
|
|||
<nav className="training_price_barre" style={{ with: '50%', float: 'left', fontSize: '14px' }}> {String(DetailTraining["price"])} € HT </nav>
|
||||
<nav className="discount_block" style={{ with: '50%', float: 'left', fontSize: '14px' }}> (- {String(DetailTraining.business_prices[0].discount)} % ) </nav>
|
||||
</div>}
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
.addclassmanual {
|
||||
|
||||
.tooltip_css {
|
||||
background: #81BC3A;
|
||||
z-index: 9999;
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
font-size: "10px" !important;
|
||||
}
|
||||
|
||||
.block_archive {
|
||||
background-color: #774a10;
|
||||
width: calc(100% - 20px);
|
||||
|
@ -15,7 +22,7 @@
|
|||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
z-index: 9999;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.css-1bp1ao6 {
|
||||
height: 3.5rem !important;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue