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_telephone, setp_detail_contact_telephone] = useState();
|
||||
|
||||
|
||||
|
||||
const [p_detail_commentaire, setp_detail_commentaire] = useState();
|
||||
const [p_detail_vendeur_id, setp_detail_vendeur_id] = useState('');
|
||||
const [p_detail_statut, setp_detail_statut] = useState("");
|
||||
|
@ -1828,6 +1830,11 @@ const CRM_Opportunite = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > Priorité <br />
|
||||
<nav style={{ "float": "right", "width": "80%", "marginRight": "10%", "textAlign": "right" }}>
|
||||
<Rating
|
||||
|
@ -1868,6 +1875,26 @@ const CRM_Opportunite = (props) => {
|
|||
|
||||
</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 />
|
||||
|
||||
|
||||
|
|
|
@ -793,16 +793,16 @@ const DisplayPartnerSession = (props) => {
|
|||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 },
|
||||
{ field: 'sequence_start', headerName: 'Debut', width: 100, flex: 1 },
|
||||
{ field: 'sequence_end', headerName: 'Fin', width: 100, flex: 1 },
|
||||
{ field: 'is_present', headerName: 'Présent', width: 100, hide: false, editable: true, type: 'boolean', },
|
||||
{ field: 'sequence_start', headerName: 'Debut', width: 70, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'sequence_end', headerName: 'Fin', width: 70, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'is_present', headerName: 'Présent', width: 90, hide: false, editable: true, type: 'boolean', },
|
||||
|
||||
{ field: 'email', headerName: 'email', width: 250, flex: 1 },
|
||||
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
|
||||
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: false },
|
||||
{ field: 'email', headerName: 'email', minWidth: 300, flex: 1 , renderCell: (params) => <ExpandableCell_50 {...params} />,},
|
||||
{ field: 'nom', headerName: 'nom', minWidth: 150, flex: 1 , hide: false, editable: true , renderCell: (params) => <ExpandableCell_50 {...params} />,},
|
||||
{ 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) => {
|
||||
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',
|
||||
|
@ -842,9 +863,9 @@ const DisplayPartnerSession = (props) => {
|
|||
const columns_list_evaluation = [
|
||||
{ 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: 'nom', headerName: 'nom', width: 200, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} /> },
|
||||
{ field: 'prenom', headerName: 'prenom', width: 200, hide: false, editable: false, 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', miniWidth: 200, hide: false, flex:1, editable: true, 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,
|
||||
valueFormatter: (params) => {
|
||||
|
@ -8090,6 +8111,7 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append("token", stored_cookie);
|
||||
form.append("session_id", selected_session_id);
|
||||
form.append("jounree_modele_id", "");
|
||||
form.append("option", Dialog_seq_choix_model_emargement);
|
||||
|
||||
|
||||
//console.log(" form == ", form);
|
||||
|
@ -8117,10 +8139,11 @@ const DisplayPartnerSession = (props) => {
|
|||
setsequence_startDate();
|
||||
setsequence_endDate();
|
||||
|
||||
|
||||
setDialog_seq_choix_model_emargement_open(false);
|
||||
|
||||
alert(res.data.message);
|
||||
Close_Dialog_Detail_seq_open();
|
||||
|
||||
}
|
||||
else {
|
||||
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_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();
|
||||
|
@ -9460,7 +9505,11 @@ const DisplayPartnerSession = (props) => {
|
|||
{ "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 */
|
||||
const [selectionModel_evaluation, setSelectionModel_evaluation] = React.useState([]);
|
||||
|
@ -9759,6 +9808,7 @@ const DisplayPartnerSession = (props) => {
|
|||
setDialog_FACTURATION_FORMATION_open(false);
|
||||
};
|
||||
|
||||
const [Dialog_seq_choix_model_emargement, setDialog_seq_choix_model_emargement] = React.useState("0");
|
||||
|
||||
return (
|
||||
<div className="displaypartnersession">
|
||||
|
@ -9767,6 +9817,75 @@ const DisplayPartnerSession = (props) => {
|
|||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </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
|
||||
open={Dialog_1_open}
|
||||
onClose={Dialog_1_handleClose}
|
||||
|
@ -10160,26 +10279,7 @@ const DisplayPartnerSession = (props) => {
|
|||
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>
|
||||
|
||||
|
@ -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>
|
||||
}
|
||||
|
@ -10256,32 +10331,7 @@ const DisplayPartnerSession = (props) => {
|
|||
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>
|
||||
}
|
||||
|
@ -13751,7 +13801,8 @@ const DisplayPartnerSession = (props) => {
|
|||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
Add_Automatic_Sequence_Session();
|
||||
//Add_Automatic_Sequence_Session();
|
||||
setDialog_seq_choix_model_emargement_open(true);
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
|
@ -16494,6 +16545,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
statut: JSON.parse(item).statut,
|
||||
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("secret_key_signature", selected_e_doc_secret);
|
||||
form.append("email_destinataire", selected_e_doc_email);
|
||||
form.append('signature_img', isimgclassSelected);
|
||||
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
@ -248,6 +250,41 @@ function ESign() {
|
|||
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 (
|
||||
<div className="esign">
|
||||
|
@ -386,7 +423,7 @@ function ESign() {
|
|||
<DialogActions>
|
||||
<div className="div_row">
|
||||
<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 className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
<Button onClick={Dialog_1_handleClose_buton} className="bton_annule_dialog" >Annuler</Button>
|
||||
|
@ -443,16 +480,20 @@ function ESign() {
|
|||
<h3> Signature Electronique </h3>
|
||||
|
||||
<div className="div_row">
|
||||
<div style={{ width: "20%", "float": "left", minHeight: "40vh" }}>
|
||||
Guide d'utilisation :
|
||||
<ul>
|
||||
<li>Etape 1 </li>
|
||||
<li>Etape 2 </li>
|
||||
</ul>
|
||||
<div style={{ width: "20%", "float": "left", minHeight: "40vh", textAlign: "justify", padding: "15px" }}>
|
||||
<br />
|
||||
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "fontWeight": "700" }}> Guide d'utilisation : </nav><br />
|
||||
<nav>Pour vous permettre de signer électroniquement vos documents, MySy Training Technology met à disposition ce module. </nav>
|
||||
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "marginTop": "1rem", "fontWeight": "700" }}> Comment ça marche : </nav>
|
||||
<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 style={{ width: "78%", "float": "right", width:'300px', marginLeft:'auto' }}>
|
||||
text d'explication
|
||||
<div style={{ width: "78%", "float": "right", marginRight: "1%" }}>
|
||||
|
||||
{is_valide_e_document &&
|
||||
<div className="div_row">
|
||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
|
@ -465,6 +506,58 @@ function ESign() {
|
|||
</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 className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
|
|
|
@ -884,6 +884,7 @@ const Materiel_Salle = (props) => {
|
|||
setmateriel_data_changed("");
|
||||
setmateriel_data_edit_mode("");
|
||||
clean_detail_fields();
|
||||
setadd_One_Materiel("");
|
||||
|
||||
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 { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
|
||||
import { convertNwSeToNeSw } from "google-map-react";
|
||||
|
||||
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_message, setAction_Server_message] = useState();
|
||||
const [Action_Server_result, setAction_Server_result] = useState([]);
|
||||
|
@ -319,6 +378,7 @@ const Module_Editique = (props) => {
|
|||
|
||||
useEffect(() => {
|
||||
|
||||
Getall_Partner_Digital_Sign_Status();
|
||||
setselected_session_id(props.related_collection_recid);
|
||||
Getall_Editable_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_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
|
||||
form.append("file_business_object", "");
|
||||
var list_files = new FormData();
|
||||
|
@ -958,7 +1024,6 @@ const Module_Editique = (props) => {
|
|||
form.append("email_production", selected_convention_email_destinataire_prod);
|
||||
|
||||
|
||||
console.log("form === ", form);
|
||||
// pièce jointe
|
||||
form.append("file_business_object", "");
|
||||
var list_files = new FormData();
|
||||
|
@ -1695,6 +1760,8 @@ const Module_Editique = (props) => {
|
|||
{Dialog_1_message}
|
||||
</DialogContentText>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > Type Document<br />
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
@ -1718,10 +1785,51 @@ const Module_Editique = (props) => {
|
|||
}
|
||||
/>
|
||||
|
||||
</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
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
@ -1758,8 +1866,8 @@ const Module_Editique = (props) => {
|
|||
|
||||
</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
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
|
||||
|
||||
|
@ -1790,7 +1898,7 @@ const Module_Editique = (props) => {
|
|||
|
||||
</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
|
||||
|
@ -1804,13 +1912,13 @@ const Module_Editique = (props) => {
|
|||
/>
|
||||
|
||||
</div>}
|
||||
|
||||
*/}
|
||||
|
||||
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
|
||||
<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">
|
||||
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"
|
||||
id="event_dialog_email_test_convention"
|
||||
|
@ -1825,6 +1933,22 @@ const Module_Editique = (props) => {
|
|||
/>
|
||||
</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>
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
@ -700,13 +708,21 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
'heure_debut': String(sequence_from),
|
||||
'heure_fin': String(sequence_to),
|
||||
}
|
||||
|
||||
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)
|
||||
|
@ -755,64 +771,13 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
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)
|
||||
// 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);
|
||||
data_mardi['is_off_day'] = String(local_mardi_is_offday)
|
||||
|
||||
|
||||
/*** 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)
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
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)
|
||||
// console.log(" tab_sequence_mercredi = ", data_mercredi);
|
||||
|
@ -907,12 +877,18 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
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)
|
||||
// console.log(" tab_sequence_jeudi = ", data_jeudi);
|
||||
|
||||
|
@ -958,11 +934,18 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
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)
|
||||
// console.log(" tab_sequence_vendredi = ", data_vendredi);
|
||||
|
@ -1008,14 +991,19 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
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)
|
||||
// console.log(" tab_sequence_samedi = ", data_samedi);
|
||||
console.log(" tab_sequence_samedi = ", data_samedi);
|
||||
|
||||
/*** début traitement des données du dimanche */
|
||||
var data_dimanche = {}
|
||||
|
@ -1058,10 +1046,15 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
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)
|
||||
|
@ -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]) {
|
||||
var debut_journee_value = document.getElementsByName("planning_debut_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) === ""
|
||||
|| fin_journee_value === undefined || String(fin_journee_value) === "") {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1115,6 +1111,8 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
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");
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1128,6 +1126,67 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
}
|
||||
|
||||
|
||||
// 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)
|
||||
|
@ -1498,6 +1557,26 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
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 {
|
||||
setGetall_Default_Model_Journee_api("false");
|
||||
|
@ -1520,36 +1599,67 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
*/
|
||||
var data_lundi = json_test.lundi;
|
||||
var nb_sequen_lundi = json_test.lundi.tab_sequence.length;
|
||||
|
||||
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 nb_sequen_mardi = json_test.mardi.tab_sequence.length;
|
||||
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 nb_sequen_mercredi = json_test.mercredi.tab_sequence.length;
|
||||
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 nb_sequen_jeudi = json_test.jeudi.tab_sequence.length;
|
||||
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 nb_sequen_vendredi = json_test.vendredi.tab_sequence.length;
|
||||
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 nb_sequen_samedi = json_test.samedi.tab_sequence.length;
|
||||
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 nb_sequen_dimanche = json_test.dimanche.tab_sequence.length;
|
||||
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(() => {
|
||||
|
||||
Getall_Default_Model_Journee();
|
||||
setdata_chanded("0");
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
|
@ -1744,6 +1855,9 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
const [gridline_id, setgridline_id] = useState("");
|
||||
|
||||
const [data_chanded, setdata_chanded] = useState("0");
|
||||
|
||||
|
||||
return (
|
||||
<div className="partner_configuration_jours_travail" >
|
||||
{isLoading && <div className="loader-container">
|
||||
|
@ -1801,11 +1915,13 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
)}
|
||||
</Popup>
|
||||
|
||||
data_chanded = {data_chanded}
|
||||
{/*<Button variant="contained" className="bton_enreg" onClick={Get_working_Setup}>test affichage
|
||||
</Button>*/}
|
||||
|
||||
</div>
|
||||
<table style={{ "border": "1px solid", "width": "95%" }}>
|
||||
<table style={{ "border": "1px solid", "width": "95%" }}
|
||||
>
|
||||
|
||||
<thead >
|
||||
<tr>
|
||||
|
@ -1825,10 +1941,15 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
if (lundi_is_offday === false)
|
||||
setlundi_is_offday(true)
|
||||
else
|
||||
setlundi_is_offday(false)
|
||||
|
||||
}}
|
||||
|
||||
/>
|
||||
</div>
|
||||
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||
|
@ -1845,9 +1966,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (mardi_is_offday === false)
|
||||
setmardi_is_offday(true)
|
||||
else
|
||||
setmardi_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1867,9 +1991,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (mercredi_is_offday === false)
|
||||
setmercredi_is_offday(true)
|
||||
else
|
||||
setmercredi_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1889,9 +2016,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (jeudi_is_offday === false)
|
||||
setjeudi_is_offday(true)
|
||||
else
|
||||
setjeudi_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1911,9 +2041,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (vendredi_is_offday === false)
|
||||
setvendredi_is_offday(true)
|
||||
else
|
||||
setvendredi_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1933,9 +2066,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (samedi_is_offday === false)
|
||||
setsamedi_is_offday(true)
|
||||
else
|
||||
setsamedi_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1955,9 +2091,12 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
<tr>
|
||||
<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", "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) => {
|
||||
|
||||
if (dimanche_is_offday === false)
|
||||
setdimanche_is_offday(true)
|
||||
else
|
||||
setdimanche_is_offday(false)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
@ -1982,6 +2121,123 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
|
||||
<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">
|
||||
<table style={{ "border": "1px solid", "width": "95%" }}>
|
||||
|
||||
|
@ -2048,6 +2304,8 @@ const Partner_Configuration_Jours_Travail = (props) => {
|
|||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="div_row" > </div>
|
||||
|
||||
<div className="div_row">
|
||||
|
|
|
@ -1488,6 +1488,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
{ "id": "partner_smtp", "label": "partner_smtp", "value": "partner_smtp" },
|
||||
{ "id": "partner_jour_heure", "label": "partner_jour_heure", "value": "partner_jour_heure" },
|
||||
{ "id": "partner_devise", "label": "partner_devise", "value": "partner_devise" },
|
||||
{ "id": "signature_digital", "label": "signature_digital", "value": "signature_digital" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
@ -2462,6 +2463,11 @@ const Partner_Configuration_Technique = (props) => {
|
|||
value={New_Config_Point.filter((data) => (data).label === String(p_detail_config_point))[0].label}
|
||||
options={New_Config_Point}
|
||||
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) {
|
||||
setp_detail_config_point(value.value);
|
||||
setConfig_data_changed("1");
|
||||
|
@ -2516,10 +2522,12 @@ const Partner_Configuration_Technique = (props) => {
|
|||
className="disabled_style"
|
||||
value={p_detail_config_valeur}
|
||||
onChange={(e) => {
|
||||
if (String(p_detail_config_point) !== "signature_digital") {
|
||||
setp_detail_config_valeur(e.target.value);
|
||||
setConfig_data_changed("1");
|
||||
}
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>}
|
||||
|
||||
|
|
Loading…
Reference in New Issue