diff --git a/src/components/Crm_Opportunite.js b/src/components/Crm_Opportunite.js index 8e61448..dc8f767 100644 --- a/src/components/Crm_Opportunite.js +++ b/src/components/Crm_Opportunite.js @@ -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) => { + + + + +
Priorité  
+
Commentaire + { + setp_detail_commentaire(e.target.value); + setopport_changed("1"); + } + } + /> + +
+
Vendeur
diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 37a0af0..be4c279 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -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) => , }, + { field: 'sequence_end', headerName: 'Fin', width: 70, flex: 1, renderCell: (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) => ,}, + { field: 'nom', headerName: 'nom', minWidth: 150, flex: 1 , hide: false, editable: true , renderCell: (params) => ,}, + { field: 'prenom', headerName: 'prenom', minWidth: 150, flex: 1 ,hide: false, editable: false, renderCell: (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 ( + +
+ {String(cellValues.row.date_envoi).substring(0, 16)} +
+ + ); + }, + }, + { field: 'date_emargement', headerName: 'Émargé le', width: 180, hide: true, editable: false, + renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.date_emargement).substring(0, 16)} +
+ + ); + }, + }, { 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) => }, - { field: 'nom', headerName: 'nom', width: 200, hide: false, editable: true, renderCell: (params) => }, - { field: 'prenom', headerName: 'prenom', width: 200, hide: false, editable: false, renderCell: (params) => }, + { field: 'email', headerName: 'email', miniWidth: 300, flex:1, hideable: true, resizable: true, renderCell: (params) => }, + { field: 'nom', headerName: 'nom', miniWidth: 200, hide: false, flex:1, editable: true, renderCell: (params) => }, + { field: 'prenom', headerName: 'prenom', miniWidth: 200, hide: false, flex:1,editable: false, renderCell: (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 (
@@ -9767,6 +9817,75 @@ const DisplayPartnerSession = (props) => {
} + + {/* Dialgue pour le choix du modele de sequene (la journée, 1/2 journée, etc*/} + + + + + Choisir une modèle de séquence + + + {Dialog_seq_choix_model_emargement_message} + + + +
Source + { + if (value && value.value) { + + setDialog_seq_choix_model_emargement(value.value); + } + + }} + + renderInput={(params) => + } + /> + + +
+ + + + +
+ + + + +
+
+ + + +
+ +
+ +
+
+ +
+ + +
+ + + {/*** fin dialog choix modele sequence */} { renderInput={(params) => } /> - {/* { - setDialog_seq_ressource_1_selected_type_ressource(e.target.value); - } - } - - > - - Employé   - Materiel   - */}
@@ -10205,32 +10305,7 @@ const DisplayPartnerSession = (props) => { } /> - {/* { - - setDialog_seq_ressource_1_selected_ressource_id(e.target.value); - } - } - - > - {Getall_Training_Employee_No_Filter_result && - Getall_Training_Employee_No_Filter_result.map((myclient) => ( - - {JSON.parse(myclient).nom}  {JSON.parse(myclient).prenom} - - - ))} - */} } @@ -10256,32 +10331,7 @@ const DisplayPartnerSession = (props) => { renderInput={(params) => } /> - {/* { - - setDialog_seq_ressource_1_selected_ressource_id(e.target.value); - } - } - - > - {Getall_Training_Materiel_No_Filter_result && - Getall_Training_Materiel_No_Filter_result.map((myclient) => ( - - {JSON.parse(myclient).nom}  - - - ))} - */} } @@ -13751,7 +13801,8 @@ const DisplayPartnerSession = (props) => {
@@ -14261,216 +14312,216 @@ const DisplayPartnerSession = (props) => {
}
- {String(addOneParticipant) !== "1" && -
-
- +
+ - { - 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, - }, - }} - /> - - - {selectionModel_preinsc && selectionModel_preinsc.length >= 1 && -
-
- -   - - { - if (String(value.value) === "valide_inscr" || String(value.value) === "refuse_inscr") { - setactionmass_preinsc_val(value.value); - } - else { - setactionmass_preinsc_val(); - } + }} + > + { + setselectionModel_preinsc(newSelectionModel); + //console.log("ch selected--" + newSelectionModel); }} + selectionModel={selectionModel_preinsc} - renderInput={(params) => ( + { + 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, + }, + }} /> -   - {actionmass_preinsc_val && - } + )} + + + } +
+ +
+ +
} +
+ + {String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url &&
+ + + + +
+ Télécharger un fichier modèle
-
+ {participant_file_name}
+ {String(liste_participants_file_change_api) === String("true") && } + {String(liste_participants_file_change_api) === String("false") && } -
} -
+ - {String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url &&
- - - -
- Télécharger un fichier modèle -
- - {participant_file_name}
- {String(liste_participants_file_change_api) === String("true") && } - {String(liste_participants_file_change_api) === String("false") && } - - +
} +
} - - - } - } @@ -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, } ))} diff --git a/src/components/ESign.js b/src/components/ESign.js index 8ad7812..2abaddb 100644 --- a/src/components/ESign.js +++ b/src/components/ESign.js @@ -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 (
@@ -386,7 +423,7 @@ function ESign() {
- +
@@ -443,16 +480,20 @@ function ESign() {

Signature Electronique

-
- Guide d'utilisation : -
    -
  • Etape 1
  • -
  • Etape 2
  • -
+
+
+
+ + + + + + +
-
- text d'explication +
+ {is_valide_e_document &&
@@ -465,6 +506,58 @@ function ESign() {
+
+
+ +
+ +
+
+
+ +
+
+
+ {} + + + {isimgclassSelected && String(isimgclassSaved) === "0" && } +
+ +
+ + +
+
+
+
+   +
diff --git a/src/components/Materiel_Salle.js b/src/components/Materiel_Salle.js index 66b12dc..fc7e22a 100644 --- a/src/components/Materiel_Salle.js +++ b/src/components/Materiel_Salle.js @@ -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); diff --git a/src/components/Module_Editique.js b/src/components/Module_Editique.js index 8f61097..6cfdd5b 100644 --- a/src/components/Module_Editique.js +++ b/src/components/Module_Editique.js @@ -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(); @@ -1569,7 +1634,7 @@ const Module_Editique = (props) => { } - + {String(selected_convention_type) === "email" &&
@@ -1695,6 +1760,8 @@ const Module_Editique = (props) => { {Dialog_1_message} + +
Type Document
{ } /> - -
+ {String(partner_digital_signature_status) === "1" && String(selected_convention_type) === "email" && } + + {String(partner_digital_signature_status) !== "1" && String(selected_convention_type) === "email" &&
Signature Digiale
+
+ + + + + + +
+ +
} + {(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") &&
Choisir une convention {
} - - {String(selected_convention_type) === "email" &&
Type Document
+ {/* + {String(selected_convention_type) === "email" &&
Type Document aa
{
} - {String(selected_convention_type) === "pdf" &&
Type Document
+ {String(selected_convention_type) === "pdf" &&
Type Document bb
{ />
} - + */} {String(selected_convention_type) === "email" &&
Adresse email de test { /> + {String(selected_convention_type) === "email" && }
} @@ -1862,7 +1986,7 @@ const Module_Editique = (props) => {
} - + {String(selected_convention_type) === "email" &&
@@ -2178,14 +2302,14 @@ const Module_Editique = (props) => {
-