24/03/2024 - 13h
parent
825be48d0f
commit
57ad32b62a
|
@ -747,6 +747,8 @@ const CRM_Opportunite = (props) => {
|
||||||
const [p_detail_contact_email, setp_detail_contact_email] = useState();
|
const [p_detail_contact_email, setp_detail_contact_email] = useState();
|
||||||
const [p_detail_contact_telephone, setp_detail_contact_telephone] = useState();
|
const [p_detail_contact_telephone, setp_detail_contact_telephone] = useState();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [p_detail_commentaire, setp_detail_commentaire] = useState();
|
const [p_detail_commentaire, setp_detail_commentaire] = useState();
|
||||||
const [p_detail_vendeur_id, setp_detail_vendeur_id] = useState('');
|
const [p_detail_vendeur_id, setp_detail_vendeur_id] = useState('');
|
||||||
const [p_detail_statut, setp_detail_statut] = useState("");
|
const [p_detail_statut, setp_detail_statut] = useState("");
|
||||||
|
@ -1828,6 +1830,11 @@ const CRM_Opportunite = (props) => {
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div className="session_caract_Dialog" > Priorité <br />
|
<div className="session_caract_Dialog" > Priorité <br />
|
||||||
<nav style={{ "float": "right", "width": "80%", "marginRight": "10%", "textAlign": "right" }}>
|
<nav style={{ "float": "right", "width": "80%", "marginRight": "10%", "textAlign": "right" }}>
|
||||||
<Rating
|
<Rating
|
||||||
|
@ -1868,6 +1875,26 @@ const CRM_Opportunite = (props) => {
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Commentaire
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
|
||||||
|
name="dialog_opport_comment"
|
||||||
|
id="dialog_opport_comment"
|
||||||
|
type="number"
|
||||||
|
step="any"
|
||||||
|
className="disabled_style"
|
||||||
|
|
||||||
|
value={p_detail_commentaire}
|
||||||
|
onChange={(e) => {
|
||||||
|
setp_detail_commentaire(e.target.value);
|
||||||
|
setopport_changed("1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="session_caract_Dialog" > Vendeur <br />
|
<div className="session_caract_Dialog" > Vendeur <br />
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -793,16 +793,16 @@ const DisplayPartnerSession = (props) => {
|
||||||
{ field: 'id', headerName: 'id', hide: true },
|
{ field: 'id', headerName: 'id', hide: true },
|
||||||
{ field: '_id', headerName: '_id', hide: true },
|
{ field: '_id', headerName: '_id', hide: true },
|
||||||
{ field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 },
|
{ field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 },
|
||||||
{ field: 'sequence_start', headerName: 'Debut', width: 100, flex: 1 },
|
{ field: 'sequence_start', headerName: 'Debut', width: 70, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'sequence_end', headerName: 'Fin', width: 100, flex: 1 },
|
{ field: 'sequence_end', headerName: 'Fin', width: 70, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'is_present', headerName: 'Présent', width: 100, hide: false, editable: true, type: 'boolean', },
|
{ field: 'is_present', headerName: 'Présent', width: 90, hide: false, editable: true, type: 'boolean', },
|
||||||
|
|
||||||
{ field: 'email', headerName: 'email', width: 250, flex: 1 },
|
{ field: 'email', headerName: 'email', minWidth: 300, flex: 1 , renderCell: (params) => <ExpandableCell_50 {...params} />,},
|
||||||
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
|
{ field: 'nom', headerName: 'nom', minWidth: 150, flex: 1 , hide: false, editable: true , renderCell: (params) => <ExpandableCell_50 {...params} />,},
|
||||||
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: false },
|
{ field: 'prenom', headerName: 'prenom', minWidth: 150, flex: 1 ,hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
|
|
||||||
{
|
{
|
||||||
field: 'statut', headerName: 'Statut', width: 150, hide: false, editable: false,
|
field: 'statut', headerName: 'Statut', width: 100, hide: false, editable: false,
|
||||||
renderCell: (cellValues) => {
|
renderCell: (cellValues) => {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
|
@ -816,7 +816,28 @@ const DisplayPartnerSession = (props) => {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ field: 'date_envoi', headerName: 'Envoyé le', width: 150, hide: false, editable: false },
|
{
|
||||||
|
field: 'date_envoi', headerName: 'Envoyé le', width: 180, hide: false, editable: false,
|
||||||
|
renderCell: (cellValues) => {
|
||||||
|
return (
|
||||||
|
|
||||||
|
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
{String(cellValues.row.date_envoi).substring(0, 16)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ field: 'date_emargement', headerName: 'Émargé le', width: 180, hide: true, editable: false,
|
||||||
|
renderCell: (cellValues) => {
|
||||||
|
return (
|
||||||
|
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
{String(cellValues.row.date_emargement).substring(0, 16)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
field: "valide", headerName: 'Valider',
|
field: "valide", headerName: 'Valider',
|
||||||
|
@ -842,9 +863,9 @@ const DisplayPartnerSession = (props) => {
|
||||||
const columns_list_evaluation = [
|
const columns_list_evaluation = [
|
||||||
{ field: 'id', headerName: 'id', hide: true },
|
{ field: 'id', headerName: 'id', hide: true },
|
||||||
{ field: '_id', headerName: '_id', hide: true },
|
{ field: '_id', headerName: '_id', hide: true },
|
||||||
{ field: 'email', headerName: 'email', width: 200, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
{ field: 'email', headerName: 'email', miniWidth: 300, flex:1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
||||||
{ field: 'nom', headerName: 'nom', width: 200, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
{ field: 'nom', headerName: 'nom', miniWidth: 200, hide: false, flex:1, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
||||||
{ field: 'prenom', headerName: 'prenom', width: 200, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
{ field: 'prenom', headerName: 'prenom', miniWidth: 200, hide: false, flex:1,editable: false, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
||||||
{
|
{
|
||||||
field: 'eval_status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
field: 'eval_status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
||||||
valueFormatter: (params) => {
|
valueFormatter: (params) => {
|
||||||
|
@ -8090,6 +8111,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
form.append("token", stored_cookie);
|
form.append("token", stored_cookie);
|
||||||
form.append("session_id", selected_session_id);
|
form.append("session_id", selected_session_id);
|
||||||
form.append("jounree_modele_id", "");
|
form.append("jounree_modele_id", "");
|
||||||
|
form.append("option", Dialog_seq_choix_model_emargement);
|
||||||
|
|
||||||
|
|
||||||
//console.log(" form == ", form);
|
//console.log(" form == ", form);
|
||||||
|
@ -8117,10 +8139,11 @@ const DisplayPartnerSession = (props) => {
|
||||||
setsequence_startDate();
|
setsequence_startDate();
|
||||||
setsequence_endDate();
|
setsequence_endDate();
|
||||||
|
|
||||||
|
setDialog_seq_choix_model_emargement_open(false);
|
||||||
|
|
||||||
alert(res.data.message);
|
alert(res.data.message);
|
||||||
Close_Dialog_Detail_seq_open();
|
Close_Dialog_Detail_seq_open();
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setAdd_Automatic_Sequence_Session_api("false");
|
setAdd_Automatic_Sequence_Session_api("false");
|
||||||
|
@ -8401,6 +8424,28 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const [Dialog_seq_choix_model_emargement_message, setDialog_seq_choix_model_emargement_message] = React.useState(false);
|
||||||
|
const [Dialog_seq_choix_model_emargement_open, setDialog_seq_choix_model_emargement_open] = React.useState(false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function Dialog_1_handle_change_participant_session(message) {
|
||||||
|
setDialog_seq_choix_model_emargement_message(message);
|
||||||
|
setDialog_seq_choix_model_emargement_open(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
const Dialog_seq_choix_model_emargement_handleClose = () => {
|
||||||
|
//alert(" Utiliser le bouton 'fermer' ");
|
||||||
|
//setOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const Dialog_seq_choix_model_emargement_handleClose_buton = () => {
|
||||||
|
setDialog_seq_choix_model_emargement_open(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [Dialog_seq_ressource_1_selected_type_ressource, setDialog_seq_ressource_1_selected_type_ressource] = React.useState();
|
const [Dialog_seq_ressource_1_selected_type_ressource, setDialog_seq_ressource_1_selected_type_ressource] = React.useState();
|
||||||
const [Dialog_seq_ressource_1_selected_ressource_id, setDialog_seq_ressource_1_selected_ressource_id] = React.useState();
|
const [Dialog_seq_ressource_1_selected_ressource_id, setDialog_seq_ressource_1_selected_ressource_id] = React.useState();
|
||||||
const [Dialog_seq_ressource_1_selected_ressource_poste, setDialog_seq_ressource_1_selected_ressource_poste] = React.useState();
|
const [Dialog_seq_ressource_1_selected_ressource_poste, setDialog_seq_ressource_1_selected_ressource_poste] = React.useState();
|
||||||
|
@ -9460,7 +9505,11 @@ const DisplayPartnerSession = (props) => {
|
||||||
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
|
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const New_Option_Model_Sequence = [
|
||||||
|
{ "id": "0", "label": "Calendrier de travail", "value": "0" },
|
||||||
|
{ "id": "1", "label": "La 1/2 journée", "value": "1" },
|
||||||
|
{ "id": "2", "label": "La journée", "value": "2" },
|
||||||
|
]
|
||||||
|
|
||||||
/* Recuperation des evaluations */
|
/* Recuperation des evaluations */
|
||||||
const [selectionModel_evaluation, setSelectionModel_evaluation] = React.useState([]);
|
const [selectionModel_evaluation, setSelectionModel_evaluation] = React.useState([]);
|
||||||
|
@ -9759,6 +9808,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
setDialog_FACTURATION_FORMATION_open(false);
|
setDialog_FACTURATION_FORMATION_open(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [Dialog_seq_choix_model_emargement, setDialog_seq_choix_model_emargement] = React.useState("0");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="displaypartnersession">
|
<div className="displaypartnersession">
|
||||||
|
@ -9767,6 +9817,75 @@ const DisplayPartnerSession = (props) => {
|
||||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
|
|
||||||
|
{/* Dialgue pour le choix du modele de sequene (la journée, 1/2 journée, etc*/}
|
||||||
|
|
||||||
|
|
||||||
|
<Dialog
|
||||||
|
open={Dialog_seq_choix_model_emargement_open}
|
||||||
|
onClose={Dialog_seq_choix_model_emargement_handleClose}
|
||||||
|
|
||||||
|
className="displaypartnersession"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
<DialogTitle> Choisir une modèle de séquence </DialogTitle>
|
||||||
|
<DialogContent className="DialogContent_width" style={{ height: "15rem" }}>
|
||||||
|
<DialogContentText>
|
||||||
|
{Dialog_seq_choix_model_emargement_message}
|
||||||
|
</DialogContentText>
|
||||||
|
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Source
|
||||||
|
<Autocomplete
|
||||||
|
disablePortal
|
||||||
|
name="event_dialog_modele_seq"
|
||||||
|
id="event_dialog_modele_seq"
|
||||||
|
fullWidth
|
||||||
|
|
||||||
|
options={New_Option_Model_Sequence}
|
||||||
|
onChange={(event, value) => {
|
||||||
|
if (value && value.value) {
|
||||||
|
|
||||||
|
setDialog_seq_choix_model_emargement(value.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</DialogContent>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<DialogActions>
|
||||||
|
<div className="div_row">
|
||||||
|
<div className="div_row_gauche">
|
||||||
|
|
||||||
|
<Button onClick={Add_Automatic_Sequence_Session} className="bton_enreg_dialog">Crée en masse</Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||||
|
<Button onClick={Dialog_seq_choix_model_emargement_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</DialogActions>
|
||||||
|
|
||||||
|
|
||||||
|
</Dialog>
|
||||||
|
|
||||||
|
|
||||||
|
{/*** fin dialog choix modele sequence */}
|
||||||
<Dialog
|
<Dialog
|
||||||
open={Dialog_1_open}
|
open={Dialog_1_open}
|
||||||
onClose={Dialog_1_handleClose}
|
onClose={Dialog_1_handleClose}
|
||||||
|
@ -10160,26 +10279,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
|
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{/*<TextField
|
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
|
||||||
|
|
||||||
name="event_dialog_type_ressource"
|
|
||||||
id="event_dialog_type_ressource"
|
|
||||||
|
|
||||||
select
|
|
||||||
fullWidth
|
|
||||||
|
|
||||||
value={Dialog_seq_ressource_1_selected_type_ressource}
|
|
||||||
onChange={(e) => {
|
|
||||||
setDialog_seq_ressource_1_selected_type_ressource(e.target.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
>
|
|
||||||
|
|
||||||
<MenuItem value="ressource_humaine" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Employé </MenuItem>
|
|
||||||
<MenuItem value="ressource_materielle" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Materiel </MenuItem>
|
|
||||||
</TextField>*/}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -10205,32 +10305,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* <TextField
|
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
|
||||||
|
|
||||||
name="event_dialog_ressource_id"
|
|
||||||
id="event_dialog_ressource_id"
|
|
||||||
|
|
||||||
select
|
|
||||||
fullWidth
|
|
||||||
|
|
||||||
value={Dialog_seq_ressource_1_selected_ressource_id}
|
|
||||||
onChange={(e) => {
|
|
||||||
|
|
||||||
setDialog_seq_ressource_1_selected_ressource_id(e.target.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
>
|
|
||||||
{Getall_Training_Employee_No_Filter_result &&
|
|
||||||
Getall_Training_Employee_No_Filter_result.map((myclient) => (
|
|
||||||
<MenuItem key={JSON.parse(myclient)._id} value={JSON.parse(myclient)._id} nom={JSON.parse(myclient).nom}
|
|
||||||
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} id="filtre1_value_list">
|
|
||||||
{JSON.parse(myclient).nom} {JSON.parse(myclient).prenom}
|
|
||||||
|
|
||||||
</MenuItem>
|
|
||||||
))}
|
|
||||||
</TextField>*/}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -10256,32 +10331,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
|
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{/*<TextField
|
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
|
||||||
|
|
||||||
name="event_dialog_ressource_id"
|
|
||||||
id="event_dialog_ressource_id"
|
|
||||||
|
|
||||||
select
|
|
||||||
fullWidth
|
|
||||||
|
|
||||||
value={Dialog_seq_ressource_1_selected_ressource_id}
|
|
||||||
onChange={(e) => {
|
|
||||||
|
|
||||||
setDialog_seq_ressource_1_selected_ressource_id(e.target.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
>
|
|
||||||
{Getall_Training_Materiel_No_Filter_result &&
|
|
||||||
Getall_Training_Materiel_No_Filter_result.map((myclient) => (
|
|
||||||
<MenuItem key={JSON.parse(myclient)._id} value={JSON.parse(myclient)._id}
|
|
||||||
style={{ "paddingLeft": "25px", "textAlign": "left", "width": "100%" }}>
|
|
||||||
{JSON.parse(myclient).nom}
|
|
||||||
|
|
||||||
</MenuItem>
|
|
||||||
))}
|
|
||||||
</TextField>*/}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -13751,7 +13801,8 @@ const DisplayPartnerSession = (props) => {
|
||||||
<div className="gest_actions">
|
<div className="gest_actions">
|
||||||
<div style={{ "width": "45%", "float": "left" }}>
|
<div style={{ "width": "45%", "float": "left" }}>
|
||||||
<button className="gest_bton_popup" onClick={(event) => {
|
<button className="gest_bton_popup" onClick={(event) => {
|
||||||
Add_Automatic_Sequence_Session();
|
//Add_Automatic_Sequence_Session();
|
||||||
|
setDialog_seq_choix_model_emargement_open(true);
|
||||||
close();
|
close();
|
||||||
}}> Valider </button>
|
}}> Valider </button>
|
||||||
|
|
||||||
|
@ -14261,216 +14312,216 @@ const DisplayPartnerSession = (props) => {
|
||||||
</div>}
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{String(addOneParticipant) !== "1" &&
|
{String(addOneParticipant) !== "1" &&
|
||||||
<div className="session_data" >
|
<div className="session_data" >
|
||||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
height: 500,
|
height: 500,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
paddingRight: '2px',
|
paddingRight: '2px',
|
||||||
|
|
||||||
|
|
||||||
[`& .${gridClasses.cell}`]: {
|
[`& .${gridClasses.cell}`]: {
|
||||||
py: 1,
|
py: 1,
|
||||||
},
|
},
|
||||||
'& .line--statut--invoiced': {
|
'& .line--statut--invoiced': {
|
||||||
backgroundColor: '#EAFAF1',
|
backgroundColor: '#EAFAF1',
|
||||||
color: '#239B56',
|
color: '#239B56',
|
||||||
fontWeight: '700'
|
fontWeight: '700'
|
||||||
|
|
||||||
},
|
},
|
||||||
"& .MuiDataGrid-columnHeaders": {
|
"& .MuiDataGrid-columnHeaders": {
|
||||||
backgroundColor: "#c8cfd5",
|
backgroundColor: "#c8cfd5",
|
||||||
color: "black",
|
color: "black",
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
>
|
|
||||||
<DataGrid
|
|
||||||
checkboxSelection
|
|
||||||
onSelectionModelChange={(newSelectionModel) => {
|
|
||||||
setselectionModel_preinsc(newSelectionModel);
|
|
||||||
//console.log("ch selected--" + newSelectionModel);
|
|
||||||
}}
|
|
||||||
selectionModel={selectionModel_preinsc}
|
|
||||||
|
|
||||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
|
||||||
rows={rowss_preinsc.map((item, index) => (
|
|
||||||
{
|
|
||||||
id: index,
|
|
||||||
_id: JSON.parse(item)._id,
|
|
||||||
nom: JSON.parse(item).nom,
|
|
||||||
prenom: JSON.parse(item).prenom,
|
|
||||||
employeur: JSON.parse(item).employeur,
|
|
||||||
email: JSON.parse(item).email,
|
|
||||||
amount: JSON.parse(item).price,
|
|
||||||
opco: JSON.parse(item).opco,
|
|
||||||
modefinancement: JSON.parse(item).modefinancement,
|
|
||||||
civilite: JSON.parse(item).civilite,
|
|
||||||
client_rattachement_nom: JSON.parse(item).client_rattachement_nom,
|
|
||||||
client_rattachement_id: JSON.parse(item).client_rattachement_id,
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
))}
|
|
||||||
|
|
||||||
columns={columns_preinscrit}
|
|
||||||
pageSize={10}
|
|
||||||
className="datagridclass"
|
|
||||||
|
|
||||||
rowsPerPageOptions={[10]}
|
|
||||||
disableSelectionOnClick
|
|
||||||
components={{
|
|
||||||
Toolbar: GridToolbar,
|
|
||||||
}}
|
|
||||||
getEstimatedRowHeight={() => 200}
|
|
||||||
getRowHeight={() => "auto"}
|
|
||||||
sx={{
|
|
||||||
"& .MuiDataGrid-cellContent": {
|
|
||||||
minHeight: 50,
|
|
||||||
|
|
||||||
},
|
|
||||||
[`& .${gridClasses.cell}`]: {
|
|
||||||
py: 1,
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</Box>
|
|
||||||
|
|
||||||
{selectionModel_preinsc && selectionModel_preinsc.length >= 1 &&
|
|
||||||
<div className="div_row" style={{ "border": "none", "marginLeft": "10px" }}>
|
|
||||||
<div className="block_en_mass">
|
|
||||||
<nav className='traitement_mass'>Traitement en masse</nav>
|
|
||||||
|
|
||||||
|
|
||||||
<Autocomplete
|
|
||||||
disablePortal
|
|
||||||
id="combo-box-demo"
|
|
||||||
className="block_en_mass_select"
|
|
||||||
fullWidth
|
|
||||||
options={New_Option_PreInscription}
|
|
||||||
onChange={(event, value) => {
|
|
||||||
if (String(value.value) === "valide_inscr" || String(value.value) === "refuse_inscr") {
|
|
||||||
setactionmass_preinsc_val(value.value);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
setactionmass_preinsc_val();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
>
|
||||||
|
<DataGrid
|
||||||
|
checkboxSelection
|
||||||
|
onSelectionModelChange={(newSelectionModel) => {
|
||||||
|
setselectionModel_preinsc(newSelectionModel);
|
||||||
|
//console.log("ch selected--" + newSelectionModel);
|
||||||
}}
|
}}
|
||||||
|
selectionModel={selectionModel_preinsc}
|
||||||
|
|
||||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
rows={rowss_preinsc.map((item, index) => (
|
||||||
|
{
|
||||||
|
id: index,
|
||||||
|
_id: JSON.parse(item)._id,
|
||||||
|
nom: JSON.parse(item).nom,
|
||||||
|
prenom: JSON.parse(item).prenom,
|
||||||
|
employeur: JSON.parse(item).employeur,
|
||||||
|
email: JSON.parse(item).email,
|
||||||
|
amount: JSON.parse(item).price,
|
||||||
|
opco: JSON.parse(item).opco,
|
||||||
|
modefinancement: JSON.parse(item).modefinancement,
|
||||||
|
civilite: JSON.parse(item).civilite,
|
||||||
|
client_rattachement_nom: JSON.parse(item).client_rattachement_nom,
|
||||||
|
client_rattachement_id: JSON.parse(item).client_rattachement_id,
|
||||||
|
|
||||||
/>
|
|
||||||
}
|
}
|
||||||
|
))}
|
||||||
|
|
||||||
|
columns={columns_preinscrit}
|
||||||
|
pageSize={10}
|
||||||
|
className="datagridclass"
|
||||||
|
|
||||||
|
rowsPerPageOptions={[10]}
|
||||||
|
disableSelectionOnClick
|
||||||
|
components={{
|
||||||
|
Toolbar: GridToolbar,
|
||||||
|
}}
|
||||||
|
getEstimatedRowHeight={() => 200}
|
||||||
|
getRowHeight={() => "auto"}
|
||||||
|
sx={{
|
||||||
|
"& .MuiDataGrid-cellContent": {
|
||||||
|
minHeight: 50,
|
||||||
|
|
||||||
|
},
|
||||||
|
[`& .${gridClasses.cell}`]: {
|
||||||
|
py: 1,
|
||||||
|
},
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
|
</Box>
|
||||||
{actionmass_preinsc_val && <nav className='block_en_mass_bton_action'>
|
|
||||||
<Popup
|
|
||||||
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
|
|
||||||
<FcAcceptDatabase /> Traiter
|
|
||||||
|
|
||||||
</Button>}
|
{selectionModel_preinsc && selectionModel_preinsc.length >= 1 &&
|
||||||
modal
|
<div className="div_row" style={{ "border": "none", "marginLeft": "10px" }}>
|
||||||
nested
|
<div className="block_en_mass">
|
||||||
position="center center"
|
<nav className='traitement_mass'>Traitement en masse</nav>
|
||||||
>
|
|
||||||
|
|
||||||
{close => (
|
<Autocomplete
|
||||||
<div>
|
disablePortal
|
||||||
<button className="gest_close" onClick={close}>
|
id="combo-box-demo"
|
||||||
×
|
className="block_en_mass_select"
|
||||||
</button>
|
fullWidth
|
||||||
<div className="gest_header"> MySy Information </div>
|
options={New_Option_PreInscription}
|
||||||
<div className="gest_content">
|
onChange={(event, value) => {
|
||||||
{' '}
|
if (String(value.value) === "valide_inscr" || String(value.value) === "refuse_inscr") {
|
||||||
{String(actionmass_preinsc_val) === "valide_inscr" &&
|
setactionmass_preinsc_val(value.value);
|
||||||
<font> Confirmer la <b> validation des inscriptions </b> en masse pour {selectionModel_preinsc.length} lignes.
|
}
|
||||||
</font>}
|
else {
|
||||||
|
setactionmass_preinsc_val();
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
{String(actionmass_preinsc_val) === "refuse_inscr" &&
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
<font> Confirmer la <b> l'annulation des inscriptions </b> en masse pour {selectionModel_preinsc.length} lignes.
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
</font>}
|
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
|
{actionmass_preinsc_val && <nav className='block_en_mass_bton_action'>
|
||||||
|
<Popup
|
||||||
|
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
|
||||||
|
<FcAcceptDatabase /> Traiter
|
||||||
|
|
||||||
|
</Button>}
|
||||||
|
modal
|
||||||
|
nested
|
||||||
|
position="center center"
|
||||||
|
>
|
||||||
|
|
||||||
</div>
|
{close => (
|
||||||
<div className="gest_actions">
|
<div>
|
||||||
<div style={{ "width": "45%", "float": "left" }}>
|
<button className="gest_close" onClick={close}>
|
||||||
<button className="gest_bton_popup" onClick={(event) => {
|
×
|
||||||
actionmass_preinsc_Traitemet();
|
|
||||||
close();
|
|
||||||
}}> Valider </button>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div style={{ "width": "45%", "float": "right" }}>
|
|
||||||
<button
|
|
||||||
className="gest_bton_popup"
|
|
||||||
onClick={() => {
|
|
||||||
//console.log('modal closed ');
|
|
||||||
close();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Annuler
|
|
||||||
</button>
|
</button>
|
||||||
|
<div className="gest_header"> MySy Information </div>
|
||||||
|
<div className="gest_content">
|
||||||
|
{' '}
|
||||||
|
{String(actionmass_preinsc_val) === "valide_inscr" &&
|
||||||
|
<font> Confirmer la <b> validation des inscriptions </b> en masse pour {selectionModel_preinsc.length} lignes.
|
||||||
|
</font>}
|
||||||
|
|
||||||
|
|
||||||
|
{String(actionmass_preinsc_val) === "refuse_inscr" &&
|
||||||
|
<font> Confirmer la <b> l'annulation des inscriptions </b> en masse pour {selectionModel_preinsc.length} lignes.
|
||||||
|
</font>}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className="gest_actions">
|
||||||
|
<div style={{ "width": "45%", "float": "left" }}>
|
||||||
|
<button className="gest_bton_popup" onClick={(event) => {
|
||||||
|
actionmass_preinsc_Traitemet();
|
||||||
|
close();
|
||||||
|
}}> Valider </button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style={{ "width": "45%", "float": "right" }}>
|
||||||
|
<button
|
||||||
|
className="gest_bton_popup"
|
||||||
|
onClick={() => {
|
||||||
|
//console.log('modal closed ');
|
||||||
|
close();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Annuler
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
)}
|
||||||
</div>
|
</Popup>
|
||||||
)}
|
</nav>
|
||||||
</Popup>
|
}
|
||||||
</nav>
|
<br />
|
||||||
}
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
<br />
|
||||||
|
|
||||||
|
{String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url && <div id='ajout_participant' style={{ "textAlign": "left", "float": "left", "width": "100%" }}>
|
||||||
|
|
||||||
|
<Button variant="outlined" onClick={submenu_import_participant} className="detail_class_submenu bton_import_excel" style={{
|
||||||
|
"background": "#c8cfd5",
|
||||||
|
"color": "black", "width": "auto"
|
||||||
|
}}
|
||||||
|
id='menu_import_participant' name='menu_import_participant'>Importer des participants excel
|
||||||
|
<img src={excel_icone} alt="ajout csv" className="icon_excel" />
|
||||||
|
</Button>
|
||||||
|
<Button variant="outlined" onClick={submenu_add_one_participant}
|
||||||
|
className="detail_class_submenu bton_add_session"
|
||||||
|
id='menu_one_participant' name='menu_one_participant'>Ajout 1 participant
|
||||||
|
<img src={participants} alt="ajout un participant" className="icon_plus" />
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
</div>
|
<i>{participant_file_name}</i><br />
|
||||||
|
{String(liste_participants_file_change_api) === String("true") && <nav className="okUpdateData"> Les participants ont été correctement importés</nav>}
|
||||||
|
{String(liste_participants_file_change_api) === String("false") && <nav className="koUpdateData"> {liste_participants_file_change_message} </nav>}
|
||||||
|
|
||||||
</div>}
|
<input type="file"
|
||||||
<br />
|
accept=".csv"
|
||||||
|
ref={hiddenFileInput}
|
||||||
|
style={{ display: 'none' }}
|
||||||
|
name="liste_participants_file"
|
||||||
|
onChange={liste_participants_file_change}
|
||||||
|
/>
|
||||||
|
|
||||||
{String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url && <div id='ajout_participant' style={{ "textAlign": "left", "float": "left", "width": "100%" }}>
|
|
||||||
|
|
||||||
<Button variant="outlined" onClick={submenu_import_participant} className="detail_class_submenu bton_import_excel" style={{
|
</div>}
|
||||||
"background": "#c8cfd5",
|
|
||||||
"color": "black", "width": "auto"
|
|
||||||
}}
|
|
||||||
id='menu_import_participant' name='menu_import_participant'>Importer des participants excel
|
|
||||||
<img src={excel_icone} alt="ajout csv" className="icon_excel" />
|
|
||||||
</Button>
|
|
||||||
<Button variant="outlined" onClick={submenu_add_one_participant}
|
|
||||||
className="detail_class_submenu bton_add_session"
|
|
||||||
id='menu_one_participant' name='menu_one_participant'>Ajout 1 participant
|
|
||||||
<img src={participants} alt="ajout un participant" className="icon_plus" />
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<i>{participant_file_name}</i><br />
|
|
||||||
{String(liste_participants_file_change_api) === String("true") && <nav className="okUpdateData"> Les participants ont été correctement importés</nav>}
|
|
||||||
{String(liste_participants_file_change_api) === String("false") && <nav className="koUpdateData"> {liste_participants_file_change_message} </nav>}
|
|
||||||
|
|
||||||
<input type="file"
|
|
||||||
accept=".csv"
|
|
||||||
ref={hiddenFileInput}
|
|
||||||
style={{ display: 'none' }}
|
|
||||||
name="liste_participants_file"
|
|
||||||
onChange={liste_participants_file_change}
|
|
||||||
/>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>}
|
|
||||||
|
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
|
@ -16494,6 +16545,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
statut: JSON.parse(item).statut,
|
statut: JSON.parse(item).statut,
|
||||||
date_envoi: JSON.parse(item).date_envoi,
|
date_envoi: JSON.parse(item).date_envoi,
|
||||||
|
date_emargement: JSON.parse(item).date_emargement,
|
||||||
}
|
}
|
||||||
))}
|
))}
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,8 @@ function ESign() {
|
||||||
form.append("e_doc_id", selected_e_doc_id);
|
form.append("e_doc_id", selected_e_doc_id);
|
||||||
form.append("secret_key_signature", selected_e_doc_secret);
|
form.append("secret_key_signature", selected_e_doc_secret);
|
||||||
form.append("email_destinataire", selected_e_doc_email);
|
form.append("email_destinataire", selected_e_doc_email);
|
||||||
|
form.append('signature_img', isimgclassSelected);
|
||||||
|
|
||||||
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
axios.post(myurl, form).then(res => {
|
axios.post(myurl, form).then(res => {
|
||||||
|
@ -248,6 +250,41 @@ function ESign() {
|
||||||
history.push("/");
|
history.push("/");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [isimgclassSelected, setisimgclassSelected] = useState(false);
|
||||||
|
const [isimgclassSelected_recid, setisimgclassSelected_recid] = useState("");
|
||||||
|
const [isimgclassSelectedfile, setisimgclassSelectedfile] = useState(false);
|
||||||
|
|
||||||
|
const [userimgclassprofil, setuserimgclassprofil] = useState();
|
||||||
|
const [userimgclassprofilchanged, setuserimgclassprofilchanged] = useState("");
|
||||||
|
|
||||||
|
const imglogoclasschangeHandler = (event) => {
|
||||||
|
|
||||||
|
|
||||||
|
let file_size = event.target.files[0].size;
|
||||||
|
|
||||||
|
//or if you like to have name and type
|
||||||
|
//console.log(event.target.files);
|
||||||
|
|
||||||
|
let file_name = event.target.files[0].name;
|
||||||
|
let file_type = event.target.files[0].type;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
|
||||||
|
if (file_size > 1000000) {
|
||||||
|
alert("L'image ne doit pas dépasser un 1 Méga octets");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setisimgclassSelected(event.target.files[0]);
|
||||||
|
setisimgclassSelectedfile(true);
|
||||||
|
|
||||||
|
setuserimgclassprofil(URL.createObjectURL(event.target.files[0]));
|
||||||
|
setuserimgclassprofilchanged("1");
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
const [isimgclassSaved, setisimgclassSaved] = useState("");
|
||||||
|
const [isimgclassSaved_message, setisimgclassSaved_message] = useState("");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="esign">
|
<div className="esign">
|
||||||
|
@ -386,7 +423,7 @@ function ESign() {
|
||||||
<DialogActions>
|
<DialogActions>
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<div className="div_row_gauche">
|
<div className="div_row_gauche">
|
||||||
<Button onClick={get_E_Document} className="bton_enreg_dialog">Afficher Document </Button>
|
<Button onClick={get_E_Document} className="bton_enreg_dialog">Afficher</Button>
|
||||||
</div>
|
</div>
|
||||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||||
<Button onClick={Dialog_1_handleClose_buton} className="bton_annule_dialog" >Annuler</Button>
|
<Button onClick={Dialog_1_handleClose_buton} className="bton_annule_dialog" >Annuler</Button>
|
||||||
|
@ -443,16 +480,20 @@ function ESign() {
|
||||||
<h3> Signature Electronique </h3>
|
<h3> Signature Electronique </h3>
|
||||||
|
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<div style={{ width: "20%", "float": "left", minHeight: "40vh" }}>
|
<div style={{ width: "20%", "float": "left", minHeight: "40vh", textAlign: "justify", padding: "15px" }}>
|
||||||
Guide d'utilisation :
|
<br />
|
||||||
<ul>
|
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "fontWeight": "700" }}> Guide d'utilisation : </nav><br />
|
||||||
<li>Etape 1 </li>
|
<nav>Pour vous permettre de signer électroniquement vos documents, MySy Training Technology met à disposition ce module. </nav>
|
||||||
<li>Etape 2 </li>
|
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "marginTop": "1rem", "fontWeight": "700" }}> Comment ça marche : </nav>
|
||||||
</ul>
|
<nav style={{ "fontSize": "16px", "marginBottom": "0.8rem" }}> étape 1 – Vous accédez au document à l’aide votre adresse email et de la clé d’ouverture </nav>
|
||||||
|
<nav style={{ "fontSize": "16px", "marginBottom": "0.8rem" }}> étape 2 – Apres l’ouverture du document vous recevez par email un code de validation de la signature</nav>
|
||||||
|
<nav style={{ "fontSize": "16px", "marginBottom": "0.8rem" }}> étape 3 – Signez le document à l’aide de votre adresse email du code de validation de la signature</nav>
|
||||||
|
<nav style={{ "fontSize": "16px", "marginBottom": "0.8rem" }}> étape 4 – Vous recevez par email la version pdf le document signé</nav>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style={{ width: "78%", "float": "right", width:'300px', marginLeft:'auto' }}>
|
<div style={{ width: "78%", "float": "right", marginRight: "1%" }}>
|
||||||
text d'explication
|
|
||||||
{is_valide_e_document &&
|
{is_valide_e_document &&
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||||
|
@ -465,6 +506,58 @@ function ESign() {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||||
|
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||||
|
|
||||||
|
<div className="div_row">
|
||||||
|
|
||||||
|
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
|
||||||
|
<div className="div_row_gauche_image">
|
||||||
|
<img class="img_class_logo" src={userimgclassprofil} /><br />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className="div_row_droite_image">
|
||||||
|
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
|
||||||
|
{<nav>
|
||||||
|
|
||||||
|
<label for="files_img_class" className="bton_image_class">Charger une signature</label><br />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{String(userimgclassprofilchanged) === "1" &&
|
||||||
|
<nav className="bton_supprime_image_class" onClick={(e) => {
|
||||||
|
setuserimgclassprofil("");
|
||||||
|
setuserimgclassprofilchanged("");
|
||||||
|
}}>Supprimer la signature<br /> </nav>
|
||||||
|
}
|
||||||
|
|
||||||
|
<div className="div_row_bis tips_img_class">
|
||||||
|
<li>
|
||||||
|
L'image doit etre carrée.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
La taille de l'image ne doit pas dépasser 1 mega octet
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</nav>}
|
||||||
|
|
||||||
|
|
||||||
|
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="div_row">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||||
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||||
|
|
|
@ -884,6 +884,7 @@ const Materiel_Salle = (props) => {
|
||||||
setmateriel_data_changed("");
|
setmateriel_data_changed("");
|
||||||
setmateriel_data_edit_mode("");
|
setmateriel_data_edit_mode("");
|
||||||
clean_detail_fields();
|
clean_detail_fields();
|
||||||
|
setadd_One_Materiel("");
|
||||||
|
|
||||||
alert(res.data.message);
|
alert(res.data.message);
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ import { TreeView } from '@mui/x-tree-view/TreeView';
|
||||||
import { TreeItem } from '@mui/x-tree-view/TreeItem';
|
import { TreeItem } from '@mui/x-tree-view/TreeItem';
|
||||||
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||||
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
|
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
|
||||||
|
import { convertNwSeToNeSw } from "google-map-react";
|
||||||
|
|
||||||
const Module_Editique = (props) => {
|
const Module_Editique = (props) => {
|
||||||
|
|
||||||
|
@ -226,6 +227,64 @@ const Module_Editique = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const [partner_digital_signature_status, setpartner_digital_signature_status] = useState("0");
|
||||||
|
const [local_partner_digital_signature_status, setlocal_partner_digital_signature_status] = useState(false);
|
||||||
|
|
||||||
|
|
||||||
|
const [Getall_Partner_Digital_Sign_Status_api, setGetall_Partner_Digital_Sign_Status_api] = useState();
|
||||||
|
const [Getall_Partner_Digital_Sign_Status_message, setGetall_Partner_Digital_Sign_Status_message] = useState();
|
||||||
|
const [Getall_Partner_Digital_Sign_Status_result, setGetall_Partner_Digital_Sign_Status_result] = useState([]);
|
||||||
|
function Getall_Partner_Digital_Sign_Status(event) {
|
||||||
|
var form = new FormData();
|
||||||
|
|
||||||
|
const stored_cookie = getCookie('tokenmysypart');
|
||||||
|
form.append("token", stored_cookie);
|
||||||
|
|
||||||
|
|
||||||
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Is_Partnair_Has_Digital_Signature/";
|
||||||
|
|
||||||
|
setLoading(true);
|
||||||
|
axios.post(myurl, form).then(res => {
|
||||||
|
|
||||||
|
setLoading(false);
|
||||||
|
|
||||||
|
if (String(res.data.status) === String("true")) {
|
||||||
|
//console.log(" In Getall_Partner_Digital_Sign_Status res.data.status = " + res.data.status);
|
||||||
|
//console.log(" In Getall_Partner_Digital_Sign_Status res.data.message r_class = " + res.data.message);
|
||||||
|
setGetall_Partner_Digital_Sign_Status_api("true");
|
||||||
|
setGetall_Partner_Digital_Sign_Status_result(res.data.message);
|
||||||
|
|
||||||
|
|
||||||
|
if (JSON.parse(res.data.message).config_name && JSON.parse(res.data.message).config_value) {
|
||||||
|
|
||||||
|
|
||||||
|
if (String(JSON.parse(res.data.message).config_name) === "signature_digital" &&
|
||||||
|
String(JSON.parse(res.data.message).config_value) === "1") {
|
||||||
|
|
||||||
|
setpartner_digital_signature_status("1");
|
||||||
|
setlocal_partner_digital_signature_status(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setGetall_Partner_Digital_Sign_Status_api("false");
|
||||||
|
setGetall_Partner_Digital_Sign_Status_message(res.data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch((error) => {
|
||||||
|
setLoading(false);
|
||||||
|
console.warn('Not good man :( Getall_Partner_Digital_Sign_Status = ', error);
|
||||||
|
setGetall_Partner_Digital_Sign_Status_api("false");
|
||||||
|
//setmyApimyApiMessage("")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const [Action_Server_api, setAction_Server_api] = useState();
|
const [Action_Server_api, setAction_Server_api] = useState();
|
||||||
const [Action_Server_message, setAction_Server_message] = useState();
|
const [Action_Server_message, setAction_Server_message] = useState();
|
||||||
const [Action_Server_result, setAction_Server_result] = useState([]);
|
const [Action_Server_result, setAction_Server_result] = useState([]);
|
||||||
|
@ -319,6 +378,7 @@ const Module_Editique = (props) => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
|
Getall_Partner_Digital_Sign_Status();
|
||||||
setselected_session_id(props.related_collection_recid);
|
setselected_session_id(props.related_collection_recid);
|
||||||
Getall_Editable_Document_By_Partner_By_Collection();
|
Getall_Editable_Document_By_Partner_By_Collection();
|
||||||
Getall_Audit_Document_By_Partner_By_Collection();
|
Getall_Audit_Document_By_Partner_By_Collection();
|
||||||
|
@ -886,8 +946,14 @@ const Module_Editique = (props) => {
|
||||||
form.append("email_test", selected_convention_email_test);
|
form.append("email_test", selected_convention_email_test);
|
||||||
form.append("email_production", selected_convention_email_destinataire_prod);
|
form.append("email_production", selected_convention_email_destinataire_prod);
|
||||||
|
|
||||||
|
if (local_partner_digital_signature_status === true) {
|
||||||
|
form.append("request_digital_signature", "1");
|
||||||
|
} else {
|
||||||
|
form.append("request_digital_signature", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log("form === ", form);
|
|
||||||
// pièce jointe
|
// pièce jointe
|
||||||
form.append("file_business_object", "");
|
form.append("file_business_object", "");
|
||||||
var list_files = new FormData();
|
var list_files = new FormData();
|
||||||
|
@ -958,7 +1024,6 @@ const Module_Editique = (props) => {
|
||||||
form.append("email_production", selected_convention_email_destinataire_prod);
|
form.append("email_production", selected_convention_email_destinataire_prod);
|
||||||
|
|
||||||
|
|
||||||
console.log("form === ", form);
|
|
||||||
// pièce jointe
|
// pièce jointe
|
||||||
form.append("file_business_object", "");
|
form.append("file_business_object", "");
|
||||||
var list_files = new FormData();
|
var list_files = new FormData();
|
||||||
|
@ -1569,7 +1634,7 @@ const Module_Editique = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{String(selected_convention_type) === "email" && <div>
|
{String(selected_convention_type) === "email" && <div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
@ -1695,6 +1760,8 @@ const Module_Editique = (props) => {
|
||||||
{Dialog_1_message}
|
{Dialog_1_message}
|
||||||
</DialogContentText>
|
</DialogContentText>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div className="session_caract_Dialog" > Type Document<br />
|
<div className="session_caract_Dialog" > Type Document<br />
|
||||||
<Autocomplete
|
<Autocomplete
|
||||||
disablePortal
|
disablePortal
|
||||||
|
@ -1718,10 +1785,51 @@ const Module_Editique = (props) => {
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{String(partner_digital_signature_status) === "1" && String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
|
||||||
|
<div className="session_caract_Dialog" >
|
||||||
|
<Tooltip className="tooltip_css" id="tooltip_signat_dig" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="tooltip_signat_dig" data-tooltip-html="Utiliser la fonctionnalité de signature électronique pour ce document ">
|
||||||
|
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
|
||||||
|
onChange={(e) => {
|
||||||
|
|
||||||
|
if (local_partner_digital_signature_status === true)
|
||||||
|
setlocal_partner_digital_signature_status(false)
|
||||||
|
else {
|
||||||
|
|
||||||
|
setlocal_partner_digital_signature_status(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
id="toggleSwitchNav_1" name="toggleSwitchNav_1">
|
||||||
|
<ToggleSwitch
|
||||||
|
label="Signature Digiale" id="toggleSwitch_1" name="toggleSwitch_1" checked={local_partner_digital_signature_status} style={{ height: "2rem" }} />
|
||||||
|
</nav>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
{String(partner_digital_signature_status) !== "1" && String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > Signature Digiale <br />
|
||||||
|
<div className="session_caract_Dialog" >
|
||||||
|
<Tooltip className="tooltip_css" id="tooltip_signat_dig" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="tooltip_signat_dig" data-tooltip-html="Nous ne disposez pas de l'option de signature électronique ">
|
||||||
|
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
|
||||||
|
|
||||||
|
id="toggleSwitchNav_1" name="toggleSwitchNav_1">
|
||||||
|
<ToggleSwitch
|
||||||
|
label="Activier la signature digiatale" id="toggleSwitch_1" name="toggleSwitch_1" checked={false} style={{ height: "2rem" }} />
|
||||||
|
</nav>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
|
||||||
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > Choisir une convention
|
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > Choisir une convention
|
||||||
<Autocomplete
|
<Autocomplete
|
||||||
disablePortal
|
disablePortal
|
||||||
|
@ -1758,8 +1866,8 @@ const Module_Editique = (props) => {
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
|
{/*
|
||||||
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > Type Document<br />
|
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > Type Document aa<br />
|
||||||
<TextField
|
<TextField
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
|
||||||
|
|
||||||
|
@ -1790,7 +1898,7 @@ const Module_Editique = (props) => {
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Type Document<br />
|
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Type Document bb<br />
|
||||||
|
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
|
@ -1804,13 +1912,13 @@ const Module_Editique = (props) => {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
*/}
|
||||||
|
|
||||||
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
|
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
|
||||||
<Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} />
|
<Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} />
|
||||||
<a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer">
|
<a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer">
|
||||||
Adresse email de test <FcInfo /> <TextField
|
Adresse email de test <FcInfo /> <TextField
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
|
||||||
|
|
||||||
name="event_dialog_email_test_convention"
|
name="event_dialog_email_test_convention"
|
||||||
id="event_dialog_email_test_convention"
|
id="event_dialog_email_test_convention"
|
||||||
|
@ -1825,6 +1933,22 @@ const Module_Editique = (props) => {
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
{String(selected_convention_type) === "email" && <label className="bton_image_class" style={{ "width": "20%", "float": "right", "height": "3rem", "paddingTop": "15px" }} onClick={(e) => {
|
||||||
|
|
||||||
|
if (selected_convention_email_test) {
|
||||||
|
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||||
|
if (!selected_convention_email_test.match(validRegex)) {
|
||||||
|
alert("L'adresse email de test est invalide.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Send_Stagiaire_Conventions_By_Email_Test();
|
||||||
|
} else {
|
||||||
|
alert("L'adresse email de test est invalide.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}} > <FcSearch /> Test</label>}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1862,7 +1986,7 @@ const Module_Editique = (props) => {
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{String(selected_convention_type) === "email" && <div>
|
{String(selected_convention_type) === "email" && <div>
|
||||||
|
|
||||||
|
@ -2178,14 +2302,14 @@ const Module_Editique = (props) => {
|
||||||
|
|
||||||
<div style={{ "width": "40%", "float": "right", "padding": "10px", "borderLeft": "3mm ridge rgba(211, 220, 50, .6)" }}>
|
<div style={{ "width": "40%", "float": "right", "padding": "10px", "borderLeft": "3mm ridge rgba(211, 220, 50, .6)" }}>
|
||||||
|
|
||||||
<nav style={{"width":"100%", "float":'left'}}>
|
<nav style={{ "width": "100%", "float": 'left' }}>
|
||||||
<nav style={{ float: "left", "width": '45%' }}> Traité <Button onClick={handleExpandClick}>
|
<nav style={{ float: "left", "width": '45%' }}> Traité <Button onClick={handleExpandClick}>
|
||||||
{expanded.length === 0 ? 'Voir tout' : 'Réduire'}
|
{expanded.length === 0 ? 'Voir tout' : 'Réduire'}
|
||||||
</Button>
|
</Button>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<nav style={{ float: "right", "width": '45%' }}> Non Traité
|
<nav style={{ float: "right", "width": '45%' }}> Non Traité
|
||||||
<Button onClick={handleExpandClick_audit}>
|
<Button onClick={handleExpandClick_audit}>
|
||||||
{expanded_nom_traite.length === 0 ? 'Voir tout' : 'Réduire'}
|
{expanded_nom_traite.length === 0 ? 'Voir tout' : 'Réduire'}
|
||||||
</Button>
|
</Button>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -2256,7 +2380,7 @@ const Module_Editique = (props) => {
|
||||||
boxShadow: 1,
|
boxShadow: 1,
|
||||||
borderRadius: 2,
|
borderRadius: 2,
|
||||||
bgcolor: "#fee347",
|
bgcolor: "#fee347",
|
||||||
textAlign:"right"
|
textAlign: "right"
|
||||||
}}>
|
}}>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,14 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
const [lundi_is_offday, setlundi_is_offday] = React.useState(false);
|
||||||
|
const [mardi_is_offday, setmardi_is_offday] = React.useState(false);
|
||||||
|
const [mercredi_is_offday, setmercredi_is_offday] = React.useState(false);
|
||||||
|
const [jeudi_is_offday, setjeudi_is_offday] = React.useState(false);
|
||||||
|
const [vendredi_is_offday, setvendredi_is_offday] = React.useState(false);
|
||||||
|
const [samedi_is_offday, setsamedi_is_offday] = React.useState(false);
|
||||||
|
const [dimanche_is_offday, setdimanche_is_offday] = React.useState(false);
|
||||||
|
|
||||||
|
|
||||||
const myRef = useRef(null)
|
const myRef = useRef(null)
|
||||||
|
|
||||||
|
@ -700,13 +708,21 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
'heure_debut': String(sequence_from),
|
'heure_debut': String(sequence_from),
|
||||||
'heure_fin': String(sequence_to),
|
'heure_fin': String(sequence_to),
|
||||||
}
|
}
|
||||||
|
|
||||||
data_lundi['tab_sequence'].push(json_lundi)
|
data_lundi['tab_sequence'].push(json_lundi)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
var local_lundi_is_offday = "0"
|
||||||
|
if (lundi_is_offday === true)
|
||||||
|
local_lundi_is_offday = "1"
|
||||||
|
|
||||||
|
data_lundi['is_off_day'] = String(local_lundi_is_offday)
|
||||||
|
|
||||||
|
|
||||||
//data_lundi['tab_sequence'].push(tab_sequence_lundi)
|
//data_lundi['tab_sequence'].push(tab_sequence_lundi)
|
||||||
|
@ -755,64 +771,13 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
data_mardi['tab_sequence'].push(json_mardi)
|
data_mardi['tab_sequence'].push(json_mardi)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var local_mardi_is_offday = "0"
|
||||||
|
if (mardi_is_offday === true)
|
||||||
|
local_mardi_is_offday = "1"
|
||||||
|
|
||||||
//data_mardi['tab_sequence'].push(tab_sequence_mardi)
|
data_mardi['is_off_day'] = String(local_mardi_is_offday)
|
||||||
// console.log(" tab_sequence_mardi = ", data_mardi);
|
|
||||||
|
|
||||||
|
|
||||||
/*** début traitement des données du mardi */
|
|
||||||
var data_mardi = {}
|
|
||||||
data_mardi['jour'] = "mardi";
|
|
||||||
data_mardi['tab_sequence'] = []
|
|
||||||
|
|
||||||
var tab_sequence_mardi = []
|
|
||||||
|
|
||||||
for (let i = 1; i <= parseInt(String(nb_sequence_mardi)); i++) {
|
|
||||||
|
|
||||||
var name_racine_from = "mardi_seq_from_" + String(i);
|
|
||||||
var name_racine_to = "mardi_seq_to_" + String(i);
|
|
||||||
|
|
||||||
var local_val = {};
|
|
||||||
|
|
||||||
|
|
||||||
if (document.getElementsByName(name_racine_from)[0] && document.getElementsByName(name_racine_to)[0]) {
|
|
||||||
var sequence_from = document.getElementsByName(name_racine_from)[0].value;
|
|
||||||
var sequence_to = document.getElementsByName(name_racine_to)[0].value;
|
|
||||||
|
|
||||||
if (sequence_from === undefined || String(sequence_from) === ""
|
|
||||||
|| sequence_to === undefined || String(sequence_to) === "") {
|
|
||||||
console.log(" Les heures du mardi sont incorrectes");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var work_sequence_from = parseInt(String(sequence_from).replaceAll(":", ''))
|
|
||||||
var work_sequence_to = parseInt(String(sequence_to).replaceAll(":", ''))
|
|
||||||
|
|
||||||
|
|
||||||
if (work_sequence_from >= work_sequence_to) {
|
|
||||||
console.log(" Les heures du mardi sont incorrectes. L'heure de fin de séquence doit être antérieure à l'heure de début de séquence");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var json_mardi = {
|
|
||||||
'heure_debut': String(sequence_from),
|
|
||||||
'heure_fin': String(sequence_to),
|
|
||||||
}
|
|
||||||
|
|
||||||
data_mardi['tab_sequence'].push(json_mardi)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//data_mardi['tab_sequence'].push(tab_sequence_mardi)
|
|
||||||
// console.log(" tab_sequence_mardi = ", data_mardi);
|
|
||||||
|
|
||||||
|
|
||||||
/*** début traitement des données du mercredi */
|
/*** début traitement des données du mercredi */
|
||||||
|
@ -856,11 +821,16 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
data_mercredi['tab_sequence'].push(json_mercredi)
|
data_mercredi['tab_sequence'].push(json_mercredi)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
var local_mercredi_is_offday = "0"
|
||||||
|
if (mercredi_is_offday === true)
|
||||||
|
local_mercredi_is_offday = "1"
|
||||||
|
|
||||||
|
data_mercredi['is_off_day'] = String(local_mercredi_is_offday)
|
||||||
|
|
||||||
//data_mercredi['tab_sequence'].push(tab_sequence_mercredi)
|
//data_mercredi['tab_sequence'].push(tab_sequence_mercredi)
|
||||||
// console.log(" tab_sequence_mercredi = ", data_mercredi);
|
// console.log(" tab_sequence_mercredi = ", data_mercredi);
|
||||||
|
@ -907,11 +877,17 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
data_jeudi['tab_sequence'].push(json_jeudi)
|
data_jeudi['tab_sequence'].push(json_jeudi)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
var local_jeudi_is_offday = "0"
|
||||||
|
if (jeudi_is_offday === true)
|
||||||
|
local_jeudi_is_offday = "1"
|
||||||
|
|
||||||
|
data_jeudi['is_off_day'] = String(local_jeudi_is_offday)
|
||||||
|
|
||||||
//data_jeudi['tab_sequence'].push(tab_sequence_jeudi)
|
//data_jeudi['tab_sequence'].push(tab_sequence_jeudi)
|
||||||
// console.log(" tab_sequence_jeudi = ", data_jeudi);
|
// console.log(" tab_sequence_jeudi = ", data_jeudi);
|
||||||
|
@ -958,12 +934,19 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
data_vendredi['tab_sequence'].push(json_vendredi)
|
data_vendredi['tab_sequence'].push(json_vendredi)
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var local_vendredi_is_offday = "0"
|
||||||
|
if (vendredi_is_offday === true)
|
||||||
|
local_vendredi_is_offday = "1"
|
||||||
|
|
||||||
|
data_vendredi['is_off_day'] = String(local_vendredi_is_offday)
|
||||||
|
|
||||||
//data_vendredi['tab_sequence'].push(tab_sequence_vendredi)
|
//data_vendredi['tab_sequence'].push(tab_sequence_vendredi)
|
||||||
// console.log(" tab_sequence_vendredi = ", data_vendredi);
|
// console.log(" tab_sequence_vendredi = ", data_vendredi);
|
||||||
|
|
||||||
|
@ -1008,14 +991,19 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
data_samedi['tab_sequence'].push(json_samedi)
|
data_samedi['tab_sequence'].push(json_samedi)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
var local_samedi_is_offday = "0"
|
||||||
|
if (samedi_is_offday === true)
|
||||||
|
local_samedi_is_offday = "1"
|
||||||
|
|
||||||
|
data_samedi['is_off_day'] = String(local_samedi_is_offday)
|
||||||
|
|
||||||
|
|
||||||
//data_samedi['tab_sequence'].push(tab_sequence_samedi)
|
//data_samedi['tab_sequence'].push(tab_sequence_samedi)
|
||||||
// console.log(" tab_sequence_samedi = ", data_samedi);
|
console.log(" tab_sequence_samedi = ", data_samedi);
|
||||||
|
|
||||||
/*** début traitement des données du dimanche */
|
/*** début traitement des données du dimanche */
|
||||||
var data_dimanche = {}
|
var data_dimanche = {}
|
||||||
|
@ -1058,10 +1046,15 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
data_dimanche['tab_sequence'].push(json_dimanche)
|
data_dimanche['tab_sequence'].push(json_dimanche)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
var local_dimanche_is_offday = "0"
|
||||||
|
if (dimanche_is_offday === true)
|
||||||
|
local_dimanche_is_offday = "1"
|
||||||
|
|
||||||
|
data_dimanche['is_off_day'] = String(local_dimanche_is_offday)
|
||||||
|
|
||||||
|
|
||||||
//data_dimanche['tab_sequence'].push(tab_sequence_dimanche)
|
//data_dimanche['tab_sequence'].push(tab_sequence_dimanche)
|
||||||
|
@ -1099,6 +1092,8 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Recupération de plage de journée pour les planning
|
||||||
if (document.getElementsByName("planning_debut_journee")[0] && document.getElementsByName("planning_fin_journee")[0]) {
|
if (document.getElementsByName("planning_debut_journee")[0] && document.getElementsByName("planning_fin_journee")[0]) {
|
||||||
var debut_journee_value = document.getElementsByName("planning_debut_journee")[0].value;
|
var debut_journee_value = document.getElementsByName("planning_debut_journee")[0].value;
|
||||||
var fin_journee_value = document.getElementsByName("planning_fin_journee")[0].value;
|
var fin_journee_value = document.getElementsByName("planning_fin_journee")[0].value;
|
||||||
|
@ -1106,6 +1101,7 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
if (debut_journee_value === undefined || String(debut_journee_value) === ""
|
if (debut_journee_value === undefined || String(debut_journee_value) === ""
|
||||||
|| fin_journee_value === undefined || String(fin_journee_value) === "") {
|
|| fin_journee_value === undefined || String(fin_journee_value) === "") {
|
||||||
console.log(" Les heures de début et de fin de journée (planning) sont incorrectes");
|
console.log(" Les heures de début et de fin de journée (planning) sont incorrectes");
|
||||||
|
alert(" Les heures de début et de fin de journée (planning) sont incorrectes");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1115,6 +1111,8 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
if (work_debut_journee_value >= work_fin_journee_value) {
|
if (work_debut_journee_value >= work_fin_journee_value) {
|
||||||
console.log(" Les heures de début et de fin de journée (planning) sont incorrectes. L'heure de fin de journée doit être antérieure à l'heure de début de journée");
|
console.log(" Les heures de début et de fin de journée (planning) sont incorrectes. L'heure de fin de journée doit être antérieure à l'heure de début de journée");
|
||||||
|
alert(" Les heures de début et de fin de journée (planning) sont incorrectes. L'heure de fin de journée doit être antérieure à l'heure de début de journée");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1123,12 +1121,73 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
'planning_fin_journee': String(fin_journee_value),
|
'planning_fin_journee': String(fin_journee_value),
|
||||||
}
|
}
|
||||||
|
|
||||||
global_partner_working_hours['debut_fin_journee'] = json_journee_travaille
|
global_partner_working_hours['debut_fin_journee'] = json_journee_travaille
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Recupération du decoupage de la matinée et de l'apres midi
|
||||||
|
if (document.getElementsByName("planning_debut_matinee")[0] && document.getElementsByName("planning_fin_matinee")[0]
|
||||||
|
&& document.getElementsByName("planning_debut_apres_midi")[0] && document.getElementsByName("planning_fin_apres_midi")[0]) {
|
||||||
|
|
||||||
|
var planning_debut_matinee = document.getElementsByName("planning_debut_matinee")[0].value;
|
||||||
|
var planning_fin_matinee = document.getElementsByName("planning_fin_matinee")[0].value;
|
||||||
|
|
||||||
|
var planning_debut_apres_midi = document.getElementsByName("planning_debut_apres_midi")[0].value;
|
||||||
|
var planning_fin_apres_midi = document.getElementsByName("planning_fin_apres_midi")[0].value;
|
||||||
|
|
||||||
|
|
||||||
|
if (planning_debut_matinee === undefined || String(planning_debut_matinee) === ""
|
||||||
|
|| planning_fin_matinee === undefined || String(planning_fin_matinee) === ""
|
||||||
|
|| planning_debut_apres_midi === undefined || String(planning_debut_apres_midi) === ""
|
||||||
|
|| planning_fin_apres_midi === undefined || String(planning_fin_apres_midi) === ""
|
||||||
|
|
||||||
|
) {
|
||||||
|
console.log(" La définition des horaires de 'Matinée' et 'Après Midi' sont incorrectes");
|
||||||
|
alert(" La définition des horaires de 'Matinée' et 'Après Midi' sont incorrectes");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var work_planning_debut_matinee_value = parseInt(String(planning_debut_matinee).replaceAll(":", ''));
|
||||||
|
var work_planning_fin_matinee_value = parseInt(String(planning_fin_matinee).replaceAll(":", ''));
|
||||||
|
|
||||||
|
var work_planning_debut_apres_midi_value = parseInt(String(planning_debut_apres_midi).replaceAll(":", ''));
|
||||||
|
var work_planning_fin_apres_midi_value = parseInt(String(planning_fin_apres_midi).replaceAll(":", ''));
|
||||||
|
|
||||||
|
|
||||||
|
if (work_planning_debut_matinee_value >= work_planning_fin_matinee_value) {
|
||||||
|
console.log(" Les heures de début et de fin de 'Matinée' sont incorrectes");
|
||||||
|
alert(" Les heures de début et de fin de 'Matinée' sont incorrectes");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (work_planning_debut_apres_midi_value >= work_planning_fin_apres_midi_value) {
|
||||||
|
console.log(" Les heures de début et de fin de 'Après Midi' sont incorrectes");
|
||||||
|
alert(" Les heures de début et de fin de 'Après Midi' sont incorrectes");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (work_planning_debut_apres_midi_value <= work_planning_fin_matinee_value) {
|
||||||
|
console.log(" Vous devez mettre un temps de pause entre la Matinée et l'Après Midi ");
|
||||||
|
alert(" Vous devez mettre un temps de pause entre la Matinée et l'Après Midi");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var json_decoupage_journee = {
|
||||||
|
'matinee_debut': String(planning_debut_matinee),
|
||||||
|
'matinee_fin': String(planning_fin_matinee),
|
||||||
|
'apres_midi_debut': String(planning_debut_apres_midi),
|
||||||
|
'apres_midi_fin': String(planning_fin_apres_midi),
|
||||||
|
}
|
||||||
|
|
||||||
|
global_partner_working_hours['decoupage_journee'] = json_decoupage_journee
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var json_str = JSON.stringify(global_partner_working_hours)
|
var json_str = JSON.stringify(global_partner_working_hours)
|
||||||
|
|
||||||
|
@ -1490,14 +1549,34 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
Get_working_Setup_With_arg(line);
|
Get_working_Setup_With_arg(line);
|
||||||
|
|
||||||
if (String(JSON.parse(res.data.message).debut_fin_journee.planning_debut_journee) ) {
|
if (String(JSON.parse(res.data.message).debut_fin_journee.planning_debut_journee)) {
|
||||||
document.getElementById("planning_debut_journee").value = String(JSON.parse(res.data.message).debut_fin_journee.planning_debut_journee);
|
document.getElementById("planning_debut_journee").value = String(JSON.parse(res.data.message).debut_fin_journee.planning_debut_journee);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (String(JSON.parse(res.data.message).debut_fin_journee.planning_fin_journee) ) {
|
if (String(JSON.parse(res.data.message).debut_fin_journee.planning_fin_journee)) {
|
||||||
document.getElementById("planning_fin_journee").value = String(JSON.parse(res.data.message).debut_fin_journee.planning_fin_journee);
|
document.getElementById("planning_fin_journee").value = String(JSON.parse(res.data.message).debut_fin_journee.planning_fin_journee);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Recup des données de decoupage d'une journée (matinée - apres midi)
|
||||||
|
if (JSON.parse(res.data.message).decoupage_journee) {
|
||||||
|
if (String(JSON.parse(res.data.message).decoupage_journee.matinee_debut)) {
|
||||||
|
document.getElementById("planning_debut_matinee").value = String(JSON.parse(res.data.message).decoupage_journee.matinee_debut);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (String(JSON.parse(res.data.message).decoupage_journee.matinee_fin)) {
|
||||||
|
document.getElementById("planning_fin_matinee").value = String(JSON.parse(res.data.message).decoupage_journee.matinee_fin);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (String(JSON.parse(res.data.message).decoupage_journee.apres_midi_debut)) {
|
||||||
|
document.getElementById("planning_debut_apres_midi").value = String(JSON.parse(res.data.message).decoupage_journee.apres_midi_debut);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (String(JSON.parse(res.data.message).decoupage_journee.apres_midi_fin)) {
|
||||||
|
document.getElementById("planning_fin_apres_midi").value = String(JSON.parse(res.data.message).decoupage_journee.apres_midi_fin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setGetall_Default_Model_Journee_api("false");
|
setGetall_Default_Model_Journee_api("false");
|
||||||
|
@ -1520,36 +1599,67 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
*/
|
*/
|
||||||
var data_lundi = json_test.lundi;
|
var data_lundi = json_test.lundi;
|
||||||
var nb_sequen_lundi = json_test.lundi.tab_sequence.length;
|
var nb_sequen_lundi = json_test.lundi.tab_sequence.length;
|
||||||
|
|
||||||
setnb_sequence_lundi(String(nb_sequen_lundi));
|
setnb_sequence_lundi(String(nb_sequen_lundi));
|
||||||
|
if (json_test.lundi.is_off_day === "1")
|
||||||
|
setlundi_is_offday(true)
|
||||||
|
else
|
||||||
|
setlundi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var data_mardi = json_test.mardi;
|
var data_mardi = json_test.mardi;
|
||||||
var nb_sequen_mardi = json_test.mardi.tab_sequence.length;
|
var nb_sequen_mardi = json_test.mardi.tab_sequence.length;
|
||||||
setnb_sequence_mardi(String(nb_sequen_mardi));
|
setnb_sequence_mardi(String(nb_sequen_mardi));
|
||||||
|
if (json_test.mardi.is_off_day === "1")
|
||||||
|
setmardi_is_offday(true)
|
||||||
|
else
|
||||||
|
setmardi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
var data_mercredi = json_test.mercredi;
|
var data_mercredi = json_test.mercredi;
|
||||||
var nb_sequen_mercredi = json_test.mercredi.tab_sequence.length;
|
var nb_sequen_mercredi = json_test.mercredi.tab_sequence.length;
|
||||||
setnb_sequence_mercredi(String(nb_sequen_mercredi));
|
setnb_sequence_mercredi(String(nb_sequen_mercredi));
|
||||||
|
if (json_test.mercredi.is_off_day === "1")
|
||||||
|
setmercredi_is_offday(true)
|
||||||
|
else
|
||||||
|
setmercredi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
var data_jeudi = json_test.jeudi;
|
var data_jeudi = json_test.jeudi;
|
||||||
var nb_sequen_jeudi = json_test.jeudi.tab_sequence.length;
|
var nb_sequen_jeudi = json_test.jeudi.tab_sequence.length;
|
||||||
setnb_sequence_jeudi(String(nb_sequen_jeudi));
|
setnb_sequence_jeudi(String(nb_sequen_jeudi));
|
||||||
|
if (json_test.jeudi.is_off_day === "1")
|
||||||
|
setjeudi_is_offday(true)
|
||||||
|
else
|
||||||
|
setjeudi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
var data_vendredi = json_test.vendredi;
|
var data_vendredi = json_test.vendredi;
|
||||||
var nb_sequen_vendredi = json_test.vendredi.tab_sequence.length;
|
var nb_sequen_vendredi = json_test.vendredi.tab_sequence.length;
|
||||||
setnb_sequence_vendredi(String(nb_sequen_vendredi));
|
setnb_sequence_vendredi(String(nb_sequen_vendredi));
|
||||||
|
if (json_test.vendredi.is_off_day === "1")
|
||||||
|
setvendredi_is_offday(true)
|
||||||
|
else
|
||||||
|
setvendredi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
var data_samedi = json_test.samedi;
|
var data_samedi = json_test.samedi;
|
||||||
var nb_sequen_samedi = json_test.samedi.tab_sequence.length;
|
var nb_sequen_samedi = json_test.samedi.tab_sequence.length;
|
||||||
setnb_sequence_samedi(String(nb_sequen_samedi));
|
setnb_sequence_samedi(String(nb_sequen_samedi));
|
||||||
|
if (json_test.samedi.is_off_day === "1")
|
||||||
|
setsamedi_is_offday(true)
|
||||||
|
else
|
||||||
|
setsamedi_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
var data_dimanche = json_test.dimanche;
|
var data_dimanche = json_test.dimanche;
|
||||||
var nb_sequen_dimanche = json_test.dimanche.tab_sequence.length;
|
var nb_sequen_dimanche = json_test.dimanche.tab_sequence.length;
|
||||||
setnb_sequence_dimanche(String(nb_sequen_dimanche));
|
setnb_sequence_dimanche(String(nb_sequen_dimanche));
|
||||||
|
if (json_test.dimanche.is_off_day === "1")
|
||||||
|
setdimanche_is_offday(true)
|
||||||
|
else
|
||||||
|
setdimanche_is_offday(false)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1734,6 +1844,7 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
Getall_Default_Model_Journee();
|
Getall_Default_Model_Journee();
|
||||||
|
setdata_chanded("0");
|
||||||
|
|
||||||
window.scrollTo({
|
window.scrollTo({
|
||||||
top: 0,
|
top: 0,
|
||||||
|
@ -1744,8 +1855,11 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
const [gridline_id, setgridline_id] = useState("");
|
const [gridline_id, setgridline_id] = useState("");
|
||||||
|
|
||||||
|
const [data_chanded, setdata_chanded] = useState("0");
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="partner_configuration_jours_travail">
|
<div className="partner_configuration_jours_travail" >
|
||||||
{isLoading && <div className="loader-container">
|
{isLoading && <div className="loader-container">
|
||||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||||
</div>}
|
</div>}
|
||||||
|
@ -1801,11 +1915,13 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
)}
|
)}
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
|
data_chanded = {data_chanded}
|
||||||
{/*<Button variant="contained" className="bton_enreg" onClick={Get_working_Setup}>test affichage
|
{/*<Button variant="contained" className="bton_enreg" onClick={Get_working_Setup}>test affichage
|
||||||
</Button>*/}
|
</Button>*/}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<table style={{ "border": "1px solid", "width": "95%" }}>
|
<table style={{ "border": "1px solid", "width": "95%" }}
|
||||||
|
>
|
||||||
|
|
||||||
<thead >
|
<thead >
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -1825,10 +1941,15 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Lundi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Lundi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={lundi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (lundi_is_offday === false)
|
||||||
|
setlundi_is_offday(true)
|
||||||
|
else
|
||||||
|
setlundi_is_offday(false)
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="div_row" style={{ "textAlign": "left" }}>
|
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||||
|
@ -1845,9 +1966,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Mardi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Mardi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={mardi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (mardi_is_offday === false)
|
||||||
|
setmardi_is_offday(true)
|
||||||
|
else
|
||||||
|
setmardi_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1867,9 +1991,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Mercredi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Mercredi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={mercredi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (mercredi_is_offday === false)
|
||||||
|
setmercredi_is_offday(true)
|
||||||
|
else
|
||||||
|
setmercredi_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1889,9 +2016,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Jeudi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Jeudi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={jeudi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (jeudi_is_offday === false)
|
||||||
|
setjeudi_is_offday(true)
|
||||||
|
else
|
||||||
|
setjeudi_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1911,9 +2041,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> vendredi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> vendredi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={vendredi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (vendredi_is_offday === false)
|
||||||
|
setvendredi_is_offday(true)
|
||||||
|
else
|
||||||
|
setvendredi_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1933,9 +2066,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Samedi </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Samedi </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={samedi_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (samedi_is_offday === false)
|
||||||
|
setsamedi_is_offday(true)
|
||||||
|
else
|
||||||
|
setsamedi_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1955,9 +2091,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
<tr>
|
<tr>
|
||||||
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
<td style={{ "border": "1px solid", "width": "10%", "paddingLeft": "10px" }} >
|
||||||
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Dimanche </div>
|
<div className="div_row" style={{ "textAlign": "left", "fontWeight": "bold" }}> Dimanche </div>
|
||||||
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox />} label=" Jour Off"
|
<div className="div_row" style={{ "textAlign": "left", "paddingLeft": "10px" }}> <FormControlLabel control={<Checkbox checked={dimanche_is_offday} />} label=" Jour Off"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
if (dimanche_is_offday === false)
|
||||||
|
setdimanche_is_offday(true)
|
||||||
|
else
|
||||||
|
setdimanche_is_offday(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1982,6 +2121,123 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
|
|
||||||
<div className="div_row" > </div>
|
<div className="div_row" > </div>
|
||||||
|
|
||||||
|
<div className="div_row" onChange={(event, value) => {
|
||||||
|
setdata_chanded("1");
|
||||||
|
}}>
|
||||||
|
<table style={{ "border": "1px solid", "width": "95%" }}>
|
||||||
|
|
||||||
|
<thead >
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" style={{ "background": "#EAECEE", "textAlign": "center" }}>
|
||||||
|
Découpage horaires journée (matinée & après midi)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td style={{ "border": "1px solid", "width": "10%" }} >
|
||||||
|
|
||||||
|
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||||
|
<Button > Matinée</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td style={{ "border": "1px solid", "width": "50%" }}>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="planning_debut_matinee"
|
||||||
|
id="planning_debut_matinee"
|
||||||
|
type="time"
|
||||||
|
label="Du (hh:mm) "
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td style={{ "border": "1px solid", "width": "50%" }}>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="planning_fin_matinee"
|
||||||
|
id="planning_fin_matinee"
|
||||||
|
type="time"
|
||||||
|
label="Au (hh:mm) "
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ "border": "1px solid", "width": "10%" }} >
|
||||||
|
|
||||||
|
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||||
|
<Button > Après Midi</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td style={{ "border": "1px solid", "width": "50%" }}>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="planning_debut_apres_midi"
|
||||||
|
id="planning_debut_apres_midi"
|
||||||
|
type="time"
|
||||||
|
label="Du (hh:mm) "
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td style={{ "border": "1px solid", "width": "50%" }}>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="planning_fin_apres_midi"
|
||||||
|
id="planning_fin_apres_midi"
|
||||||
|
type="time"
|
||||||
|
label="Au (hh:mm) "
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="div_row" > </div>
|
||||||
|
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<table style={{ "border": "1px solid", "width": "95%" }}>
|
<table style={{ "border": "1px solid", "width": "95%" }}>
|
||||||
|
|
||||||
|
@ -2048,6 +2304,8 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div className="div_row" > </div>
|
<div className="div_row" > </div>
|
||||||
|
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
|
|
|
@ -1430,7 +1430,7 @@ const Partner_Configuration_Technique = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [handleClick_delete_CRM_Opport_api, sethandleClick_delete_CRM_Opport_api] = useState();
|
const [handleClick_delete_CRM_Opport_api, sethandleClick_delete_CRM_Opport_api] = useState();
|
||||||
const [handleClick_delete_CRM_Opport_message, sethandleClick_delete_CRM_Opport_message] = useState();
|
const [handleClick_delete_CRM_Opport_message, sethandleClick_delete_CRM_Opport_message] = useState();
|
||||||
const [handleClick_delete_CRM_Opport_result, sethandleClick_delete_CRM_Opport_result] = useState();
|
const [handleClick_delete_CRM_Opport_result, sethandleClick_delete_CRM_Opport_result] = useState();
|
||||||
|
@ -1488,6 +1488,7 @@ const Partner_Configuration_Technique = (props) => {
|
||||||
{ "id": "partner_smtp", "label": "partner_smtp", "value": "partner_smtp" },
|
{ "id": "partner_smtp", "label": "partner_smtp", "value": "partner_smtp" },
|
||||||
{ "id": "partner_jour_heure", "label": "partner_jour_heure", "value": "partner_jour_heure" },
|
{ "id": "partner_jour_heure", "label": "partner_jour_heure", "value": "partner_jour_heure" },
|
||||||
{ "id": "partner_devise", "label": "partner_devise", "value": "partner_devise" },
|
{ "id": "partner_devise", "label": "partner_devise", "value": "partner_devise" },
|
||||||
|
{ "id": "signature_digital", "label": "signature_digital", "value": "signature_digital" },
|
||||||
{ "id": "", "label": "", "value": "" },
|
{ "id": "", "label": "", "value": "" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1584,7 +1585,7 @@ const Partner_Configuration_Technique = (props) => {
|
||||||
form.append("code", p_detail_crm_opport_code);
|
form.append("code", p_detail_crm_opport_code);
|
||||||
form.append("description", p_detail_crm_opport_description);
|
form.append("description", p_detail_crm_opport_description);
|
||||||
form.append("rang", p_detail_crm_opport_rang);
|
form.append("rang", p_detail_crm_opport_rang);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Il s'agit d'une creation
|
// Il s'agit d'une creation
|
||||||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_CRM_Opportunite_Etape/";
|
myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_CRM_Opportunite_Etape/";
|
||||||
|
@ -2462,6 +2463,11 @@ const Partner_Configuration_Technique = (props) => {
|
||||||
value={New_Config_Point.filter((data) => (data).label === String(p_detail_config_point))[0].label}
|
value={New_Config_Point.filter((data) => (data).label === String(p_detail_config_point))[0].label}
|
||||||
options={New_Config_Point}
|
options={New_Config_Point}
|
||||||
onChange={(event, value) => {
|
onChange={(event, value) => {
|
||||||
|
|
||||||
|
if (value && value.value && value.value === "signature_digital") {
|
||||||
|
alert(" Vos droits d'accès ne vous permettent pas modifier la configuration : 'signature_digital'");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (value && value.value) {
|
if (value && value.value) {
|
||||||
setp_detail_config_point(value.value);
|
setp_detail_config_point(value.value);
|
||||||
setConfig_data_changed("1");
|
setConfig_data_changed("1");
|
||||||
|
@ -2516,8 +2522,10 @@ const Partner_Configuration_Technique = (props) => {
|
||||||
className="disabled_style"
|
className="disabled_style"
|
||||||
value={p_detail_config_valeur}
|
value={p_detail_config_valeur}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setp_detail_config_valeur(e.target.value);
|
if (String(p_detail_config_point) !== "signature_digital") {
|
||||||
setConfig_data_changed("1");
|
setp_detail_config_valeur(e.target.value);
|
||||||
|
setConfig_data_changed("1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
Loading…
Reference in New Issue