diff --git a/src/components/Config_Document.js b/src/components/Config_Document.js index 039e811..f1efd67 100644 --- a/src/components/Config_Document.js +++ b/src/components/Config_Document.js @@ -6,7 +6,7 @@ import Button from '@mui/material/Button'; import axios from "axios"; import { getCookie, setCookie } from 'react-use-cookie'; import { useHistory } from "react-router-dom"; - +import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid'; import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css"; import { Editor } from '@tinymce/tinymce-react'; @@ -27,6 +27,10 @@ import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogTitle from '@mui/material/DialogTitle'; import { HiOutlineDocumentDuplicate } from "react-icons/hi2"; +import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; +import { Fab } from "@material-ui/core"; +import fileDownload from 'js-file-download' +import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; const Config_Documents = (props) => { const history = useHistory(); @@ -72,9 +76,9 @@ const Config_Documents = (props) => { setduplicate_doc_type(); setDialog_duplicate_doc_open(true); - + setdocument_id_to_duplicate(cellValues.row._id); - + }}> Dupliquer @@ -238,8 +242,9 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); //console.log(" In Delete_Partner_Document_Data res.data.status = " + res.data.status); //console.log(" In Delete_Partner_Document_Data res.data.message r_class = " + res.data.message); @@ -276,7 +281,7 @@ const Config_Documents = (props) => { } }).catch((error) => { - + setLoading(false); console.warn('Delete_Partner_Document_Data : Not good man :( mysearchtext = ' + error); setDelete_Partner_Document_Data_api("false"); alert(" Impossible de supprimer le document"); @@ -294,6 +299,11 @@ const Config_Documents = (props) => { setdisplay_detail_document("1"); //submenu_detail_employe(); + + // Nettoyages des eventuelles pièces jointes + setGet_List_Of_All_PJ_result([]); + + var line = JSON.parse(rowss[selected_row_id]); //console.log("### line = ", line); @@ -305,6 +315,9 @@ const Config_Documents = (props) => { //console.log(" ### line.ref_interne = ", line.ref_interne); Get_Partner_Document_Data(document_id); + // Recuperation des éventuelles pièces jointes associées à ce document + Get_List_Of_All_PJ(document_id); + if (document.getElementById('myRef')) { // myRef.current.scrollIntoView({ behavior: "smooth" }); var divh = document.getElementById('myRef').offsetTop; @@ -383,9 +396,9 @@ const Config_Documents = (props) => { //console.log(" ## form = ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { - + setLoading(false); if (String(res.data.status) === "true") { //console.log(" In Get_Partner_Document_Data res.data.status = " + res.data.status); //console.log(" In Get_Partner_Document_Data res.data.message r_class = " + res.data.message); @@ -449,6 +462,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Partner_Document_Data = ', error); setGet_Partner_Document_Data_api("false"); alert(" Impossible de recuperer les données du document"); @@ -476,12 +490,13 @@ const Config_Documents = (props) => { //console.log(" ## form = ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Default_Partner_Document_By_Internal_Ref/"; - + setLoading(true); axios.post(myurl, form).then(res => { - + setLoading(false); if (String(res.data.status) === "true") { - console.log(" In Get_Default_Original_Partner_Document_Data res.data.status = " + res.data.status); - console.log(" In Get_Default_Original_Partner_Document_Data res.data.message r_class = " + res.data.message); + //console.log(" In Get_Default_Original_Partner_Document_Data res.data.status = " + res.data.status); + //console.log(" In Get_Default_Original_Partner_Document_Data res.data.message r_class = " + res.data.message); + setGet_Default_Original_Partner_Document_Data_api("true"); setGet_Default_Original_Partner_Document_Data_result(res.data.message); @@ -549,6 +564,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Default_Original_Partner_Document_Data = ', error); setGet_Default_Original_Partner_Document_Data_api("false"); alert(" Impossible de recuperer le modèle initial"); @@ -575,12 +591,13 @@ const Config_Documents = (props) => { //console.log(" ## form = ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_DFAULT_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { if (String(res.data.status) === "true") { - console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.status = " + res.data.status); - console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message); + //console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.status = " + res.data.status); + //console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message); + setLoading(false); setGet_Default_Original_Partner_Document_Data_By_id_api("true"); setGet_Default_Original_Partner_Document_Data_By_id_result(res.data.message); @@ -645,6 +662,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Default_Original_Partner_Document_Data_By_id = ', error); setGet_Default_Original_Partner_Document_Data_By_id_api("false"); alert(" Impossible de recuperer le modèle initial"); @@ -772,13 +790,13 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_All_Personnalisable_Collection_Fields/"; - + setLoading(true); axios.post(myurl, form).then(res => { - + setLoading(false); if (String(res.data.status) === String("true")) { - console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status); - console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message); + //console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status); + //console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message); setGet_Personnalisable_Collection_and_Fields_api("true"); setGet_Personnalisable_Collection_and_Fields_result(res.data.message); @@ -791,6 +809,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Personnalisable_Collection_and_Fields = ', error); setGet_Personnalisable_Collection_and_Fields_api("false"); alert(" Impossible de recuperer la liste des collection et champs personnalisables"); @@ -806,11 +825,12 @@ const Config_Documents = (props) => { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); - + setLoading(true); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Personnalisable_Collection/"; axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Get_Personnalisable_Collections res.data.status = " + res.data.status); //console.log(" In Get_Personnalisable_Collections res.data.message r_class = " + res.data.message); @@ -826,6 +846,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Personnalisable_Collections = ', error); setGet_Personnalisable_Collections_api("false"); alert(" Impossible de recuperer la liste des collection et champs personnalisables"); @@ -916,14 +937,15 @@ const Config_Documents = (props) => { form.append("contenu_doc", ""); } - console.log(" Add_one_Partner_Document affectation form == ", form); + //console.log(" Add_one_Partner_Document affectation form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { - console.log(" In Add_one_Partner_Document res.data.status = " + res.data.status); - console.log(" In Add_one_Partner_Document res.data.message r_class = " + res.data.message); + setLoading(false); + //console.log(" In Add_one_Partner_Document res.data.status = " + res.data.status); + //console.log(" In Add_one_Partner_Document res.data.message r_class = " + res.data.message); if (String(res.data.status) === String("true")) { setAdd_one_Partner_Document_api("true"); @@ -943,7 +965,7 @@ const Config_Documents = (props) => { } }).catch((error) => { - + setLoading(false); console.log('UpdateStagiaireData : Not good man :( Add_one_Partner_Document = ' + error); setAdd_one_Partner_Document_api("false"); alert(" Impossible d'ajouter le nouveau document"); @@ -967,9 +989,10 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_template_ref_interne/"; - + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status); //console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message); @@ -985,6 +1008,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Given_Personnalisable_Collection_and_Fields = ', error); setGet_Given_Personnalisable_Collection_and_Fields_api("false"); alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet"); @@ -1034,11 +1058,12 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Duplicate_Given_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { - console.log(" In Duplicate_Partner_Document res.data.status = " + res.data.status); - console.log(" In Duplicate_Partner_Document res.data.message r_class = " + res.data.message); + //console.log(" In Duplicate_Partner_Document res.data.status = " + res.data.status); + //console.log(" In Duplicate_Partner_Document res.data.message r_class = " + res.data.message); + setLoading(false); if (String(res.data.status) === String("true")) { setDuplicate_Partner_Document_api("true"); setDuplicate_Partner_Document_result(res.data.message); @@ -1058,7 +1083,7 @@ const Config_Documents = (props) => { } }).catch((error) => { - + setLoading(false); console.log('UpdateStagiaireData : Not good man :( Duplicate_Partner_Document = ' + error); setDuplicate_Partner_Document_api("false"); alert(" Impossible de dupliquer le document"); @@ -1142,11 +1167,12 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Partner_Document/"; - + setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Update_one_Partner_Document res.data.status = " + res.data.status); //console.log(" In Update_one_Partner_Document res.data.message r_class = " + res.data.message); + setLoading(false); if (String(res.data.status) === String("true")) { setUpdate_one_Partner_Document_api("true"); setUpdate_one_Partner_Document_result(res.data.message); @@ -1168,7 +1194,7 @@ const Config_Documents = (props) => { } }).catch((error) => { - + setLoading(false); console.log('UpdateStagiaireData : Not good man :( Update_one_Partner_Document = ' + error); setUpdate_one_Partner_Document_api("false"); alert(" Impossible de mettre à jour le document"); @@ -1188,9 +1214,9 @@ const Config_Documents = (props) => { form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Partner_Document_no_filter/"; - + setLoading(true); axios.post(myurl, form).then(res => { - + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Getall_Partner_Document_No_filter res.data.status = " + res.data.status); //console.log(" In Getall_Partner_Document_No_filter res.data.message r_class = " + res.data.message); @@ -1205,6 +1231,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Getall_Partner_Document_No_filter = ', error); setGetall_Partner_Document_No_filter_api("false"); alert(" Impossible de recuperer la liste des documents"); @@ -1228,10 +1255,11 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_courrier_template_id/"; - + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.status = " + res.data.status); console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.message r_class = " + res.data.message); @@ -1247,6 +1275,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_Given_Personnalisable_Fields_From_template_ID = ', error); setGet_Given_Personnalisable_Fields_From_template_ID_api("false"); alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet"); @@ -1277,8 +1306,10 @@ const Config_Documents = (props) => { var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Default_Partner_Document/"; + setLoading(true); axios.post(myurl, form).then(res => { + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Get_List_Personnalisable_Default_Document res.data.status = " + res.data.status); //console.log(" In Get_List_Personnalisable_Default_Document res.data.message r_class = " + res.data.message); @@ -1294,6 +1325,7 @@ const Config_Documents = (props) => { } }).catch((error) => { + setLoading(false); console.warn('Not good man :( Get_List_Personnalisable_Default_Document = ', error); setGet_List_Personnalisable_Default_Document_api("false"); alert(" Impossible de recuperer la liste des documents par default"); @@ -1360,8 +1392,274 @@ const Config_Documents = (props) => { const [duplicate_doc_type, setduplicate_doc_type] = React.useState(); + // Gestion des pièces jointes + + + const [Record_All_PJ_api, setRecord_All_PJ_api] = useState(); + const [Record_All_PJ_result, setRecord_All_PJ_result] = useState(); + const [Record_All_PJ_message, setRecord_All_PJ_message] = useState(); + + function Record_All_PJ() { + + if (!p_detail_one_file_to_download_type_name) { + alert(" Vous devez donner un nom à la pièce jointe"); + return; + } + + if (file_1_name && file_1_name.name) { + //console.log(" ### Traitement de : ", file_1_name.name); + + const formData = new FormData(); + formData.append('File', file_1_name); + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + formData.append("token", stored_cookie); + formData.append("file_business_object", p_detail_one_file_to_download_type_name); + formData.append("file_name", file_1_name.name); + formData.append("status", "0"); + formData.append("object_owner_collection", "courrier_template"); + formData.append("object_owner_id", selected_id); + + //formData.append("class_internal_url", internal_url); + //console.log("token = " + stored_cookie); + + setLoading(true); + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Store_User_Downloaded_File/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + + setLoading(false); + //console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Success:', result['message']); + setRecord_All_PJ_result(result['message']); + setRecord_All_PJ_api("true"); + + Get_List_Of_All_PJ(selected_id); + setfile_1_name(); + setp_detail_one_file_to_download_type_name(); + //GetCurrentClass_trainingsession(); + alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée") + + } + else { + setRecord_All_PJ_message(result['message']); + setRecord_All_PJ_api("false"); + alert(result['message']); + } + + }) + .catch((error) => { + setLoading(false); + console.error(' Record_All_PJ Error:', error); + setRecord_All_PJ_api("false"); + alert(" Impossible d'ajouter la pièce jointe") + }); + + } + + + + } + + + const [Delete_one_attached_document_api, setDelete_one_attached_document_api] = useState(); + const [Delete_one_attached_document_result, setDelete_one_attached_document_result] = useState(); + const [Delete_one_attached_document_message, setDelete_one_attached_document_message] = useState(); + + const Delete_one_attached_document = (event) => { + const stored_cookie = getCookie('tokenmysypart'); + + var formData = new FormData(); + var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; + var file_name = event.target.id; + + + formData.append("token", stored_cookie); + formData.append("file_name", file_name); + + var url = process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/"; + + setLoading(true); + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + setLoading(false); + //console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Success:', result['message']); + setDelete_one_attached_document_result(result['message']); + setDelete_one_attached_document_api("true"); + Get_List_Of_All_PJ(selected_id); + alert(result['message']) + + } + else { + setDelete_one_attached_document_message(result['message']); + setDelete_one_attached_document_api("false"); + alert(result['message']) + } + + }) + .catch((error) => { + setLoading(false); + console.error(' Record_All_PJ Error:', error); + setDelete_one_attached_document_api("false"); + alert(" Impossible de supprimer le document") + + }); + + + } + + const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); + const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState([]); + const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); + + function Get_List_Of_All_PJ(local_employee_id) { + + const formData = new FormData(); + + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + formData.append("token", stored_cookie); + formData.append("object_owner_collection", "courrier_template"); + formData.append("object_owner_id", local_employee_id); + + + //formData.append("class_internal_url", internal_url); + //console.log("token = " + stored_cookie); + setLoading(true); + + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + setLoading(false); + + //console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Message :', result['message']); + setGet_List_Of_All_PJ_result(result['message']); + setGet_List_Of_All_PJ_api("true"); + + } + else { + setGet_List_Of_All_PJ_message(result['message']); + setGet_List_Of_All_PJ_api("false"); + } + + }) + .catch((error) => { + setLoading(false); + console.error(' Get_List_Of_All_PJ Error:', error); + setGet_List_Of_All_PJ_api("false"); + }); + + } + + function Delete_file_1_name() { + setfile_1_name(); + } + + function Delete_file_2_name() { + setfile_2_name(); + } + + const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState(); + const [isLoading, setLoading] = useState(); + const [file_1_name, setfile_1_name] = useState(); + const [file_2_name, setfile_2_name] = useState(); + + const [sessions_file_change_1_api, setsessions_file_change_1_api] = useState(); + const [sessions_file_change_1_result, setsessions_file_change_1_result] = useState(); + const [sessions_file_change_1_message, setsessions_file_change_1_message] = useState(); + const sessions_file_change_1 = event => { + + const fileUploaded = event.target.files[0]; + let file_size = event.target.files[0].size; + let file_type = event.target.files[0].type; + + setfile_1_name(event.target.files[0]); + + + console.log("file_size = ", file_size, " file_type = ", file_type); + if (file_size > 10000000) { + alert("Le fichier ne doit pas depasser un 1 Méga octets"); + console.log("Le fichier ne doit pas depasser un 1 Méga octets"); + return; + } + + + const formData = new FormData(); + formData.append('File', fileUploaded); + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + + return; + + }; + + const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState(); + const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState(); + const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState(); + + const Download_one_attached_document = (event) => { + const stored_cookie = getCookie('tokenmysypart'); + + + var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; + var token = stored_cookie; + var file_name = event.target.id; + + + var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name; + + setLoading(true); + axios.get(url, { responseType: 'blob', },) + .then((res) => { + setLoading(false); + fileDownload(res.data, nom_fiche_detaillee); + setDownload_one_attached_document_api("true"); + }).catch((error) => { + setLoading(false); + console.error('Error:', error); + setDownload_one_attached_document_api("false"); + + }); + } + + + // end gestion pièces jointes + + + return (
+ {isLoading &&
+
+
} + {
-
+
@@ -1964,11 +2262,160 @@ const Config_Documents = (props) => { />
+ {p_detail_type_doc && String(p_detail_type_doc).toLocaleLowerCase() === "email" &&
+ Pièces Jointe
+
+
+
+
+ +
+ Pièces jointes + +
+ +
+ +
+ +
+ {file_1_name && file_1_name.name && + } + + {Record_All_PJ_api && String(Record_All_PJ_api) === "true" &&
Pièce jointe enregistrée
} + + {Record_All_PJ_api && String(Record_All_PJ_api) === "false" &&
{Record_All_PJ_message}
} + + +
+ + + {file_1_name && file_1_name.name &&
+ +
+ +
+ + +
} + + {Get_List_Of_All_PJ_result &&
+
+ Liste des pièces jointes
+
+ {Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => ( +
+
+ Supprimer + + + } + modal + nested + position="center center" + > + {close => ( +
+ +
MySy Information
+
+ {' '} + + En confirmant cette opération, la pièce jointe sera définitivement supprimée.
+ + +
+
+
+ + +
+
+ +
+
+
+ )} +
+ +
+ ))} +
+
+
} + + + +
+ +
}
{String(partner_document_data_edit_mode) === "1" && -
Choisir un champ
+
Choisir un champ
{ {String(display_detail_document) !== "1" && String(add_one_document) === "1" &&

Personnaliser un nouveau document

-
Choisir le document à ajouter
+
Choisir le document à ajouter
{
-
+
Choisir un champ
{ const history = useHistory(); @@ -3420,6 +3418,8 @@ const DisplayPartnerStagiaires = (props) => { } + const [tab_convention_pieces_jointes_result, settab_convention_pieces_jointes_result] = useState([]); + const [file_1_name, setfile_1_name] = useState(); const [sessions_file_change_1_api, setsessions_file_change_1_api] = useState(); @@ -3434,7 +3434,7 @@ const DisplayPartnerStagiaires = (props) => { setfile_1_name(event.target.files[0]); - console.log("file_size = ", file_size, " file_type = ", file_type); + console.log("file_size 2 = ", file_size, " file_type = ", file_type); if (file_size > 10000000) { alert("Le fichier ne doit pas depasser un 1 Méga octets"); console.log("Le fichier ne doit pas depasser un 1 Méga octets"); @@ -3453,37 +3453,61 @@ const DisplayPartnerStagiaires = (props) => { return; - fetch( - process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/", - { - method: 'POST', - body: formData, - } - ) - .then((response) => response.json()) - .then((result) => { - //console.log(" ## result['status'] = ", result['status']) - if (String(result['status']) === String("true")) { - //console.log('Success:', result['message']); - setsessions_file_change_1_result(result['message']); - setsessions_file_change_1_api("true"); - //GetCurrentClass_trainingsession(); - - } - else { - setsessions_file_change_1_message(result['message']); - setsessions_file_change_1_api("false"); - } - - }) - .catch((error) => { - console.error('Error:', error); - setsessions_file_change_1_api("false"); - }); }; + + const [sessions_file_change_1_convention_api, setsessions_file_change_1_convention_api] = useState(); + const [sessions_file_change_1_convention_result, setsessions_file_change_1_convention_result] = useState(); + const [sessions_file_change_1_convention_message, setsessions_file_change_1_convention_message] = useState(); + const sessions_file_change_1_convention = event => { + + + const fileUploaded = event.target.files[0]; + let file_size = event.target.files[0].size; + let file_type = event.target.files[0].type; + + + if (file_type !== "application/pdf") { + alert("Le fichier n'est pas de type PDF"); + return; + } + + + + if (file_size > 10000000) { + alert("Le fichier ne doit pas depasser un 1 Méga octets"); + console.log("Le fichier ne doit pas depasser un 1 Méga octets"); + return; + } + + //var new_node = {'name':event.target.files[0].name, 'type':event.target.files[0].type} + + + var new_tmp = []; + + if (tab_convention_pieces_jointes_result && tab_convention_pieces_jointes_result.length > 0) { + + tab_convention_pieces_jointes_result.map((x) => { + new_tmp.push(x); + + }); + + } + + new_tmp.push(event.target.files[0]) + + settab_convention_pieces_jointes_result(new_tmp); + + console.log( " tab_convention_pieces_jointes_result = ", tab_convention_pieces_jointes_result) + + + return; + + + }; + const [file_2_name, setfile_2_name] = useState(); const [sessions_file_change_2_api, setsessions_file_change_2_api] = useState(); @@ -3498,7 +3522,7 @@ const DisplayPartnerStagiaires = (props) => { setfile_2_name(event.target.files[0]); - console.log("file_size = ", file_size, " file_type = ", file_type); + console.log("file_size 1 = ", file_size, " file_type = ", file_type); if (file_size > 10000000) { alert("Le fichier ne doit pas depasser un 1 Méga octets"); console.log("Le fichier ne doit pas depasser un 1 Méga octets"); @@ -3517,34 +3541,7 @@ const DisplayPartnerStagiaires = (props) => { return; - fetch( - process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/", - { - method: 'POST', - body: formData, - } - ) - .then((response) => response.json()) - .then((result) => { - //console.log(" ## result['status'] = ", result['status']) - if (String(result['status']) === String("true")) { - //console.log('Success:', result['message']); - setsessions_file_change_2_result(result['message']); - setsessions_file_change_2_api("true"); - //GetCurrentClass_trainingsession(); - - } - else { - setsessions_file_change_2_message(result['message']); - setsessions_file_change_2_api("false"); - } - - }) - .catch((error) => { - console.error('Error:', error); - setsessions_file_change_2_api("false"); - }); }; const [Record_All_PJ_api, setRecord_All_PJ_api] = useState(); @@ -3559,7 +3556,7 @@ const DisplayPartnerStagiaires = (props) => { } if (file_1_name && file_1_name.name) { - console.log(" ### Traitement de : ", file_1_name.name); + //console.log(" ### Traitement de : ", file_1_name.name); const formData = new FormData(); formData.append('File', file_1_name); @@ -3604,6 +3601,7 @@ const DisplayPartnerStagiaires = (props) => { else { setRecord_All_PJ_message(result['message']); setRecord_All_PJ_api("false"); + alert(result['message']); } }) @@ -3611,13 +3609,11 @@ const DisplayPartnerStagiaires = (props) => { setLoading(false); console.error(' Record_All_PJ Error:', error); setRecord_All_PJ_api("false"); + alert(" Impossible d'ajouter la pièce jointe") }); } - if (file_2_name && file_2_name.name) { - console.log(" ### Traitement de : ", file_2_name.name); - } } @@ -3662,6 +3658,7 @@ const DisplayPartnerStagiaires = (props) => { else { setDelete_one_attached_document_message(result['message']); setDelete_one_attached_document_api("false"); + alert(result['message']) } }) @@ -3676,6 +3673,12 @@ const DisplayPartnerStagiaires = (props) => { } + + const Delete_one_attached_document_convention = (event) => { + var file_name = event.target.id; + + } + const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState(); const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); @@ -4200,6 +4203,7 @@ const DisplayPartnerStagiaires = (props) => { setactionmass_ftion_val(); setSelectionModel([]); + settab_convention_pieces_jointes_result([]) }; @@ -4261,6 +4265,15 @@ const DisplayPartnerStagiaires = (props) => { form.append("email_test", selected_convention_email_test); form.append("email_production", selected_convention_email_destinataire_prod); + // pièce jointe + form.append("file_business_object", ""); + var list_files = new FormData(); + + for (let i=0; i< tab_convention_pieces_jointes_result.length; i++){ + form.append('File', tab_convention_pieces_jointes_result[i]); + + } + //form.append("File", list_files); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/"; @@ -4327,7 +4340,7 @@ const DisplayPartnerStagiaires = (props) => { var local_selected_id = liste_selected_inscription_id[i]; - + var url = process.env.REACT_APP_API_URL + "myclass/api/Download_Convention_Stagiaire_PDF/" + stored_cookie + "/" + local_selected_id + "/" + selected_convention_id; @@ -4368,32 +4381,53 @@ const DisplayPartnerStagiaires = (props) => { form.append("email_test", selected_convention_email_test); form.append("email_production", ""); + // pièce jointe + form.append("file_business_object", ""); + var list_files = new FormData(); + for (let i=0; i< tab_convention_pieces_jointes_result.length; i++){ + form.append('File', tab_convention_pieces_jointes_result[i]); + + } + //form.append("File", list_files); + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/"; - axios.post(myurl, form).then(res => { - - if (String(res.data.status) === String("true")) { - //console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.status = " + res.data.status); - //console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.message r_class = " + res.data.message); - setSend_Stagiaire_Conventions_By_Email_Test_api("true"); - setSend_Stagiaire_Conventions_By_Email_Test_result(res.data.message); - - alert(res.data.message); - Dialog_convention_handleClose_buton() + setLoading(true); + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/", + { + method: 'POST', + body: form, } - else { + ) + .then((response) => response.json()) + .then((result) => { + + setLoading(false); + console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.status = " + result['status']); + console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.message r_class = " + result['message']); + if (String(result['status']) === String("true")) { + + setSend_Stagiaire_Conventions_By_Email_Test_api("true"); + setSend_Stagiaire_Conventions_By_Email_Test_result(result['message']); + + alert(result['message']); + Dialog_convention_handleClose_buton() + } + else { + setSend_Stagiaire_Conventions_By_Email_Test_api("false"); + setSend_Stagiaire_Conventions_By_Email_Test_message(result['message']); + alert(result['message']); + } + + }).catch((error) => { + setLoading(false); + console.warn('Not good man :( Send_Stagiaire_Conventions_By_Email_Test = ', error); setSend_Stagiaire_Conventions_By_Email_Test_api("false"); - setSend_Stagiaire_Conventions_By_Email_Test_message(res.data.message); - alert(res.data.message); - } - - }).catch((error) => { - console.warn('Not good man :( Send_Stagiaire_Conventions_By_Email_Test = ', error); - setSend_Stagiaire_Conventions_By_Email_Test_api("false"); - alert("Impossible d'envoyer la convention par email"); - //setmyApimyApiMessage("") - }) + alert("Impossible d'envoyer l'email de test "); + //setmyApimyApiMessage("") + }) } @@ -4488,6 +4522,31 @@ const DisplayPartnerStagiaires = (props) => { }) } + + const [Get_Convention_List_Of_All_PJ_result, setGet_Convention_List_Of_All_PJ_result] = useState([]); + + function Delete_Convention_Attached_Doc(event) { + + var doc_to_del_name = event.target.id; + const myArray = tab_convention_pieces_jointes_result; + + + + let new_myArray = myArray.filter(file => file.name !== String(doc_to_del_name) ); + + console.log( " new_myArray = ", new_myArray); + + + var new_tab = [] + for (let i = 0; i < new_myArray.length; i++){ + new_tab.push(new_myArray[i]); + } + + settab_convention_pieces_jointes_result(new_tab); + + + } + return (
{isLoading &&
@@ -4827,6 +4886,7 @@ const DisplayPartnerStagiaires = (props) => { setselected_convention_id(e.target.value); var result2 = Get_List_Stagiaire_Conventions_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(e.target.value)) setselected_convention_type(JSON.parse(result2).type_doc); + settab_convention_pieces_jointes_result([]); } } @@ -4979,9 +5039,71 @@ const DisplayPartnerStagiaires = (props) => {
} -
- PIECES JOINTES EEEEE xxxx -
+ {String(selected_convention_type) === "email" &&
+ +
+
+
+
+ +
+ Pièces jointes Convention a + +
+ +
+ +
+ +
+ + +
+ + + {tab_convention_pieces_jointes_result &&
+ +
+ Liste des pièces jointes
+ {
+ {tab_convention_pieces_jointes_result && tab_convention_pieces_jointes_result.map((val) => ( +
+
+ + +
+ ))} +
} +
+
} + + + +
+
} @@ -5000,7 +5122,7 @@ const DisplayPartnerStagiaires = (props) => { Dialog_convention_handleClose_buton(); } }} - className="bton_enreg_dialog">Envoyer} + className="bton_enreg_dialog">Envoyer mail} {String(selected_convention_type) === "pdf" &&