import React, { useRef, useState, useEffect } from "react"; import Box from '@mui/material/Box'; import TextField from '@mui/material/TextField'; import MenuItem from '@mui/material/MenuItem'; import { confirmAlert } from 'react-confirm-alert'; // Import import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css import Button from '@mui/material/Button'; import axios from "axios"; import DeleteIcon from '@mui/icons-material/Delete'; import { getCookie, setCookie } from 'react-use-cookie'; import { Alert } from "@mui/material"; import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; import profileimg from "../mysy_img/MYSY-profil-2.png"; import Abonnement from "./Abonnement"; import { BorderBottom, ConstructionOutlined, PropaneSharp, ResetTvRounded } from "@mui/icons-material"; import { useHistory } from "react-router-dom"; import CheckOut from "./CheckOut"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css"; import { RichTextEditor } from '@mantine/rte'; import { Editor } from '@tinymce/tinymce-react'; import { IoArrowUndoCircle } from "react-icons/io5"; import { GrUserAdmin, GrOrderedList } from "react-icons/gr"; import parse from 'html-react-parser'; import { format } from 'date-fns' import moment from "moment"; import 'react-tooltip/dist/react-tooltip.css' import { Tooltip } from 'react-tooltip' import Autocomplete from '@mui/material/Autocomplete'; import GestionAdministrative from "./GestionAdministrative"; import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { Fab } from "@material-ui/core"; import { ConsoleView } from "react-device-detect"; import fileDownload from 'js-file-download' import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5"; import { AiOutlineUserAdd } from "react-icons/ai"; import { AiOutlinePlusCircle } from "react-icons/ai"; import FiberNewIcon from '@mui/icons-material/FiberNew'; import Dialog from '@mui/material/Dialog'; import DialogActions from '@mui/material/DialogActions'; import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogTitle from '@mui/material/DialogTitle'; import { useCallback, } from "react"; import { DndProvider, useDrag } from "react-dnd"; import { useDrop } from 'react-dnd' import { HTML5Backend } from "react-dnd-html5-backend"; import update from "immutability-helper"; import Rating from '@mui/material/Rating'; import { CiBoxList } from "react-icons/ci"; import { FcPlanner } from "react-icons/fc"; import { makeStyles } from "@material-ui/core/styles"; import Paper from '@material-ui/core/Paper'; import Draggable from 'react-draggable'; import { IconButton } from '@material-ui/core'; import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined'; import CancelPresentationIcon from '@mui/icons-material/CancelPresentation'; import Module_Alert_Confirmation from "./Module_Alert_Confirmation"; function PaperComponent(props) { return ( ); } const useStyles = makeStyles((theme) => ({ dialog: { position: 'absolute', // left: 10, top: 400 }, paper: { overflowY: 'unset', }, customizedButton: { position: 'absolute', left: '98%', top: '-3%', backgroundColor: 'lightgray', color: 'gray', }, })); const PartnerClientActivite = (props) => { const classes_dialog = useStyles(); const history = useHistory(); var date_today_90j = new Date(); date_today_90j.setDate(date_today_90j.getDate() + 90); function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } const [selected_id, setselected_id] = useState(""); const [related_collection, setrelated_collection] = useState(""); const [current_activite_recid, setcurrent_activite_recid] = useState(""); const [show_all_activite_list, setshow_all_activite_list] = useState("1"); const [showactivite_detail, setshowactivite_detail] = useState(); const [add_one_activite, setadd_one_activite] = useState(""); function Add_Activite() { /* setdatamodification_activite("0"); setformedit_mode_activite("0"); setcurrent_activite_recid(""); //clean_contact_set_values(); setadd_one_activite("1"); setshowactivite_detail(); setshow_all_activite_list(); */ setselected_id(""); setDialog_ACTIVITE_open(true); Clear_activite_P_fields(); } function Close_Activite() { setshowactivite_detail("0"); setdatamodification_activite("0"); setformedit_mode_activite("0"); setcurrent_activite_recid(""); //clear_contact_fields(); //clean_contact_set_values(); } function retour_liste_Activite() { setshowactivite_detail(); setadd_one_activite(); setshow_all_activite_list("1"); setcurrent_activite_recid(""); setformedit_mode_activite("0"); } const [datamodification_activite, setdatamodification_activite] = useState("0"); const [formedit_mode_activite, setformedit_mode_activite] = useState("0"); function DataUpdated_Activite_Data() { setdatamodification_activite("1"); } function DataEditMode_Activite_Data() { setformedit_mode_activite("1"); Enable_activite_fields(); } const type_activite_list = [ { id: 'email', value: 'email', label: 'Email', }, { id: 'call', value: 'call', label: 'Appel', }, { id: 'meeting', value: 'meeting', label: 'Réunion', }, { id: 'autre', value: 'autre', label: 'Autre', }, { id: 'cmd', value: 'cmd', label: 'commande', }, { id: 'devis', value: 'devis', label: 'devis', }, { id: 'facture', value: 'facture', label: 'facture', }, { id: '', value: '', label: '', }, ]; const activite_status_list = [ { id: '0', value: '0', label: 'Encours', }, { id: '1', value: '1', label: 'Fait', }, { id: '-1', value: '-1', label: 'Annulé', }, { id: '2', value: '2', label: 'Archivé', }, { id: '', value: '', label: '', }, ]; const activite_status_list_pave_affiche = [ { id: '0', value: '0', label: 'Encours', }, { id: '1', value: '1', label: 'Fait', }, { id: '-1', value: '-1', label: 'Annulé', }, { id: '2', value: '2', label: 'Archivé', }, ]; // Données Activites const [p_activite_description, setp_activite_description] = useState(""); const [p_activite_detail, setp_activite_detail] = useState(""); const [p_activite_deadline, setp_activite_deadline] = useState(new Date()); const [p_activite_deadline_label, setp_activite_deadline_label] = useState(""); const [p_activite_type, setp_activite_type] = useState(""); const [p_activite_status, setp_activite_status] = useState("0"); const [p_activite_status_label, setp_activite_status_label] = useState(""); const [p_activite_employee_assigned_id, setp_activite_employee_assigned_id] = useState(props.conntected_employee_id); const [p_activite_employee_assigned_nom_prenom, setp_activite_employee_assigned_nom_prenom] = useState(); const [p_activite_employee_assigned, setp_activite_employee_assigned] = useState(props.conntected_employee_id); const [nb_activite_en_retard, setnb_activite_en_retard] = useState(""); const [nb_activite_new, setnb_activite_new] = useState(""); // Recuperation des activités du client d'un partner const [Get_List_Activite_Of_client_Part_api, setGet_List_Activite_Of_client_Part_api] = useState(); const [Get_List_Activite_Of_client_Part_message, setGet_List_Activite_Of_client_Part_message] = useState(); const [Get_List_Activite_Of_client_Part_result, setGet_List_Activite_Of_client_Part_result] = useState([]); function Get_List_Activite_Of_client_Part(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); const related_collection = props.related_collection form.append("token", stored_cookie); form.append("related_collection", related_collection); form.append("related_collection_owner_email", props.email); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Entity_Activite/"; axios.post(myurl, form).then(res => { //console.log(" In Get_List_Activite_Of_client_Part res.data.status = " + res.data.status); //console.log(" In Get_List_Activite_Of_client_Part res.data.message r_class = " + res.data.message); if (String(res.data.status) === String("true")) { setGet_List_Activite_Of_client_Part_api("true"); setGet_List_Activite_Of_client_Part_result(res.data.message); setnb_activite_en_retard(res.data.nb_activite_en_retard); setnb_activite_new(res.data.nb_new_activite_assigned_to_me); props.update_nb_activite_en_retard(res.data.nb_activite_en_retard); props.update_nb_activite_en_new(res.data.nb_new_activite_assigned_to_me); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_description = JSON.parse(x).description; var local_status = JSON.parse(x).status; var local_type = JSON.parse(x).type; var local_recid = JSON.parse(x).recid; var local_deadline = JSON.parse(x).deadline; var local_retard = JSON.parse(x).retard; var local_employee_assigned_to_id = JSON.parse(x).employee_assigned_to_id; var local_employee_assigned_view_statut = JSON.parse(x).employee_assigned_view_statut; //--- var node = { "_id": local_id, "id": localid, "label": local_description, "type": local_type, "description": local_description, "status": local_status, "deadline": local_deadline, "retard": local_retard, "employee_assigned_to_id": local_employee_assigned_to_id, "employee_assigned_view_statut": local_employee_assigned_view_statut, "recid": local_recid, }; new_data2.push(node); setTaskStatus(new_data2); }); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); } else { setGet_List_Activite_Of_client_Part_api("false"); setGet_List_Activite_Of_client_Part_message(res.data.message); } }).catch((error) => { console.warn('Not good man :( Get_List_Activite_Of_client_Part = ', error); setGet_List_Activite_Of_client_Part_api("false"); //setmyApimyApiMessage("") }) } // Recuperation des activités du client d'un partner const [Get_List_Activite_Assign_To_Me_api, setGet_List_Activite_Assign_To_Me_api] = useState(); const [Get_List_Activite_Assign_To_Me_message, setGet_List_Activite_Assign_To_Me_message] = useState(); const [Get_List_Activite_Assign_To_Me_result, setGet_List_Activite_Assign_To_Me_result] = useState(); function Get_List_Activite_Assign_To_Me(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); const related_collection = props.related_collection form.append("token", stored_cookie); form.append("employee_assigned_to_id", props.conntected_employee_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Activite_Assign_To/"; axios.post(myurl, form).then(res => { //console.log(" In Get_List_Activite_Assign_To_Me res.data.status = " + res.data.status); // console.log(" In Get_List_Activite_Assign_To_Me res.data.message r_class = " + res.data.message); if (String(res.data.status) === String("true")) { setGet_List_Activite_Assign_To_Me_api("true"); setGet_List_Activite_Assign_To_Me_result(res.data.message); setnb_activite_en_retard(res.data.nb_activite_en_retard); props.update_nb_activite_en_retard(res.data.nb_activite_en_retard); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); } else { setGet_List_Activite_Assign_To_Me_api("false"); setGet_List_Activite_Assign_To_Me_message(res.data.message); } }).catch((error) => { console.warn('Not good man :( Get_List_Activite_Assign_To_Me = ', error); setGet_List_Activite_Assign_To_Me_api("false"); //setmyApimyApiMessage("") }) } useEffect(() => { setrelated_collection(props.related_collection); Getall_Training_Employee_No_Filter(); Get_List_Activite_Of_client_Part(); Get_List_Activite_Assign_To_Me(); }, []); const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([]); const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState(); const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState(); const [Getall_Training_Employee_No_Filter_result, setGetall_Training_Employee_No_Filter_result] = useState([]); function Getall_Training_Employee_No_Filter(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/Get_List_Ressource_Humaine_no_filter/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Training_Employee_No_Filter res.data.status = " + res.data.status); //console.log(" In Getall_Training_Employee_No_Filter res.data.message r_class = " + res.data.message); setGetall_Training_Employee_No_Filter_api("true"); setGetall_Training_Employee_No_Filter_result(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_nom = JSON.parse(x).nom; var local_prenom = JSON.parse(x).prenom; var local_ismanager = JSON.parse(x).ismanager; //--- var node = { "_id": local_id, "id": localid, "label": local_nom + " " + local_prenom, "nom": local_nom, "prenom": local_prenom, "ismanager": local_ismanager }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "nom": "", "prenom": "", "ismanager": "" }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Training_Employee_No_Filter_result(new_data2); } else { setGetall_Training_Employee_No_Filter_api("false"); setGetall_Training_Employee_No_Filter_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( Getall_Training_Employee_No_Filter = ', error); setGetall_Training_Employee_No_Filter_api("false"); alert(" Impossible de recuperer la liste des employés"); //setmyApimyApiMessage("") }) } const filterPassedTime_start = (time) => { const currentDate = new Date(); const selectedDate = new Date(time); return currentDate.getTime() < selectedDate.getTime(); }; // Fonction de mise à jour d'une activité const [recordPartnerClient_Activite_Data_api, setrecordPartnerClient_Activite_Data_api] = useState(""); const [recordPartnerClient_Activite_Data_result, setrecordPartnerClient_Activite_Data_result] = useState(""); const [recordPartnerClient_Activite_Data_message, setrecordPartnerClient_Activite_Data_message] = useState(""); function recordPartnerClient_Activite_Data(event) { var new_dead_line_format = ""; if (typeof p_activite_deadline == "object") { var act_deadline = format(p_activite_deadline, 'dd/MM/yyyy'); new_dead_line_format = act_deadline; } else { new_dead_line_format = p_activite_deadline; } var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("description", p_activite_description); form.append("detail", p_activite_detail); form.append("deadline", new_dead_line_format); form.append("type", p_activite_type); form.append("status", p_activite_status); if (p_activite_employee_assigned_id) form.append("employee_assigned_to_id", p_activite_employee_assigned_id); // Controle d'integrité des infos var activite_description = "" if (document.getElementsByName("activite_description")) { activite_description = document.getElementsByName("activite_description")[0].value; } if (activite_description.length == 0) { alert(" Le champ 'Description' est vide "); return; } if (activite_description.length > 255) { alert(" Le champ 'Description' comporte plus de 255 caractères "); return; } var activite_detail = "" if (document.getElementsByName("activite_detail")) { activite_detail = document.getElementsByName("activite_detail")[0].value; } if (activite_detail.length > 500) { alert(" Le champ 'Détail' comporte plus de 500 caractères "); return; } var myurl = ""; // Il s'agit d'un mise à jour. on a une valeur dans le current_activite_recid myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_activite/"; form.append("activite_recid", current_activite_recid); axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In recordPartnerClient_Activite_Data res.data.status = " + res.data.status); //console.log(" In recordPartnerClient_Activite_Data res.data.message = " + res.data.message); setrecordPartnerClient_Activite_Data_api("true"); setrecordPartnerClient_Activite_Data_result(res.data.message); Get_List_Activite_Of_client_Part(); Get_List_Activite_Assign_To_Me(); setdatamodification_activite("0"); setformedit_mode_activite("0"); setcurrent_activite_recid(""); setshow_all_activite_list("1"); setshowactivite_detail('0'); setadd_one_activite('0'); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("success"); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); return; } else { setrecordPartnerClient_Activite_Data_api("false"); setrecordPartnerClient_Activite_Data_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( recordPartnerClient_Activite_Data = ', error); setrecordPartnerClient_Activite_Data_result("false"); setrecordPartnerClient_Activite_Data_message(" Impossible d'ajouter l'activité ") alert(" Impossible d'ajouter/mettre à jour l'activité "); }) } // Fonction de mise à jour d'une activité const [Update_Activite_Status_api, setUpdate_Activite_Status_api] = useState(""); const [Update_Activite_Status_result, setUpdate_Activite_Status_result] = useState(""); const [Update_Activite_Status_message, setUpdate_Activite_Status_message] = useState(""); function Update_Activite_Status(activite_id, new_status) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("status", new_status); form.append("_id", activite_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_activite_status/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Update_Activite_Status res.data.status = " + res.data.status); //console.log(" In Update_Activite_Status res.data.message = " + res.data.message); setUpdate_Activite_Status_api("true"); setUpdate_Activite_Status_result(res.data.message); Get_List_Activite_Of_client_Part(); Get_List_Activite_Assign_To_Me(); setdatamodification_activite("0"); setformedit_mode_activite("0"); setcurrent_activite_recid(""); setshow_all_activite_list("1"); setshowactivite_detail('0'); setadd_one_activite('0'); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); return; } else { setUpdate_Activite_Status_api("false"); setUpdate_Activite_Status_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( Update_Activite_Status = ', error); setUpdate_Activite_Status_result("false"); setUpdate_Activite_Status_message(" Impossible d'ajouter l'activité ") alert(" Impossible d'ajouter/mettre à jour l'activité "); }) } // Fonction d'ajout d'un activité const [record_One_PartnerClient_Activite_Data_api, setrecord_One_PartnerClient_Activite_Data_api] = useState(""); const [record_One_PartnerClient_Activite_Data_result, setrecord_One_PartnerClient_Activite_Data_result] = useState(""); const [record_One_PartnerClient_Activite_Data_message, setrecord_One_PartnerClient_Activite_Data_message] = useState(""); function record_One_PartnerClient_Activite_Data(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); // Controle d'integrité des infos if (p_activite_description && p_activite_description.length == 0) { alert(" Le champ 'Description' est vide "); return; } if (p_activite_description && p_activite_description.length > 255) { alert(" Le champ 'Description' comporte plus de 255 caractères "); return; } if (p_activite_detail && p_activite_detail.length > 255) { alert(" Le champ 'Détail' comporte plus de 255 caractères "); return; } if (p_activite_description) form.append("description", p_activite_description); else form.append("description", ""); if (p_activite_detail) form.append("detail", p_activite_detail); else form.append("detail", ""); var new_dead_line_format = ""; if (typeof p_activite_deadline == "object") { var act_deadline = format(p_activite_deadline, 'dd/MM/yyyy'); new_dead_line_format = act_deadline; } else { new_dead_line_format = p_activite_deadline; } if (p_activite_deadline) form.append("deadline", new_dead_line_format); if (p_activite_type) form.append("type", p_activite_type); else form.append("type", ""); if (p_activite_status) form.append("status", p_activite_status); if (p_activite_employee_assigned_id) form.append("employee_assigned_to_id", p_activite_employee_assigned_id); var myurl = ""; // Il s'agit d'un ajout d'une nouvelle activité. on a rien dans le current_activite_recid myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_activite/"; form.append("related_collection", props.related_collection); form.append("related_collection_owner_email", props.email); axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In recordPartnerClient_Activite_Data res.data.status = " + res.data.status); //console.log(" In recordPartnerClient_Activite_Data res.data.message = " + res.data.message); setrecord_One_PartnerClient_Activite_Data_api("true"); setrecord_One_PartnerClient_Activite_Data_result(res.data.message); Clear_activite_P_fields(); setshowactivite_detail("0"); Get_List_Activite_Of_client_Part(); Get_List_Activite_Assign_To_Me(); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("success"); setdatamodification_activite("0"); setformedit_mode_activite("0"); setcurrent_activite_recid(""); retour_liste_Activite(); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); return; } else { setrecord_One_PartnerClient_Activite_Data_api("false"); setrecord_One_PartnerClient_Activite_Data_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( recordPartnerClient_Activite_Data = ', error); setrecord_One_PartnerClient_Activite_Data_api("false"); setrecord_One_PartnerClient_Activite_Data_message(" Impossible d'ajouter l'activité ") alert(" Impossible d'ajouter/mettre à jour l'activité "); }) } const [Display_Part_Client_Activite_api, setDisplay_Part_Client_Activite_api] = useState(""); const [Display_Part_Client_Activite_result, setDisplay_Part_Client_Activite_result] = useState(""); const [Display_Part_Client_Activite_message, setDisplay_Part_Client_Activite_message] = useState(""); async function Display_Part_Client_Activite(event) { var myactivity_recid = event.currentTarget.getAttribute('recid'); var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("activite_recid", myactivity_recid); //console.log(" ### event.currentTarget.getAttribute('recid') = ", event.currentTarget.getAttribute('recid')); zzzzz var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Activite/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Display_Part_Client_Activite res.data.status = " + res.data.status); //console.log(" In Display_Part_Client_Activite res.data.message = " + res.data.message); setDisplay_Part_Client_Activite_api("true"); setDisplay_Part_Client_Activite_result(res.data.message); setshowactivite_detail("1"); setshow_all_activite_list(); setadd_one_activite(); var mylocalclient_activite = JSON.parse(res.data.message); if (mylocalclient_activite) { // Remplissage des doonées de l'activite if (mylocalclient_activite.description) setp_activite_description(mylocalclient_activite.description); else setp_activite_description(""); if (mylocalclient_activite.detail) setp_activite_detail(mylocalclient_activite.detail); else setp_activite_detail(""); if (mylocalclient_activite.deadline) { var act_deadline = new Date(moment(mylocalclient_activite.deadline, "DD/MM/YYYY HH:mm:ss")); setp_activite_deadline(act_deadline); setp_activite_deadline_label(mylocalclient_activite.deadline); } else setp_activite_deadline(new Date()); if (mylocalclient_activite.employee_assigned_to_id) { setp_activite_employee_assigned_nom_prenom(mylocalclient_activite.employee_assigned_to_nom_prenom); setp_activite_employee_assigned_id(mylocalclient_activite.employee_assigned_to_id); } if (mylocalclient_activite.type) setp_activite_type(mylocalclient_activite.type); else setp_activite_type(""); if (mylocalclient_activite.status) { setp_activite_status(mylocalclient_activite.status); if (String(mylocalclient_activite.status) === "0") setp_activite_status_label("En cours"); else if (String(mylocalclient_activite.status) === "1") setp_activite_status_label("Fait"); else if (String(mylocalclient_activite.status) === "-1") setp_activite_status_label("Annulé"); } else setp_activite_status(""); if (mylocalclient_activite.recid) setcurrent_activite_recid(mylocalclient_activite.recid); else setcurrent_activite_recid(""); } Disable_activite_fields(); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); return; } else { setDisplay_Part_Client_Activite_api("false"); setDisplay_Part_Client_Activite_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( Display_Part_Client_Activite = ', error); setDisplay_Part_Client_Activite_result("false"); setDisplay_Part_Client_Activite_message(" Impossible de recuperer les details de l'activité") alert(" Impossible de recuperer les details de l'activité"); }) } const [Display_Given_Activite_From_Activite_Recid_api, setDisplay_Given_Activite_From_Activite_Recid_api] = useState(""); const [Display_Given_Activite_From_Activite_Recid_result, setDisplay_Given_Activite_From_Activite_Recid_result] = useState(""); const [Display_Given_Activite_From_Activite_Recid_message, setDisplay_Given_Activite_From_Activite_Recid_message] = useState(""); async function Display_Given_Activite_From_Activite_Recid(myactivity_recid) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("activite_recid", myactivity_recid); //console.log(" ### event.currentTarget.getAttribute('recid') = ", event.currentTarget.getAttribute('recid')); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Activite/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Display_Given_Activite_From_Activite_Recid res.data.status = " + res.data.status); // console.log(" In Display_Given_Activite_From_Activite_Recid res.data.message = " + res.data.message); setDisplay_Given_Activite_From_Activite_Recid_api("true"); setDisplay_Given_Activite_From_Activite_Recid_result(res.data.message); props.update_nb_activite_en_new(res.data.nb_new_activite_assigned_to_me); var mylocalclient_activite = JSON.parse(res.data.message); if (mylocalclient_activite) { setselected_id(mylocalclient_activite._id); // Remplissage des doonées de l'activite if (mylocalclient_activite.description) setp_activite_description(mylocalclient_activite.description); else setp_activite_description(""); if (mylocalclient_activite.detail) setp_activite_detail(mylocalclient_activite.detail); else setp_activite_detail(""); if (mylocalclient_activite.deadline) { var act_deadline = new Date(moment(mylocalclient_activite.deadline, "DD/MM/YYYY HH:mm:ss")); setp_activite_deadline(act_deadline); setp_activite_deadline_label(mylocalclient_activite.deadline); } else setp_activite_deadline(new Date()); if (mylocalclient_activite.employee_assigned_to_id) { setp_activite_employee_assigned_nom_prenom(mylocalclient_activite.employee_assigned_to_nom_prenom); setp_activite_employee_assigned_id(mylocalclient_activite.employee_assigned_to_id); } if (mylocalclient_activite.type) setp_activite_type(mylocalclient_activite.type); else setp_activite_type(""); if (mylocalclient_activite.status) { setp_activite_status(mylocalclient_activite.status); if (String(mylocalclient_activite.status) === "0") setp_activite_status_label("En cours"); else if (String(mylocalclient_activite.status) === "1") setp_activite_status_label("Fait"); else if (String(mylocalclient_activite.status) === "-1") setp_activite_status_label("Annulé"); } else setp_activite_status(""); if (mylocalclient_activite.recid) setcurrent_activite_recid(mylocalclient_activite.recid); else setcurrent_activite_recid(""); // Apres avoir ouvert l'activité, on va rafraichir l'affichage de a liste des activitées qui me sont assignée // ceci pour actualiser le statut "employee_assigned_view_statut" Get_List_Activite_Assign_To_Me(); } // Disable_activite_fields(); } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); return; } else { setDisplay_Given_Activite_From_Activite_Recid_api("false"); setDisplay_Given_Activite_From_Activite_Recid_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { console.warn('Not good man :( Display_Given_Activite_From_Activite_Recid = ', error); setDisplay_Given_Activite_From_Activite_Recid_result("false"); setDisplay_Given_Activite_From_Activite_Recid_message(" Impossible de recuperer les details de l'activité") alert(" Impossible de recuperer les details de l'activité"); }) } async function Disable_activite_fields() { await sleep(5); if (document.getElementsByName("activite_description")[0]) { document.getElementsByName("activite_description")[0].disabled = true; document.getElementsByName("activite_description")[0].style.backgroundColor = "#ECEFF1"; } if (document.getElementsByName("activite_deadline")[0]) { document.getElementsByName("activite_deadline")[0].disabled = true; document.getElementsByName("activite_deadline")[0].style.backgroundColor = "#ECEFF1"; } if (document.getElementsByName("activite_type")[0]) { document.getElementsByName("activite_type")[0].disabled = true; document.getElementsByName("activite_type")[0].style.backgroundColor = "#ECEFF1"; } if (document.getElementsByName("activite_status")[0]) { document.getElementsByName("activite_status")[0].disabled = true; document.getElementsByName("activite_status")[0].style.backgroundColor = "#ECEFF1"; } if (document.getElementsByName("activite_assigned_to")[0]) { document.getElementsByName("activite_assigned_to")[0].disabled = true; document.getElementsByName("activite_assigned_to")[0].style.backgroundColor = "#ECEFF1"; } if (document.getElementsByName("activite_detail")[0]) { document.getElementsByName("activite_detail")[0].disabled = true; document.getElementsByName("activite_detail")[0].style.backgroundColor = "#ECEFF1"; } } function Enable_activite_fields() { if (document.getElementsByName("activite_description")) { document.getElementsByName("activite_description")[0].disabled = false; document.getElementsByName("activite_description")[0].style.backgroundColor = "#FFFFFF"; } if (document.getElementsByName("activite_deadline")) { document.getElementsByName("activite_deadline")[0].disabled = false; document.getElementsByName("activite_deadline")[0].style.backgroundColor = "#FFFFFF"; } if (document.getElementsByName("activite_type")) { document.getElementsByName("activite_type")[0].disabled = false; document.getElementsByName("activite_type")[0].style.backgroundColor = "#FFFFFF"; } if (document.getElementsByName("activite_status")) { document.getElementsByName("activite_status")[0].disabled = false; document.getElementsByName("activite_status")[0].style.backgroundColor = "#FFFFFF"; } if (document.getElementsByName("activite_assigned_to")) { document.getElementsByName("activite_assigned_to")[0].disabled = false; document.getElementsByName("activite_assigned_to")[0].style.backgroundColor = "#FFFFFF"; } if (document.getElementsByName("activite_detail")) { document.getElementsByName("activite_detail")[0].disabled = false; document.getElementsByName("activite_detail")[0].style.backgroundColor = "#FFFFFF"; } } function Clear_activite_P_fields() { setp_activite_description(""); setp_activite_detail(""); setp_activite_deadline(new Date()); setp_activite_type(""); setp_activite_status("0"); setp_activite_status_label(""); setp_activite_detail(""); setone_activite_description(""); setone_activite_type(""); setone_activite_status("call"); setone_activite_detail(""); } function Clear_activite_fields() { if (document.getElementsByName("activite_description")) { document.getElementsByName("activite_description")[0].value = ""; } if (document.getElementsByName("activite_deadline")) { document.getElementsByName("activite_deadline")[0].value = ""; } if (document.getElementsByName("activite_type")) { document.getElementsByName("activite_type")[0].value = ""; } if (document.getElementsByName("activite_status")) { document.getElementsByName("activite_status")[0].value = ""; } if (document.getElementsByName("activite_detail")) { document.getElementsByName("activite_detail")[0].value = ""; } } const [one_activite_description, setone_activite_description] = useState(); const [one_activite_deadline, setone_activite_deadline] = useState(new Date().toLocaleDateString('fr-FR')); const [one_activite_type, setone_activite_type] = useState("call"); const [one_activite_status, setone_activite_status] = useState("0"); const [one_activite_detail, setone_activite_detail] = useState(); function Close_add_one_activite() { setone_activite_description(""); setone_activite_deadline(new Date().toLocaleDateString('fr-FR')); setone_activite_type("call"); setone_activite_status("0"); setone_activite_detail(""); setshowactivite_detail(); setshowactivite_detail(); setadd_one_activite(); setshow_all_activite_list("1"); setcurrent_activite_recid(""); setformedit_mode_activite("0"); } /******* kanban */ const [kanban_colonne_width, setkanban_colonne_width] = useState("20vw"); // MySy Comment : design d'une tache (couleur, taille, etc) const classes_old = { board: { display: "flex", margin: "0 auto", width: "100%", fontFamily: 'Arial, "Helvetica Neue", sans-serif' }, column: { // minWidth: 200, //width: "16vw", width: kanban_colonne_width, height: "80vh", margin: "0 auto", backgroundColor: "#212F3D", border: 'double #32a1ce', }, columnHead: { textAlign: "center", padding: 10, fontSize: "1.2em", backgroundColor: "#C6D8AF", border: "red", }, item: { padding: 10, margin: 10, fontSize: "0.8em", cursor: "pointer", backgroundColor: "white" } }; const classes = { board: { display: "flex", margin: "0 auto", width: "100%", fontFamily: 'Arial, "Helvetica Neue", sans-serif' }, column: { // minWidth: 200, //width: "16vw", width: kanban_colonne_width, height: "80vh", margin: "0 auto", backgroundColor: "#FFFFFF", border: 'solid 1px', borderLeft: "1px solid #ecf1fc", borderRight: "1px solid #ecf1fc", }, column_first_left: { // minWidth: 200, //width: "16vw", width: kanban_colonne_width, height: "80vh", margin: "0 auto", backgroundColor: "#FFFFFF", border: 'solid 1px', borderTop: 'none', // borderRight: "1px solid #ecf1fc", }, column_right_solid_border: { // minWidth: 200, //width: "16vw", width: kanban_colonne_width, height: "80vh", margin: "0 auto", backgroundColor: "#FFFFFF", border: "1px solid #ecf1fc", borderRight: 'solid 1px', borderBottom: 'solid 1px', }, columnHead: { textAlign: "center", padding: 5, fontSize: "14px", backgroundColor: "rgb(103, 164, 239)", border: "1px solid", marginBottom: "5px", }, item: { padding: 5, marginBottom: 10, fontSize: "0.8em", cursor: "pointer", backgroundColor: "#f4f6f6", border: "0px solid", cursor: "move", width: "94%", marginLeft: "3%", } }; const KanbanColumn = ({ status, changeTaskStatus, children }) => { const ref = useRef(null); const [, drop] = useDrop({ accept: "card", drop(item) { changeTaskStatus(item.id, status); } }); drop(ref); return
{children}
; }; const KanbanItem = ({ id, children }) => { const ref = useRef(null); const [{ isDragging }, drag] = useDrag({ type: "card", item: () => ({ id }), collect: monitor => ({ isDragging: monitor.isDragging() }) }); const opacity = isDragging ? 0 : 1; drag(ref); return (
{children}
); }; const [tasks, setTaskStatus] = useState([]); // MySy Comment : quand on change la position d'une tache, dans cette fonction on appel l'api de mise à jour const changeTaskStatus = useCallback( (id, status) => { let local_task = tasks.find(task => task._id === id); const taskIndex = tasks.indexOf(local_task); local_task = { ...local_task, status }; let newTasks = update(tasks, { [taskIndex]: { $set: local_task } }); setTaskStatus(newTasks); // Recuperer l'_id du statuts if (id && status) { Update_Activite_Status(id, status); } //eeeee */ }, [tasks] ); const [New_Option_Status, setNew_Option_Status] = useState([]); const [Opportunite_chanel_label, setOpportunite_chanel_label] = useState({ "0": "Encours", "1": "Fait", "2": "Archivé", "-1": "Annulé", }); /******* Fin kanban */ const [isLoading, setLoading] = useState(); const [handleClick_delete_Activite_data_from_id_api, sethandleClick_delete_Activite_data_from_id_api] = useState(); const [handleClick_delete_Activite_data_from_id_message, sethandleClick_delete_Activite_data_from_id_message] = useState(); const [handleClick_delete_Activite_data_from_id_result, sethandleClick_delete_Activite_data_from_id_result] = useState(); function handleClick_delete_Activite_data_from_id(id_to_delete) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("_id", id_to_delete); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Given_Activite/"; setLoading(true); axios.post(myurl, form).then(res => { setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In handleClick_delete_Activite_data_from_id res.data.status = " + res.data.status); //console.log(" In handleClick_delete_Activite_data_from_id res.data.message r_class = " + res.data.message); sethandleClick_delete_Activite_data_from_id_api("true"); sethandleClick_delete_Activite_data_from_id_result(res.data.message); Get_List_Activite_Of_client_Part(); Get_List_Activite_Assign_To_Me(); Dialog_ACTIVITE_handleClose_buton(); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("success"); } else { sethandleClick_delete_Activite_data_from_id_api("false"); sethandleClick_delete_Activite_data_from_id_message(res.data.message); // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); } }).catch((error) => { setLoading(false); console.warn('Not good man :( handleClick_delete_Activite_data_from_id = ', error); sethandleClick_delete_Activite_data_from_id_api("false"); alert(" Impossible de supprimer l'activité"); //setmyApimyApiMessage("") }) } const [Dialog_ACTIVITE_open, setDialog_ACTIVITE_open] = React.useState(false); const Dialog_ACTIVITE_handleClose = () => { //alert(" Utiliser le bouton 'fermer' "); //setOpen(false); }; const Dialog_ACTIVITE_handleClose_buton = () => { setDialog_ACTIVITE_open(false); setselected_id(""); setdatamodification_activite(""); }; const [display_alert_mysy, setdisplay_alert_mysy] = useState(""); const [alert_message, setalert_message] = useState(""); const [alert_type, setalert_type] = useState(""); function clear_alert_message() { setalert_message(""); } function clear_alert_type() { setalert_type(""); } function clear_display_alert_mysy() { setdisplay_alert_mysy(""); } return (
{/*** Affichage des messages d'alerte*/} {display_alert_mysy && String(display_alert_mysy) === "1" && } {/*** FIN Affichage des messages d'alerte*/} {/* Dialog pour gerer une ACTIVITE */} null} PaperProps={{ className: classes_dialog.paper, // Apply the paper style style: { overflowY: 'unset', position: 'absolute', top: '5rem', margin: "2px", }, }} hideBackdrop={true} disableScrollLock classes={{ paper: classes_dialog.dialog }} PaperComponent={PaperComponent} aria-labelledby="draggable-dialog-title" > MySy Information
Description
{ setp_activite_description(event.target.value); setdatamodification_activite("1"); }} />
Date souhaitée
{ setp_activite_deadline(format(date, 'dd/MM/yyyy')); setdatamodification_activite("1"); } } showTimeSelect={false} filterTime={filterPassedTime_start} dateFormat="dd/MM/yyyy" className="disabled_style enable_style" locale='fr-FR' />
{type_activite_list && type_activite_list.length > 0 &&
Type d'activité
(data).id === String(p_activite_type))[0].label} onChange={(event, value) => { if (value && value.value) { setp_activite_type(value.value); setdatamodification_activite("1"); } }} renderInput={(params) => } />
} {activite_status_list && activite_status_list.length > 0 &&
Statut
(data).id === String(p_activite_status))[0].label} onChange={(event, value) => { if (value && value.value) { setp_activite_status(value.value); } }} renderInput={(params) => } />
} {New_Getall_Training_Employee_No_Filter_result && New_Getall_Training_Employee_No_Filter_result.length > 0 &&
Assigné à (employé)
(data)._id === String(p_activite_employee_assigned_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_activite_employee_assigned_id(value._id); setdatamodification_activite("1"); } }} renderInput={(params) => } />
}
Détail
{ setp_activite_detail(event.target.value); setdatamodification_activite("1"); }} />
 
{String(datamodification_activite) === "1" &&
/!\ Pensez à enregistrer les modifications
}
{selected_id && String(selected_id).length > 2 && } {String(selected_id).length < 2 && }
{selected_id && String(selected_id).length > 2 &&
}
{/* FIN Dialog pour gerer une ACTIVITE */}
{String(show_all_activite_list) === "1" && String(showactivite_detail) !== "1" && String(add_one_activite) !== "1" &&
Ajouter une activité
Activité(s) qui me sont Assignée(s)
{activite_status_list_pave_affiche.map((channel, index) => ( {String(index) === "0" &&
{Opportunite_chanel_label[channel.id]}
{Get_List_Activite_Assign_To_Me_result && Get_List_Activite_Assign_To_Me_result.length > 0 && Get_List_Activite_Assign_To_Me_result.filter(item => JSON.parse(item).status === channel.id) .map(item => (
{String(String(JSON.parse(item).status)) === "1" && } {String(String(JSON.parse(item).status)) === "0" && } {String(String(JSON.parse(item).status)) === "-1" && }
))}
} {String(index) !== "0" &&
{Opportunite_chanel_label[channel.id]}
{Get_List_Activite_Assign_To_Me_result && Get_List_Activite_Assign_To_Me_result.length > 0 && Get_List_Activite_Assign_To_Me_result.filter(item => JSON.parse(item).status === channel.id) .map(item => (
{String(String(JSON.parse(item).status)) === "1" && } {String(String(JSON.parse(item).status)) === "0" && } {String(String(JSON.parse(item).status)) === "-1" && }
))}
}
))}
 

Activté(s) que j'ai créée(s)
{activite_status_list_pave_affiche.map((channel, index) => ( {String(index) === "0" &&
{Opportunite_chanel_label[channel.id]}
{Get_List_Activite_Of_client_Part_result && Get_List_Activite_Of_client_Part_result.length > 0 && Get_List_Activite_Of_client_Part_result.filter(item => JSON.parse(item).status === channel.id) .map(item => (
{String(String(JSON.parse(item).status)) === "1" && } {String(String(JSON.parse(item).status)) === "0" && } {String(String(JSON.parse(item).status)) === "-1" && }
))}
} {String(index) !== "0" &&
{Opportunite_chanel_label[channel.id]}
{Get_List_Activite_Of_client_Part_result && Get_List_Activite_Of_client_Part_result.length > 0 && Get_List_Activite_Of_client_Part_result.filter(item => JSON.parse(item).status === channel.id) .map(item => (
{String(String(JSON.parse(item).status)) === "1" && } {String(String(JSON.parse(item).status)) === "0" && } {String(String(JSON.parse(item).status)) === "-1" && }
))}
}
))}
 
} {String(showactivite_detail) === "ttt1" &&
Description
setp_activite_description(e.target.value)} />
{String(formedit_mode_activite) === "1" &&
Date souhaitée
{ setp_activite_deadline(date); setdatamodification_activite("1"); } } showTimeSelect={false} filterTime={filterPassedTime_start} dateFormat="dd/MM/yyyy" className="disabled_style enable_style" locale='fr-FR' />
} {String(formedit_mode_activite) === "0" &&
Date souhaitée
} {String(formedit_mode_activite) === "1" && type_activite_list && type_activite_list.length > 0 &&
Type d'activité
(data).id === String(p_activite_type))[0].label} onChange={(event, value) => { if (value && value.value) { setp_activite_type(value.value); } }} renderInput={(params) => } />
} {String(formedit_mode_activite) === "0" &&
Type d'activité
setp_activite_type(e.target.value)} >
} {String(formedit_mode_activite) === "1" && activite_status_list && activite_status_list.length > 0 &&
Statut
(data).id === String(p_activite_status))[0].label} onChange={(event, value) => { if (value && value.value) { setp_activite_status(value.value); } }} renderInput={(params) => } />
} {String(formedit_mode_activite) === "0" &&
Statut
setp_activite_status(e.target.value)} >
} {New_Getall_Training_Employee_No_Filter_result && New_Getall_Training_Employee_No_Filter_result.length > 0 && String(formedit_mode_activite) === "1" &&
Assigné à (employé)
(data)._id === String(p_activite_employee_assigned_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_activite_employee_assigned_id(value._id); } }} renderInput={(params) => } />
} {String(formedit_mode_activite) !== "1" &&
Assigné à (employé)
}
Détail
setp_activite_detail(e.target.value)} />
 
{String(datamodification_activite) === "1" &&
/!\ Pensez à enregistrer les modifications
} {String(formedit_mode_activite) === "1" &&
} {String(formedit_mode_activite) !== "1" &&
}
} {String(add_one_activite) === "1" &&
Description
setone_activite_description(e.target.value)} />
Date souhaitée
{ setone_activite_deadline(format(date, 'dd/MM/yyyy')); } } showTimeSelect={false} filterTime={filterPassedTime_start} dateFormat="dd/MM/yyyy" className="disabled_style enable_style" locale='fr-FR' />
Type d'activité
{ if (value && value.value) { setone_activite_type(value.value); } }} renderInput={(params) => } /> {/* setone_activite_type(e.target.value)} > {type_activite_list.map((option) => ( {option.label}  
))}
*/}
Statut
{ if (value && value.value) { setone_activite_status(value.value); } }} renderInput={(params) => } />
Assigné à (employé)
{ if (value && value._id) { setp_activite_employee_assigned_id(value._id); } }} renderInput={(params) => } /> {/* { setp_activite_employee_assigned_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}
))}
*/}
Détail
setone_activite_detail(e.target.value)} />
 
}
 
) } export default PartnerClientActivite;