10/08/2025 - 10h

branche_01062025
Cherif 2025-08-10 10:06:16 +02:00
parent eedef98997
commit 748f40e23f
36 changed files with 580 additions and 122 deletions

View File

@ -2,6 +2,7 @@
<html lang="fr">
<head>
<link rel="stylesheet" href="../src/App.css">
<script src="https://widget-js.cometchat.io/v2/cometchatwidget.js"></script>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
@ -126,14 +127,16 @@
gtag('config', 'G-17B18WZKPN');
</script>
<!-- Google Fonts-->
<!-- Google Fonts-- >
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap"
rel="stylesheet">
</head>
-->
</head>
<body>
<!-- Google Tag Manager (noscript) -->

View File

@ -1,4 +1,4 @@
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
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;date_naissance
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;20/12/1990
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;;06/04/1977
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 date_naissance
2 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 20/12/1990
3 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 06/04/1977
4 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

View File

@ -1,3 +1,46 @@
/* latin-ext */
@font-face {
font-family: 'DM Sans';
font-style: italic;
font-weight: 100 1000;
font-display: swap;
src: url(./fonts_elyos/dmsans/DMSans.ttf) format('truetype');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'DM Sans';
font-style: italic;
font-weight: 100 1000;
font-display: swap;
src: url(./fonts_elyos/dmsans/DMSans.ttf) format('truetype');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'DM Sans';
font-style: normal;
font-weight: 100 1000;
font-display: swap;
src: url(./fonts_elyos/dmsans/DMSans.ttf) format('truetype');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'DM Sans';
font-style: normal;
font-weight: 100 1000;
font-display: swap;
src: url(./fonts_elyos/dmsans/DMSans.ttf) format('truetype');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.react-confirm-alert-body {
font-family: Arial, Helvetica, sans-serif;
padding: 30px;

View File

@ -5777,7 +5777,9 @@ const Apprenant = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "Detail").
filter((data) => (data) !== "delete");
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -5802,7 +5804,9 @@ const Apprenant = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "Detail").
filter((data) => (data) !== "delete");
const local_config = {
@ -9560,7 +9564,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": "16px", "fontWeight": "600", fontFamily: 'DM Sans' }}> 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" }}>

View File

@ -2188,7 +2188,7 @@ const Conseil_Classe = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -2213,7 +2213,7 @@ const Conseil_Classe = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -4345,7 +4345,7 @@ const DisplayPartnerPromotion = (props) => {
var new_data2 = [];
var nb_line_invoices = 0;
const new_data = data['message'].map((x) => {
//---
@ -9308,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 = [
{
@ -13906,14 +13906,15 @@ const DisplayPartnerPromotion = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "is_session_alert").filter((data) => (data) !== "bton_vertif");
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
const row = {};
visibleColumnsField.forEach((field) => {
row[field] = apiRef.current.getCellParams(id, field).value;
if (String(field) !== "__check__" && String(field) !== "bton_vertif")
row[field] = apiRef.current.getCellParams(id, field).value;
});
return row;
});
@ -13932,7 +13933,8 @@ const DisplayPartnerPromotion = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "is_session_alert").filter((data) => (data) !== "bton_vertif");
const local_config = {

View File

@ -300,11 +300,11 @@ const DisplayPartnerSession = (props) => {
{ field: 'class_lms_class_code', headerName: 'class_lms_class_code', hide: true, disableExport: true, },
{ field: 'is_bpf', headerName: 'is_bpf', hide: true, },
{ field: 'session_alert_message', headerName: 'session_alert_message', hide: true },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true },
{ field: 'session_alert_message', headerName: 'session_alert_message', hide: true, disableExport: true, },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true, disableExport: true, },
{
field: 'is_session_alert', headerName: '', hide: false, Width: 50, flex: 1,
field: 'is_session_alert', headerName: '', hide: false, Width: 50, flex: 1, disableExport: true,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all", fontFamily: 'DM Sans', }}>
@ -331,7 +331,7 @@ const DisplayPartnerSession = (props) => {
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all", fontFamily: 'DM Sans', }}>
<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>
@ -438,7 +438,7 @@ const DisplayPartnerSession = (props) => {
{ field: 'duration', headerName: 'Durée', minWidth: datagrid_columns_size_model2, align: "center", hide: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", disableExport: true,
renderCell: (cellValues) => {
return (
<div>
@ -13960,14 +13960,15 @@ const DisplayPartnerSession = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "is_session_alert").filter((data) => (data) !== "bton_vertif");
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
const row = {};
visibleColumnsField.forEach((field) => {
row[field] = apiRef.current.getCellParams(id, field).value;
if (String(field) !== "__check__" && String(field) !== "bton_vertif" )
row[field] = apiRef.current.getCellParams(id, field).value;
});
return row;
});
@ -13986,7 +13987,8 @@ const DisplayPartnerSession = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "is_session_alert").filter((data) => (data) !== "bton_vertif");
const local_config = {

View File

@ -861,7 +861,7 @@ const DisplayPartnerStagiaires = (props) => {
setRecyclage_Desactivation_api("true");
setRecyclage_Desactivation_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setactionmass_ftion_val("");
Getall_TrainingParticipant();
// alert(res.data.message);
setdisplay_alert_mysy("1");
@ -985,7 +985,7 @@ const DisplayPartnerStagiaires = (props) => {
setnb_stagiaire_Preinscrit("");
setnb_stagiaire_Inscrit("");
setSelectionModel([]);
setactionmass_ftion_val("");
setactionmass_ftion_val("");
setRows([]);
setRows_insc([]);
setRows_preinsc([]);
@ -1317,7 +1317,7 @@ const DisplayPartnerStagiaires = (props) => {
function submenu_add_one_stagiaire() {
setsubmenu("");
setSelectionModel([]);
setactionmass_ftion_val("");
setactionmass_ftion_val("");
setselected_code_session();
Get_List_Partner_Financeurs();
setaddOneParticipant("1");
@ -5937,7 +5937,7 @@ const DisplayPartnerStagiaires = (props) => {
setDelete_LIST_Stagiaires_api("true");
setDelete_LIST_Stagiaires_result(res.data.message);
setSelectionModel([]);
setactionmass_ftion_val("");
setactionmass_ftion_val("");
Getall_TrainingParticipant();
//alert(res.data.message);
setdisplay_alert_mysy("1");
@ -7024,7 +7024,7 @@ const DisplayPartnerStagiaires = (props) => {
const handleChange_display_stagiaire_with_alert = (event) => {
setSelectionModel([]);
setactionmass_ftion_val("");
setactionmass_ftion_val("");
setdisplay_stagiaire_with_alert(event.target.checked);
};
@ -7052,13 +7052,19 @@ const DisplayPartnerStagiaires = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "warning_recyclage_alert").
filter((data) => (data) !== "Detail").
filter((data) => (data) !== "Action").
filter((data) => (data) !== "delete");
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
const row = {};
visibleColumnsField.forEach((field) => {
row[field] = apiRef.current.getCellParams(id, field).value;
if (String(field) !== "__check__" && String(field) !== "warning_recyclage_alert")
row[field] = apiRef.current.getCellParams(id, field).value;
});
return row;
});
@ -7077,9 +7083,13 @@ const DisplayPartnerStagiaires = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__").
filter((data) => (data) !== "warning_recyclage_alert").
filter((data) => (data) !== "Detail").
filter((data) => (data) !== "Action").
filter((data) => (data) !== "delete");
const local_config = {
keys: visibleColumnsField,
@ -9696,8 +9706,8 @@ const DisplayPartnerStagiaires = (props) => {
/>
{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(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

@ -2619,7 +2619,7 @@ const DistplayPartnerTraningsPage = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -2644,7 +2644,7 @@ const DistplayPartnerTraningsPage = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -137,6 +137,9 @@ function Emarge_QR_Code() {
{ field: 'code_session', headerName: 'Session', minWidth: 200, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'sequence_start', headerName: 'Du', minWidth: 100, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'sequence_end', headerName: 'Au', minWidth: 100, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'time_in_hour', headerName: 'Nb Heure', minWidth: 100, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'sequence_title', headerName: 'Séquence', minWidth: 100, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
]
@ -185,6 +188,8 @@ function Emarge_QR_Code() {
var local_class_title = JSON.parse(x).class_title;
var local_code_session = JSON.parse(x).code_session;
var local_sequence_title = JSON.parse(x).sequence_title;
var local_sequence_time_in_hour = JSON.parse(x).time_in_hour;
//---
@ -197,6 +202,8 @@ function Emarge_QR_Code() {
"email": local_email,
"class_title": local_class_title,
"code_session": local_code_session,
"sequence_title": local_sequence_title,
"time_in_hour": local_sequence_time_in_hour,
};
new_data2.push(node);
});
@ -852,6 +859,8 @@ function Emarge_QR_Code() {
session_id: (item).session_id,
class_title: (item).class_title,
code_session: (item).code_session,
time_in_hour: (item).time_in_hour,
sequence_title: (item).sequence_title,
}
))}

View File

@ -1151,7 +1151,7 @@ const Equipe_Team = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -1176,7 +1176,7 @@ const Equipe_Team = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -2559,7 +2559,7 @@ const Groupe_Apprenant = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -2584,7 +2584,7 @@ const Groupe_Apprenant = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -2603,7 +2603,7 @@ const options_menu_vertical = [
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -2628,7 +2628,7 @@ const options_menu_vertical = [
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -6349,7 +6349,7 @@ const Intranet_Mes_Stagiaires = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -6374,7 +6374,7 @@ const Intranet_Mes_Stagiaires = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -552,7 +552,7 @@ const Intranet_Tous_Documents = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -577,7 +577,7 @@ const Intranet_Tous_Documents = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -2188,7 +2188,7 @@ const Jury = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -2213,7 +2213,7 @@ const Jury = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -721,7 +721,7 @@ const Module_Attestation_Formation = (props) => {
</DialogContentText>
{/* <div className="session_caract_Dialog" > Type Document<br />
{ <div className="session_caract_Dialog" > Type Document<br />
<Autocomplete
disablePortal
@ -748,7 +748,7 @@ const Module_Attestation_Formation = (props) => {
</div>*/}
</div>}
{<div className="session_caract_Dialog" > <b> Choisir un modèle attestation </b>
<Autocomplete

View File

@ -1923,7 +1923,7 @@ const Module_Session_Notes_Classement = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -1948,7 +1948,7 @@ const Module_Session_Notes_Classement = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -935,6 +935,7 @@ const Module_Session_Planification = (props) => {
const [p_detail_end, setp_detail_end] = useState();
const [p_detail_comment, setp_detail_comment] = useState();
const [p_detail_sequence_session_id, setp_detail_sequence_session_id] = useState("");
const [p_detail_sequence_volume_theorique, setp_detail_sequence_volume_theorique] = useState("");
const [p_detail_justified, setp_detail_justified] = useState(false);
const [p_detail_event_type, setp_detail_event_type] = useState("");
@ -1178,6 +1179,8 @@ const Module_Session_Planification = (props) => {
form.append("sequence_start", new_start_date);
form.append("sequence_end", new_end_date);
form.append("volume_theorique", p_detail_sequence_volume_theorique);
form.append("agenda", p_detail_sequence_agenda);
form.append("objectif", p_detail_sequence_objectif);
form.append("commentaire", p_detail_sequence_comment);
@ -1536,6 +1539,7 @@ const Module_Session_Planification = (props) => {
var local_start = new Date(moment(JSON.parse(x).sequence_start, "DD/MM/YYYY hh:mm"))
var local_end = new Date(moment(JSON.parse(x).sequence_end, "DD/MM/YYYY hh:mm"))
var local_volume_theorique = JSON.parse(x).volume_theorique;
var local_agenda = JSON.parse(x).agenda;
var local_objectif = JSON.parse(x).objectif;
var local_session_id = JSON.parse(x).session_id;
@ -1567,6 +1571,7 @@ const Module_Session_Planification = (props) => {
"end": local_end,
"grp_code": local_session_grp_code,
"color": local_session_color,
"local_volume_theorique": local_volume_theorique,
"local_agenda": local_agenda,
"local_mode_animation": local_mode_animation,
@ -1956,6 +1961,99 @@ const Module_Session_Planification = (props) => {
};
const handleEventDragStart = (arg) => {
console.log(" handleEventDragStart");
}
const handleEventReceive = (arg) => {
console.log(" handleEventReceive");
}
const handleEventChange = (arg) => {
var local_selected_sequence_id = ""
if (arg.event.extendedProps._id)
local_selected_sequence_id = arg.event.extendedProps._id;
var new_start_date = moment(arg.event.start).format("DD/MM/YYYY HH:mm");
var new_end_date = moment(arg.event.end).format("DD/MM/YYYY HH:mm");
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("session_id", selected_session_id);
form.append("sequence_title", arg.event.title);
form.append("sequence_start", new_start_date);
form.append("sequence_end", new_end_date);
form.append("_id", local_selected_sequence_id);
// console.log(" form == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Session_Sequence/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Update_One_Sequence_Session res.data.status = " + res.data.status);
//console.log(" In Update_One_Sequence_Session res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setUpdate_One_Sequence_Session_api("true");
setUpdate_One_Sequence_Session_result(res.data.message);
Getall_Sequence_Of_Session(selected_session_id);
setp_detail_sequence_title("");
setp_detail_sequence_comment("");
setp_detail_mode_animation("");
setp_detail_sequence_agenda("");
setp_detail_sequence_objectif("");
setsequence_startDate();
setsequence_endDate();
setupdate_sequence();
// alert(res.data.message);
// setdisplay_alert_mysy("1");
// setalert_message(res.data.message);
// setalert_type("success");
Dialog_DIALOG_AGENDA_handleClose_buton();
Close_Dialog_Detail_seq_open();
}
else {
setUpdate_One_Sequence_Session_api("false");
setUpdate_One_Sequence_Session_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 :( Update_One_Sequence_Session = ' + error);
setUpdate_One_Sequence_Session_api("false");
alert(" Impossible de mettre à jour la séquence");
})
}
const [p_detail_sequence_event_type_semaine_id, setp_detail_sequence_event_type_semaine_id] = useState("");
@ -1999,7 +2097,7 @@ const Module_Session_Planification = (props) => {
const handleEventClick_event_type_semaine = (arg) => {
console.log(" arg = ", arg);
// console.log(" arg = ", arg);
setp_detail_sequence_event_type_semaine_title(arg.event.title)
setsequence_event_type_semaine_startDate(arg.event.start)
@ -2258,6 +2356,7 @@ const Module_Session_Planification = (props) => {
};
const handleEventClick = (arg) => {
// console.log(" 111 arg = ", arg);
if (String(props.check_user_acces_right("session", "write")) === "1") {
if (document.getElementById('myRef_seq_calendrier_01')) {
var divh = document.getElementById('myRef_seq_calendrier_01').offsetTop;
@ -2359,6 +2458,14 @@ const Module_Session_Planification = (props) => {
setp_detail_event_id("");
if (arg.event.extendedProps.local_volume_theorique) {
setp_detail_sequence_volume_theorique(arg.event.extendedProps.local_volume_theorique);
}
else
setp_detail_sequence_volume_theorique("");
if (arg.event.extendedProps.local_agenda) {
setp_detail_sequence_agenda(arg.event.extendedProps.local_agenda);
}
@ -2519,6 +2626,8 @@ const Module_Session_Planification = (props) => {
form.append("sequence_start", new_start_date);
form.append("sequence_end", new_end_date);
form.append("volume_theorique", p_detail_sequence_volume_theorique);
form.append("agenda", p_detail_sequence_agenda);
form.append("objectif", p_detail_sequence_objectif);
form.append("commentaire", p_detail_sequence_comment);
@ -2551,7 +2660,7 @@ const Module_Session_Planification = (props) => {
setp_detail_sequence_comment("");
setp_detail_mode_animation("");
setp_detail_sequence_volume_theorique("");
setp_detail_sequence_agenda("");
setp_detail_sequence_objectif("");
@ -4149,9 +4258,9 @@ const Module_Session_Planification = (props) => {
{String(submenu_seq_dialog) !== "dialog_ressource" && <div>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<div className="session_caract_Dialog" style={{ "width": "50%" }}>
<nav style={{ "float": "left", "width": "100%" }}>
Type
{New_Option_Type_Event && New_Option_Type_Event.length > 0 && <Autocomplete
disablePortal
name="event_dialog_type"
@ -4181,9 +4290,9 @@ const Module_Session_Planification = (props) => {
</nav>
</div>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<div className="session_caract_Dialog" style={{ "width": "50%" }}>
<nav style={{ "float": "right", "width": "100%" }}>
Animation
{New_Option_mode_animation && New_Option_mode_animation.length > 0 && <Autocomplete
disablePortal
@ -4341,7 +4450,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Debut
<div className="session_caract_Dialog" style={{width:'50%'}}> Debut
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
@ -4366,7 +4475,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Fin
<div className="session_caract_Dialog" style={{width:'50%'}}> Fin
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
@ -4391,6 +4500,26 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Volume Théorique
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_heure_theorique"
id="event_dialog_heure_theorique"
fullWidth
type="number"
inputProps={{ min: "0", max: "999999", step: "0.5" }}
value={p_detail_sequence_volume_theorique}
onChange={(e) => {
setp_detail_sequence_volume_theorique(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog_comment_2_lines" > Agenda
<TextField
@ -4416,7 +4545,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog_comment_2_lines" > Objectif
{/*} <div className="session_caract_Dialog_comment_2_lines" > Objectif
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -4438,9 +4567,9 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>*/}
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
{/*<div className="session_caract_Dialog_comment_2_lines" > Commentaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -4462,7 +4591,7 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>*/}
</div>}
@ -5519,7 +5648,7 @@ const Module_Session_Planification = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ width: "40rem" }}>
<DialogContent className="DialogContent_width" style={{ width: "45rem", minHeight:'45rem' }}>
<DialogContentText>
{Dialog_DIALOG_AGENDA_message}
</DialogContentText>
@ -5793,12 +5922,11 @@ const Module_Session_Planification = (props) => {
{String(submenu_seq_dialog) !== "dialog_ressource" && <div>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "right", "width": "65%" }}>
<nav style={{ "float": "left", "width": "100%" }}>
Type
{New_Option_Type_Event && New_Option_Type_Event.length > 0 && <Autocomplete
disablePortal
name="event_dialog_type"
@ -5828,10 +5956,10 @@ const Module_Session_Planification = (props) => {
</nav>
</div>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }} >
<nav style={{ "float": "right", "width": "100%" }}>
Animation
{New_Option_mode_animation && New_Option_mode_animation.length > 0 && <Autocomplete
disablePortal
name="event_dialog_type"
@ -5991,7 +6119,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Debut
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
@ -6019,7 +6147,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Fin
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
@ -6045,6 +6173,27 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog" > Volume Théorique
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_heure_theorique"
id="event_dialog_heure_theorique"
fullWidth
type="number"
inputProps={{ min: "0", max: "999999", step: "0.5" }}
value={p_detail_sequence_volume_theorique}
onChange={(e) => {
setp_detail_sequence_volume_theorique(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog_comment_2_lines" > Agenda
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -6069,7 +6218,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="session_caract_Dialog_comment_2_lines" > Objectif
{/*<div className="session_caract_Dialog_comment_2_lines" > Objectif
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -6091,9 +6240,9 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>*/}
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
{/*<div className="session_caract_Dialog_comment_2_lines" > Commentaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -6115,7 +6264,7 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>*/}
</div>}
@ -6462,7 +6611,7 @@ const Module_Session_Planification = (props) => {
{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");
setAdd_One_Sequence_Session_mass("1");
var tab_seq_mongo_ids = [];
@ -6527,6 +6676,8 @@ const Module_Session_Planification = (props) => {
eventClick={handleEventClick}
eventChange={handleEventChange}
/>
</div>
</div>}

View File

@ -523,7 +523,7 @@ const Modules_Mes_Documents = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -548,7 +548,7 @@ const Modules_Mes_Documents = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {

View File

@ -612,7 +612,7 @@ function New_C_Sign_In_2025() {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontWeight: '700', fontFamily: "DM Sans-Bold, Helvetica" }} id="draggable-dialog-title" > &nbsp; Réinitialiser votre mot de passe </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontWeight: '700', fontFamily: "DM Sans, Helvetica" }} id="draggable-dialog-title" > &nbsp; Réinitialiser votre mot de passe </DialogTitle>
<DialogContent className="DialogContent_width" >

View File

@ -1023,7 +1023,7 @@ function New_C_Sign_Up_2025() {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontWeight: '700', fontFamily: "DM Sans-Bold, Helvetica" }} id="draggable-dialog-title" > &nbsp; Réinitialiser votre mot de passe </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontWeight: '700', fontFamily: "DM Sans, Helvetica" }} id="draggable-dialog-title" > &nbsp; Réinitialiser votre mot de passe </DialogTitle>
<DialogContent className="DialogContent_width" >

View File

@ -2158,7 +2158,7 @@ const Partner = (props) => {
</div>
<div class="separator"></div>
{String(formation_initiale) === "1" && <div class="separator"></div>}
{String(formation_initiale) === "1" &&
<div>

View File

@ -1517,11 +1517,19 @@ const Partner_Commande = (props) => {
}
//document.getElementsByName("detail_header_comment")[0].value = "";
if (mylocal_order.order_header_lieu_formation) {
setp_detail_header_lieu_formation(mylocal_order.order_header_lieu_formation);
} else {
setp_detail_header_lieu_formation("");
}
if (mylocal_order.order_header_comment) {
setp_detail_header_comment(mylocal_order.order_header_comment);
}
// document.getElementsByName("detail_header_vendeur_nom_prenom")[0].value = "";
if (mylocal_order.order_header_vendeur_nom_prenom) {
setp_detail_header_vendeur_nom(mylocal_order.order_header_vendeur_nom_prenom);
@ -2278,8 +2286,9 @@ const Partner_Commande = (props) => {
const [p_detail_header_client_nom, setp_detail_header_client_nom] = useState();
const [p_detail_header_client_nom_id, setp_detail_header_client_nom_id] = useState();
const [p_detail_header_description, setp_detail_header_description] = useState();
const [p_detail_header_comment, setp_detail_header_comment] = useState();
const [p_detail_header_description, setp_detail_header_description] = useState("");
const [p_detail_header_comment, setp_detail_header_comment] = useState("");
const [p_detail_header_lieu_formation, setp_detail_header_lieu_formation] = useState("");
const [p_detail_header_date_cmd, setp_detail_header_date_cmd] = useState(new Date().toLocaleDateString('fr-FR'));
const [p_detail_header_date_expiration, setp_detail_header_date_expiration] = useState(date_today_90j.toLocaleDateString('fr-FR'));
const [p_detail_header_condition_paiement_code, setp_detail_header_condition_paiement_code] = useState("");
@ -2397,6 +2406,11 @@ const Partner_Commande = (props) => {
document.getElementsByName("detail_header_comment")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("detail_header_lieu_formation")[0]) {
document.getElementsByName("detail_header_lieu_formation")[0].disabled = false;
document.getElementsByName("detail_header_lieu_formation")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("detail_header_vendeur_nom_prenom")[0]) {
document.getElementsByName("detail_header_vendeur_nom_prenom")[0].disabled = false;
document.getElementsByName("detail_header_vendeur_nom_prenom")[0].style.backgroundColor = "#FFFFFF";
@ -2561,6 +2575,11 @@ const Partner_Commande = (props) => {
document.getElementsByName("detail_header_comment")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_header_lieu_formation")[0]) {
document.getElementsByName("detail_header_lieu_formation")[0].disabled = true;
document.getElementsByName("detail_header_lieu_formation")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_header_vendeur_nom_prenom")[0]) {
document.getElementsByName("detail_header_vendeur_nom_prenom")[0].disabled = true;
document.getElementsByName("detail_header_vendeur_nom_prenom")[0].style.backgroundColor = "#ECEFF1";
@ -2730,6 +2749,11 @@ const Partner_Commande = (props) => {
else
form.append("order_header_date_cmd", "");
if (p_detail_header_lieu_formation)
form.append("order_header_lieu_formation", p_detail_header_lieu_formation);
else
form.append("order_header_lieu_formation", "");
if (p_detail_header_comment)
form.append("order_header_comment", p_detail_header_comment);
else
@ -3319,6 +3343,7 @@ const Partner_Commande = (props) => {
form.append("order_header_client_id", p_add_cmd_header_client_id);
form.append("order_header_description", p_add_cmd_header_description);
form.append("order_header_comment", p_add_cmd_header_comment);
form.append("order_header_lieu_formation", p_add_cmd_header_lieu_formation);
form.append("order_header_date_cmd", p_add_cmd_header_date_cmd);
form.append("order_header_date_expiration", p_add_cmd_header_date_expiration_cmd);
form.append("order_header_condition_paiement_id", p_add_cmd_header_condition_paiement_id);
@ -3452,6 +3477,7 @@ const Partner_Commande = (props) => {
const [p_add_cmd_header_client_id, setp_add_cmd_header_client_id] = useState("");
const [p_add_cmd_header_description, setp_add_cmd_header_description] = useState("");
const [p_add_cmd_header_comment, setp_add_cmd_header_comment] = useState("");
const [p_add_cmd_header_lieu_formation, setp_add_cmd_header_lieu_formation] = useState("");
const [p_add_cmd_header_vendeur_id, setp_add_cmd_header_vendeur_id] = useState(props.conntected_employee_id);
const [p_add_cmd_header_vendeur_id_label, setp_add_cmd_header_vendeur_id_label] = useState();
@ -3469,6 +3495,7 @@ const Partner_Commande = (props) => {
setp_add_cmd_header_client_id();
setp_add_cmd_header_description();
setp_add_cmd_header_comment();
setp_add_cmd_header_lieu_formation();
setp_add_cmd_header_vendeur_id(props.conntected_employee_id);
setp_add_cmd_header_date_cmd(new Date().toLocaleDateString('fr-FR'));
setp_add_cmd_header_date_expiration_cmd(date_today_90j.toLocaleDateString('fr-FR'));
@ -4885,7 +4912,7 @@ const Partner_Commande = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__");
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
@ -4910,7 +4937,7 @@ const Partner_Commande = (props) => {
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__");
const local_config = {
@ -5040,7 +5067,7 @@ const Partner_Commande = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
// top: '5rem',
// top: '5rem',
margin: "2px",
},
}}
@ -5450,7 +5477,7 @@ const Partner_Commande = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
// top: '5rem',
// top: '5rem',
margin: "2px",
},
}}
@ -5663,7 +5690,7 @@ const Partner_Commande = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
// top: '5rem',
// top: '5rem',
margin: "2px",
},
}}
@ -6353,7 +6380,7 @@ const Partner_Commande = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
// top: '5rem',
// top: '5rem',
margin: "2px",
},
}}
@ -6635,6 +6662,25 @@ const Partner_Commande = (props) => {
</div>
<div className="session_caract_Dialog_comment_2_lines" > Lieu de formation <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="order_lieu_formation"
id="order_lieu_formation"
fullWidth
multiline
rows={2}
value={p_add_cmd_header_lieu_formation}
onChange={(e) => {
setp_add_cmd_header_lieu_formation(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog_comment_2_lines" > Commentaire <br />
<TextField
@ -7640,6 +7686,29 @@ const Partner_Commande = (props) => {
/>
</div>
<div className="session_caract"> Lieu de formation<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_header_lieu_formation"
id="detail_header_lieu_formation"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_header_lieu_formation}
onChange={(e) => {
setp_detail_header_lieu_formation(e.target.value);
setOrder_data_changed("1");
}
}
/>
</div>
<div className="session_caract"> Commentaire<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}

View File

@ -2168,6 +2168,7 @@ const Partner_Facture = (props) => {
function clear_Paiement_DetailFields() {
setp_detail_paiement_id("");
setp_detail_paiement_amount("");
setp_detail_paiement_mode("");
setp_detail_paiement_date(new Date().toLocaleDateString('fr-FR'));
setp_detail_paiement_ref("");
setp_detail_paiement_comment("");
@ -2444,7 +2445,6 @@ const Partner_Facture = (props) => {
function CustomToolbar(props) {
return (
<GridToolbarContainer {...props}>
@ -2464,17 +2464,21 @@ const Partner_Facture = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {
const row = {};
visibleColumnsField.forEach((field) => {
row[field] = apiRef.current.getCellParams(id, field).value;
var val = apiRef.current.getCellParams(id, field).value;
if (String(field) !== "__check__")
row[field] = apiRef.current.getCellParams(id, field).value;
});
return row;
});
return data;
}
@ -2487,15 +2491,16 @@ const Partner_Facture = (props) => {
);
}
function handleExport(apiRef, data_colums) {
const data = getExcelData(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
const local_config = {
keys: visibleColumnsField,
columnNames: data_colums.filter((mydata) => (mydata).disableExport !== true).map(function (mydata) {
if (mydata.headerName && visibleColumnsField.includes(mydata.field)) {
if (mydata.headerName) {
return mydata.headerName;
@ -2508,6 +2513,7 @@ const Partner_Facture = (props) => {
sheetName: 'Export_' + String(new Date().toJSON().slice(0, 10)).replaceAll("-", "_"),
};
local_config.columnNames = local_config.columnNames.filter(function (element) {
return element !== undefined;
});
@ -3667,12 +3673,12 @@ const Partner_Facture = (props) => {
</div>
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_annule"
onClick={() => {
<Button variant="contained" className="bton_annule"
onClick={() => {
setdisplay_detail_invoice("");
clean_all_filters()
}}
>Annuler
>Annuler
</Button>
</div>

View File

@ -1224,10 +1224,10 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<br />
<div className="div_nom" style={{ "fontSize": '22px', fontFamily:'DM Sans' }}>
Patrick PIPAZ<br />
Isabelle LALYRE<br />
</div>
<div className="div_function" style={{ "fontSize": '20px', fontFamily:'DM Sans' }}>
Responsable Commercial <br/> MySy Training / ELYOS
Business Developer <br/> MySy Training / ELYOS
</div>
</div>
<div className="ch_div_centre">
@ -1239,7 +1239,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight": '2.5rem', "fontSize": '18px', fontFamily:'DM Sans', paddingTop:'2rem' }}>
<div> <ImMobile2 /> &nbsp;+337 75 73 26 40</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;ppipaz@mysy-training.com</div>
<div> <BsMailbox /> &nbsp;ilalyre@mysy-training.com</div>
<div> <ImHome /> &nbsp;https://www.mysy-training.com/</div>
<div> <ImWhatsapp /> &nbsp;+337 75 73 26 40</div>

View File

@ -172,7 +172,7 @@ const TestUrl_New = (props) => {
function getExcelData(apiRef) {
// Select rows and columns
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
// Format the data. Here we only keep the value
const data = filteredSortedRowIds.map((id) => {

View File

@ -0,0 +1,13 @@
<p>
DM Sans is a low-contrast geometric sans serif design, intended for use at smaller text sizes.
</p>
<p>
DM Sans supports a Latin Extended glyph set, enabling typesetting for English and other Western European languages.
It was designed by Colophon Foundry (UK), who started from the Latin portion of Indian Type Foundry's <a href="https://fonts.google.com/specimen/Poppins">Poppins</a>.
</p>
<p>
In May 2023 DM Sans is updated, expanding the coverage of the weight range to Thin & ExtraBlack (1001000 weight range) along with a new optical size axis.
</p>
<p>
To contribute, see <a href="https://github.com/googlefonts/dm-fonts">github.com/googlefonts/dm-fonts</a>
</p>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,53 @@
name: "DM Sans"
designer: "Colophon Foundry"
license: "OFL"
category: "SANS_SERIF"
date_added: "2019-06-12"
fonts {
name: "DM Sans"
style: "normal"
weight: 400
filename: "DMSans[opsz,wght].ttf"
post_script_name: "DMSans-9ptRegular"
full_name: "DM Sans 9pt Regular"
copyright: "Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts)"
}
fonts {
name: "DM Sans"
style: "italic"
weight: 400
filename: "DMSans-Italic[opsz,wght].ttf"
post_script_name: "DMSans-9ptItalic"
full_name: "DM Sans 9pt Italic"
copyright: "Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts)"
}
subsets: "latin"
subsets: "latin-ext"
subsets: "menu"
axes {
tag: "opsz"
min_value: 9.0
max_value: 40.0
}
axes {
tag: "wght"
min_value: 100.0
max_value: 1000.0
}
source {
repository_url: "https://github.com/googlefonts/dm-fonts"
commit: "d0520ba03bd780f5dccb3024854463d44f699b78"
files {
source_file: "Sans/OFL.txt"
dest_file: "OFL.txt"
}
files {
source_file: "Sans/fonts/variable/DMSans[opsz,wght].ttf"
dest_file: "DMSans[opsz,wght].ttf"
}
files {
source_file: "Sans/fonts/variable/DMSans-Italic[opsz,wght].ttf"
dest_file: "DMSans-Italic[opsz,wght].ttf"
}
branch: "main"
}

View File

@ -0,0 +1,93 @@
Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -61,7 +61,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -686,7 +686,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1142,7 +1142,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1598,7 +1598,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;

View File

@ -61,7 +61,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -671,7 +671,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1112,7 +1112,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1553,7 +1553,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;

View File

@ -61,7 +61,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -686,7 +686,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1142,7 +1142,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;
@ -1598,7 +1598,7 @@
position: relative;
align-self: stretch;
margin-top: -1.00px;
font-family: "DM Sans-Bold", Helvetica;
font-family: "DM Sans", Helvetica;
font-weight: 700;
color: var(--foundation-bluedarker);
font-size: 24px;

View File

@ -361,7 +361,7 @@
display: block;
border-radius: 10rem;
border: 1px solid #0a2a4d;
width: 40%;
width: 35%;
height: 10%;
margin-left: auto;
margin-right: auto;