30/07/2025 -18h

branche_01062025
Cherif 2025-07-30 18:41:09 +02:00
parent 63d3491031
commit eedef98997
111 changed files with 26209 additions and 818 deletions

View File

@ -1,6 +1,4 @@
formation_code_externe;code_session;client_rattachement_email;client_rattachement_nom;prenom;nom;employeur;telephone;email;adresse;code_postal;ville;pays;modefinancement;opco;status;prix
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;;;part 2;part nom2;employeur 2;10101;mysytraining+apprenant1@gmail.com;adresse01;code_postal01;ville01;pays01;modefinancement;opco;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client1@gmail.com ;Client 1 ;part 3;part nom3_client;employeur 3;10101;mysytraining+apprenant2@gmail.com;adresse02;code_postal02;ville02;pays02;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client1@gmail.com ;Client 1 ;part 4;part nom4_client;employeur 4;10101;mysytraining+apprenant3@gmail.com;adresse03;code_postal03;ville03;pays03;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client2@gmail.com;Client 2;part 5;part nom5_client;employeur 5;10101; mysylaplumedepierrot+01@gmail.com;adresse04;code_postal04;ville04;pays04;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client2@gmail.com;Client 2;part 6;part nom6_client;employeur 6;10101;mysylaplumedepierrot+02@gmail.com;adresse05;code_postal05;ville05;pays05;modefinancement;;0;1500
formation_code_externe;code_session;client_rattachement_email;client_rattachement_nom;facture_client_rattachement_email;facture_client_rattachement_nom;civilite;prenom;nom;employeur;telephone;email;adresse;code_postal;ville;pays;modefinancement;opco;status;prix;type_apprenant
IFOD_01;test_facturatop_dup ;mysytraining+client1@gmail.com;Client 1;PP_ETAT_GENERAL_01@mysy-training.com ;PP_ETAT_GENERAL_01 ;mme;Ibrahim uuu;nom1;employeur 4;10101;mysytraining+apprenant8@gmail.com;adresse03;code_postal03;ville03;pays03;modefinancement;;0;18500;0
IFOD_01;test_facturatop_dup ;mysytraining+client2@gmail.com;Client 2;mysylaplumedepierrot@gmail.com;Etat financeur;mme;Alice excel;nom2;employeur 5;10101;mysytraining+apprenant9@gmail.com;adresse04;code_postal04;ville04;pays04;modefinancement;;0;15009;
IFOD_01;test_facturatop_dup ;mysytraining+client2@gmail.com;Client 2;mysylaplumedepierrot@gmail.com;Etat financeur;mme;Thomas excel;nom3;employeur 6;10101;mysytraining+apprenant10@gmail.com;adresse05;code_postal05;ville05;pays05;modefinancement;;0;120;0

1 formation_code_externe code_session client_rattachement_email client_rattachement_nom facture_client_rattachement_email facture_client_rattachement_nom civilite prenom nom employeur telephone email adresse code_postal ville pays modefinancement opco status prix type_apprenant
2 MYSY_Demo_AP_v2 IFOD_01 SESS_01_DEMO_AP_V2 test_facturatop_dup  mysytraining+client1@gmail.com Client 1 PP_ETAT_GENERAL_01@mysy-training.com PP_ETAT_GENERAL_01 mme part 2 Ibrahim uuu part nom2 nom1 employeur 2 employeur 4 10101 mysytraining+apprenant1@gmail.com mysytraining+apprenant8@gmail.com adresse01 adresse03 code_postal01 code_postal03 ville01 ville03 pays01 pays03 modefinancement opco 0 1500 18500 0
3 MYSY_Demo_AP_v2 IFOD_01 SESS_01_DEMO_AP_V2 test_facturatop_dup  mysytraining+client1@gmail.com mysytraining+client2@gmail.com Client 1  Client 2 mysylaplumedepierrot@gmail.com Etat financeur mme part 3 Alice excel part nom3_client nom2 employeur 3 employeur 5 10101 mysytraining+apprenant2@gmail.com mysytraining+apprenant9@gmail.com adresse02 adresse04 code_postal02 code_postal04 ville02 ville04 pays02 pays04 modefinancement 0 1500 15009
4 MYSY_Demo_AP_v2 IFOD_01 SESS_01_DEMO_AP_V2 test_facturatop_dup  mysytraining+client1@gmail.com mysytraining+client2@gmail.com Client 1  Client 2 mysylaplumedepierrot@gmail.com Etat financeur mme part 4 Thomas excel part nom4_client nom3 employeur 4 employeur 6 10101 mysytraining+apprenant3@gmail.com mysytraining+apprenant10@gmail.com adresse03 adresse05 code_postal03 code_postal05 ville03 ville05 pays03 pays05 modefinancement 0 1500 120 0
MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client2@gmail.com Client 2 part 5 part nom5_client employeur 5 10101 mysylaplumedepierrot+01@gmail.com adresse04 code_postal04 ville04 pays04 modefinancement 0 1500
MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client2@gmail.com Client 2 part 6 part nom6_client employeur 6 10101 mysylaplumedepierrot+02@gmail.com adresse05 code_postal05 ville05 pays05 modefinancement 0 1500

View File

@ -0,0 +1,6 @@
formation_code_externe;code_session;client_rattachement_email;client_rattachement_nom;prenom;nom;employeur;telephone;email;adresse;code_postal;ville;pays;modefinancement;opco;status;prix
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;;;part 2;part nom2;employeur 2;10101;mysytraining+apprenant1@gmail.com;adresse01;code_postal01;ville01;pays01;modefinancement;opco;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client1@gmail.com ;Client 1 ;part 3;part nom3_client;employeur 3;10101;mysytraining+apprenant2@gmail.com;adresse02;code_postal02;ville02;pays02;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client1@gmail.com ;Client 1 ;part 4;part nom4_client;employeur 4;10101;mysytraining+apprenant3@gmail.com;adresse03;code_postal03;ville03;pays03;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client2@gmail.com;Client 2;part 5;part nom5_client;employeur 5;10101; mysylaplumedepierrot+01@gmail.com;adresse04;code_postal04;ville04;pays04;modefinancement;;0;1500
MYSY_Demo_AP_v2;SESS_01_DEMO_AP_V2;mysytraining+client2@gmail.com;Client 2;part 6;part nom6_client;employeur 6;10101;mysylaplumedepierrot+02@gmail.com;adresse05;code_postal05;ville05;pays05;modefinancement;;0;1500
1 formation_code_externe code_session client_rattachement_email client_rattachement_nom prenom nom employeur telephone email adresse code_postal ville pays modefinancement opco status prix
2 MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 part 2 part nom2 employeur 2 10101 mysytraining+apprenant1@gmail.com adresse01 code_postal01 ville01 pays01 modefinancement opco 0 1500
3 MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client1@gmail.com Client 1  part 3 part nom3_client employeur 3 10101 mysytraining+apprenant2@gmail.com adresse02 code_postal02 ville02 pays02 modefinancement 0 1500
4 MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client1@gmail.com Client 1  part 4 part nom4_client employeur 4 10101 mysytraining+apprenant3@gmail.com adresse03 code_postal03 ville03 pays03 modefinancement 0 1500
5 MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client2@gmail.com Client 2 part 5 part nom5_client employeur 5 10101 mysylaplumedepierrot+01@gmail.com adresse04 code_postal04 ville04 pays04 modefinancement 0 1500
6 MYSY_Demo_AP_v2 SESS_01_DEMO_AP_V2 mysytraining+client2@gmail.com Client 2 part 6 part nom6_client employeur 6 10101 mysylaplumedepierrot+02@gmail.com adresse05 code_postal05 ville05 pays05 modefinancement 0 1500

View File

@ -13,6 +13,7 @@
@media only screen and (max-width: 600px) {
/*style smartphones et petites tablettes en portrait*/
.react-confirm-alert-body {
font-family: Arial, Helvetica, sans-serif;
@ -22,30 +23,31 @@
border-radius: 10px;
box-shadow: 0 20px 75px rgb(0 0 0 / 13%);
color: #666;
width:90% !important;
width: 90% !important;
margin-left: auto !important;
margin-right: auto !important;
padding-left: 0.2rem !important;
padding-right: 0.2rem !important;
z-index: 99999999 !important;
}
.overlay-custom-class-name{
.overlay-custom-class-name {
z-index: 99999999 !important;
}
.react-confirm-alert{
.react-confirm-alert {
width: 90% !important;
z-index: 999999 !important;
}
.App {
align-items: center;
margin-left: 0%;
margin-right: 0%;
text-align: center;
height: calc(100vh - 10rem);
min-height : calc(100vh - 10rem);
min-height: calc(100vh - 10rem);
}
.App-link {
@ -56,6 +58,7 @@
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
@ -77,7 +80,7 @@
margin-right: 0%;
text-align: center;
height: calc(100vh - 10rem);
min-height : calc(100vh - 10rem);
min-height: calc(100vh - 10rem);
}
.App-link {
@ -88,6 +91,7 @@
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
@ -109,7 +113,7 @@
margin-right: 0%;
text-align: center;
height: calc(100vh - 10rem);
min-height : calc(100vh - 10rem);
min-height: calc(100vh - 10rem);
}
.App-link {
@ -120,6 +124,7 @@
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
@ -132,7 +137,7 @@
}
}
@media only screen and (min-width: 1200px) {
@media only screen and (min-width: 1200px) {
/*style petites-moyennes tablettes */
.App {
@ -141,7 +146,7 @@
margin-right: 0%;
text-align: center;
height: calc(100vh - 10rem);
min-height : calc(100vh - 10rem);
min-height: calc(100vh - 10rem);
}
.App-link {
@ -152,6 +157,7 @@
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
@ -164,8 +170,7 @@
}
}
.main_cont {
}
.main_cont {}
.main_haut {
float: left;
@ -177,18 +182,22 @@
.main_bas {
float: left;
border-width: 0.01rem;
width: 100%;
font-family: 'Quicksand', 'Signika', "sans-serif" !important;
font-size: small !important;
color: black;
height: 5rem;
position:fixed;
top: calc(100vh - 5rem);
z-index: 13;
float: left;
border-width: 0.01rem;
width: 100%;
font-family: 'Quicksand', 'Signika', "sans-serif" !important;
font-size: small !important;
color: black;
height: 5rem;
position: fixed;
top: calc(100vh - 5rem);
z-index: 13;
}
.MuiAutocomplete-input {
font-size: small !important;
font-family: DM Sans !important;
}
.radio-container {
justify-content: space-around;
@ -201,11 +210,11 @@
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.452);
}
input{
transform: translateY(1px);
}
input {
transform: translateY(1px);
}
label {
margin-left: 10px;
cursor: pointer;
}
label {
margin-left: 10px;
cursor: pointer;
}

View File

@ -335,7 +335,7 @@ function Account() {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 100000) {
if (file_size > 10000000) {
alert("L'image doit faire moins de 100 Kilo Octets");
return;
}

View File

@ -3130,7 +3130,7 @@ const AddClassManual = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
@ -3983,7 +3983,7 @@ const AddClassManual = (props) => {
setRecord_All_PJ_api("true");
Get_List_Of_All_PJ(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
@ -4053,7 +4053,7 @@ const AddClassManual = (props) => {
setDelete_one_attached_document_result(result['message']);
setDelete_one_attached_document_api("true");
Get_List_Of_All_PJ(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
// alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
@ -4281,6 +4281,9 @@ const AddClassManual = (props) => {
setsubmenu("statistiques");
submenu_color_management("statistiques");
Getall_Employee_Statistic_Question_List();
Get_Qualiopi_Indic_Apprenant_Formation("1");
Get_Qualiopi_Indic_Nb_Heure("1");
Get_Indic_Class_CA_HT("1");
}
function submenu_finance() {
@ -4723,7 +4726,7 @@ const AddClassManual = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_Qry_Survey_Data res.data.status = " + res.data.status);
console.log(" In Getall_Qry_Survey_Data res.data.message r_class = " + res.data.message);
// console.log(" In Getall_Qry_Survey_Data res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
@ -4800,6 +4803,244 @@ const AddClassManual = (props) => {
const [Get_Qualiopi_Indic_Apprenant_Formation_api, setGet_Qualiopi_Indic_Apprenant_Formation_api] = useState();
const [Get_Qualiopi_Indic_Apprenant_Formation_message, setGet_Qualiopi_Indic_Apprenant_Formation_message] = useState();
const [Get_Qualiopi_Indic_Apprenant_Formation_result, setGet_Qualiopi_Indic_Apprenant_Formation_result] = useState([]);
function Get_Qualiopi_Indic_Apprenant_Formation(local_from_beginning) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("session_start_date", date_from);
form.append("session_end_date", date_to);
form.append("tab_formation_ids", selected_class_id);
form.append("from_beginning", local_from_beginning);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_Taux_Success_For_List_Class/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Qualiopi_Indic_Apprenant_Formation res.data.status = " + res.data.status);
// console.log(" In Get_Qualiopi_Indic_Apprenant_Formation res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
// console.log(" ### json_data = ", json_data);
var jsonObj0 = json_data.data
if (json_data.total_nb_inscrit) {
setqualiopi_indic_nb_apprenant(json_data.total_nb_inscrit)
} else {
setqualiopi_indic_nb_apprenant("");
}
if (json_data.taux_success) {
setqualiopi_indic_taux_sucess(json_data.taux_success)
} else {
setqualiopi_indic_taux_sucess("");
}
//console.log(" ### jsonObj0 = ", jsonObj0);
setGet_Qualiopi_Indic_Apprenant_Formation_api("true");
setGet_Qualiopi_Indic_Apprenant_Formation_result(res.data.message);
}
else {
setGet_Qualiopi_Indic_Apprenant_Formation_api("false");
setGet_Qualiopi_Indic_Apprenant_Formation_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('Not good man :( Get_Qualiopi_Indic_Apprenant_Formation = ', error);
setGet_Qualiopi_Indic_Apprenant_Formation_api("false");
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
const [Get_Qualiopi_Indic_Nb_Heure_api, setGet_Qualiopi_Indic_Nb_Heure_api] = useState();
const [Get_Qualiopi_Indic_Nb_Heure_message, setGet_Qualiopi_Indic_Nb_Heure_message] = useState();
const [Get_Qualiopi_Indic_Nb_Heure_result, setGet_Qualiopi_Indic_Nb_Heure_result] = useState([]);
function Get_Qualiopi_Indic_Nb_Heure(local_from_beginning) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("session_start_date", date_from);
form.append("session_end_date", date_to);
form.append("tab_formation_ids", selected_class_id);
form.append("from_beginning", local_from_beginning);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_Session_For_List_Class/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Qualiopi_Indic_Nb_Heure res.data.status = " + res.data.status);
// console.log(" In Get_Qualiopi_Indic_Nb_Heure res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
// console.log(" ### json_data = ", json_data);
var jsonObj0 = json_data.data
if (json_data.total_nb_heure) {
setqualiopi_indic_nb_heure(json_data.total_nb_heure)
} else {
setqualiopi_indic_nb_heure("")
}
//console.log(" ### jsonObj0 = ", jsonObj0);
setGet_Qualiopi_Indic_Nb_Heure_api("true");
setGet_Qualiopi_Indic_Nb_Heure_result(res.data.message);
}
else {
setGet_Qualiopi_Indic_Nb_Heure_api("false");
setGet_Qualiopi_Indic_Nb_Heure_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('Not good man :( Get_Qualiopi_Indic_Nb_Heure = ', error);
setGet_Qualiopi_Indic_Nb_Heure_api("false");
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
const [Get_Indic_Class_CA_HT_api, setGet_Indic_Class_CA_HT_api] = useState();
const [Get_Indic_Class_CA_HT_message, setGet_Indic_Class_CA_HT_message] = useState();
const [Get_Indic_Class_CA_HT_result, setGet_Indic_Class_CA_HT_result] = useState([]);
function Get_Indic_Class_CA_HT(local_from_beginning) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("periode_start_date", date_from);
form.append("periode_end_date", date_to);
form.append("tab_formation_ids", selected_class_id);
form.append("from_beginning", local_from_beginning);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Factures_For_List_Class/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Indic_Class_CA_HT res.data.status = " + res.data.status);
console.log(" In Get_Indic_Class_CA_HT res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
// console.log(" ### json_data = ", json_data.data[0]);
if (json_data.data[0] && json_data.data[0].TotalAmount_HT) {
setindic_class_ca_ht(json_data.data[0].TotalAmount_HT)
} else {
setindic_class_ca_ht("")
}
//console.log(" ### jsonObj0 = ", jsonObj0);
setGet_Indic_Class_CA_HT_api("true");
setGet_Indic_Class_CA_HT_result(res.data.message);
}
else {
setGet_Indic_Class_CA_HT_api("false");
setGet_Indic_Class_CA_HT_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('Not good man :( Get_Indic_Class_CA_HT = ', error);
setGet_Indic_Class_CA_HT_api("false");
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
const otherSetting = {
height: 300,
yAxis: [{ label: '' }],
@ -4947,6 +5188,10 @@ const AddClassManual = (props) => {
};
const [qualiopi_indic_nb_apprenant, setqualiopi_indic_nb_apprenant] = React.useState("");
const [qualiopi_indic_nb_heure, setqualiopi_indic_nb_heure] = React.useState("");
const [qualiopi_indic_taux_sucess, setqualiopi_indic_taux_sucess] = React.useState("");
const [indic_class_ca_ht, setindic_class_ca_ht] = React.useState("");
return (
<div className="addclassmanual">
@ -8087,8 +8332,8 @@ const AddClassManual = (props) => {
}
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis"
style={{ "marginBottom": "10px", "marginTop": "1rem", fontFamily:"DM Sans" }} >
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis"
style={{ "marginBottom": "10px", "marginTop": "1rem", fontFamily: "DM Sans" }} >
Fiche catalogue <br />
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
@ -8138,7 +8383,7 @@ const AddClassManual = (props) => {
</div>
<br />
<br />
Fichier : {file_1_name.name} <br /> <font style={{ "cursor": "pointer", fontFamily:"DM Sans" }}
Fichier : {file_1_name.name} <br /> <font style={{ "cursor": "pointer", fontFamily: "DM Sans" }}
onClick={Delete_file_1_name}> Supprimer <IoIosRemoveCircleOutline /> </font>
</nav>}
@ -8154,7 +8399,7 @@ const AddClassManual = (props) => {
<div className="div_row_gauche" style={{ "padding": "5px", "border": "none" }}>
<Button variant="contained" onClick={Record_Class_Catalogue_File}
startIcon={<AiTwotoneSave />} className="bton_enreg" style={{ "width": "80%", fontFamily:"DM Sans" }}>ENREGISTRER LA PIECE</Button>
startIcon={<AiTwotoneSave />} className="bton_enreg" style={{ "width": "80%", fontFamily: "DM Sans" }}>ENREGISTRER LA PIECE</Button>
</div>
@ -8163,7 +8408,7 @@ const AddClassManual = (props) => {
{Get_Class_Catalogue_File_result && <div className="div_row" style={{ "padding": "5px", "border": "None" }}>
<div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
<div className="div_row" style={{ "padding": "5px", "border": "None", fontFamily:"DM Sans" }}>
<div className="div_row" style={{ "padding": "5px", "border": "None", fontFamily: "DM Sans" }}>
{Get_Class_Catalogue_File_result && Get_Class_Catalogue_File_result.map((val) => (
<div className="div_row_list_pj" >
@ -8241,7 +8486,7 @@ const AddClassManual = (props) => {
2 - Image Bannière <br/>
3 - L'image par defaut du métier dans le système
">
<div className="div_row_gauche_image" style={{ fontFamily:"DM Sans"}}> Image de profil <br />
<div className="div_row_gauche_image" style={{ fontFamily: "DM Sans" }}> Image de profil <br />
<img class="img_class_logo" src={userimgclassprofil} /><br />
</div>
@ -8257,7 +8502,7 @@ const AddClassManual = (props) => {
</div>}
</div>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis tips_img_class" style={{fontFamily:"DM Sans"}}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis tips_img_class" style={{ fontFamily: "DM Sans" }}>
<li>
L'image doit etre carrée.
</li>
@ -8356,9 +8601,59 @@ const AddClassManual = (props) => {
{submenu && String(submenu) === "statistiques" && <div style={{ height: "80rem", width: '100%', paddingRight: '10px', paddingLeft: '10px' }}>
<div>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les Statitiques </nav>
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", textAlign: 'center', fontFamily: 'DM Sans' }}> Les statistiques </nav>
<br /> <br />
<div className="div_row" style={{ "border": "None" }} >
<div style={{ width: '100%', float: 'left' }}>
<div className="stat_bloc_indicateur">
<div className="stat_bloc_indicateur_pave">
<nav style={{ width: '100%', textAlign: 'center', }}> Nombre d'apprenants</nav>
<div class="separator">
</div>
<nav style={{ width: '100%', textAlign: 'center', fontWeight: '600' }}> {qualiopi_indic_nb_apprenant}</nav>
</div>
<div className="stat_bloc_indicateur_pave">
<nav style={{ width: '100%', textAlign: 'center', }}> Nb heures dispensé</nav>
<div class="separator">
</div>
<nav style={{ width: '100%', textAlign: 'center', fontWeight: '600' }}> {qualiopi_indic_nb_heure}</nav>
</div>
<div className="stat_bloc_indicateur_pave">
<nav style={{ width: '100%', textAlign: 'center', }}> Taux de réussite</nav>
<div class="separator">
</div>
<nav style={{ width: '100%', textAlign: 'center', fontWeight: '600' }}> {qualiopi_indic_taux_sucess}% </nav>
</div>
<div className="stat_bloc_indicateur_pave">
<nav style={{ width: '100%', textAlign: 'center', }}>Chiffre d'affaire (HT) *</nav>
<div class="separator">
</div>
<nav style={{ width: '100%', textAlign: 'center', fontWeight: '600' }}>{indic_class_ca_ht} <br />
</nav>
<nav style={{ fontWeight: '400', fontSize: '10px', fontStyle: "italic", padding:'10px' }} > Sous réserve de la répartition des factures entre les différentes parties prenantes, en fonction des montants et des pourcentages convenus. </nav>
</div>
</div>
</div>
</div>
<div className="div_row" style={{ "border": "None" }} >
&nbsp;
</div>
<div className="div_row" style={{ "border": "None" }} >
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "500", fontFamily: "DM Sans" }}> Les indicateurs personalisés</nav>
<div className="session_caract">
Choisir une question
{New_Getall_Employee_Statistic_Question_List_result && New_Getall_Employee_Statistic_Question_List_result.length > 0 &&

View File

@ -201,7 +201,7 @@ const Apprenant = (props) => {
{ field: 'ville', headerName: 'ville', hide: true, editable: false, Width: 0 },
{ field: 'pays', headerName: 'pays', hide: true, editable: false, Width: 0 },
{ field: 'employeur', headerName: 'Employeur', minWidth: 150, hide: true, editable: false },
{ field: 'client_nom', headerName: 'Client', minWidth: 150, flex: 1, hide: false, editable: false },
{ field: 'client_nom', headerName: 'Client', hide: true, disableExport: true, editable: false },
{
field: 'is_ent_compte', headerName: 'ENT compte', minWidth: 100, flex: 1, hide: false, editable: false, renderCell: (cellValues) => {
@ -1054,6 +1054,14 @@ const Apprenant = (props) => {
setp_detail_date_creation("");
}
if (mylocaltraining.archive) {
setp_detail_archive(mylocaltraining.archive);
} else {
setp_detail_archive("0");
}
// 04/06/2025
if (mylocaltraining.is_handicap) {
setp_detail_is_handicap(false);
@ -1229,7 +1237,10 @@ const Apprenant = (props) => {
function Record_All_PJ() {
if (!p_detail_one_file_to_download_type_name) {
alert(" Vous devez donner un nom à la pièce jointe");
// alert(" Vous devez donner un nom à la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez donner un nom à la pièce jointe");
setalert_type("error");
return;
}
@ -1273,7 +1284,10 @@ const Apprenant = (props) => {
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
var txt = " La pièce jointe " + file_1_name.name + " a été bien enregistrée";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("success");
}
else {
@ -1329,7 +1343,12 @@ const Apprenant = (props) => {
setDelete_one_attached_document_result(result['message']);
setDelete_one_attached_document_api("true");
Get_List_Of_All_PJ(selected_apprenant_id);
alert(result['message'])
// alert(result['message'])
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("success");
}
else {
@ -1341,7 +1360,10 @@ const Apprenant = (props) => {
.catch((error) => {
console.error(' Record_All_PJ Error:', error);
setDelete_one_attached_document_api("false");
alert(" Impossible de supprimer le document")
// alert(" Impossible de supprimer le document")
setdisplay_alert_mysy("1");
setalert_message(" Impossible de supprimer le document");
setalert_type("error");
});
@ -2465,9 +2487,95 @@ const Apprenant = (props) => {
Enable_ENT_Account_Apprenant(liste_apprenant);
}
if (String(actionmass_ftion_val) === String("archive_desarchive")) {
Archive_Given_Apprenant();
}
}
const [Archive_Given_Apprenant_api, setArchive_Given_Apprenant_api] = useState();
const [Archive_Given_Apprenant_message, setArchive_Given_Apprenant_message] = useState();
const [Archive_Given_Apprenant_result, setArchive_Given_Apprenant_result] = useState();
function Archive_Given_Apprenant() {
var archive_statut = "1"
var tab_tmp = []
for (var i = 0; i < selectionModel.length; i++) {
var myid = parseInt(String(selectionModel[i]));
var line = JSON.parse(Get_All_Apprenant_result[myid]);
tab_tmp.push(line._id);
//console.log(rowss[myid]['external_code']);
// Si une seule ligne est a le statut "non archivé", alors on archive
if (line.archive && String(line.archive) === "0")
archive_statut = String(line.archive)
}
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("tab_apprenant_ids", tab_tmp);
var myurl = "";
if (archive_statut !== "1")
myurl = process.env.REACT_APP_API_URL + "myclass/api/archive_apprenant/";
else
myurl = process.env.REACT_APP_API_URL + "myclass/api/unarchive_apprenant/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Archive_Given_Apprenant res.data.status = " + res.data.status);
//console.log(" In Archive_Given_Apprenant res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setArchive_Given_Apprenant_api("true");
setArchive_Given_Apprenant_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
Get_All_Apprenant();
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
}
else {
setArchive_Given_Apprenant_api("false");
setArchive_Given_Apprenant_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 :( Archive_Given_Apprenant = ' + error);
setArchive_Given_Apprenant_api("false");
alert(" Impossible d'archiver/deséarchiver les apprenants ");
})
}
function Export_apprenant(tab_class) {
const stored_cookie = getCookie('tokenmysypart');
@ -2485,6 +2593,7 @@ const Apprenant = (props) => {
alert("Impossible d'exporter les apprenants (2) ");
} else {
setSelectionModel([]);
setactionmass_ftion_val("");
fileDownload(res.data, nom_fichier_cmd)
}
@ -2747,7 +2856,10 @@ const Apprenant = (props) => {
else {
setGet_All_Apprenant_api("false");
setGet_All_Apprenant_message(res.data.message);
alert(res.data.message)
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -3316,7 +3428,10 @@ const Apprenant = (props) => {
else {
setGetall_Partner_Session_Reduice_Fields_api("false");
setGetall_Partner_Session_Reduice_Fields_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -3399,7 +3514,10 @@ const Apprenant = (props) => {
else {
setGetall_Partner_List_UE_api("false");
setGetall_Partner_List_UE_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -3490,7 +3608,10 @@ const Apprenant = (props) => {
else {
setGet_List_UE_From_Class_Id_api("false");
setGet_List_UE_From_Class_Id_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -3571,24 +3692,25 @@ const Apprenant = (props) => {
const [selectionModel_apprenant_inscription, setselectionModel_apprenant_inscription] = React.useState([]);
const [selectionModel_suivi_pedagogique, setselectionModel_suivi_pedagogique] = React.useState([]);
const [p_filtre1, setp_filtre1] = useState();
const [p_filtre1_value, setp_filtre1_value] = useState();
const [p_filtre1, setp_filtre1] = useState("");
const [p_filtre1_value, setp_filtre1_value] = useState("");
const [p_filtre2, setp_filtre2] = useState();
const [p_filtre2_value, setp_filtre2_value] = useState();
const [p_filtre2, setp_filtre2] = useState("");
const [p_filtre2_value, setp_filtre2_value] = useState("");
function clean_all_filters() {
setp_filtre1();
setp_filtre1_value();
setp_filtre1("");
setp_filtre1_value("");
setp_filtre2();
setp_filtre2_value();
setp_filtre2("");
setp_filtre2_value("");
setgridline_id('');
setSelectionModel([]);
setactionmass_ftion_val("");
setGet_All_Apprenant_result([]);
setsubmenu("");
@ -3642,7 +3764,7 @@ const Apprenant = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");
@ -4408,7 +4530,10 @@ const Apprenant = (props) => {
else {
setAdd_Inscription_Apprenant_api("false");
setAdd_Inscription_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -4445,6 +4570,7 @@ const Apprenant = (props) => {
setDelete_Apprenant_Data_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setadd_One_Apprenant('');
setdisplay_detail_apprenant('');
@ -4464,7 +4590,10 @@ const Apprenant = (props) => {
else {
setDelete_Apprenant_Data_api("false");
setDelete_Apprenant_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -4503,6 +4632,7 @@ const Apprenant = (props) => {
setDisable_ENT_Account_Apprenant_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setadd_One_Apprenant('');
setdisplay_detail_apprenant('');
@ -4524,7 +4654,10 @@ const Apprenant = (props) => {
else {
setDisable_ENT_Account_Apprenant_api("false");
setDisable_ENT_Account_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -4566,6 +4699,7 @@ const Apprenant = (props) => {
setEnable_ENT_Account_Apprenant_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setadd_One_Apprenant('');
setdisplay_detail_apprenant('');
@ -4587,7 +4721,10 @@ const Apprenant = (props) => {
else {
setEnable_ENT_Account_Apprenant_api("false");
setEnable_ENT_Account_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -4628,7 +4765,7 @@ const Apprenant = (props) => {
setCreate_ENT_Account_Apprenant_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setadd_One_Apprenant('');
setdisplay_detail_apprenant('');
Clear_Detail_Apprenant_Fields();
@ -4649,7 +4786,10 @@ const Apprenant = (props) => {
else {
setCreate_ENT_Account_Apprenant_api("false");
setCreate_ENT_Account_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -4692,7 +4832,7 @@ const Apprenant = (props) => {
setDelete_LIST_Apprenant_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setadd_One_Apprenant('');
setdisplay_detail_apprenant('');
Clear_Detail_Apprenant_Fields();
@ -4713,7 +4853,10 @@ const Apprenant = (props) => {
else {
setDelete_LIST_Apprenant_api("false");
setDelete_LIST_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -4766,7 +4909,7 @@ const Apprenant = (props) => {
setp_dialog_type_apprenant('');
setp_dialog_financement('');
setSelectionModel([]);
setactionmass_ftion_val("");
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -4783,7 +4926,10 @@ const Apprenant = (props) => {
else {
setAdd_Inscription_List_Apprenant_api("false");
setAdd_Inscription_List_Apprenant_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -4805,6 +4951,7 @@ const Apprenant = (props) => {
setadd_One_Apprenant("");
setsubmenu("");
setSelectionModel([]);
setactionmass_ftion_val("");
}
const imglogoclasschangeHandler = (event) => {
@ -4821,7 +4968,7 @@ const Apprenant = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
@ -4930,7 +5077,10 @@ const Apprenant = (props) => {
}
else {
alert(result['message']);
//alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
@ -5141,7 +5291,10 @@ const Apprenant = (props) => {
else {
setAdd_Update_Apprenant_Tuteur_api("false");
setAdd_Update_Apprenant_Tuteur_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -5152,7 +5305,7 @@ const Apprenant = (props) => {
})
}
const New_Type_apprenant = [
{ "id": "0", "label": "Autre" },
@ -5276,7 +5429,10 @@ const Apprenant = (props) => {
else {
setGet_List_Apprenant_Modele_Courrier_api("false");
setGet_List_Apprenant_Modele_Courrier_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -5345,6 +5501,7 @@ const Apprenant = (props) => {
{ "id": "3", "label": "(R)Inscrire", "value": "inscrire" },
{ "id": "4", "label": "ENT Créer accès", "value": "create_ent" },
{ "id": "5", "label": "ENT Désactiver", "value": "disable_ent" },
{ "id": "6", "label": "Archiver/Désarch.", "value": "archive_desarchive" },
{ "id": "2", "label": "Supprimer", "value": "supprimer" },
]
@ -5515,7 +5672,10 @@ const Apprenant = (props) => {
setLoading(false);
setGet_Geven_Suivi_Ped_Data_api("false");
setGet_Geven_Suivi_Ped_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -6005,10 +6165,20 @@ const Apprenant = (props) => {
{ "id": "email", "label": "Email ", "value": "email" },
{ "id": "nom", "label": "Nom ", "value": "nom" },
{ "id": "prenom", "label": "Prénom ", "value": "prenom" },
{ "id": "archive", "label": "Archive", "value": "archive" },
{ "id": "", "label": "", "value": "" },
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.
]
const New_Option_Is_archive = [
{ "id": "1", "label": "Oui", "value": "1" },
{ "id": "0", "label": "Non", "value": "0" },
{ "id": "2", "label": "Tout", "value": "2" },
{ "id": "", "label": "", "value": "" },
]
const [is_recherche, setis_recherche] = useState("0");
const [p_detail_archive, setp_detail_archive] = useState("");
return (
<div className="apprenant">
@ -6773,7 +6943,7 @@ const Apprenant = (props) => {
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" > Inscrire </DialogTitle>
<DialogContent className="DialogContent_width">
{New_Getall_TrainingSession_result && <div className="session_caract_Dialog"> <b> Promotion</b>
{New_Getall_TrainingSession_result && <div className="session_caract_Dialog"> <b>Session / Promotion</b>
<Autocomplete
disablePortal
@ -7009,7 +7179,28 @@ const Apprenant = (props) => {
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter" >
<TextField
{New_Option_Filter && New_Option_Filter.length > 0 && <Autocomplete
disablePortal
name="filtre1"
id="filtre1"
className="disabled_style"
value={New_Option_Filter.filter((data) => (data).value === String(p_filtre1))[0].label}
options={New_Option_Filter}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre1(value.value);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
{/* <TextField
name="filtre1"
label="Choisir un champ"
select
@ -7024,12 +7215,12 @@ const Apprenant = (props) => {
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="prenom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Prénom &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</div>
<div className="div_row_droite texte_area_filter_value" >
{String(p_filtre1) !== "archive" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -7056,10 +7247,36 @@ const Apprenant = (props) => {
),
}}
/>}
</div>}
{String(p_filtre1) === "archive" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
value={New_Option_Is_archive.filter((data) => (data).id === String(p_filtre1_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={New_Option_Is_archive}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre1_value(value.value);
} else {
setp_filtre1_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>
}
</div>
</div>}
{p_filtre1 && <div className='filter_bton_add'>
<Tooltip className="tooltip_css" id="my-tooltip01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="my-tooltip01" data-tooltip-html="Ajouter une nouvelle ligne de filtre">
@ -7085,7 +7302,29 @@ const Apprenant = (props) => {
{p_filtre2 &&
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter">
<TextField
{New_Option_Filter && New_Option_Filter.length > 0 && <Autocomplete
disablePortal
name="filtre2"
id="filtre2"
className="disabled_style"
value={New_Option_Filter.filter((data) => (data).value === String(p_filtre2))[0].label}
options={New_Option_Filter}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre2(value.value);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
{/*<TextField
name="filtre2"
label="Choisir un champ"
select
@ -7101,10 +7340,11 @@ const Apprenant = (props) => {
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="prenom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Prénom &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</div>
<div className="div_row_droite texte_area_filter" >
{String(p_filtre2).length > 3 &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -7131,6 +7371,29 @@ const Apprenant = (props) => {
}}
/>}
{String(p_filtre2).length > 2 && String(p_filtre2) === "archive" &&
<Autocomplete
disablePortal
name="filtre2_value"
id="filtre2_value"
value={New_Option_Is_archive.filter((data) => (data).id === String(p_filtre2_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={New_Option_Is_archive}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre2_value(value.value);
} else {
setp_filtre2_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>}
</div>
@ -7139,8 +7402,8 @@ const Apprenant = (props) => {
<a data-tooltip-id="my-tooltip04" data-tooltip-html="Supprimer cette ligne de filtre">
&nbsp; <MdRemoveCircleOutline
onClick={(e) => {
setp_filtre2();
setp_filtre2_value();
setp_filtre2('');
setp_filtre2_value('');
}}
/>
</a>
@ -7152,12 +7415,22 @@ const Apprenant = (props) => {
{<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Get_All_Apprenant}>Rechercher
<Button variant="contained" className="bton_enreg"
onClick={(event) => {
Get_All_Apprenant();
setis_recherche("1");
}}
>Rechercher
</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_annule" onClick={clean_all_filters}>Annuler
<Button variant="contained" className="bton_annule"
onClick={(event) => {
clean_all_filters();
setis_recherche("");
}}
>Annuler
</Button>
</div>
@ -7336,7 +7609,7 @@ const Apprenant = (props) => {
<div className="div_row">
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<Autocomplete
@ -7352,6 +7625,7 @@ const Apprenant = (props) => {
|| String(value.value) === "inscrire"
|| String(value.value) === "create_ent"
|| String(value.value) === "disable_ent"
|| String(value.value) === "archive_desarchive"
) {
setactionmass_ftion_val(value.value);
}
@ -7372,75 +7646,81 @@ const Apprenant = (props) => {
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && actionmass_ftion_val && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 &&
actionmass_ftion_val && String(actionmass_ftion_val).length > 2 && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
<FcAcceptDatabase /> Traiter
<FcAcceptDatabase /> Traiter
</Button>}
modal
nested
position="center center"
</Button>}
modal
nested
position="center center"
>
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information - {actionmass_ftion_val} </div>
<div className="gest_content">
{' '}
{String(actionmass_ftion_val) === "supprimer" &&
<font color="red"> Confirmer la suppression de {selectionModel.length} apprenants .
</font>}
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information - {actionmass_ftion_val} </div>
<div className="gest_content">
{' '}
{String(actionmass_ftion_val) === "supprimer" &&
<font color="red"> Confirmer la suppression de {selectionModel.length} apprenants .
</font>}
{String(actionmass_ftion_val) === "inscription" &&
<font> Confirmer l'inscription de {selectionModel.length} apprenants à la session que vous aller choisir à présent.
</font>}
{String(actionmass_ftion_val) === "inscription" &&
<font> Confirmer l'inscription de {selectionModel.length} apprenants à la session que vous aller choisir à présent.
</font>}
{String(actionmass_ftion_val) === "exporter" &&
<font> Confirmer l'export excel de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "exporter" &&
<font> Confirmer l'export excel de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "inscrire" &&
<font> Confirmer l'inscription en masse de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "inscrire" &&
<font> Confirmer l'inscription en masse de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "create_ent" &&
<font> Confirmer la création des comptes ENT en masse de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "create_ent" &&
<font> Confirmer la création des comptes ENT en masse de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "disable_ent" &&
<font> Confirmer la désactivation des comptes ENT en masse de {selectionModel.length} apprenant(s).
</font>}
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
actionmass_ftion_Traitemet();
close();
}}> Valider </button>
{String(actionmass_ftion_val) === "disable_ent" &&
<font> Confirmer la désactivation des comptes ENT en masse de {selectionModel.length} apprenant(s).
</font>}
{String(actionmass_ftion_val) === "archive_desarchive" &&
<font> Confirmer la <b> l'archivage / désarchivage </b> en masse pour {selectionModel.length} lignes.
</font>}
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
actionmass_ftion_Traitemet();
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
</nav>
)}
</Popup>
</nav>
}
</div>}
@ -8123,7 +8403,10 @@ const Apprenant = (props) => {
{String(display_detail_apprenant) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id &&
<div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }} ref={myRef_detail_apprenant} id="myRef_detail_apprenant"> Détail Apprenant </nav>
{p_detail_archive && String(p_detail_archive) === "1" &&
<div class="block_archive"> Document Archivé </div>}
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "600", fontFamily: 'DM Sans' }}> Détail Apprenant </nav>
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche" style={{ width: '20%', maxWidth: '200px' }}>
@ -9277,7 +9560,7 @@ const Apprenant = (props) => {
</div>}
{String(display_detail_inscriptions) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail des inscriptions </nav>
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "600", fontFamily: 'DM Sans' }}> Détail des inscriptions </nav>
<div className="session_data" >
<div style={{ "border": "None" }}>
@ -9533,7 +9816,7 @@ const Apprenant = (props) => {
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
<div className="div_row_list_pj" >
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger &nbsp;<i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -9731,7 +10014,7 @@ const Apprenant = (props) => {
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={add_suivi_ped_funct}
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={add_suivi_ped_funct}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Suivi &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
@ -10000,7 +10283,7 @@ const Apprenant = (props) => {
</div>}
{String(add_one_suivi_ped) !== "1" && String(display_given_suivi_ped) === "1" && <div>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail suivi pédagogique</nav>
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "600", fontFamily: 'DM Sans' }}> Détail suivi pédagogique</nav>
{String(given_suivi_ped_data_edit_mode) !== "1" && <div className="div_row" style={{ "border": "None" }}>

View File

@ -484,7 +484,7 @@ const Article = (props) => {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

12039
src/components/Autre_RH.js Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -293,7 +293,7 @@ const CRM_Opportunite = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -130,7 +130,7 @@ const Dashbord_Inscriptions_all_inscriptions = (props) => {
form.append("filter_value", filter_value);
console.log(" LAAA filter_group_by = ", filter_group_by)
// console.log(" LAAA filter_group_by = ", filter_group_by)
var myurl = "";
if (String(filter_group_by) === "class")

View File

@ -327,9 +327,8 @@ const DisplayPartnerPromotion = (props) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all", fontFamily: 'DM Sans', }}>
{String(cellValues.row.distantiel) === "1" && "Actif"}&nbsp;
{String(cellValues.row.distantiel) !== "1" && "Inactif"}&nbsp;
{String(cellValues.row.statut) === "1" && "Actif"}&nbsp;
{String(cellValues.row.statut) !== "1" && "Inactif"}&nbsp;
</div>
);
@ -883,7 +882,7 @@ const DisplayPartnerPromotion = (props) => {
setAnchorEl(null);
if (option && String(option) === "Mise à jour") {
setdialogOpen_update(true);
setdialogOpen_update(true);
}
else if (option && String(option) === "Valider Insc.") {
@ -4009,7 +4008,7 @@ const DisplayPartnerPromotion = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");
setalert_type("error");
@ -4345,6 +4344,8 @@ const DisplayPartnerPromotion = (props) => {
//console.log(" ### setnb_stagiaire_Inscrit = ", data['message'].length);
var new_data2 = [];
var nb_line_invoices = 0;
const new_data = data['message'].map((x) => {
//---
@ -4353,6 +4354,14 @@ const DisplayPartnerPromotion = (props) => {
var local_nom = JSON.parse(x).nom;
var local_prenom = JSON.parse(x).prenom;
/*
IMPORTANT :
Si une seule ligne est facturée alors on considere que le process de facturation a commencé
*/
if (JSON.parse(x).invoiced && String(JSON.parse(x).invoiced) === "1") {
nb_line_invoices = nb_line_invoices + 1;
}
//---
@ -4369,6 +4378,12 @@ const DisplayPartnerPromotion = (props) => {
});
if (nb_line_invoices > 0 && nb_line_invoices === data['message'].length) {
setselected_session_invoiced_statut("2");
} else if (nb_line_invoices > 0 && nb_line_invoices < data['message'].length) {
setselected_session_invoiced_statut("1");
}
if (new_data2.length > 0)
setNew_GetListePreinscrit_insc_result(new_data2);
else
@ -4403,7 +4418,7 @@ const DisplayPartnerPromotion = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -6017,7 +6032,7 @@ const DisplayPartnerPromotion = (props) => {
function enableSessionFields() {
if (rowss && String(gridline_id).length > 0 && rowss.length > 0) {
var local_session_invoice_status = JSON.parse(rowss[gridline_id]).invoiced_statut;
var local_session_invoice_status = selected_session_invoiced_statut;
if (String(local_session_invoice_status) === "1") {
@ -8706,7 +8721,7 @@ const DisplayPartnerPromotion = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
@ -9293,7 +9308,7 @@ const DisplayPartnerPromotion = (props) => {
const [p_detail_is_bpf, setp_detail_is_bpf] = useState();
const [p_detail_is_bpf_label, setp_detail_is_bpf_label] = useState();
const emplacement_tab = [
{
@ -9302,7 +9317,7 @@ const DisplayPartnerPromotion = (props) => {
},
{
value: 'extra',
label: 'Extra',
label: 'Inter',
},
{
value: 'autre',
@ -19316,7 +19331,7 @@ const DisplayPartnerPromotion = (props) => {
</div>
<div className="div_row_droite texte_area_filter" >
{String(p_filtre2).length > 3 && String(p_filtre2) !== "archive" &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -21462,7 +21477,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_code_session}
onChange={(e) => setp_code_session(e.target.value)}
@ -21480,7 +21495,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_titre}
onChange={(e) => setp_detail_titre(e.target.value)}
@ -21531,7 +21546,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_location_type_label}
@ -21552,7 +21567,7 @@ const DisplayPartnerPromotion = (props) => {
className="disabled_style"
options={New_Getall_Partner_Site_Formation_result}
value={New_Getall_Partner_Site_Formation_result.filter((data) => (data)._id === String(p_session_site_formation_id))[0].label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value._id && String(value._id).length > 2) {
@ -21633,7 +21648,7 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_session_site_formation_code}
/>
@ -21652,7 +21667,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_adresse}
onChange={(e) => setp_adresse(e.target.value)}
@ -21669,7 +21684,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_code_postal}
onChange={(e) => setp_code_postal(e.target.value)}
@ -21685,7 +21700,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_ville}
onChange={(e) => setp_ville(e.target.value)}
@ -21702,7 +21717,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_pays}
onChange={(e) => setp_pays(e.target.value)}
@ -21719,6 +21734,7 @@ const DisplayPartnerPromotion = (props) => {
className="disabled_style"
options={inclus_bpf_tab}
value={p_detail_is_bpf_label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value.value) {
setp_detail_is_bpf(value.value);
@ -21754,6 +21770,7 @@ const DisplayPartnerPromotion = (props) => {
className="disabled_style"
options={status_tab}
value={p_session_status_label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value.value) {
setp_session_status(value.value);
@ -21793,7 +21810,7 @@ const DisplayPartnerPromotion = (props) => {
textTransform: 'capitalize',
},
}}
disabled={false}
disabled={!edit_session_form}
inputProps={{
sx: {
@ -21822,7 +21839,7 @@ const DisplayPartnerPromotion = (props) => {
textTransform: 'capitalize',
},
}}
disabled={false}
disabled={!edit_session_form}
inputProps={{
sx: {
@ -21843,6 +21860,7 @@ const DisplayPartnerPromotion = (props) => {
name="session_etape"
id="session_etape"
className="disabled_style"
disabled={!edit_session_form}
options={New_Getall_Parter_OR_Default_Session_Steps_result}
value={p_session_etape_label}
onChange={(event, value) => {
@ -21880,9 +21898,10 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
className="disabled_style enable_style"
value={p_session_etape_label}
disabled={!edit_session_form}
/>
@ -21898,9 +21917,10 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_formateur_label}
disabled={!edit_session_form}
/>
@ -21914,6 +21934,7 @@ const DisplayPartnerPromotion = (props) => {
name="formateur_id"
id="formateur_id"
className="disabled_style"
disabled={!edit_session_form}
options={New_Getall_Training_Employee_No_Filter_result}
value={p_formateur_label}
onChange={(event, value) => {
@ -22010,7 +22031,7 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "1000", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_nb_participant}
onChange={(e) => {
@ -22090,7 +22111,7 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "999999", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style_moitier"
value={p_prix_session}
onChange={(e) => {
@ -22109,7 +22130,7 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "999999", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style_moitier"
value={New_Price_by.filter((data) => (data).value === String(p_prix_session_by))[0].label}
onChange={(e) => {
@ -22125,7 +22146,7 @@ const DisplayPartnerPromotion = (props) => {
id="prix_session_by"
className="disabled_style_moitier"
value={New_Price_by.filter((data) => (data).value === String(p_prix_session_by))[0].label}
disabled={!edit_session_form}
options={New_Price_by}
onChange={(event, value) => {
if (value && value.value) {
@ -22167,7 +22188,7 @@ const DisplayPartnerPromotion = (props) => {
name="mode_animation"
id="mode_animation"
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(p_session_mode_animation))[0].label}
disabled={!edit_session_form}
className="disabled_style"
options={New_Option_pres_dist_hyp}
@ -22194,7 +22215,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(p_session_mode_animation))[0].label}
/>
@ -22212,7 +22233,7 @@ const DisplayPartnerPromotion = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_is_bpf_label}
@ -22231,6 +22252,7 @@ const DisplayPartnerPromotion = (props) => {
className="disabled_style"
options={session_ondemande_tab}
value={p_session_ondemande_label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value.value) {
setp_session_ondemande(value.value);
@ -22264,7 +22286,7 @@ const DisplayPartnerPromotion = (props) => {
shrink: true,
}}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style enable_style"
value={p_session_ondemande_label}
@ -22345,6 +22367,7 @@ const DisplayPartnerPromotion = (props) => {
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
disabled={!edit_session_form}
id={JSON.parse(champ_spec).field_name}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
@ -22367,6 +22390,7 @@ const DisplayPartnerPromotion = (props) => {
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
disabled={!edit_session_form}
id={JSON.parse(champ_spec).field_name}
type="text"
InputLabelProps={{
@ -26639,7 +26663,7 @@ const DisplayPartnerPromotion = (props) => {
submenu_evaluation={submenu_evaluation_session}
submenu_attestation={submenu_attestation}
submenu_q_positionnement={submenu_q_positionnement}
Get_List_Partner_Clients={Get_List_Partner_Clients}
Get_List_Partner_Clients={Get_List_Partner_Clients}
nb_valide_inscription_entreprise={nb_valide_inscription_entreprise}
nb_valide_inscription_individuelle={nb_valide_inscription_individuelle}
selected_session_invoiced_statut={selected_session_invoiced_statut}

View File

@ -15,7 +15,7 @@ import { Tooltip } from 'react-tooltip'
import TextareaAutosize from '@mui/material/TextareaAutosize';
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcSearch } from "react-icons/fc";
@ -331,10 +331,9 @@ const DisplayPartnerSession = (props) => {
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all", fontFamily: 'DM Sans', }}>
{String(cellValues.row.distantiel) === "1" && "Actif"}&nbsp;
{String(cellValues.row.distantiel) !== "1" && "Inactif"}&nbsp;
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all", fontFamily: 'DM Sans', }}>
{String(cellValues.row.statut) === "1" && "Actif"}&nbsp;
{String(cellValues.row.statut) !== "1" && "Inactif"}&nbsp;
</div>
);
@ -1296,7 +1295,7 @@ const DisplayPartnerSession = (props) => {
{ field: 'employeur', headerName: 'Employeur', minWidth: 150, flex: 1, maxWidth: 200, hide: true, editable: false },
{ 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 },
{ field: 'amount', headerName: 'Prix', minWidth: 100, flex: 1, maxWidth: 100, type: 'number', flex: 1, editable: true },
{ field: 'amount', headerName: 'Prix', minWidth: 100, flex: 1, maxWidth: 100, type: 'number', flex: 1, editable: false },
{
field: 'invoiced', headerName: 'Facturé', minWidth: 100, flex: 1, maxWidth: 100, hide: false, editable: false,
@ -1642,6 +1641,7 @@ const DisplayPartnerSession = (props) => {
);
},
},
{ field: 'time_in_hour', headerName: 'Nb Heure', minWidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: 'date_envoi', headerName: 'Envoyé le', width: 180, hide: false, editable: false,
renderCell: (cellValues) => {
@ -4018,7 +4018,7 @@ const DisplayPartnerSession = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");
setalert_type("error");
@ -4356,6 +4356,9 @@ const DisplayPartnerSession = (props) => {
//console.log(" ### setnb_stagiaire_Inscrit = ", data['message'].length);
var new_data2 = [];
var nb_line_invoices = 0;
const new_data = data['message'].map((x) => {
//---
@ -4364,7 +4367,14 @@ const DisplayPartnerSession = (props) => {
var local_nom = JSON.parse(x).nom;
var local_prenom = JSON.parse(x).prenom;
/*
IMPORTANT :
Si une seule ligne est facturée alors on considere que le process de facturation a commencé
*/
if (JSON.parse(x).invoiced && String(JSON.parse(x).invoiced) === "1") {
nb_line_invoices = nb_line_invoices + 1;
}
//---
var node = {
@ -4380,6 +4390,14 @@ const DisplayPartnerSession = (props) => {
});
if (nb_line_invoices > 0 && nb_line_invoices === data['message'].length) {
setselected_session_invoiced_statut("2");
} else if (nb_line_invoices > 0 && nb_line_invoices < data['message'].length) {
setselected_session_invoiced_statut("1");
}
if (new_data2.length > 0)
setNew_GetListePreinscrit_insc_result(new_data2);
else
@ -4413,7 +4431,7 @@ const DisplayPartnerSession = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -6037,7 +6055,7 @@ const DisplayPartnerSession = (props) => {
function enableSessionFields() {
if (rowss && String(gridline_id).length > 0 && rowss.length > 0) {
var local_session_invoice_status = JSON.parse(rowss[gridline_id]).invoiced_statut;
var local_session_invoice_status = selected_session_invoiced_statut;
if (String(local_session_invoice_status) === "1") {
@ -8762,7 +8780,7 @@ const DisplayPartnerSession = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
@ -9358,7 +9376,7 @@ const DisplayPartnerSession = (props) => {
},
{
value: 'extra',
label: 'Extra',
label: 'Inter',
},
{
value: 'autre',
@ -17829,7 +17847,7 @@ const DisplayPartnerSession = (props) => {
<div className="session_caract_Dialog" > Choisir un modèle d'émargement
<div className="session_caract_Dialog" ><b> Choisir un modèle d'émargement </b>
<Autocomplete
disablePortal
name="event_dialog_version_emargement"
@ -19001,8 +19019,6 @@ const DisplayPartnerSession = (props) => {
onChange={(event, value) => {
if (value && value._id) {
setDialog_seq_ressource_1_selected_ressource_id(value._id);
}
}}
@ -19201,12 +19217,8 @@ const DisplayPartnerSession = (props) => {
<div className="div_row_gauche">
<Button onClick={(e) => {
Dialog_FACTURATION_FORMATION_handleClose_buton();
Invoice_Session_Formation_By_Selected_Inscrit();
}}
className="bton_enreg_dialog">Facturer </Button>
</div>
@ -19367,7 +19379,7 @@ const DisplayPartnerSession = (props) => {
</div>
<div className="div_row_droite texte_area_filter" >
{String(p_filtre2).length > 3 && String(p_filtre2) !== "archive" &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -19743,7 +19755,6 @@ const DisplayPartnerSession = (props) => {
setselected_class_lms_code(newSelectionModel.row.class_lms_class_code);
setsession_selected_row_id(newSelectionModel.row.id);
setsession_selected_class_id(newSelectionModel.row.class_id);
@ -21518,7 +21529,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_code_session}
onChange={(e) => setp_code_session(e.target.value)}
@ -21536,7 +21547,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_titre}
onChange={(e) => setp_detail_titre(e.target.value)}
@ -21587,7 +21598,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_location_type_label}
@ -21595,7 +21606,7 @@ const DisplayPartnerSession = (props) => {
</div>}
{edit_session_form && <div className="session_caract">Site de formation <br />
{edit_session_form && <div className="session_caract">Site de formation <br />
{New_Getall_Partner_Site_Formation_result && New_Getall_Partner_Site_Formation_result.length > 0 &&
@ -21688,8 +21699,9 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={!edit_session_form}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
//disabled={false}
className="disabled_style"
value={p_session_site_formation_code}
/>
@ -21708,7 +21720,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_adresse}
onChange={(e) => setp_adresse(e.target.value)}
@ -21725,7 +21737,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_code_postal}
onChange={(e) => setp_code_postal(e.target.value)}
@ -21741,7 +21753,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_ville}
onChange={(e) => setp_ville(e.target.value)}
@ -21758,7 +21770,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_pays}
onChange={(e) => setp_pays(e.target.value)}
@ -21849,7 +21861,7 @@ const DisplayPartnerSession = (props) => {
textTransform: 'capitalize',
},
}}
disabled={false}
disabled={!edit_session_form}
inputProps={{
sx: {
@ -21878,7 +21890,7 @@ const DisplayPartnerSession = (props) => {
textTransform: 'capitalize',
},
}}
disabled={false}
disabled={!edit_session_form}
inputProps={{
sx: {
@ -21936,9 +21948,10 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
// disabled={false}
className="disabled_style enable_style"
value={p_session_etape_label}
disabled={!edit_session_form}
/>
@ -21954,9 +21967,11 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
//disabled={false}
className="disabled_style"
value={p_formateur_label}
disabled={!edit_session_form}
/>
@ -21972,6 +21987,7 @@ const DisplayPartnerSession = (props) => {
className="disabled_style"
options={New_Getall_Training_Employee_No_Filter_result}
value={p_formateur_label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value._id) {
setp_formateur_id(value._id);
@ -22066,7 +22082,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "1000", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={p_nb_participant}
onChange={(e) => {
@ -22146,7 +22162,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "999999", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style_moitier"
value={p_prix_session}
onChange={(e) => {
@ -22165,7 +22181,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "999999", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style_moitier"
value={New_Price_by.filter((data) => (data).value === String(p_prix_session_by))[0].label}
onChange={(e) => {
@ -22224,7 +22240,7 @@ const DisplayPartnerSession = (props) => {
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(p_session_mode_animation))[0].label}
className="disabled_style"
disabled={!edit_session_form}
options={New_Option_pres_dist_hyp}
onChange={(event, value) => {
if (value && value.value) {
@ -22249,7 +22265,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!edit_session_form}
className="disabled_style"
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(p_session_mode_animation))[0].label}
/>
@ -22267,7 +22283,7 @@ const DisplayPartnerSession = (props) => {
InputLabelProps={{
shrink: true,
}}
//disabled={true}
disabled={!edit_session_form}
className="disabled_style"
value={p_detail_is_bpf_label}
@ -22286,6 +22302,7 @@ const DisplayPartnerSession = (props) => {
className="disabled_style"
options={session_ondemande_tab}
value={p_session_ondemande_label}
disabled={!edit_session_form}
onChange={(event, value) => {
if (value && value.value) {
setp_session_ondemande(value.value);
@ -22319,7 +22336,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
inputProps={{ min: "0", max: "1", step: "1" }}
disabled={false}
disabled={!edit_session_form}
className="disabled_style enable_style"
value={p_session_ondemande_label}
@ -22408,7 +22425,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
disabled={!edit_session_form}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
@ -22429,7 +22446,7 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
disabled={!edit_session_form}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
@ -26532,6 +26549,7 @@ const DisplayPartnerSession = (props) => {
sequence_start: JSON.parse(item).sequence_start,
sequence_end: JSON.parse(item).sequence_end,
is_present: JSON.parse(item).is_present,
time_in_hour: JSON.parse(item).time_in_hour,
statut: JSON.parse(item).statut,
date_envoi: JSON.parse(item).date_envoi,
@ -26711,12 +26729,12 @@ const DisplayPartnerSession = (props) => {
submenu_evaluation={submenu_evaluation_session}
submenu_attestation={submenu_attestation}
submenu_q_positionnement={submenu_q_positionnement}
Get_List_Partner_Clients={Get_List_Partner_Clients}
Get_List_Partner_Clients={Get_List_Partner_Clients}
nb_valide_inscription_entreprise={nb_valide_inscription_entreprise}
nb_valide_inscription_individuelle={nb_valide_inscription_individuelle}
selected_session_invoiced_statut={selected_session_invoiced_statut}
Session_automatic_traitement_data={GetCurrentSession_automatic_traitement_data}
/>
</div>}

View File

@ -861,6 +861,7 @@ const DisplayPartnerStagiaires = (props) => {
setRecyclage_Desactivation_api("true");
setRecyclage_Desactivation_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
Getall_TrainingParticipant();
// alert(res.data.message);
setdisplay_alert_mysy("1");
@ -984,6 +985,7 @@ const DisplayPartnerStagiaires = (props) => {
setnb_stagiaire_Preinscrit("");
setnb_stagiaire_Inscrit("");
setSelectionModel([]);
setactionmass_ftion_val("");
setRows([]);
setRows_insc([]);
setRows_preinsc([]);
@ -1315,6 +1317,7 @@ const DisplayPartnerStagiaires = (props) => {
function submenu_add_one_stagiaire() {
setsubmenu("");
setSelectionModel([]);
setactionmass_ftion_val("");
setselected_code_session();
Get_List_Partner_Financeurs();
setaddOneParticipant("1");
@ -1708,7 +1711,7 @@ const DisplayPartnerStagiaires = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
@ -2502,7 +2505,7 @@ const DisplayPartnerStagiaires = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("Le fichier ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
@ -4383,7 +4386,7 @@ const DisplayPartnerStagiaires = (props) => {
setdisplay_alert_mysy("1");
setalert_message(" La mise à jour a été correctement faite.");
setalert_type("error");
setalert_type("success");
//myRef_head.current.scrollIntoView({ behavior: "smooth" });
@ -5643,7 +5646,6 @@ const DisplayPartnerStagiaires = (props) => {
const [liste_selected_inscription_id, setliste_selected_inscription_id] = useState([]);
async function actionmass_ftion_Traitemet() {
var liste_session = "";
var liste_emails = "";
@ -5935,6 +5937,7 @@ const DisplayPartnerStagiaires = (props) => {
setDelete_LIST_Stagiaires_api("true");
setDelete_LIST_Stagiaires_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
Getall_TrainingParticipant();
//alert(res.data.message);
setdisplay_alert_mysy("1");
@ -6339,7 +6342,7 @@ const DisplayPartnerStagiaires = (props) => {
setselected_convention_email_destinataire_prod();
setselected_convention_email_test();
setactionmass_ftion_val();
setactionmass_ftion_val("");
setSelectionModel([]);
settab_convention_pieces_jointes_result([])
};
@ -7021,6 +7024,7 @@ const DisplayPartnerStagiaires = (props) => {
const handleChange_display_stagiaire_with_alert = (event) => {
setSelectionModel([]);
setactionmass_ftion_val("");
setdisplay_stagiaire_with_alert(event.target.checked);
};
@ -7314,7 +7318,7 @@ const DisplayPartnerStagiaires = (props) => {
if (nb_different_session > 1) {
setdisplay_alert_mysy("1");
setalert_message(" Vous ne pouvez pas envoyer des documents qu'aux apprenant de la même promotion");
setalert_message(" Vous ne pouvez pas envoyer des documents qu'aux apprenant de la même promotion/session");
setalert_type("error");
return;
}
@ -9677,7 +9681,7 @@ const DisplayPartnerStagiaires = (props) => {
setactionmass_ftion_val(value.value);
}
else {
setactionmass_ftion_val();
setactionmass_ftion_val("");
}
}
@ -9692,7 +9696,8 @@ const DisplayPartnerStagiaires = (props) => {
/>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && actionmass_ftion_val && String(actionmass_ftion_val) !== "sendemail"
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && actionmass_ftion_val && String(actionmass_ftion_val).length > 2 &&
String(actionmass_ftion_val) !== "sendemail"
&& String(actionmass_ftion_val) !== "pushdocument" && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>

View File

@ -148,7 +148,7 @@ const DistplayPartnerTraningsPage = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
//alert("Le fichier ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
@ -3135,7 +3135,7 @@ const DistplayPartnerTraningsPage = (props) => {
</div>
<div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }}>
{String(p_filtre2).length > 3 && String(p_filtre2) !== "archive" &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required

View File

@ -1857,7 +1857,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -332,7 +332,7 @@ function ESign() {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -428,7 +428,7 @@ function Emarge_QR_Code() {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -1589,7 +1589,7 @@ const Employes = (props) => {
if (String(res.data.status) === "true") {
setLoading(false);
//console.log(" In Get_Employee_Data res.data.status = " + res.data.status);
// console.log(" In Get_Employee_Data res.data.message r_class = " + res.data.message);
// console.log(" In Get_Employee_Data res.data.message r_class = " + res.data.message);
setGetAttendee_api("true");
setGetAttendee_result(res.data.message);
@ -1898,6 +1898,7 @@ const Employes = (props) => {
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("type_rh", "");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Ressource_Humaine_with_filter/";
@ -1953,7 +1954,7 @@ const Employes = (props) => {
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_Training_Employee_No_Filter res.data.status = " + res.data.status);
// console.log(" In Getall_Training_Employee_No_Filter res.data.message r_class = " + res.data.message);
// console.log(" In Getall_Training_Employee_No_Filter res.data.message r_class = " + res.data.message);
setGetall_Training_Employee_No_Filter_api("true");
setGetall_Training_Employee_No_Filter_result(res.data.message);
setRows(res.data.message);
@ -2029,7 +2030,7 @@ const Employes = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("Le fichier ne doit pas dépasser un 1 Méga octets");
// alert(res.data.message);
setdisplay_alert_mysy("1");
@ -2967,7 +2968,7 @@ const Employes = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
@ -3449,8 +3450,7 @@ const Employes = (props) => {
form.append("prenom", p_one_detail_prenom);
form.append("civilite", p_one_detail_civilite);
form.append("date_naissance", p_one_detail_naissance);
form.append("type_rh", "");
if (p_one_detail_tel)
form.append("telephone", p_one_detail_tel);
@ -3497,8 +3497,6 @@ const Employes = (props) => {
if (p_one_detail_resp_hierarchie_id)
form.append("superieur_hierarchie_id", p_one_detail_resp_hierarchie_id);
else
@ -3586,7 +3584,6 @@ const Employes = (props) => {
Getall_Training_Employee_No_Filter();
Get_List_Managers();
setemployee_data_changed("");
setemployee_data_edit_mode("");
clearEmployeeFields();
@ -8903,9 +8900,8 @@ const Employes = (props) => {
paddingLeft: '10px', flexWrap: 'wrap'
}}>
{String(employee_data_edit_mode) !== "1" && <div className="session_caract"> <b>Civilité</b> <br />
{String(employee_data_edit_mode) !== "1" && p_detail_civilite &&
String(p_detail_civilite).length > 0 && <div className="session_caract"> <b>Civilité</b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -8917,7 +8913,7 @@ const Employes = (props) => {
}}
disabled={false}
className="disabled_style"
value={String(p_detail_civilite)[0].toUpperCase() + String(p_detail_civilite).slice(1)}
value={String(p_detail_civilite)[0].toUpperCase() + String(p_detail_civilite).slice(1)}
/>
@ -8925,7 +8921,7 @@ const Employes = (props) => {
{String(employee_data_edit_mode) === "1" && <div className="session_caract"> <b>Civilité </b><br />
<Autocomplete
{New_civilite.length > 0 && <Autocomplete
disablePortal
name="detail_civilite_edit"
id="detail_civilite_edit"
@ -8948,7 +8944,7 @@ const Employes = (props) => {
/>
}
/>
/>}
</div>}
@ -8962,7 +8958,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_nom}
onChange={(e) => {
@ -8984,7 +8980,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_prenom}
onChange={(e) => {
@ -9010,7 +9006,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_mail}
onChange={(e) => {
@ -9027,7 +9023,21 @@ const Employes = (props) => {
</div>
<div className="session_caract"> <b> Date Naissance </b><br />
{String(employee_data_edit_mode) !== "1" && <div className="session_caract"> <b> Date Naissance </b><br />
<DatePicker
name="detail_naissance"
id="detail_naissance"
selected={new Date(moment(p_detail_naissance, "DD/MM/YYYY"))}
readOnly={true}
showTimeSelect={false}
dateFormat="dd/MM/yyyy"
className="disabled_style enable_style"
locale='fr-FR'
/>
</div>}
{String(employee_data_edit_mode) === "1" && <div className="session_caract"> <b> Date Naissance </b><br />
<DatePicker
name="detail_naissance"
id="detail_naissance"
@ -9043,9 +9053,7 @@ const Employes = (props) => {
locale='fr-FR'
/>
</div>
</div>}
</div>
</div>
@ -9073,7 +9081,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_tel_mobile}
onChange={(e) => {
@ -9094,7 +9102,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_tel}
onChange={(e) => {
@ -9115,7 +9123,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_adresse}
onChange={(e) => {
@ -9134,7 +9142,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_code_postal}
onChange={(e) => {
@ -9153,7 +9161,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_ville}
onChange={(e) => {
@ -9173,7 +9181,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_pays}
onChange={(e) => {
@ -9193,7 +9201,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_linkedIn}
onChange={(e) => {
@ -9213,7 +9221,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_facebook}
onChange={(e) => {
@ -9223,7 +9231,7 @@ const Employes = (props) => {
/>
</div>
<div className="session_caract"> Twitter<br />
<div className="session_caract"> X (Twitter)<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -9233,7 +9241,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_twitter}
onChange={(e) => {
@ -9266,7 +9274,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_profil}
@ -9310,7 +9318,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_fonction}
onChange={(e) => {
@ -9331,7 +9339,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_ismanager_label}
@ -9348,7 +9356,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_ismanager}
onChange={(e) => {
@ -9372,7 +9380,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_resp_hierarchie_nom + " " + p_detail_resp_hierarchie_prenom}
@ -9432,6 +9440,7 @@ const Employes = (props) => {
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
id={JSON.parse(champ_spec).field_name}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
@ -9455,6 +9464,7 @@ const Employes = (props) => {
required
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
InputLabelProps={{
shrink: true,
@ -9502,7 +9512,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_list_diffusion_mail}
onChange={(e) => {
@ -9552,7 +9562,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_user_login}
/>
@ -9708,7 +9718,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(employee_data_edit_mode)}
className="disabled_style"
value={p_detail_lms_login}
/>
@ -9840,7 +9850,7 @@ const Employes = (props) => {
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{ String(employee_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
{String(employee_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Update_One_Employee_Data}>Enregistrer
</Button>
@ -10203,7 +10213,7 @@ const Employes = (props) => {
/>
</div>
<div className="session_caract"> Twitter<br />
<div className="session_caract"> X (Twitter)<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -12495,7 +12505,7 @@ const Employes = (props) => {
{String(submenu) === "statistiques" && <div className="div_row" style={{ paddingRight: '10px' }}>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les Statitiques </nav>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les statistiques </nav>

View File

@ -3548,7 +3548,7 @@ function GestionAdministrative(props) {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -3793,7 +3793,7 @@ function GestionAdministrative(props) {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -5135,7 +5135,7 @@ function GestionAdministrative(props) {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -6,26 +6,19 @@ import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import { DataGrid, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcCheckmark } from "react-icons/fc";
import DatePicker from "react-datepicker";
import { FcAcceptDatabase } from "react-icons/fc";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
@ -34,25 +27,20 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import ColorPicker from 'react-pick-color';
import Menu from '@mui/material/Menu';
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneSave } from "react-icons/ai";
import Autocomplete from '@mui/material/Autocomplete';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { IoAddCircleOutline } from "react-icons/io5";
import AttachFileIcon from '@mui/icons-material/AttachFile';
import Module_Selection_Apprenants from "./Module_Selection_Apprenants";
import { FcMultipleSmartphones } from "react-icons/fc";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import { makeStyles } from "@material-ui/core/styles";
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
import { IconButton } from '@material-ui/core';
@ -94,7 +82,7 @@ const useStyles = makeStyles((theme) => ({
customizedButton: {
position: 'absolute',
left: '95%',
top: '-9%',
top: '-2%',
backgroundColor: 'lightgray',
color: 'gray',
},
@ -322,77 +310,371 @@ const Groupe_Apprenant = (props) => {
]
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 options_menu_vertical_promotion = [
'Modifier',
'Supprimer',
];
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 [dialogOpen_supp, setdialogOpen_supp] = useState(false);
const Dialog_menuitem_close_supp = () => {
setdialogOpen_supp(false)
};
const [dialogOpen_modif, setdialogOpen_modif] = useState(false);
const Dialog_menuitem_close_modif = () => {
setdialogOpen_modif(false)
};
const columns_grp_membre = [
{ field: '_id', headerName: '_id', hide: true, Width: 0, disableExport: true, },
{ field: 'id', headerName: 'id', hide: true, Width: 0, disableExport: true, },
{ field: 'nom', headerName: 'nom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'prenom', headerName: 'prenom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'email', headerName: 'email', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'nom', headerName: 'nom', flex: 1, hide: false, minWidth: 180, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'prenom', headerName: 'prenom', flex: 1, hide: false, minWidth: 180, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'email', headerName: 'email', flex: 1, hide: false, minWidth: 180, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: "delete", headerName: 'Supprimer', disableExport: true,
field: 'delegue_level', headerName: 'Delegué', flex: 1, hide: false, minWidth: 180, editable: false,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</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">
{' '}
En confirmant cette opération, la personne sera <i><font color="red"> supprimée du groupe </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Groupe(tab);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>}
</>
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all" }}>
{New_Delegue_Level && New_Delegue_Level.length > 0 &&
<nav>
{New_Delegue_Level.filter((data) => (data).id === String(cellValues.row.delegue_level))[0].label}
</nav>
}
</div>
);
},
},
/* {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</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">
{' '}
En confirmant cette opération, la personne sera <i><font color="red"> supprimée du groupe </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Groupe(tab);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>}
</>
);
}
},*/
{
field: 'gestion', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
renderCell: (cellValues) => {
return (
<div>
{String(props.check_user_acces_right("session", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button2"
aria-controls={open_promo ? 'long-menu_p2' : undefined}
aria-expanded={open_promo ? 'true' : undefined}
aria-haspopup="true"
// onClick={handleClick_option_button_vertical}
onClick={(e) => {
handleClick_option_button_vertical_promo(e);
setworking_cellValues_promo(cellValues);
setapprenant_delegue_level_id(cellValues.row.delegue_level);
setselected_groupe_inscription_membre_id(cellValues.row._id)
}}
>
<MoreVertIcon />
</IconButton>
<Menu
id="long-menu_p2"
MenuListProps={{
'aria-labelledby': 'long-button2',
}}
anchorEl={anchorEl_promo}
open={open_promo}
onClose={handleClose_option_button_vertical_promo}
slotProps={{
paper: {
style: {
maxHeight: ITEM_HEIGHT * 3,
width: '20ch',
boxShadow: "-3px 4px 0px -30px #000000",
borderRadius: '0px !important',
lineHeight: '3rem'
},
},
}}
>
{options_menu_vertical_promotion.map((option) => (
<MenuItem key={option}
onClick={(e) => {
//handleClose_option_button_vertical(e, option);
setanchorEl_promo(null);
if (option && String(option) === "Supprimer") {
setdialogOpen_supp(true);
}
else if (option && String(option) === "Modifier") {
setDialog_GRP_MEMBRE_EDIT_open(true);
}
}}
>
{option}
</MenuItem>
))}
</Menu>
{/*** GESTION Dialog menu item pour archivage / desarchivage */}
{dialogOpen_archive && <Dialog
open={dialogOpen_archive}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogContent className="DialogContent_width">
<div>
<button className="gest_close" onClick={Dialog_menuitem_close_archive}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
{String(promo_archive_status) !== "1" && <nav> En confirmant cette opération, la session sera <i><font color="red"> archivée</font></i>. <br />
</nav>}
{String(promo_archive_status) === "1" && <nav> En confirmant cette opération, la session sera <i><font color="red"> désarchivée</font></i>. <br />
</nav>}
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
// Archive_Given_Session(working_cellValues_promo.row._id, working_cellValues_promo.row.archive);
Dialog_menuitem_close_archive();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
console.log('modal closed ');
Dialog_menuitem_close_archive();
}}
>
Annuler
</button>
</div>
</div>
</div>
</DialogContent>
<DialogActions>
</DialogActions>
</Dialog>}
{/*** FIN GESTION Dialog menu item pour archivage / desarchivage */}
{/*** GESTION Dialog menu item pour suppression */}
{dialogOpen_supp && <Dialog
open={dialogOpen_supp}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogContent className="DialogContent_width">
<div>
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la personne sera <i><font color="red"> supprimée du groupe</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(working_cellValues_promo.row._id));
Delete_List_Membre_From_Groupe(tab);
Dialog_menuitem_close_supp();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
console.log('modal closed ');
Dialog_menuitem_close_supp();
}}
>
Annuler
</button>
</div>
</div>
</div>
</DialogContent>
<DialogActions>
</DialogActions>
</Dialog>}
{/*** FIN GESTION Dialog menu item pour suppression*/}
</nav>}
</div>
)
}
}
},
]
@ -1026,10 +1308,10 @@ const Groupe_Apprenant = (props) => {
function Record_All_PJ() {
if (!p_detail_one_file_to_download_type_name) {
// alert(" Vous devez donner un nom à la pièce jointe");
// alert(" Vous devez donner un nom à la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez donner un nom à la pièce jointe");
setalert_type("error");
setalert_message(" Vous devez donner un nom à la pièce jointe");
setalert_type("error");
return;
}
@ -1073,10 +1355,10 @@ const Groupe_Apprenant = (props) => {
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
// alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
// alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
setdisplay_alert_mysy("1");
setalert_message(" La pièce jointe " + file_1_name.name + " a été bien enregistrée");
setalert_type("success");
setalert_message(" La pièce jointe " + file_1_name.name + " a été bien enregistrée");
setalert_type("success");
}
else {
@ -1760,6 +2042,11 @@ const Groupe_Apprenant = (props) => {
})
}
const New_Delegue_Level = [
{ "id": "1", "label": "Principal", "value": "1" },
{ "id": "2", "label": "Secondaire", "value": "2" },
{ "id": "", "label": "", "value": "" },
]
const [New_Getall_Groupe_Membres_result, setNew_Getall_Groupe_Membres_result] = useState([]);
@ -1800,6 +2087,7 @@ const Groupe_Apprenant = (props) => {
var local_prenom = JSON.parse(x).prenom;
var local_email = JSON.parse(x).email;
var local_inscription_id = JSON.parse(x).inscription_id;
var local_delegue_level = JSON.parse(x).delegue_level;
//---
@ -1810,7 +2098,7 @@ const Groupe_Apprenant = (props) => {
"nom": local_nom,
"prenom": local_prenom,
"email": local_email,
"delegue_level": local_delegue_level,
"inscription_id": local_inscription_id,
@ -2372,6 +2660,92 @@ const Groupe_Apprenant = (props) => {
setdisplay_alert_mysy("");
}
const [dialogOpen_archive, setdialogOpen_archive] = useState(false);
const Dialog_menuitem_close_archive = () => {
setdialogOpen_archive(false)
};
const [working_cellValues_promo, setworking_cellValues_promo] = useState(false);
const [promo_archive_status, setpromo_archive_status] = React.useState('');
const [Dialog_GRP_MEMBRE_EDIT_message, setDialog_GRP_MEMBRE_EDIT_message] = React.useState(false);
const [Dialog_GRP_MEMBRE_EDIT_open, setDialog_GRP_MEMBRE_EDIT_open] = React.useState(false);
const Dialog_GRP_MEMBRE_EDIT_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_GRP_MEMBRE_EDIT_handleClose_buton = () => {
setDialog_GRP_MEMBRE_EDIT_open(false);
};
const [apprenant_delegue_level_id, setapprenant_delegue_level_id] = useState("");
const [selected_groupe_inscription_membre_id, setselected_groupe_inscription_membre_id] = useState("");
const [Update_Membres_Groupe_Inscrit_api, setUpdate_Membres_Groupe_Inscrit_api] = useState();
const [Update_Membres_Groupe_Inscrit_message, setUpdate_Membres_Groupe_Inscrit_message] = useState();
const [Update_Membres_Groupe_Inscrit_result, setUpdate_Membres_Groupe_Inscrit_result] = useState();
function Update_Membres_Groupe_Inscrit() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("tab_ids", selected_groupe_inscription_membre_id);
form.append("delegue_level", apprenant_delegue_level_id);
setLoading(true);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Groupe_Inscrit_Membres_From_Id/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
setLoading(false);
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
Getall_Groupe_Membres(selected_id);
Dialog_GRP_MEMBRE_EDIT_handleClose_buton();
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
setLoading(false);
alert('Erreur: ' + res.data.message);
history.push("/Connexion");
}
else {
setLoading(false);
setUpdate_Membres_Groupe_Inscrit_api("false");
setUpdate_Membres_Groupe_Inscrit_message(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Update_Membres_Groupe_Inscrit : Not good man :( mysearchtext = ' + error);
setUpdate_Membres_Groupe_Inscrit_api("false");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de mettre à jour les données ");
setalert_type("error");
})
}
return (
<div className="groupe_apprenant">
@ -2390,8 +2764,159 @@ const Groupe_Apprenant = (props) => {
}
{/*** FIN Affichage des messages d'alerte*/}
{/*** Dialog pickup Color */}
{/*** Dialog GROUPE MEMBRE_EDIT */}
<Dialog
open={Dialog_GRP_MEMBRE_EDIT_open}
// onClose={Dialog_GRP_MEMBRE_EDIT_handleClose}
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'relative',
top: '50rem',
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
className="groupe_apprenant_dialog mysy_MuiPaper-root"
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Mise à jour apprenant</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
</DialogContentText>
{working_cellValues_promo && working_cellValues_promo.row && working_cellValues_promo.row.nom && <div className="session_caract_Dialog" > Nom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_nom"
id="event_dialog_nom"
fullWidth
disabled={true}
value={String(working_cellValues_promo.row.nom)}
/>
</div>}
{working_cellValues_promo && working_cellValues_promo.row && working_cellValues_promo.row.prenom && <div className="session_caract_Dialog" > Prenom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_nom"
id="event_dialog_nom"
fullWidth
disabled={true}
value={String(working_cellValues_promo.row.prenom)}
/>
</div>}
{working_cellValues_promo && working_cellValues_promo.row && working_cellValues_promo.row.email && <div className="session_caract_Dialog" > Email <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_nom"
id="event_dialog_nom"
fullWidth
disabled={true}
value={String(working_cellValues_promo.row.email)}
/>
</div>}
<div className="session_caract_Dialog" > Delegué
{New_Delegue_Level && New_Delegue_Level.length > 0 && <Autocomplete
disablePortal
name="event_dialog_delegue"
id="event_dialog_delegue"
fullWidth
value={New_Delegue_Level.filter((data) => (data).id === String(apprenant_delegue_level_id))[0].label}
options={New_Delegue_Level}
onChange={(event, value) => {
if (value.value)
setapprenant_delegue_level_id(value.value);
else
setapprenant_delegue_level_id("");
}}
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
}
/>}
</div>
</DialogContent>
{String(submenu_grp_dialog) === "create" && <DialogActions>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={Update_Membres_Groupe_Inscrit} className="bton_enreg_dialog">Mettre à jour</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_GRP_MEMBRE_EDIT_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
<IconButton
autoFocus
onClick={Dialog_GRP_MEMBRE_EDIT_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>}
{String(submenu_grp_dialog) !== "create" && <DialogActions>
<IconButton
autoFocus
onClick={Dialog_GRP_MEMBRE_EDIT_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>}
</Dialog>
{/*** Fin ajout GROUPE MEMBRE_EDIT */}
{/*** Dialog pickup Color */}
<Dialog
open={Dialog_GRP_COLOR_open}
// onClose={Dialog_GRP_COLOR_handleClose}
@ -2473,7 +2998,6 @@ const Groupe_Apprenant = (props) => {
{/*** Dialog GROUPE AUTOMATIC */}
<Dialog
open={Dialog_GRP_AUTOMATIC_open}
// onClose={Dialog_GRP_AUTOMATIC_handleClose}
@ -3139,15 +3663,10 @@ const Groupe_Apprenant = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
setselected_id(newSelectionModel.row._id);
setgridline_id(newSelectionModel.row.id);
handleClick_edit_evaluation_From_Line(newSelectionModel.row.id);
}}
rowsPerPageOptions={[10]}
@ -3294,9 +3813,7 @@ const Groupe_Apprenant = (props) => {
id='menu_import_participant' name='menu_import_participant' onClick={(event) => {
setDialog_GRP_AUTOMATIC_open(true);
submenu_create_grp();
Annule_Add_One_Evaluaton_DetailFields();
}} > Gestion automatique
@ -3330,7 +3847,7 @@ const Groupe_Apprenant = (props) => {
{String(display_grp_apprenant) === "1" && String(add_one_grp_apprenant) !== "1" && <div className="div_row session_data" >
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "paddingTop": "10px", "paddingLeft": "5px" }}> Détail Groupe </nav>
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "600", fontFamily: 'DM Sans', padding: '10px' }}> Détail Groupe </nav>
{String(grp_apprenant_data_edit_mode) !== "1" && <div>
@ -4018,7 +4535,7 @@ const Groupe_Apprenant = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -4095,7 +4612,7 @@ const Groupe_Apprenant = (props) => {
<div className="session_data">
<div style={{ "border": "None" }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px" }}> Membres du groupe </nav>
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "600", fontFamily: 'DM Sans', padding: '10px' }}> Membres du groupe </nav>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
@ -4186,6 +4703,7 @@ const Groupe_Apprenant = (props) => {
prenom: (item).prenom,
email: (item).email,
groupe: (item).groupe,
delegue_level: (item).delegue_level,
}
))}

View File

@ -246,7 +246,7 @@ function HebergementLms(props) {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -512,7 +512,7 @@ function HebergementLms(props) {
let file_type = event.target.files[0].type;
// console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -1400,7 +1400,7 @@ const Intranet_Mes_Stagiaires = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
@ -2155,7 +2155,7 @@ const Intranet_Mes_Stagiaires = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -4,7 +4,7 @@ import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, } from 'react-use-cookie';
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";
@ -2064,7 +2064,7 @@ const Jury = (props) => {
async function submenu_detail() {
setsubmenu("detail_jury");
inactive_active_menu_header("detail_jury");
@ -2088,7 +2088,7 @@ const Jury = (props) => {
}
async function submenu_piece_jointe() {
setsubmenu("piece_jointe");
inactive_active_menu_header("piece_jointe");
@ -2701,10 +2701,10 @@ const Jury = (props) => {
function Record_All_PJ() {
if (!p_detail_one_file_to_download_type_name) {
// alert(" Vous devez donner un nom à la pièce jointe");
// alert(" Vous devez donner un nom à la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez donner un nom à la pièce jointe");
setalert_type("error");
setalert_message(" Vous devez donner un nom à la pièce jointe");
setalert_type("error");
return;
}
@ -2747,10 +2747,10 @@ const Jury = (props) => {
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
// alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
// alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
setdisplay_alert_mysy("1");
setalert_message(" La pièce jointe " + file_1_name.name + " a été bien enregistrée");
setalert_type("success");
setalert_message(" La pièce jointe " + file_1_name.name + " a été bien enregistrée");
setalert_type("success");
}
else {
@ -6685,7 +6685,7 @@ const Jury = (props) => {
</div>
<div className="session_caract"> <b> Cible 1</b> <br />
<div className="session_caract"> <b> Cible </b> <br />
{New_Option_Cible_Jury && New_Option_Cible_Jury.length > 0 && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -6982,7 +6982,7 @@ const Jury = (props) => {
</div>}
{New_Option_Cible_Jury && New_Option_Cible_Jury.length > 0 && <div className="session_caract"> <b> Cible 2 </b> <br />
{New_Option_Cible_Jury && New_Option_Cible_Jury.length > 0 && <div className="session_caract"> <b> Cible </b> <br />
<Autocomplete
disablePortal
@ -8041,8 +8041,8 @@ const Jury = (props) => {
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
@ -8105,7 +8105,7 @@ const Jury = (props) => {
<div className="div_row session_data">
<div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -8185,7 +8185,7 @@ const Jury = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -8257,10 +8257,9 @@ const Jury = (props) => {
</div>
}
{
String(submenu) === "planning" && <div className="div_row ">
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Soutenances</nav>
<div style={{ "textAlign": "right", "float": "right", "width": "98%", "marginRight": "15px", paddingRight: '20px' }}>
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
@ -8269,34 +8268,39 @@ const Jury = (props) => {
{String(display_view) === "planning" && <div style={{ "width": "98%", "marginLeft": "5px" }}>
&nbsp;
<div className="session_data">
<div style={{ "border": "None" }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px" }}> Planning de soutenances </nav>
<FullCalendar
locales={allLocales}
locale={'fr'}
editable
selectable
contentHeight='auto'
//events={events}
events={mysy_events}
<FullCalendar
locales={allLocales}
locale={'fr'}
editable
selectable
contentHeight='auto'
//events={events}
events={mysy_events}
select={handleSelect_V2}
headerToolbar={{
start: "today prev next",
center: "title",
end: "dayGridMonth,timeGridWeek,timeGridDay",
}}
//eventContent={(info) => <EventItem info={info} />}
//plugins={[timeGridPlugin]}
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin,]}
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
slotMinTime={Partner_Debut_Journee}
slotMaxTime={Partner_Fin_Journee}
scrollTime='08:00'
displayEventEnd={true}
eventContent={renderEventContent}
eventClick={handleEventClick}
eventColor='#378006'
/>
select={handleSelect_V2}
headerToolbar={{
start: "today prev next",
center: "title",
end: "dayGridMonth,timeGridWeek,timeGridDay",
}}
//eventContent={(info) => <EventItem info={info} />}
//plugins={[timeGridPlugin]}
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin,]}
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
slotMinTime={Partner_Debut_Journee}
slotMaxTime={Partner_Fin_Journee}
scrollTime='08:00'
displayEventEnd={true}
eventContent={renderEventContent}
eventClick={handleEventClick}
eventColor='#378006'
/>
</div>
</div>
</div>}
{String(display_view) === "list" && <div style={{ "width": "98%", "marginLeft": "5px" }}>
@ -8305,7 +8309,7 @@ const Jury = (props) => {
<div className="div_row">
<div className="session_data">
<div style={{ "border": "None" }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px" }}> Soutenances </nav>
<div style={{ height: 550, width: '100%', paddingRight: '1px' }}>
&nbsp;
<Box
@ -8570,7 +8574,7 @@ const Jury = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button variant="outlined"
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button variant="outlined"
onClick={(event) => {
GetListeInscrit();
setGet_Jury_List_Apprenant_Seance_insc_result([]);

View File

@ -665,7 +665,7 @@ const Materiel_Salle = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -1621,7 +1621,7 @@ const Materiel_Salle = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -620,7 +620,7 @@ const Materiels = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert(res.data.message);
setdisplay_alert_mysy("1");
@ -1447,7 +1447,7 @@ const Materiels = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("L'image ne doit pas dépasser un 1 Méga octets");
// alert(res.data.message);
setdisplay_alert_mysy("1");

View File

@ -34,7 +34,7 @@ import timeGridPlugin from "@fullcalendar/timegrid";
import allLocales from '@fullcalendar/core/locales-all'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import ToggleSwitch from "./ToggleSwitch";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
@ -82,8 +82,6 @@ const Module_Absence = (props) => {
{ field: 'event_comment', headerName: 'Comment', flex: 1, hide: true, editable: false, },
]
@ -420,7 +418,10 @@ const Module_Absence = (props) => {
else {
setGetAttendee_api("false");
setGetAttendee_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -437,7 +438,11 @@ const Module_Absence = (props) => {
const handleSelect = (info) => {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
// alert(" Vous devez choisir un stagiaire");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un stagiaire");
setalert_type("error");
return;
}
@ -477,7 +482,11 @@ const Module_Absence = (props) => {
const handleSelect_list = (info) => {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un stagiaire");
setalert_type("error");
return;
}
@ -514,7 +523,9 @@ const Module_Absence = (props) => {
if (String(props.check_user_acces_right("stagiaire", "write")) === "1") {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un stagiaire");
setalert_type("error");
return;
}
@ -568,7 +579,11 @@ const Module_Absence = (props) => {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
// alert(" Vous devez choisir un stagiaire");
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un stagiaire");
setalert_type("error");
return;
}
@ -605,7 +620,7 @@ const Module_Absence = (props) => {
else
setp_detail_event_type("");
console.log(" (line.event_start =", line.event_start);
// console.log(" (line.event_start =", line.event_start);
@ -725,12 +740,18 @@ const Module_Absence = (props) => {
var local_related_collection = p_filtre1;
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez un stagiaire");
// alert(" Vous devez un stagiaire");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un stagiaire");
setalert_type("error");
return;
}
if (moment(endDate) <= moment(startDate)) {
alert(" Les dates de début et de fin sont incohérentes");
//alert(" Les dates de début et de fin sont incohérentes");
setdisplay_alert_mysy("1");
setalert_message(" Les dates de début et de fin sont incohérentes");
setalert_type("error");
return;
}
var new_title = p_detail_title;
@ -787,14 +808,20 @@ const Module_Absence = (props) => {
setp_detail_event_type();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
Close_Dialog_Detail_Event_open();
}
else {
setUpdate_One_Agenda_Event_api("false");
setUpdate_One_Agenda_Event_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -852,14 +879,20 @@ const Module_Absence = (props) => {
setp_detail_event_type();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
Close_Dialog_Detail_Event_open();
}
else {
setDelete_One_Agenda_Event_api("false");
setDelete_One_Agenda_Event_message(res.data.message);
alert(res.data.message);
//alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -891,6 +924,21 @@ const Module_Absence = (props) => {
}
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="module_agenda">
@ -898,6 +946,17 @@ const Module_Absence = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}

View File

@ -7,15 +7,15 @@ import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import CheckOut from "./CheckOut";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import 'react-tooltip/dist/react-tooltip.css'
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup'
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import Box from '@mui/material/Box';
import Dialog from '@mui/material/Dialog';
@ -23,7 +23,7 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import Autocomplete from '@mui/material/Autocomplete';
import { gridClasses } from '@mui/x-data-grid';
@ -174,6 +174,7 @@ const Module_Attestation_Formation = (props) => {
const New_Option_attestation_Masse = [
{ "id": "resend", "label": "(R)envoyer", "value": "resend" },
{ "id": "download", "label": "Télécharger", "value": "download" },
]
const [gridline_id, setgridline_id] = useState("");
@ -357,6 +358,60 @@ const Module_Attestation_Formation = (props) => {
}
function Download_Attestation_PDF() {
const stored_cookie = getCookie('tokenmysypart');
var nom_fichier_cmd = "Attesations.zip";
var tab_attestation_formation_id = []
for (var i = 0; i < selectionModel_attestation.length; i++) {
var myid = parseInt(String(selectionModel_attestation[i]));
var line = JSON.parse(Getall_Attestation_By_Session_result[myid]);
var line_id = JSON.parse(Getall_Attestation_By_Session_result[myid])._id;
tab_attestation_formation_id.push(line_id);
}
var url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Attestation_From_Session_By_PDF/" + stored_cookie + "/" + props.related_collection_recid + "/" + tab_attestation_formation_id;
//console.log(" ### tab_my_inscription_ids = ", tab_attestation_formation_id);
//console.log(" ### url = ", url);
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_session_id = ", selected_session_id, " --- selected_convention_id =", selected_convention_id);
setLoading(true);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
setLoading(false);
//console.log(" In Download_Stagiaire_Conventions_PDF res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible de télécharger les attestation, (2) ");
} else {
fileDownload(res.data, nom_fichier_cmd);
setselectionModel_attestation([]);
setactionmass_attesation_val("");
Getall_Attestation_By_Session();
}
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
setdisplay_alert_mysy("1");
setalert_message(" Impossible de télécharger les attestations");
setalert_type("error");
// alert(" Impossible de télécharger la convention ")
});
}
const [Send_Attestation_By_Email_For_Ids_api, setSend_Attestation_By_Email_For_Ids_api] = useState();
const [Send_Attestation_By_Email_For_Ids_message, setSend_Attestation_By_Email_For_Ids_message] = useState();
const [Send_Attestation_By_Email_For_Ids_result, setSend_Attestation_By_Email_For_Ids_result] = useState();
@ -443,6 +498,9 @@ const Module_Attestation_Formation = (props) => {
Send_Attestation_By_Email_For_Ids(tab_ids_inscription);
}
else if (String(actionmass_attesation_val) === String("download")) {
Download_Attestation_PDF();
}
}
@ -602,7 +660,7 @@ const Module_Attestation_Formation = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -656,14 +714,14 @@ const Module_Attestation_Formation = (props) => {
className="displaypartnersession"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > Type Document<br />
{/* <div className="session_caract_Dialog" > Type Document<br />
<Autocomplete
disablePortal
@ -690,9 +748,9 @@ const Module_Attestation_Formation = (props) => {
</div>
</div>*/}
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > Choisir une attestation de formation
{<div className="session_caract_Dialog" > <b> Choisir un modèle attestation </b>
<Autocomplete
disablePortal
name="event_dialog_version_convention"
@ -703,7 +761,6 @@ const Module_Attestation_Formation = (props) => {
onChange={(event, value) => {
if (value && value._id) {
setselected_convention_id(value._id);
if (String(value._id) === "default_mail") {
@ -926,7 +983,6 @@ const Module_Attestation_Formation = (props) => {
date_envoie: JSON.parse(item).date_envoie,
courrier_template_id: JSON.parse(item).courrier_template_id,
courrier_template_nom: JSON.parse(item).courrier_template_nom,
}
))}
@ -1014,7 +1070,8 @@ const Module_Attestation_Formation = (props) => {
options={New_Option_attestation_Masse}
onChange={(event, value) => {
if (value && value.value) {
if (String(value.value) === "reinit" || String(value.value) === "resend") {
if (String(value.value) === "reinit" || String(value.value) === "resend"
|| String(value.value) === "download") {
setactionmass_attesation_val(value.value);
@ -1055,9 +1112,12 @@ const Module_Attestation_Formation = (props) => {
<div className="gest_content">
{' '}
{String(actionmass_attesation_val) === "resend" &&
<font color="red"> Confirmer l'envoi de en masse de {selectionModel_attestation.length} attestation(s) de formation.
</font>}
{String(actionmass_attesation_val) === "download" &&
<font color="red"> Confirmer le téléchargement en masse de {selectionModel_attestation.length} attestation(s) de formation.
</font>}
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>

View File

@ -1,6 +1,5 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -8,75 +7,21 @@ import { getCookie, setCookie } 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 { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcSearch } from "react-icons/fc";
import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import 'moment/locale/fr';
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { RestoreFromTrashRounded } from "@mui/icons-material";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { confirmAlert } from 'react-confirm-alert';
import ToggleSwitch from "./ToggleSwitch";
import Module_Historique_Action from "./Module_Historique_Action";
import { HiDocumentCheck } from "react-icons/hi2";
import { BsSend } from "react-icons/bs";
import Autocomplete from '@mui/material/Autocomplete';
import { FcOpenedFolder } from "react-icons/fc";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Editique from "./Module_Editique";
import Module_Attestation_Formation from "./Module_Attestation_Formation";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcPlanner } from "react-icons/fc";
import { CiBoxList } from "react-icons/ci";
import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
import Radio from '@mui/material/Radio';
import RadioGroup from '@mui/material/RadioGroup';
import FormControlLabel from '@mui/material/FormControlLabel';
import FormControl from '@mui/material/FormControl';
import FormLabel from '@mui/material/FormLabel';
import allLocales from '@fullcalendar/core/locales-all'
import listPlugin from '@fullcalendar/list';
import multiMonthPlugin from '@fullcalendar/multimonth'
import { FcAcceptDatabase, } from "react-icons/fc";
import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
import CheckBoxIcon from '@mui/icons-material/CheckBox';
import Checkbox from '@mui/material/Checkbox';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
const Module_Selection_Apprenants = (props) => {
@ -292,7 +237,7 @@ const Module_Selection_Apprenants = (props) => {
}
}
const [Record_Membres_To_Groupe_Inscrit_api, setRecord_Membres_To_Groupe_Inscrit_api] = useState();
const [Record_Membres_To_Groupe_Inscrit_message, setRecord_Membres_To_Groupe_Inscrit_message] = useState();
const [Record_Membres_To_Groupe_Inscrit_result, setRecord_Membres_To_Groupe_Inscrit_result] = useState();
@ -306,7 +251,6 @@ const Module_Selection_Apprenants = (props) => {
form.append("tab_inscriptions_ids", list_inscription_id);
setLoading(true);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Groupe_Inscrit_Membres/";
@ -321,7 +265,10 @@ const Module_Selection_Apprenants = (props) => {
setselectionModel_participants([]);
setactionmass_preinsc_val("");
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
@ -333,7 +280,10 @@ const Module_Selection_Apprenants = (props) => {
setLoading(false);
setRecord_Membres_To_Groupe_Inscrit_api("false");
setRecord_Membres_To_Groupe_Inscrit_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
@ -341,7 +291,11 @@ const Module_Selection_Apprenants = (props) => {
setLoading(false);
console.warn('Record_Membres_To_Groupe_Inscrit : Not good man :( mysearchtext = ' + error);
setRecord_Membres_To_Groupe_Inscrit_api("false");
alert(" Impossible d'inscrire les apprenants au groupe ");
// alert(" Impossible d'inscrire les apprenants au groupe ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'inscrire les apprenants au groupe ");
setalert_type("error");
})
}
@ -426,7 +380,10 @@ const Module_Selection_Apprenants = (props) => {
else {
setGet_List_UE_From_Class_Id_api("false");
setGet_List_UE_From_Class_Id_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -434,7 +391,11 @@ const Module_Selection_Apprenants = (props) => {
setLoading(false);
console.warn('Not good man :( Get_List_UE_From_Class_Id = ', error);
setGet_List_UE_From_Class_Id_api("false");
alert(" Impossible de recuperer la liste des UE de la formation");
//alert(" Impossible de recuperer la liste des UE de la formation");
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des UE de la formation");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -522,7 +483,10 @@ const Module_Selection_Apprenants = (props) => {
else {
setGetall_Class_List_Evalution_api("false");
setGetall_Class_List_Evalution_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -530,7 +494,11 @@ const Module_Selection_Apprenants = (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");
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des évaluations de la formation");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -658,7 +626,20 @@ const Module_Selection_Apprenants = (props) => {
const [ueChanged, setueChanged] = useState("");
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="moduleselectionevaluationapprenants">
@ -666,6 +647,20 @@ const Module_Selection_Apprenants = (props) => {
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "10px", "paddingLeft": "5px" }}> Selection des Apprenants & Groupe d'apprenants </nav>

View File

@ -826,7 +826,7 @@ const Module_Session_Planification = (props) => {
setselected_sequence_id("");
setupdate_sequence();
setAdd_One_Sequence_Session_mass();
setAdd_One_Sequence_Session_mass("");
settab_selected_sequence_id([]);
setselectionModel_sequence([]);
setGetall_Sequence_Of_Session_result_planning_view([]);
@ -955,7 +955,7 @@ const Module_Session_Planification = (props) => {
const [Add_One_Sequence_Session_mass, setAdd_One_Sequence_Session_mass] = useState();
const [Add_One_Sequence_Session_mass, setAdd_One_Sequence_Session_mass] = useState("");
const [Add_One_Sequence_Session_Ressource_api, setAdd_One_Sequence_Session_Ressource_api] = useState();
const [Add_One_Sequence_Session_Ressource_message, setAdd_One_Sequence_Session_Ressource_message] = useState();
@ -1000,7 +1000,7 @@ const Module_Session_Planification = (props) => {
setDialog_seq_ressource_1_selected_type_ressource("");
setDialog_seq_ressource_1_selected_ressource_id("");
setDialog_seq_ressource_1_selected_ressource_poste("");
setAdd_One_Sequence_Session_mass();
setAdd_One_Sequence_Session_mass("");
settab_selected_sequence_id([]);
setselectionModel_sequence([]);
// alert(res.data.message);
@ -1462,7 +1462,7 @@ const Module_Session_Planification = (props) => {
setDialog_seq_ressource_1_selected_ressource_id("");
setDialog_seq_ressource_1_selected_ressource_poste("");
setAdd_One_Sequence_Session_mass();
setAdd_One_Sequence_Session_mass("");
settab_selected_sequence_id([]);
setselectionModel_sequence([]);
@ -4565,6 +4565,7 @@ const Module_Session_Planification = (props) => {
onChange={(event, value) => {
setDialog_seq_ressource_1_selected_ressource_id("");
setGet_Ressource_Avabilities_avability_check("-1");
if (value && value.value) {
setDialog_seq_ressource_1_selected_type_ressource(value.value);
setsequence_startDate(moment(selected_sequence_startDate).format("DD/MM/YYYY HH:mm"));
@ -4601,7 +4602,13 @@ const Module_Session_Planification = (props) => {
if (value && value._id) {
setDialog_seq_ressource_1_selected_ressource_id(value._id);
Get_Ressource_Avabilities_from_list(value._id);
// On ne fait le controle de disponibilité que si une seule ligne est selectionnée, si non pas de controle de disponibilite
if (selectionModel_sequence && selectionModel_sequence.length <= 1) {
Get_Ressource_Avabilities_from_list(value._id);
} else {
setGet_Ressource_Avabilities_avability_check("-1");
}
} else {
setGet_Ressource_Avabilities_avability_check("");
@ -4613,6 +4620,7 @@ const Module_Session_Planification = (props) => {
}
/>
{Get_Ressource_Avabilities_avability_check && String(Get_Ressource_Avabilities_avability_check) === "0" &&
<div className="session_caract_Dialog koUpdateData">
<Tooltip className="tooltip_css" id="ressource_indispo_01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="ressource_indispo_01" data-tooltip-html="Cette ressource n'est pas disponible sur ce créneau. Verifiez son agenda">
@ -4625,7 +4633,6 @@ const Module_Session_Planification = (props) => {
<div className="session_caract_Dialog okUpdateData" >
<Tooltip className="tooltip_css" id="ressource_indispo_02" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="ressource_indispo_02" data-tooltip-html="Disponible de la ressource est ok">
<FcApproval /> Disponible
</a>
</div>
@ -4636,7 +4643,7 @@ const Module_Session_Planification = (props) => {
}
{String(Dialog_seq_ressource_1_selected_type_ressource) === "ressource_materielle" && <div className="session_caract_Dialog" > Ressource Materielle
{String(Dialog_seq_ressource_1_selected_type_ressource) === "ressource_materielle" && <div className="session_caract_Dialog" > Ressource Materielle b
<Autocomplete
disablePortal
@ -4649,8 +4656,12 @@ const Module_Session_Planification = (props) => {
if (value && value._id) {
setDialog_seq_ressource_1_selected_ressource_id(value._id);
// On ne fait le controle de disponibilité que si on une sequence precise. pas quand c'est en masse.
Get_Ressource_Avabilities_from_list(value._id);
if (selectionModel_sequence && selectionModel_sequence.length <= 1) {
Get_Ressource_Avabilities_from_list(value._id);
} else {
setGet_Ressource_Avabilities_avability_check("-1");
}
} else {
setGet_Ressource_Avabilities_avability_check("");
@ -4675,7 +4686,6 @@ const Module_Session_Planification = (props) => {
<div className="session_caract_Dialog okUpdateData" >
<Tooltip className="tooltip_css" id="ressource_indispo_02" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="ressource_indispo_02" data-tooltip-html="Disponible de la ressource est ok">
<FcApproval /> Disponible
</a>
</div>
@ -6299,6 +6309,7 @@ const Module_Session_Planification = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
setselectionModel_sequence([]);
setsequence_gridline_id(newSelectionModel.row.id);
setselected_detail_sequence_title(newSelectionModel.row.sequence_title);
setselected_sequence_startDate(newSelectionModel.row.sequence_start);
@ -6398,6 +6409,7 @@ const Module_Session_Planification = (props) => {
</select> &nbsp;
{actionmass_sequence_val && String(actionmass_sequence_val).length > 1 &&
String(actionmass_sequence_val) === "supprimer" &&
<Popup
trigger={<Button className="bton_traiter_en_mass" >
<FcAcceptDatabase /> Traiter
@ -6414,11 +6426,7 @@ const Module_Session_Planification = (props) => {
&times;
</button>
<div className="gest_header"> MySy Information </div>
{String(actionmass_sequence_val) === "ajout_ressource" && <div className="gest_content">
{' '}
Confirmer l'action <b> d'ajout de ressource </b> en masse.
</div>}
{String(actionmass_sequence_val) === "supprimer" && <div className="gest_content">
{' '}
@ -6451,6 +6459,28 @@ const Module_Session_Planification = (props) => {
)}
</Popup>
}
{actionmass_sequence_val && String(actionmass_sequence_val).length > 1 &&
String(actionmass_sequence_val) === "ajout_ressource" && <Button className="bton_traiter_en_mass" onClick={(e) => {
setAdd_One_Sequence_Session_mass("1");
var tab_seq_mongo_ids = [];
for (var i = 0; i < selectionModel_sequence.length; i++) {
var line_id = selectionModel_sequence[i];
var mongo_id = JSON.parse(Getall_Sequence_Of_Session_result[line_id])._id;
tab_seq_mongo_ids.push(mongo_id);
}
settab_selected_sequence_id(tab_seq_mongo_ids);
setDialog_seq_ressource_1_open(true);
}}>
<FcAcceptDatabase /> Traiter
</Button>
}
<br />

View File

@ -1,25 +1,18 @@
import React, { useRef, useState, useEffect } from "react";
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import 'reactjs-popup/dist/index.css';
import "react-datepicker/dist/react-datepicker.css";
import Button from '@mui/material/Button';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import fileDownload from 'js-file-download'
import Dashbord_Session_Par_Fteur from "./Dashbord_Session_Par_Fteur";
import Dashbord_Session_Taux_Remplissage from "./Dashbord_Session_Taux_Remplissage";
import Dashbord_Session_Repartition_Fteur from "./Dashbord_Session_Repartition_Fteur";
@ -34,25 +27,22 @@ import Dashbord_Factures_Previsionnel_Par_Periode from "./Dashbord_Factures_Prev
import Box from '@mui/material/Box';
import { TbColumns2, TbColumns1 } from "react-icons/tb";
import { BarChart } from '@mui/x-charts';
import { axisClasses } from '@mui/x-charts';
import { pieArcLabelClasses } from '@mui/x-charts/PieChart';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { MdDeleteForever } from "react-icons/md";
import { RiFileExcel2Line } from "react-icons/ri";
import Autocomplete from '@mui/material/Autocomplete';
import TextField from '@mui/material/TextField';
import { format } from 'date-fns'
import moment from "moment";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { ResponsiveBar } from "@nivo/bar";
import {
useTheme,
} from "@mui/material";
import { tokens } from "../theme";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import { FcPrint } from "react-icons/fc";
@ -467,7 +457,7 @@ const Mon_Tableau_De_Bord = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_Qry_Formation_Session res.data.status = " + res.data.status);
// console.log(" In Getall_Qry_Formation_Session res.data.message r_class = " + res.data.message);
// console.log(" In Getall_Qry_Formation_Session res.data.message r_class = " + res.data.message);
setGetall_Qry_Formation_Session_result_JSON(JSON.parse('[' + res.data.message + ']'));
@ -1145,7 +1135,7 @@ const Mon_Tableau_De_Bord = (props) => {
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
console.log(" #### url = ", url)
// console.log(" #### url = ", url)
setLoading(true);
axios.get(url, { responseType: 'blob', },)
@ -1169,6 +1159,184 @@ const Mon_Tableau_De_Bord = (props) => {
const [Get_Qualiopi_Indic_Apprenant_Formation_api, setGet_Qualiopi_Indic_Apprenant_Formation_api] = useState();
const [Get_Qualiopi_Indic_Apprenant_Formation_message, setGet_Qualiopi_Indic_Apprenant_Formation_message] = useState();
const [Get_Qualiopi_Indic_Apprenant_Formation_result, setGet_Qualiopi_Indic_Apprenant_Formation_result] = useState([]);
function Get_Qualiopi_Indic_Apprenant_Formation(local_from_beginning) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("session_start_date", date_from);
form.append("session_end_date", date_to);
form.append("tab_formation_ids", "");
form.append("from_beginning", local_from_beginning);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_Taux_Success_For_List_Class/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Qualiopi_Indic_Apprenant_Formation res.data.status = " + res.data.status);
// console.log(" In Get_Qualiopi_Indic_Apprenant_Formation res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
// console.log(" ### json_data = ", json_data);
var jsonObj0 = json_data.data
if (json_data.total_nb_inscrit) {
setqualiopi_indic_nb_apprenant(json_data.total_nb_inscrit)
} else {
setqualiopi_indic_nb_apprenant("");
}
if (json_data.taux_success) {
setqualiopi_indic_taux_sucess(json_data.taux_success)
} else {
setqualiopi_indic_taux_sucess("");
}
//console.log(" ### jsonObj0 = ", jsonObj0);
setGet_Qualiopi_Indic_Apprenant_Formation_api("true");
setGet_Qualiopi_Indic_Apprenant_Formation_result(res.data.message);
}
else {
setGet_Qualiopi_Indic_Apprenant_Formation_api("false");
setGet_Qualiopi_Indic_Apprenant_Formation_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('Not good man :( Get_Qualiopi_Indic_Apprenant_Formation = ', error);
setGet_Qualiopi_Indic_Apprenant_Formation_api("false");
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
const [Get_Qualiopi_Indic_Nb_Heure_api, setGet_Qualiopi_Indic_Nb_Heure_api] = useState();
const [Get_Qualiopi_Indic_Nb_Heure_message, setGet_Qualiopi_Indic_Nb_Heure_message] = useState();
const [Get_Qualiopi_Indic_Nb_Heure_result, setGet_Qualiopi_Indic_Nb_Heure_result] = useState([]);
function Get_Qualiopi_Indic_Nb_Heure(local_from_beginning) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("session_start_date", date_from);
form.append("session_end_date", date_to);
form.append("tab_formation_ids", "");
form.append("from_beginning", local_from_beginning);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_Session_For_List_Class/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Qualiopi_Indic_Nb_Heure res.data.status = " + res.data.status);
// console.log(" In Get_Qualiopi_Indic_Nb_Heure res.data.message r_class = " + res.data.message);
var json_data = JSON.parse(res.data.message[0]);
// console.log(" ### json_data = ", json_data);
var jsonObj0 = json_data.data
if (json_data.total_nb_heure) {
setqualiopi_indic_nb_heure(json_data.total_nb_heure)
} else {
setqualiopi_indic_nb_heure("")
}
//console.log(" ### jsonObj0 = ", jsonObj0);
setGet_Qualiopi_Indic_Nb_Heure_api("true");
setGet_Qualiopi_Indic_Nb_Heure_result(res.data.message);
}
else {
setGet_Qualiopi_Indic_Nb_Heure_api("false");
setGet_Qualiopi_Indic_Nb_Heure_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('Not good man :( Get_Qualiopi_Indic_Nb_Heure = ', error);
setGet_Qualiopi_Indic_Nb_Heure_api("false");
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
const [qualiopi_indic_nb_apprenant, setqualiopi_indic_nb_apprenant] = React.useState("");
const [qualiopi_indic_nb_heure, setqualiopi_indic_nb_heure] = React.useState("");
const [qualiopi_indic_taux_sucess, setqualiopi_indic_taux_sucess] = React.useState("");
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
/****** FIN GESTION BPF */
return (
@ -1177,6 +1345,17 @@ const Mon_Tableau_De_Bord = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
<div className="div_row">
{/* <Button variant="outlined" onClick={submenu_montbd} className="detail_class_submenu" id='montbd' name='montbd' >Mon tableau de bord </Button> */}
@ -1272,6 +1451,8 @@ const Mon_Tableau_De_Bord = (props) => {
// Recuperation des rapports d'activités
if (String(submenu) === "rapport_activite") {
Get_Qualiopi_Indic_Apprenant_Formation();
Get_Qualiopi_Indic_Nb_Heure();
Getall_Qry_Inscription_Data("");
Getall_Qry_Formation_Session("");
// Getall_Qry_Session_Data();
@ -1307,7 +1488,7 @@ const Mon_Tableau_De_Bord = (props) => {
<hr className="hr_break" />
{String(submenu) === String("rapport_financier") && <div style={{ "border": "None" }}>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Financiers </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Rapports Financiers </h3>
<Box >
<div className="session_data" >
@ -1497,7 +1678,7 @@ const Mon_Tableau_De_Bord = (props) => {
{String(submenu) === String("rapport_rh") && <div style={{ "border": "None" }}>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Ressources Humaines </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Rapports Ressources Humaines </h3>
<Box >
<div className="session_data" >
<div style={{ "border": "None" }}>
@ -1842,10 +2023,43 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("rapport_activite") && <div style={{ "border": "None" }}>
<h3 style={{ fontFamily:'DM Sans' }}> Rapport d'activité </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Rapport d'activité </h3>
<Box >
<div className="session_data" >
<div>
<div className="titre1"> Incateurs Qualiopi </div>
<div style={{ minHeight: '10rem', padding:'10px' }}>
<nav style={{ "border": "None", "fontSize": "16px", "fontWeight": "700", fontFamily: "DM Sans" }}> Les indicateurs qualiopi</nav>
<div style={{ width: '100%', float: 'left' }}>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="session_caract" style={{ fontSize: '26px' }}>
Nombre d'apprenants<br />
{qualiopi_indic_nb_apprenant}
</div>
<div className="session_caract" style={{ fontSize: '26px' }}>
Nombre d'heures dispensé<br />
{qualiopi_indic_nb_heure}
</div>
<div className="session_caract" style={{ fontSize: '26px' }}>
Taux de réussite<br />
{qualiopi_indic_taux_sucess}%
</div>
</div>
</div>
</div>
</div>
{Getall_Qry_Inscription_Data_result_JSON && Getall_Qry_Inscription_Data_result_JSON.length > 0 &&
Getall_Qry_Inscription_Data_result_JSON[0].data &&
<div>
@ -1872,7 +2086,7 @@ const Mon_Tableau_De_Bord = (props) => {
return `${month.slice(0, 4)}`
}
else if (String(month).length >= 4 && String(month).length <= 8) {
else if (String(month).length >= 4 && String(month).length <= 8) {
return `${month.slice(0, 4)}` + " \n" + `${month.slice(4, String(month).length)}`
}
@ -2015,7 +2229,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("bpf") && <div style={{ "border": "None" }}>
<h3 style={{ fontFamily:'DM Sans' }}> Bilan Pédagogique et Financier (BPF) </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Bilan Pédagogique et Financier (BPF) </h3>
<div className="titre1"> C. Bilan financier hors taxes : Origine des produits de l'organisme </div>
<div className="div_row">
@ -2456,18 +2670,18 @@ const Mon_Tableau_De_Bord = (props) => {
}}
>
Imprimer &nbsp; <FcPrint/> &nbsp;
Imprimer &nbsp; <FcPrint /> &nbsp;
</Button>
</div>
</div>}
{String(submenu) === String("montbd") && <div style={{ "border": "None" }}>
<h3 style={{ fontFamily:'DM Sans' }}> Mon tableau de bord </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Mon tableau de bord </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;

View File

@ -487,7 +487,7 @@ const New_Article_2025 = (props) => {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -1,6 +1,5 @@
import React, { useState, useEffect } from "react";
import axios from "axios";
import profileimg from "../mysy_img/MYSY-profil-2.png";
import TrainingForm from "./AddClassManual"
import PartnerTranings from "./DisplayPartnerTrainingsPagination";
@ -15,44 +14,37 @@ import { Helmet } from "react-helmet";
import RocketIcon from '@mui/icons-material/Rocket';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { GiTeacher } from "react-icons/gi";
import Footer from "./Fotter";
import { confirmAlert } from 'react-confirm-alert'; // Import
import { useCookies } from "react-cookie";
import Header from "./Header";
import Facture from "./Facture";
import Abonnement from "./Abonnement";
import { useLocation } from "react-router-dom";
import { useParams } from 'react-router-dom';
import CheckOut from "./CheckOut";
import { FaHandPointRight } from "react-icons/fa";
import OrderConfirmation from "./OrderConfirmation";
import Partner_Client from "./Partner_Client";
import Pricing from "./Pricing";
import { MdAddShoppingCart } from "react-icons/md";
import {
FcHome, FcBullish, FcAddDatabase, FcFolder,
FcHome, FcBullish,
FcList, FcCurrencyExchange,
FcFeedback, FcKey, FcVideoCall, FcSettings,
FcBusinesswoman, FcServices, FcCollect, FcCandleSticks, FcKindle,
FcFlowChart, FcReading, FcFinePrint, FcCancel, FcCalendar, FcOrgUnit,
FcFeedback, FcKey, FcVideoCall,
FcBusinesswoman, FcServices, FcCollect, FcKindle,
FcFlowChart, FcReading, FcFinePrint, FcCalendar, FcOrgUnit,
FcEngineering
} from "react-icons/fc";
import CircleNotificationsIcon from '@mui/icons-material/CircleNotifications';
import { FcInspection } from "react-icons/fc";
import { PiStudent } from "react-icons/pi";
import { BiPurchaseTag } from "react-icons/bi";
import { BsTools } from "react-icons/bs";
import DisplayPartnerPromotion from "./DisplayPartnerPromotion";
import DisplayPartnerSession from "./DisplayPartnerSession";
import DisplayPartnerStagiaires from "./DisplayPartnerStagiaires";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import Employes from "./Employes";
import Autre_RH from "./Autre_RH";
import Materiels from "./Materiels";
import Partner_Commande from "./Partner_Commande";
import Config_Documents from "./Config_Document";
@ -70,47 +62,33 @@ import Dashbord_Factures from "./Dashbord_Factures";
import Materiel_Salle from "./Materiel_Salle";
import CRM_Opportunite from "./Crm_Opportunite";
import Partner_Config_Formulaires from "./Partner_Config_Formulaires";
import { AiOutlineUserAdd } from "react-icons/ai";
import PartnerClientActivite from "./PartnerClient_Activite";
import Jury from "./Jurys";
import Conseil_Classe from "./Conseil_Classe";
import Mon_Tableau_De_Bord from "./Mon_Tableau_De_Bord";
import Dashbord_Formation from "./Dashbord_Formation";
import Partner_Prix_Achat from "./Partner_Prix_Achat";
import Apprenant from "./Apprenant";
import { PiSlideshowFill, PiSlideshowThin } from "react-icons/pi";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { ImWarning } from "react-icons/im";
//import { FcHome} from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Dropdown from 'rsuite/Dropdown';
//import 'rsuite/dist/rsuite.min.css';
import { AiOutlineDashboard } from "react-icons/ai";
import { FcPodiumWithAudience } from "react-icons/fc";
import BusinessIcon from '@mui/icons-material/Business';
import ListAltIcon from '@mui/icons-material/ListAlt';
import SchoolIcon from '@mui/icons-material/School';
import { Sidebar, Menu, MenuItem, SubMenu } from 'react-pro-sidebar';
import { FcBusinessContact } from "react-icons/fc";
import { FcCamcorderPro } from "react-icons/fc";
import { FcVideoProjector } from "react-icons/fc";
import HandymanIcon from '@mui/icons-material/Handyman';
import HubIcon from '@mui/icons-material/Hub';
import EuroSharpIcon from '@mui/icons-material/EuroSharp';
import CameraOutdoorSharpIcon from '@mui/icons-material/CameraOutdoorSharp';
import SettingsIcon from '@mui/icons-material/Settings';
import DashboardCustomizeIcon from '@mui/icons-material/DashboardCustomize';
import { createTheme, ThemeProvider } from '@mui/material/styles';
import AccountBalanceIcon from '@mui/icons-material/AccountBalance';
import CalendarMonthIcon from '@mui/icons-material/CalendarMonth';
@ -129,16 +107,14 @@ import { LiaProductHunt } from "react-icons/lia";
import Partner_Product_Service from "./Partner_Product_Service";
import Module_Email_Management from "./Module_Email_Management";
import ForwardToInboxIcon from '@mui/icons-material/ForwardToInbox';
import Badge from '@mui/material/Badge';
import { styled } from '@mui/material/styles';
import Modules_Mes_Documents from "./Modules_Mes_Documents";
import FolderZipIcon from '@mui/icons-material/FolderZip';
import ReduceCapacityIcon from '@mui/icons-material/ReduceCapacity';
import { FcPodiumWithAudience } from "react-icons/fc";
import { FcConferenceCall } from "react-icons/fc";
const Partner = (props) => {
@ -157,7 +133,7 @@ const Partner = (props) => {
const [selectedfilt3, setselectedfilt3] = useState("");
const [excelimportmessage, setexcelimportmessage] = useState("");
const [apiexcelimportmessage, setapiexcelimportmessage] = useState("");
const [gotocheckout, setgotocheckout] = useState("");
const [cookie_menu_gauche_reduit, setcookie_menu_gauche_reduit, removecookie_menu_gauche_reduit] = useCookies(['mysy_menu_gauche_reduit']);
@ -304,7 +280,7 @@ const Partner = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -486,7 +462,7 @@ const Partner = (props) => {
"dashbord_inscriptions", "mes_salles", "mes_opportunites", "config_formulaires", "dashbord_factures", "mes_ue",
"domaine_categorie_metier", "config_formation_initiale", "note_evaluation", "groupe_apprenant",
"part_produit_service", "config_document_super_admin", "tous_mes_document", "equipe_team",
"jurys", "mes_promotions"]
"jurys", "mes_promotions", "autre_rh", "conseil_classe"]
if (action && list_menu.includes(action)) {
@ -522,7 +498,7 @@ const Partner = (props) => {
const list_menu_header_names = ['my_account', 'my_class', 'my_session', 'my_apprenant', 'my_ressource', 'my_planning',
'my_partners', 'my_invoices', 'my_prix_achat', 'my_e_learning', 'my_configuration', 'my_tbd', 'my_ue', 'domaine_categorie_metier',
'config_formation_initiale', 'note_evaluation', 'groupe_apprenant', 'part_produit_service', 'monactivite', 'mon_tableau_de_bord',
'tous_mes_document', 'equipe_team']
'tous_mes_document', 'equipe_team', 'conseil_class', 'autre_rh', 'jury', 'conseil_classe']
for (let i = 0; i < list_menu_header_names.length; i++) {
if (document.getElementsByName(String(list_menu_header_names[i])) && document.getElementsByName(String(list_menu_header_names[i]))[0]) {
document.getElementsByName(String(list_menu_header_names[i]))[0].style.fontWeight = "400";
@ -539,7 +515,7 @@ const Partner = (props) => {
const list_menu_header_names = ['my_account', 'my_class', 'my_session', 'my_apprenant', 'my_ressource', 'my_planning',
'my_partners', 'my_invoices', 'my_prix_achat', 'my_e_learning', 'my_configuration', 'my_tbd', 'my_ue', 'domaine_categorie_metier',
'config_formation_initiale', 'note_evaluation', 'groupe_apprenant', 'part_produit_service', 'monactivite', 'mon_tableau_de_bord',
'tous_mes_document', 'equipe_team']
'tous_mes_document', 'equipe_team', 'conseil_class', 'autre_rh', 'jury', 'conseil_classe']
for (let i = 0; i < list_menu_header_names.length; i++) {
if (document.getElementsByName(String(list_menu_header_names[i])) && document.getElementsByName(String(list_menu_header_names[i]))[0]) {
document.getElementsByName(String(list_menu_header_names[i]))[0].style.fontWeight = "400";
@ -897,7 +873,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_ue");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -914,7 +890,7 @@ const Partner = (props) => {
inactive_active_menu_header("domaine_categorie_metier");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -931,7 +907,7 @@ const Partner = (props) => {
inactive_active_menu_header("part_produit_service");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -948,7 +924,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_session");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -964,7 +940,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_promotion");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -981,7 +957,7 @@ const Partner = (props) => {
inactive_active_menu_header("note_evaluation");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
@ -997,10 +973,46 @@ const Partner = (props) => {
inactive_active_menu_header("jurys");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
function Display_conseil_classe_func(event) {
var security_retval = check_user_acces_right("jury", "read");
if (security_retval === 1) {
setmenu("conseil_classe");
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/conseil_classe");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("conseil_classe");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
function Display_conseil_class_func(event) {
var security_retval = check_user_acces_right("jury", "read");
if (security_retval === 1) {
setmenu("conseil_class");
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/conseil_class");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("conseil_class");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à cette fonctionnalité");
}
}
function DiplayStagiaireList(event) {
var security_retval = check_user_acces_right("stagiaire", "read");
if (security_retval === 1) {
@ -1065,7 +1077,22 @@ const Partner = (props) => {
setformation_file_name();
history.push("/Partner/mes_employes");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_ressource");
inactive_active_menu_header("mes_employes");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des employés");
}
}
function Display_Autre_RH_List(event) {
var security_retval = check_user_acces_right("employe", "read");
if (security_retval === 1) {
setmenu("autre_rh");
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/autre_rh");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("autre_rh");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des employés");
}
@ -1301,7 +1328,7 @@ const Partner = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 100000) {
if (file_size > 10000000) {
alert("L'image doit faire moins de 1 mega Kilo Octets");
return;
}
@ -2002,18 +2029,11 @@ const Partner = (props) => {
{String(formation_initiale) === "1" &&
<div>
<Sidebar className="my_sidebar">
{String(menu) !== "note_evaluation" && <Menu className="my_menu bck_menu_seul" id="note_evaluation" name="note_evaluation" onClick={Display_note_evaluation_func} > &nbsp;<ScoreboardIcon className="icone_menu" color={"secondary"} /> &nbsp;NOTES & EVALUATIONS </Menu>}
{String(menu) === "note_evaluation" && <Menu className="my_menu bck_menu_seul_selected" id="note_evaluation" name="note_evaluation" onClick={Display_note_evaluation_func} > &nbsp;<ScoreboardIcon className="icone_menu" color={"secondary"} /> &nbsp;NOTES & EVALUATIONS </Menu>}
{String(menu) !== "note_evaluation" && <Menu className="my_menu bck_menu_seul" id="note_evaluation" name="note_evaluation" onClick={Display_note_evaluation_func} > &nbsp;<ScoreboardIcon className="icone_menu" color={"secondary"} /> &nbsp;NOTES & EVAL. </Menu>}
{String(menu) === "note_evaluation" && <Menu className="my_menu bck_menu_seul_selected" id="note_evaluation" name="note_evaluation" onClick={Display_note_evaluation_func} > &nbsp;<ScoreboardIcon className="icone_menu" color={"secondary"} /> &nbsp;NOTES & EVAL. </Menu>}
</Sidebar>
</div>}
{String(formation_initiale) === "1" &&
<div>
<Sidebar className="my_sidebar">
{String(menu) !== "jurys" && <Menu className="my_menu bck_menu_seul" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<RocketIcon className="icone_menu" color={"secondary"} /> &nbsp;JURYS </Menu>}
{String(menu) === "jurys" && <Menu className="my_menu bck_menu_seul_selected" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<RocketIcon className="icone_menu" color={"secondary"} /> &nbsp;JURYS </Menu>}
</Sidebar>
</div>}
<div>
@ -2044,6 +2064,11 @@ const Partner = (props) => {
{String(menu) !== "mes_employes" && <MenuItem onClick={DisplayeEmployeList} className="sousmenu" icon={<FcBusinessContact className="icone_menu" />}> EMPLOYES </MenuItem>}
{String(menu) === "mes_employes" && <MenuItem onClick={DisplayeEmployeList} className="sousmenu_selected" icon={<FcBusinessContact className="icone_menu" />}> EMPLOYES </MenuItem>}
{String(formation_initiale) === "1" && String(menu) !== "autre_rh" && <MenuItem onClick={Display_Autre_RH_List} className="sousmenu" icon={<FcBusinessContact className="icone_menu" />}> AUTRE RH </MenuItem>}
{String(formation_initiale) === "1" && String(menu) === "autre_rh" && <MenuItem onClick={Display_Autre_RH_List} className="sousmenu_selected" icon={<FcBusinessContact className="icone_menu" />}> AUTRE RH </MenuItem>}
{String(menu) !== "mes_salles" && <MenuItem onClick={Display_mes_salles_func} className="sousmenu" icon={<FcReading className="icone_menu" />}> SALLES </MenuItem>}
{String(menu) === "mes_salles" && <MenuItem onClick={Display_mes_salles_func} className="sousmenu_selected" icon={<FcReading className="icone_menu" />}> SALLES </MenuItem>}
@ -2133,6 +2158,39 @@ const Partner = (props) => {
</div>
<div class="separator"></div>
{String(formation_initiale) === "1" &&
<div>
<Sidebar className="my_sidebar">
{String(menu) !== "jurys" && <Menu className="my_menu bck_menu_seul" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<RocketIcon className="icone_menu" style={{ color: '#6a329f' }} /> &nbsp;JURYS </Menu>}
{String(menu) === "jurys" && <Menu className="my_menu bck_menu_seul_selected" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<RocketIcon className="icone_menu" style={{ color: '#6a329f' }} /> &nbsp;JURYS </Menu>}
</Sidebar>
</div>}
{String(formation_initiale) === "1" && <div>
<Sidebar className="my_sidebar">
<Menu className="my_menu">
<SubMenu label="Instances" className="my_chart" id="my_instances" name="my_instances" icon={<ReduceCapacityIcon style={{ color: '#6a329f' }} />} style={{ overflow: 'hidden' }}>
{String(menu) !== "jurys" && <MenuItem className="sousmenu" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<FcPodiumWithAudience className="icone_menu" /> &nbsp;JURYS </MenuItem>}
{String(menu) === "jurys" && <MenuItem className="sousmenu_selected" id="jurys" name="jurys" onClick={Display_jurys_func} > &nbsp;<FcPodiumWithAudience className="icone_menu" /> &nbsp;JURYS </MenuItem>}
{String(menu) !== "conseil_class" && <MenuItem className="sousmenu" id="conseil_class" name="conseil_class" onClick={Display_conseil_classe_func} > &nbsp;<FcConferenceCall className="icone_menu" /> &nbsp;CONSEILS </MenuItem>}
{String(menu) === "conseil_class" && <MenuItem className="sousmenu_selected" id="conseil_class" name="conseil_class" onClick={Display_conseil_classe_func} > &nbsp;<FcConferenceCall className="icone_menu" /> &nbsp;CONSEILS </MenuItem>}
</SubMenu>
</Menu>
</Sidebar>
</div>}
<div class="separator"></div>
@ -2141,7 +2199,7 @@ const Partner = (props) => {
<Sidebar className="my_sidebar">
<Menu className="my_menu">
<SubMenu label="Espace E-Learning" className="my_chart" id="my_e_learning" name="my_e_learning" icon={<CameraOutdoorSharpIcon color={"quatro"} />} style={{ overflow: 'hidden' }}>
{String(has_partner_lms_url) === "1" && <MenuItem onClick={(e) => {
if (String(check_user_acces_right("lms", "write")) === "1") {
e.preventDefault();
@ -2166,7 +2224,7 @@ const Partner = (props) => {
</div>
<div class="separator"></div>
{/* <div class="separator"></div>
<div>
<Sidebar className="my_sidebar">
<Menu className="my_menu">
@ -2192,7 +2250,7 @@ const Partner = (props) => {
</Menu>
</Sidebar>
</div>
</div>*/}
<div class="separator"></div>
<div>
@ -2371,6 +2429,18 @@ const Partner = (props) => {
</div>
}
{String(menu) === "conseil_classe" &&
<div className="div_droite">
<Conseil_Classe ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right}
/>
</div>
}
{String(menu) === "groupe_apprenant" &&
<div className="div_droite">
@ -2574,6 +2644,13 @@ const Partner = (props) => {
</div>
}
{String(menu) === "autre_rh" &&
<div className="div_droite">
<Autre_RH conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("employe", "read")} write_access={check_user_acces_right("employe", "write")}
check_user_acces_right={check_user_acces_right} type='autre_rh' />
</div>
}
{String(menu) === "factures_client" &&
<div className="div_droite">
<Factures_Client conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("facture_client", "read")}
@ -2746,10 +2823,10 @@ const Partner = (props) => {
{String(menu) === "module_agenda" && <div className="div_droite">
<Module_Agenda conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("module_agenda", "read")}
write_access={check_user_acces_right("module_agenda", "write")}
check_user_acces_right={check_user_acces_right} />
<Module_Agenda conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("module_agenda", "read")}
write_access={check_user_acces_right("module_agenda", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -2808,7 +2885,7 @@ const Partner = (props) => {
{/* div_gauche div_gauche_reduit */}
{
left_menu === false && <div className="sub_dib_mobile" >
<div className="div_gauche div_gauche_reduit" id="div_gauche" style={{borderRadius:'0px', margin:'0px'}}>
<div className="div_gauche div_gauche_reduit" id="div_gauche" style={{ borderRadius: '0px', margin: '0px' }}>
<nav className="not_display_mobile">
{left_menu === true && <div style={{ "cursor": "pointer", textAlign: "left" }} onClick={open_close_left_menu}>
@ -2936,14 +3013,21 @@ const Partner = (props) => {
<Tooltip className="tooltip_css" id="tooltip_id_906" />
{String(formation_initiale) === "1" && <a data-tooltip-id="tooltip_id_906" data-tooltip-html="JURYS">
{String(menu) !== "jurys" && <div className="sousmenu" onClick={Display_jurys_func} > <RocketIcon className="icone_menu" /> &nbsp; </div>}
{String(menu) === "jurys" && <div className="sousmenu_selected" onClick={Display_jurys_func} ><RocketIcon className="icone_menu" /> &nbsp;</div>}
{String(menu) !== "jurys" && <div className="sousmenu" onClick={Display_jurys_func} > <FcPodiumWithAudience className="icone_menu" /> &nbsp; </div>}
{String(menu) === "jurys" && <div className="sousmenu_selected" onClick={Display_jurys_func} ><FcPodiumWithAudience className="icone_menu" /> &nbsp;</div>}
<hr className="my_hr" />
</a>}
<Tooltip className="tooltip_css" id="tooltip_id_9061" />
{String(formation_initiale) === "1" && <a data-tooltip-id="tooltip_id_9061" data-tooltip-html="CONSEIL CLASSE">
{String(menu) !== "conseil_classe" && <div className="sousmenu" onClick={Display_conseil_classe_func} > <FcConferenceCall className="icone_menu" /> &nbsp; </div>}
{String(menu) === "conseil_classe" && <div className="sousmenu_selected" onClick={Display_conseil_classe_func} ><FcConferenceCall className="icone_menu" /> &nbsp;</div>}
<hr className="my_hr" />
</a>}
<Tooltip className="tooltip_css" id="tooltip_id_907" />
{String(formation_initiale) === "1" && <a data-tooltip-id="tooltip_id_907" data-tooltip-html="NOTES & EVALUATIONS">
{String(formation_initiale) === "1" && <a data-tooltip-id="tooltip_id_907" data-tooltip-html="NOTES & EVAL.">
{String(menu) !== "note_evaluation" && <div className="sousmenu" onClick={Display_note_evaluation_func} > <FcFlowChart className="icone_menu" /> &nbsp; </div>}
{String(menu) === "note_evaluation" && <div className="sousmenu_selected" onClick={Display_note_evaluation_func} ><FcFlowChart className="icone_menu" /> &nbsp;</div>}
</a>}
@ -2988,6 +3072,16 @@ const Partner = (props) => {
</a>
<hr className="my_hr" />
{String(formation_initiale) === "1" && <>
<Tooltip className="tooltip_css" id="tooltip_id_121" />
<a data-tooltip-id="tooltip_id_121" data-tooltip-html="AUTRE RH">
{String(menu) !== "autre_rh" && <div className="sousmenu" onClick={Display_Autre_RH_List} > <GiTeacher className="icone_menu" />&nbsp; </div>}
{String(menu) === "autre_rh" && <div className="sousmenu_selected" onClick={Display_Autre_RH_List} ><GiTeacher className="icone_menu" /> &nbsp;</div>}
</a>
<hr className="my_hr" />
</>}
<Tooltip className="tooltip_css" id="tooltip_id_13" />
<a data-tooltip-id="tooltip_id_13" data-tooltip-html=" MON MATERIEL">
{String(menu) !== "mon_materiel" && <div className="sousmenu" onClick={DisplayeMaterielList} > <BsTools className="icone_menu" />&nbsp; </div>}
@ -3192,15 +3286,28 @@ const Partner = (props) => {
</div>
}
{String(menu) === "jurys" &&
{String(menu) === "jurys" && String(formation_initiale) === "1" &&
<div className="div_droite div_droite_ralonge">
<Jury ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid}
class_internal_url={packs}
formation_initiale={formation_initiale}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
read_access={check_user_acces_right("jury", "read")}
write_access={check_user_acces_right("jury", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
{String(menu) === "conseil_classe" && String(formation_initiale) === "1" &&
<div className="div_droite div_droite_ralonge">
<Conseil_Classe ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid}
class_internal_url={packs}
formation_initiale={formation_initiale}
read_access={check_user_acces_right("jury", "read")}
write_access={check_user_acces_right("jury", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -3400,6 +3507,15 @@ const Partner = (props) => {
</div>
}
{String(menu) === "autre_rh" &&
<div className="div_droite div_droite_ralonge">
<Autre_RH conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("employe", "read")}
write_access={check_user_acces_right("employe", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
{String(menu) === "factures_client" &&
<div className="div_droite div_droite_ralonge">
<Factures_Client conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("facture_client", "read")}
@ -3566,8 +3682,8 @@ const Partner = (props) => {
{String(menu) === "module_agenda" && <div className="div_droite div_droite_ralonge">
<Module_Agenda conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("module_agenda", "read")}
write_access={check_user_acces_right("module_agenda", "write")}
check_user_acces_right={check_user_acces_right}/>
write_access={check_user_acces_right("module_agenda", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}

View File

@ -587,7 +587,7 @@ const Partner_Client = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("Le fichier ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");
@ -1279,7 +1279,7 @@ const Partner_Client = (props) => {
</div>
<div className="div_row_droite texte_area_filter" >
{String(p_filtre2).length > 3 && String(p_filtre2) !== "archive" &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required

View File

@ -1227,7 +1227,7 @@ const Partner_Commande = (props) => {
let file_type = event.target.files[0].type;
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");

View File

@ -166,7 +166,7 @@ const Partner_Facture = (props) => {
{ field: '_id', headerName: '_id', hide: true, disableExport: true, },
{ field: 'id', headerName: 'id', hide: true, disableExport: true },
{ field: 'invoice_header_ref_interne', headerName: 'Num Facture', minWidth: 200, flex: 1, hide: false, editable: false, },
{ field: 'order_header_ref_interne', headerName: 'Reference Cmd', minWidth: 200, flex: 1, hide: false, editable: false },
{ field: 'order_header_ref_interne', headerName: 'Réf. Cmd', minWidth: 200, flex: 1, hide: true, editable: false },
{ field: 'invoice_header_type', headerName: 'Type', width: 100, hide: false, editable: false },
{ field: 'invoice_date', headerName: 'Date Facture', width: 150, hide: false, editable: false },
@ -180,6 +180,7 @@ const Partner_Facture = (props) => {
{ field: 'total_header_toutes_taxes', headerName: 'Montant TTC', width: 150, hide: false, editable: false },
{ field: 'reste_to_paye', headerName: 'A payer', width: 150, hide: false, editable: false },
{ field: 'credit_note_ref', headerName: 'Ref. Avoir', width: 150, hide: true, editable: false, },
{ field: 'invoice_header_origin', headerName: 'Fact. Orig.', width: 150, hide: false, editable: false, },
]
@ -890,7 +891,7 @@ const Partner_Facture = (props) => {
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_Parter_Invoice_No_Filter res.data.status = " + res.data.status);
//console.log(" In Getall_Parter_Invoice_No_Filter res.data.message r_class = " + res.data.message);
console.log(" In Getall_Parter_Invoice_No_Filter res.data.total_data r_class = ", res.data.total_data);
// console.log(" In Getall_Parter_Invoice_No_Filter res.data.total_data r_class = ", res.data.total_data);
setGetall_Parter_Invoice_No_Filter_api("true");
setGetall_Parter_Invoice_No_Filter_result(res.data.message);
setRows(res.data.message);
@ -3656,12 +3657,22 @@ const Partner_Facture = (props) => {
<div className="div_row" ref={myRef_head} id="myRef_head" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Getall_Parter_Invoice_With_Filter}>Rechercher
<Button variant="contained" className="bton_enreg"
onClick={() => {
setdisplay_detail_invoice("");
Getall_Parter_Invoice_With_Filter()
}}
>Rechercher
</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_annule" onClick={clean_all_filters}>Annuler
<Button variant="contained" className="bton_annule"
onClick={() => {
setdisplay_detail_invoice("");
clean_all_filters()
}}
>Annuler
</Button>
</div>
@ -3752,7 +3763,6 @@ const Partner_Facture = (props) => {
//setsubmenu();
setdisplay_detail_invoice();
}
}}
@ -3789,6 +3799,7 @@ const Partner_Facture = (props) => {
reste_to_paye: JSON.parse(item).reste_to_paye,
credit_note_ref: JSON.parse(item).credit_note_ref,
invoice_header_origin: JSON.parse(item).invoice_header_origin,
}
))}
@ -4483,14 +4494,14 @@ const Partner_Facture = (props) => {
</div>
<div style={{ "width": "23%", "float": "left", "textAlign": "right", "paddingTop": "2rem" }}>
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={print_invoice_pdf} className="detail_class_submenu" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>}
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={print_invoice_pdf} className="detail_class_submenu" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>}
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_send_invoice_with_PJ_open(true);
}
} className="detail_class_submenu" id='order_header_main' name='order_header_main'>envoyer par mail</Button>}
{String(props.check_user_acces_right("facture_client", "write")) === "1" && String(history_securite_read) === "1" && <Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && String(history_securite_read) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_invoice_history_open(true);
}
} className="detail_class_submenu" id='invoice_history_bton' name='invoice_history_bton'>Historique
@ -4499,7 +4510,7 @@ const Partner_Facture = (props) => {
<div className="div_row"> &nbsp; </div>
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_annotation_1_open(true);
}
} className="detail_class_submenu" id='order_header_main' name='order_header_main' style={{ "background": "#b9f6ca" }}> Annotation</Button>}
@ -4509,7 +4520,7 @@ const Partner_Facture = (props) => {
<div className="div_row"> &nbsp; </div>
{String(props.check_user_acces_right("facture_client", "write")) === "1" && p_detail_header_invoice_header_type && String(p_detail_header_invoice_header_type) === "facture" &&
{String(props.check_user_acces_right("facture_client", "write")) === "1" && p_detail_header_invoice_header_type && String(p_detail_header_invoice_header_type) === "facture" &&
String(p_detail_header_credit_note_ref) === "" &&
<Popup
trigger={

View File

@ -540,7 +540,7 @@ const Partner_Product_Service = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -936,7 +936,7 @@ const RechercheArticles_new_v2 = (props) => {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -303,7 +303,7 @@ function Student_Account() {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 100000) {
if (file_size > 10000000) {
alert("L'image doit faire moins de 100 Kilo Octets");
return;
}

View File

@ -1677,7 +1677,7 @@ function UpdateParnterInfo(props) {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
@ -1710,7 +1710,7 @@ function UpdateParnterInfo(props) {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
@ -2270,7 +2270,7 @@ function UpdateParnterInfo(props) {
sethandleSubmission_bg_api("");
console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
if (file_size > 10000000) {
// alert("Le fichier ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets");
@ -2479,7 +2479,7 @@ function UpdateParnterInfo(props) {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -2911,7 +2911,7 @@ function UpdateParnterInfo(props) {
sethandleSubmission_cgv_api("");
// console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -3072,7 +3072,7 @@ function UpdateParnterInfo(props) {
sethandleSubmission_cgu_api("");
// console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@ -3240,7 +3240,7 @@ function UpdateParnterInfo(props) {
sethandleSubmission_mention_legale_api("");
// console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
if (file_size > 10000000) {
alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}

View File

@ -127,7 +127,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -345,7 +345,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -570,7 +570,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -796,7 +796,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;

View File

@ -1,11 +1,11 @@
.addclassmanual {
.tooltip_css {
background: #81BC3A;
z-index: 9999;
font-family: "DM Sans", "sans-serif";
font-size: "10px" !important;
}
.tooltip_css {
background: #81BC3A;
z-index: 9999;
font-family: "DM Sans", "sans-serif";
font-size: "10px" !important;
}
.block_archive {
background-color: #774a10;
@ -22,7 +22,7 @@
font-weight: 600;
font-size: 14px;
}
.loader-container {
width: 100%;
height: 100vh;
@ -467,6 +467,24 @@
margin-bottom: 2px;
margin-right: 10px;
}
.stat_bloc_indicateur {
display: flex;
flex-direction: column;
justify-content: flex-start;
width: 100%;
padding: 10px;
flex-wrap: wrap;
}
.stat_bloc_indicateur_pave {
font-size: 20px;
width: 100%;
border: 1px solid #3b3e40;
font-family: 'DM Sans';
}
}
@media only screen and (min-width: 601px) and (max-width: 991px) {
@ -956,6 +974,24 @@
margin-bottom: 2px;
margin-right: 10px;
}
.stat_bloc_indicateur {
display: flex;
flex-direction:column;
justify-content: flex-start;
width: 100%;
padding: 10px;
flex-wrap: wrap;
gap: 1rem;
}
.stat_bloc_indicateur_pave {
font-size: 22px;
width: 100%;
border: 1px solid #3b3e40;
font-family: 'DM Sans';
}
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
@ -1447,6 +1483,23 @@
margin-bottom: 2px;
margin-right: 10px;
}
.stat_bloc_indicateur {
display: flex;
flex-direction: row;
justify-content: flex-start;
width: 100%;
padding: 10px;
flex-wrap: wrap;
}
.stat_bloc_indicateur_pave {
font-size: 18px;
width: 25%;
border: 1px solid #3b3e40;
font-family: 'DM Sans';
}
}
@media only screen and (min-width: 1200px) {
@ -1924,6 +1977,26 @@
margin-bottom: 2px;
margin-right: 10px;
}
.stat_bloc_indicateur {
display: flex;
flex-direction: row;
justify-content: flex-start;
width: 100%;
padding: 10px;
flex-wrap: wrap;
}
.stat_bloc_indicateur_pave {
font-size: 22px;
width: 25%;
border: 1px solid #3b3e40;
font-family: 'DM Sans';
}
}

View File

@ -11,9 +11,9 @@
color: red;
font-style: italic;
}
.block_archive {
.block_archive {
background-color: #774a10;
width: calc(100% - 20px);
margin-left: 10px;
@ -28,8 +28,8 @@
font-weight: 600;
font-size: 14px;
}
@media only screen and (max-width: 600px) {
.div_row {
@ -63,7 +63,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -106,6 +106,8 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -136,7 +138,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -183,7 +185,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
}
@ -205,12 +207,12 @@
padding-right: 1rem !important;
}
.div_row_list_pj {
width: 100%;
border-left: 3mm ridge rgba(211, 220, 50, .6);
float: left;
}
}
}
@ -247,7 +249,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -290,6 +292,8 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -320,7 +324,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -367,7 +371,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
}
@ -393,7 +397,7 @@
width: 50%;
border-left: 3mm ridge rgba(211, 220, 50, .6);
float: left;
}
}
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
@ -429,7 +433,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -472,6 +476,8 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -502,7 +508,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -549,7 +555,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
}
@ -575,7 +581,7 @@
width: 30%;
border-left: 3mm ridge rgba(211, 220, 50, .6);
float: left;
}
}
}
@media only screen and (min-width: 1200px) {
@ -611,7 +617,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -654,6 +660,8 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -684,7 +692,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -733,7 +741,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
}
@ -760,7 +768,7 @@
width: 30%;
border-left: 3mm ridge rgba(211, 220, 50, .6);
float: left;
}
}
}
@ -768,12 +776,12 @@
.client_menu {
font-size: 12px !important;
font-size: 11px !important;
min-width: 15rem !important;
height: 2rem !important;
}
.hr_break {
border: 5px solid grey;
}

View File

@ -37,6 +37,21 @@
}
.block_archive {
background-color: #774a10;
width: calc(100% - 20px);
margin-left: 10px;
margin-right: 10px;
border-radius: 5px;
text-align: center;
font-family: DM sans;
color: white;
margin-bottom: 0.5rem;
font-style: italic;
opacity: 80%;
font-weight: 600;
font-size: 14px;
}
.Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
@ -362,7 +377,7 @@
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
padding-top: 10px;
padding-top: 10px;
}
.div_row_droite_image {
@ -644,7 +659,7 @@
width: 100%;
border-left: 3mm ridge rgba(211, 220, 50, .6);
float: left;
}
}
.block_en_mass {
width: 100%;
@ -1016,7 +1031,7 @@
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
padding-top: 10px;
padding-top: 10px;
}
.div_row_droite_image {
@ -1709,7 +1724,7 @@
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
padding-top: 10px;
padding-top: 10px;
}
.div_row_droite_image {
@ -2498,7 +2513,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: default;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2806,7 +2821,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2816,6 +2831,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -1632,7 +1632,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2200,7 +2200,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2280,7 +2280,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2290,6 +2290,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2313,6 +2313,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

File diff suppressed because it is too large Load Diff

View File

@ -99,7 +99,9 @@
padding-left: 5px;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2293,6 +2293,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2668,6 +2668,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2671,6 +2671,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2930,7 +2930,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2940,6 +2940,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -3105,7 +3105,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -3115,7 +3115,9 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2474,7 +2474,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2484,6 +2484,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2750,7 +2750,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -2592,7 +2592,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2602,6 +2602,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2538,7 +2538,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2548,6 +2548,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2752,7 +2752,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -1725,7 +1725,9 @@
padding-bottom: 5px !important;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1921,7 +1923,9 @@
padding: 0 !important;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
font: inherit;
letter-spacing: inherit;
color: currentColor;

View File

@ -2548,6 +2548,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2887,7 +2887,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -61,7 +61,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: #043a32;
font-weight: normal;
@ -257,7 +257,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: #043a32;
font-weight: normal;
@ -459,7 +459,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: #043a32;
font-weight: normal;
@ -659,7 +659,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: #043a32;
font-weight: normal;

View File

@ -2487,6 +2487,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2472,6 +2472,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2485,6 +2485,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -20,7 +20,7 @@
z-index: 9999;
}
.Mui-disabled {
.Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font-size: small !important;
padding: 0px !important;
@ -123,7 +123,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
width: 100%;
@ -706,7 +706,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
height: 2rem !important;
@ -1346,7 +1346,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
height: 2rem !important;
@ -1734,7 +1734,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1879,7 +1879,7 @@
border: 1px solid #9cf;
color: #3b3e40;
font-family: "DM Sans", "sans-serif";
font-size: small;
font-size: 11px;
letter-spacing: 0.1rem;
font-weight: normal;
height: 2rem !important;
@ -2332,7 +2332,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2610,7 +2610,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2620,6 +2620,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2298,6 +2298,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -1762,7 +1762,7 @@
}
.disabled_style {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
//background-color: #ECEFF1;
font-size: small !important;
color: black;
@ -1782,7 +1782,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2262,7 +2262,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
font-family: DM Sans;
}

View File

@ -2634,7 +2634,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -2640,7 +2640,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
font-size: small !important;
@ -2651,7 +2651,9 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -3286,7 +3286,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2647,7 +2647,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -2652,7 +2652,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -1829,7 +1829,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2477,7 +2477,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2716,7 +2716,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -2538,7 +2538,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2548,6 +2548,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2790,7 +2790,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2800,6 +2800,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2538,7 +2538,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2548,6 +2548,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2538,7 +2538,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
}
@ -2548,6 +2548,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2647,7 +2647,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
padding-right: 1rem !important;
}

View File

@ -2297,6 +2297,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2846,7 +2846,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2863,7 +2863,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2884,7 +2884,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -3290,7 +3290,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -1671,7 +1671,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2277,7 +2277,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: normal;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2496,6 +2496,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2851,7 +2851,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2846,7 +2846,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2863,7 +2863,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2846,7 +2846,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2741,7 +2741,9 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2529,6 +2529,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2121,7 +2121,7 @@
background-color: #107758 !important;
overflow: hidden !important;
box-sizing: unset !important;
font-family: DM Sans !important;
font-family: "DM Sans" !important;
}
@ -2160,7 +2160,7 @@
.ps-menuitem-root {
box-sizing: unset !important;
font-family: DM Sans !important;
font-family: "DM Sans" !important;
}
.ps-menu-button {
@ -2169,14 +2169,14 @@
text-transform: uppercase;
background-color: #107758 !important;
box-sizing: unset !important;
font-family: DM Sans !important;
font-family: "DM Sans" !important;
}
.tooltip_css {
background: #81BC3A;
z-index: 9999;
font-family: DM Sans !important;
font-family: "DM Sans" !important;
}

View File

@ -91,7 +91,9 @@
padding-left: 5px;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -364,7 +366,9 @@
padding-left: 5px;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -640,7 +644,9 @@
padding-left: 5px;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}
@ -925,7 +931,9 @@
padding-left: 5px;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2566,6 +2566,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2422,6 +2422,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2452,6 +2452,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2417,6 +2417,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2454,7 +2454,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
font-family: "DM Sans" !important;
height: 3.5rem !important;
font-size: small !important;
}
@ -2465,6 +2465,8 @@
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2425,6 +2425,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

View File

@ -2487,6 +2487,8 @@ font-family: DM Sans !important;
width: 110%;
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
font-size: small !important;
font-family: "DM Sans" !important;
padding-left: 5px !important;
}

Some files were not shown because too many files have changed in this diff Show More