diff --git a/src/components/AddPartnerClient.js b/src/components/AddPartnerClient.js index c1c5d1b..6742fa6 100644 --- a/src/components/AddPartnerClient.js +++ b/src/components/AddPartnerClient.js @@ -19,7 +19,7 @@ import { Tooltip } from 'react-tooltip' import { CiEdit, CiTrash } from "react-icons/ci"; import Modules_Mes_Documents from "./Modules_Mes_Documents"; import { AiOutlineUserAdd } from "react-icons/ai"; -import PartnerClientActivite from "./PartnerClient_Activite"; +import PartnerClient_Activite_For_Client from "./PartnerClient_Activite_For_Client"; import Popup from 'reactjs-popup'; import 'reactjs-popup/dist/index.css'; import ToggleSwitch from "./ToggleSwitch"; @@ -4124,7 +4124,7 @@ const AddParnerClient = (props) => { - {/**/} + {} + {String(props.check_user_acces_right("stagiaire", "write")) === "1" && } diff --git a/src/components/Jurys.js b/src/components/Jurys.js index 2c6b50f..57df93c 100644 --- a/src/components/Jurys.js +++ b/src/components/Jurys.js @@ -165,7 +165,7 @@ const Jury = (props) => { return ( - + - {/***** Dialog Preview Image */} - null} +
+ + + + - PaperProps={{ + + + + + + {New_tab_entete_exam_jury && New_tab_entete_exam_jury.length > 0 && New_tab_entete_exam_jury.map((item) => ( + + + + ))} - className: classes.paper, // Apply the paper style - style: { - overflowY: 'unset', - position: 'absolute', - top: '7rem', - margin: "2px", - width: '50rem', - maxWidth: 'unset', - background: '#efefef', - borderRadius: '20px!important' - }, - }} - hideBackdrop={true} - disableScrollLock - classes={{ - paper: classes.dialog - }} + + + + {GetListeInscrit_With_Synthese_insc_result.map((item) => ( + - PaperComponent={PaperComponent} - aria-labelledby="draggable-dialog-title" - > + + ))} + +
ValidationCivNomPrenomEmailDossier {item}
- {selected_doc_name} - - - {Dialog_Preview_Doc_message} - +
+ options={New_Option_Document_Acceptance_Status} + value={New_Option_Document_Acceptance_Status.filter((data) => (data).value === String(JSON.parse(item).status))[0].label} - {selected_doc_img && - } - - - -
- - - - - - - - - - {/***** FIN Dialog Preview Image */} - - - - -

Checklist des pièces

- -
- -
-
-
- Détail Inscrit -
- {New_Get_Inscrit_All_Documents_result && New_Get_Inscrit_All_Documents_result.length > 0 &&
- - - - - - - - - - - - - - - - {New_Get_Inscrit_All_Documents_result.map((item) => ( - - - - - - - + }} - - -
- -
- - - )} - :
} - - + {New_civilite && New_civilite.length > 0 && } + + + + - - + + {New_tab_entete_exam_jury && New_tab_entete_exam_jury.length > 0 && New_tab_entete_exam_jury.map((subitem) => ( + + ))} - -
ValidationPièce demandéeTypeStatut - Ajouter/Remplacer - SupprimerVisualiserTelecharger
{(item.collection_download_files).length > 0 ? - - (data).value === String(item.collection_download_files[0].acceptance_status))[0].label} - - onChange={(event, value) => { - - if (value && value.value) { - Update_Document_Acceptance_Status(item.collection_download_files[0]._id, value.value); - } else { - Update_Document_Acceptance_Status(item.collection_download_files[0]._id, ""); - } - }} - - renderInput={(params) => - } - /> - - - : ""} - - {item.code}{item.type}{(item.collection_download_files).length > 0 ? "Fournie" : "Manquante"} - {(item.collection_download_files).length > 0 ? -
-
- -
-
: - -
-
- -
-
+ onChange={(event, value) => { + if (value && value.value) { + Update_Inscrit_Only_Status(JSON.parse(item)._id, value.value); + } else { + Update_Inscrit_Only_Status(JSON.parse(item)._id, ""); } -
- {(item.collection_download_files).length > 0 ?
- + renderInput={(params) => } - modal - nested - position="center center" - > - {close => ( -
- -
MySy Information
-
- {' '} + /> + } + /> - En confirmant cette opération, le fichier sera définitivement supprimé.
-
-
-
- +
- {item.collection_download_files && item.collection_download_files.length > 0 ? : } - {New_civilite.filter((data) => (data).id === String(JSON.parse(item).civilite))[0].label} {JSON.parse(item).nom}{JSON.parse(item).prenom}{JSON.parse(item).email} + <> + + {`${(JSON.parse(item).document_pourcentage_accepted * 100).toFixed(0)}%`} + - {item.collection_download_files && item.collection_download_files.length > 0 ? : } -
{JSON.parse(item)[subitem]}
-
} -
+ + +
-
-
-
- Statistique documents -
- {New_Get_Inscrit_Document_Pourcentage_result && New_Get_Inscrit_Document_Pourcentage_result.length > 0 &&
- -
- -

Stat sur reception

-
- -   - - - - - - - -
- - - - -
- -
-   -
- -
-

Stat sur acceptation

-
- -   - - -
- -
-
-   -
- - - -
} -
-
- - - - ); @@ -1495,6 +866,7 @@ const Module_Admission_Candidat_Synthese = (props) => { export default Module_Admission_Candidat_Synthese; + const local_css = ` .ck-card { background: white; @@ -1514,6 +886,7 @@ const local_css = ` width: 100%; border-collapse: collapse; font-family: "Dm Sans", system-ui, sans-serif; + font-size: small !important; } .ck-table th, @@ -1522,6 +895,7 @@ const local_css = ` border-bottom: 1px solid #eee; text-align: left; font-family: "Dm Sans", system-ui, sans-serif; + font-size: small !important; } diff --git a/src/components/Module_Jury_Admission_Detail_Examen.js b/src/components/Module_Jury_Admission_Detail_Examen.js index b249063..ce83a54 100644 --- a/src/components/Module_Jury_Admission_Detail_Examen.js +++ b/src/components/Module_Jury_Admission_Detail_Examen.js @@ -204,12 +204,11 @@ const Module_Jury_Admission_Detail_Examen = (props) => { const columns_list_session_note_classement_final = [ - { field: 'id', headerName: 'id', hide: true }, - { field: '_id', headerName: '_id', hide: true }, - { field: 'inscription_id', headerName: 'inscription_id', hide: false, minwidth: 300 }, - { field: 'session_id', headerName: 'session_id', hide: true }, - { field: 'class_id', headerName: 'class_id', hide: true }, - + { field: 'id', headerName: 'id', hide: true, Width: 0, disableExport: true, }, + { field: '_id', headerName: '_id', hide: true, Width: 0, disableExport: true, }, + { field: 'inscription_id', headerName: 'inscription_id', hide: true, Width: 0, disableExport: true, }, + { field: 'session_id', headerName: 'session_id', hide: true, Width: 0, disableExport: true, }, + { field: 'class_id', headerName: 'class_id', hide: true, Width: 0, disableExport: true, }, { field: 'nom', headerName: 'Nom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => , }, { field: 'prenom', headerName: 'Prenom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => , }, @@ -989,7 +988,7 @@ const Module_Jury_Admission_Detail_Examen = (props) => { .then((data) => data.json()) .then((data) => { setLoading(false); - // console.log(' Get_Jury_List_Apprenant_Seance : Success:', data['message'], "data['status'] = ", data['status']); + // console.log(' Get_Jury_List_Apprenant_Seance : Success:', data['message'], "data['status'] = ", data['status']); if (String(data['status']) === String("true")) { @@ -2380,13 +2379,13 @@ const Module_Jury_Admission_Detail_Examen = (props) => { > - Observation zzzz + Observation {Dialog_1_message} - setsession_admission_soutenance_candidat_id = {session_admission_soutenance_candidat_id} +
Observation
{  
- + + +
  diff --git a/src/components/Module_Session_Planification.js b/src/components/Module_Session_Planification.js index 2936134..23e2313 100644 --- a/src/components/Module_Session_Planification.js +++ b/src/components/Module_Session_Planification.js @@ -3756,6 +3756,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: position_h_choix_planning, margin: "2px", + maxWidth:'unset', }, }} hideBackdrop={true} @@ -3870,6 +3871,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: position_h_choix_planning, margin: "2px", + maxWidth:'unset', }, }} hideBackdrop={true} @@ -4044,6 +4046,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: position_h_myRef_seq_calendrier_01, margin: "2px", + maxWidth:'unset' }, }} hideBackdrop={true} @@ -4742,6 +4745,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: '7rem', margin: "2px", + maxWidth:'unset', }, }} hideBackdrop={true} @@ -4966,6 +4970,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: '7rem', margin: "2px", + maxWidth:'unset', }, }} hideBackdrop={true} @@ -5302,6 +5307,7 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: '7rem', margin: "2px", + maxWidth:'unset', }, }} hideBackdrop={true} @@ -5710,6 +5716,8 @@ const Module_Session_Planification = (props) => { position: 'absolute', top: 1500, margin: "2px", + maxWidth:'unset', + }, }} hideBackdrop={true} diff --git a/src/components/PartnerClient_Activite_For_Client.js b/src/components/PartnerClient_Activite_For_Client.js new file mode 100644 index 0000000..cce584c --- /dev/null +++ b/src/components/PartnerClient_Activite_For_Client.js @@ -0,0 +1,2595 @@ +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 fr from 'date-fns/locale/fr'; +import { registerLocale } from 'react-datepicker'; +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 PartnerClient_Activite_For_Client = (props) => { + registerLocale('fr', fr); + 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_id", props.related_collection_recid); + + + 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); + + + + 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); + console.log("## new_data2 = ", 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_id) { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("_id", myactivity_id); + + + //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"); + }} + + fullWidth + + /> +
+ + +
+ 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_100_percent_row" + locale={'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) => + } + fullWidth + /> + + +
} + +
+ Détail
+ { + setp_activite_detail(event.target.value); + setdatamodification_activite("1"); + }} + fullWidth + //style={{ width: '90%', }} + + /> +
+ +
+   +
+ {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" && + } +
+ +
+ ))} +
+
} + + + +
+ ))} + + + + +
+
+
 
+ + +
+*/} + + + +
+ +
+ {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'} + /> + +
} + + {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'} + + /> + +
+ + +
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 PartnerClient_Activite_For_Client; \ No newline at end of file diff --git a/src/components/Partner_Client.js b/src/components/Partner_Client.js index 9f7ed30..f72c7c8 100644 --- a/src/components/Partner_Client.js +++ b/src/components/Partner_Client.js @@ -99,7 +99,7 @@ const Partner_Client = (props) => { return (