diff --git a/src/components/AddPartnerClient.js b/src/components/AddPartnerClient.js index 2a56618..33217b3 100644 --- a/src/components/AddPartnerClient.js +++ b/src/components/AddPartnerClient.js @@ -33,11 +33,14 @@ 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 PartnerClientActivite from "./PartnerClient_Activite"; const AddParnerClient = (props) => { const history = useHistory(); const [submenu, setsubmenu] = useState(""); + const [current_contact_recid, setcurrent_contact_recid] = useState(""); + const [datamodification, setdatamodification] = useState("0"); const [formedit_mode, setformedit_mode] = useState("0"); @@ -83,6 +86,10 @@ const AddParnerClient = (props) => { const [p_contact_telephone, setcontact_telephone] = useState(""); const [p_contact_telephone_mobile, setp_contact_telephone_mobile] = useState(""); + const [p_contact_fonction, setp_contact_fonction] = useState(""); + const [p_contact_civilite, setp_contact_civilite] = useState(""); + + function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); @@ -216,8 +223,6 @@ const AddParnerClient = (props) => { document.getElementById("submenu_contact").style.background = "#104277"; document.getElementById("submenu_contact").style.color = "white"; - - } async function submenu_activite() { @@ -226,11 +231,11 @@ const AddParnerClient = (props) => { Ceci est super crade, fair eun wait de pour attendre l'afficage avant de desacitcation si on a desactiver, mais bon ... on avance. */ await sleep(5); - /* if (String(formedit_mode_invoice) !== "1") { - Disable_invoice_fields(); - } else { - Enable_invoice_fields(); - }*/ + if (String(formedit_mode_invoice) !== "1") { + //Disable_invoice_fields(); + } else { + //Enable_invoice_fields(); + } document.getElementById("submenu_factures").style.background = "#d8edfc"; document.getElementById("submenu_factures").style.color = "#3b3e40"; @@ -244,8 +249,8 @@ const AddParnerClient = (props) => { document.getElementById("submenu_cmd").style.background = "#d8edfc"; document.getElementById("submenu_cmd").style.color = "#3b3e40"; - document.getElementById("submenu_contact").style.background = "#d8edfc"; - document.getElementById("submenu_contact").style.color = "#3b3e40"; + document.getElementById("submenu_donnee_facturation").style.background = "#d8edfc"; + document.getElementById("submenu_donnee_facturation").style.color = "#3b3e40"; document.getElementById("submenu_donnee_client").style.background = "#d8edfc"; document.getElementById("submenu_donnee_client").style.color = "#3b3e40"; @@ -253,11 +258,15 @@ const AddParnerClient = (props) => { document.getElementById("submenu_donnee_facturation").style.background = "#d8edfc"; document.getElementById("submenu_donnee_facturation").style.color = "#3b3e40"; + document.getElementById("submenu_contact").style.background = "#d8edfc"; + document.getElementById("submenu_contact").style.color = "#3b3e40"; + + + document.getElementById("submenu_activite").style.background = "#104277"; document.getElementById("submenu_activite").style.color = "white"; - } async function submenu_devis() { @@ -365,6 +374,7 @@ const AddParnerClient = (props) => { setformedit_mode_contact("0"); clean_contact_set_values(); setaddcontact("1"); + setcurrent_contact_recid(""); } function Close_Contact() { @@ -375,6 +385,7 @@ const AddParnerClient = (props) => { clean_contact_set_values(); setdatamodification_invoice("0"); setformedit_mode_contact("0"); + setcurrent_contact_recid(""); } @@ -955,125 +966,148 @@ const AddParnerClient = (props) => { } -async function Disable_contact_fields() { + async function Disable_contact_fields() { - await sleep(5); + await sleep(5); + + if (document.getElementsByName("contact_email")) { + document.getElementsByName("contact_email")[0].disabled = true; + document.getElementsByName("contact_email")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_nom")) { + document.getElementsByName("contact_nom")[0].disabled = true; + document.getElementsByName("contact_nom")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_prenom")) { + document.getElementsByName("contact_prenom")[0].disabled = true; + document.getElementsByName("contact_prenom")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_fonction")) { + document.getElementsByName("contact_fonction")[0].disabled = true; + document.getElementsByName("contact_fonction")[0].style.backgroundColor = "#ECEFF1"; + } + + + if (document.getElementsByName("contact_civilite")) { + document.getElementsByName("contact_civilite")[0].disabled = true; + document.getElementsByName("contact_civilite")[0].style.backgroundColor = "#ECEFF1"; + } + + + + if (document.getElementsByName("contact_siret")) { + document.getElementsByName("contact_siret")[0].disabled = true; + document.getElementsByName("contact_siret")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_tva")) { + document.getElementsByName("contact_tva")[0].disabled = true; + document.getElementsByName("contact_tva")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_adresse")) { + document.getElementsByName("contact_adresse")[0].disabled = true; + document.getElementsByName("contact_adresse")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_ville")) { + document.getElementsByName("contact_ville")[0].disabled = true; + document.getElementsByName("contact_ville")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_code_postal")) { + document.getElementsByName("contact_code_postal")[0].disabled = true; + document.getElementsByName("contact_code_postal")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_pays")) { + document.getElementsByName("contact_pays")[0].disabled = true; + document.getElementsByName("contact_pays")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_telephone")) { + document.getElementsByName("contact_telephone")[0].disabled = true; + document.getElementsByName("contact_telephone")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("contact_telephone_mobile")) { + document.getElementsByName("contact_telephone_mobile")[0].disabled = true; + document.getElementsByName("contact_telephone_mobile")[0].style.backgroundColor = "#ECEFF1"; + } - if (document.getElementsByName("contact_email")) { - document.getElementsByName("contact_email")[0].disabled = true; - document.getElementsByName("contact_email")[0].style.backgroundColor = "#ECEFF1"; } - if (document.getElementsByName("contact_nom")) { - document.getElementsByName("contact_nom")[0].disabled = true; - document.getElementsByName("contact_nom")[0].style.backgroundColor = "#ECEFF1"; + function Enable_contact_fields() { + if (document.getElementsByName("contact_email")) { + document.getElementsByName("contact_email")[0].disabled = false; + document.getElementsByName("contact_email")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_nom")) { + document.getElementsByName("contact_nom")[0].disabled = false; + document.getElementsByName("contact_nom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_prenom")) { + document.getElementsByName("contact_prenom")[0].disabled = false; + document.getElementsByName("contact_prenom")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_civilite")) { + document.getElementsByName("contact_civilite")[0].disabled = false; + document.getElementsByName("contact_civilite")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_fonction")) { + document.getElementsByName("contact_fonction")[0].disabled = false; + document.getElementsByName("contact_fonction")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_siret")) { + document.getElementsByName("contact_siret")[0].disabled = false; + document.getElementsByName("contact_siret")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_tva")) { + document.getElementsByName("contact_tva")[0].disabled = false; + document.getElementsByName("contact_tva")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_adresse")) { + document.getElementsByName("contact_adresse")[0].disabled = false; + document.getElementsByName("contact_adresse")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_ville")) { + document.getElementsByName("contact_ville")[0].disabled = false; + document.getElementsByName("contact_ville")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_code_postal")) { + document.getElementsByName("contact_code_postal")[0].disabled = false; + document.getElementsByName("contact_code_postal")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_pays")) { + document.getElementsByName("contact_pays")[0].disabled = false; + document.getElementsByName("contact_pays")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_telephone")) { + document.getElementsByName("contact_telephone")[0].disabled = false; + document.getElementsByName("contact_telephone")[0].style.backgroundColor = "#FFFFFF"; + } + + if (document.getElementsByName("contact_telephone_mobile")) { + document.getElementsByName("contact_telephone_mobile")[0].disabled = false; + document.getElementsByName("contact_telephone_mobile")[0].style.backgroundColor = "#FFFFFF"; + } + } - if (document.getElementsByName("contact_prenom")) { - document.getElementsByName("contact_prenom")[0].disabled = true; - document.getElementsByName("contact_prenom")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_siret")) { - document.getElementsByName("contact_siret")[0].disabled = true; - document.getElementsByName("contact_siret")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_tva")) { - document.getElementsByName("contact_tva")[0].disabled = true; - document.getElementsByName("contact_tva")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_adresse")) { - document.getElementsByName("contact_adresse")[0].disabled = true; - document.getElementsByName("contact_adresse")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_ville")) { - document.getElementsByName("contact_ville")[0].disabled = true; - document.getElementsByName("contact_ville")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_code_postal")) { - document.getElementsByName("contact_code_postal")[0].disabled = true; - document.getElementsByName("contact_code_postal")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_pays")) { - document.getElementsByName("contact_pays")[0].disabled = true; - document.getElementsByName("contact_pays")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_telephone")) { - document.getElementsByName("contact_telephone")[0].disabled = true; - document.getElementsByName("contact_telephone")[0].style.backgroundColor = "#ECEFF1"; - } - - if (document.getElementsByName("contact_telephone_mobile")) { - document.getElementsByName("contact_telephone_mobile")[0].disabled = true; - document.getElementsByName("contact_telephone_mobile")[0].style.backgroundColor = "#ECEFF1"; - } - -} - -function Enable_contact_fields() { - if (document.getElementsByName("contact_email")) { - document.getElementsByName("contact_email")[0].disabled = false; - document.getElementsByName("contact_email")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_nom")) { - document.getElementsByName("contact_nom")[0].disabled = false; - document.getElementsByName("contact_nom")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_prenom")) { - document.getElementsByName("contact_prenom")[0].disabled = false; - document.getElementsByName("contact_prenom")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_siret")) { - document.getElementsByName("contact_siret")[0].disabled = false; - document.getElementsByName("contact_siret")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_tva")) { - document.getElementsByName("contact_tva")[0].disabled = false; - document.getElementsByName("contact_tva")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_adresse")) { - document.getElementsByName("contact_adresse")[0].disabled = false; - document.getElementsByName("contact_adresse")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_ville")) { - document.getElementsByName("contact_ville")[0].disabled = false; - document.getElementsByName("contact_ville")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_code_postal")) { - document.getElementsByName("contact_code_postal")[0].disabled = false; - document.getElementsByName("contact_code_postal")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_pays")) { - document.getElementsByName("contact_pays")[0].disabled = false; - document.getElementsByName("contact_pays")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_telephone")) { - document.getElementsByName("contact_telephone")[0].disabled = false; - document.getElementsByName("contact_telephone")[0].style.backgroundColor = "#FFFFFF"; - } - - if (document.getElementsByName("contact_telephone_mobile")) { - document.getElementsByName("contact_telephone_mobile")[0].disabled = false; - document.getElementsByName("contact_telephone_mobile")[0].style.backgroundColor = "#FFFFFF"; - } - -} - function confirm_add_user() { confirmAlert({ @@ -1572,25 +1606,29 @@ function Enable_contact_fields() { props.close_detail_client(); } - function retour_liste_contact(){ + function retour_liste_contact() { setaddcontact("0"); } -function clean_contact_set_values(){ - setp_contact_email(""); - setp_contact_nom(""); - setp_contact_prenom(""); - setcontact_siret(""); - setcontact_tva(""); - setcontact_adresse(""); - setcontact_ville(""); - setcontact_code_postal(""); - setcontact_pays(""); + function clean_contact_set_values() { + setp_contact_email(""); + setp_contact_nom(""); + setp_contact_prenom(""); + setcontact_siret(""); + setcontact_tva(""); + setcontact_adresse(""); + setcontact_ville(""); + setcontact_code_postal(""); + setcontact_pays(""); - setcontact_telephone(""); - setp_contact_telephone_mobile("") -} + setcontact_telephone(""); + setp_contact_telephone_mobile(""); + + setp_contact_fonction(""); + setp_contact_civilite(""); + + } function clear_contact_fields() { if (document.getElementsByName("contact_email")) { @@ -1652,9 +1690,22 @@ function clean_contact_set_values(){ form.append("token", stored_cookie); // Recupeation des données à enregister - form.append("related_collection", "partner_client"); - form.append("related_collection_owner_email", p_client_email); + var myurl = ""; + if (current_contact_recid && String(current_contact_recid).length > 3) { + // 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_Contact/"; + form.append("contact_recid", current_contact_recid); + + } else { + // 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", "partner_client"); + form.append("related_collection_owner_email", p_client_email); + } + + + console.log(" ### current_contact_recid = ", current_contact_recid, " myurl = ", myurl) // Données de contact du client du partner var contact_email = "" @@ -1675,6 +1726,21 @@ function clean_contact_set_values(){ } form.append("prenom", contact_prenom); + + var contact_fonction = "" + if (document.getElementsByName("contact_fonction")) { + contact_fonction = document.getElementsByName("contact_fonction")[0].value; + } + form.append("fonction", contact_fonction); + + var contact_civilite = "" + if (document.getElementsByName("contact_civilite")) { + contact_civilite = document.getElementsByName("contact_civilite")[0].value; + } + form.append("civilite", contact_civilite); + + + var contact_siret = "" if (document.getElementsByName("contact_siret")) { contact_siret = document.getElementsByName("contact_siret")[0].value; @@ -1728,8 +1794,6 @@ function clean_contact_set_values(){ form.append("telephone_mobile", contact_telephone_mobile); - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Contact/"; - axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In recordPartnerClient_Contact_Data res.data.status = " + res.data.status); @@ -1760,8 +1824,8 @@ function clean_contact_set_values(){ }).catch((error) => { console.warn('Not good man :( recordPartnerClient_Contact_Data = ', error); setrecordPartnerClient_Contact_Data_result("false"); - setrecordPartnerClient_Contact_Data_message(" Impossible de recuperer les informations du client") - alert(" Impossible de recuperer les informations du client"); + setrecordPartnerClient_Contact_Data_message(" Impossible d'enregistrer les doonées du contact") + alert(" Impossible d'enregistrer les doonées du contact"); }) } @@ -1859,8 +1923,27 @@ function clean_contact_set_values(){ else setp_contact_telephone_mobile(""); + + if (mylocalclient_contact.fonction) + setp_contact_fonction(mylocalclient_contact.fonction); + else + setp_contact_fonction(""); + + if (mylocalclient_contact.civilite) + setp_contact_civilite(mylocalclient_contact.civilite); + else + setp_contact_civilite(""); + + + + + if (mylocalclient_contact.recid) + setcurrent_contact_recid(mylocalclient_contact.recid); + else + setcurrent_contact_recid(""); + } - + Disable_contact_fields(); @@ -1882,8 +1965,8 @@ function clean_contact_set_values(){ }).catch((error) => { console.warn('Not good man :( Display_Part_Client_Contact = ', error); setDisplay_Part_Client_Contact_result("false"); - setDisplay_Part_Client_Contact_message(" Impossible de recuperer les informations du client") - alert(" Impossible de recuperer les informations du client"); + setDisplay_Part_Client_Contact_message(" Impossible de recuperer les detail du contact") + alert(" Impossible de recuperer les details du contact"); }) } @@ -2082,7 +2165,6 @@ function clean_contact_set_values(){ } - {String(props.new_customer) !== "1" &&
@@ -2451,6 +2533,8 @@ function clean_contact_set_values(){ Get_List_Contact_Of_client_Part_result.map((client) => (
+ {String(JSON.parse(client).prenom)}   {String(JSON.parse(client).nom)}
+ fonction = {String(JSON.parse(client).fonction)}
mail = {String(JSON.parse(client).email)}
Tel = {String(JSON.parse(client).telephone)}
@@ -2462,7 +2546,7 @@ function clean_contact_set_values(){
} - {String(addcontact) === "1" &&
+ {String(addcontact) === "1" &&
+
+ setp_contact_civilite(e.target.value)} + + /> +
+
+
+ setp_contact_fonction(e.target.value)} + + /> +
+ +
-
- +
+
@@ -2664,6 +2781,10 @@ function clean_contact_set_values(){
} + {String(submenu).trim() === "submenu_activite" &&
+ < PartnerClientActivite email={p_client_email} /> +
} +
{ sethandlepush_to_lms_result(res.data.message); setLoading(false); + GetAllClass_new(); alert(res.data.message); diff --git a/src/components/PartnerClient_Activite.js b/src/components/PartnerClient_Activite.js new file mode 100644 index 0000000..8c1ea08 --- /dev/null +++ b/src/components/PartnerClient_Activite.js @@ -0,0 +1,717 @@ +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 { ConstructionOutlined, PropaneSharp } 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 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"; + +const PartnerClientActivite = (props) => { + + const history = useHistory(); + + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + const [current_activite_recid, setcurrent_activite_recid] = useState(""); + const [addactivite, setaddactivite] = useState("0"); + function Add_Activite() { + setdatamodification_activite("0"); + setformedit_mode_activite("0"); + setcurrent_activite_recid(""); + //clean_contact_set_values(); + setaddactivite("1"); + Clear_activite_P_fields(); + + } + + function Close_Activite() { + setaddactivite("0"); + setdatamodification_activite("0"); + setformedit_mode_activite("0"); + setcurrent_activite_recid(""); + //clear_contact_fields(); + //clean_contact_set_values(); + + } + + function retour_liste_Activite() { + setaddactivite("0"); + setcurrent_activite_recid(""); + } + + 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 = [ + { + value: 'email', + label: 'Email', + }, + { + value: 'call', + label: 'Appel', + }, + { + value: 'meeting', + label: 'Réunion', + }, + { + value: 'autre', + label: 'Autre', + }, + { + value: 'cmd', + label: 'commande', + }, + { + value: 'devis', + label: 'devis', + }, + { + value: 'facture', + label: 'facture', + }, + + ]; + + const activite_status_list = [ + { + value: '0', + label: 'encours', + }, + { + value: '1', + label: 'Fait', + }, + { + value: '-1', + label: 'annulé', + }, + + + ]; + + + // 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(""); + 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(""); + const [p_activite_status_label, setp_activite_status_label] = 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 = "partner_client" + + + 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); + + } + 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("") + }) + } + + + useEffect(() => { + Get_List_Activite_Of_client_Part(); + + }, []); + + const filterPassedTime_start = (time) => { + const currentDate = new Date(); + const selectedDate = new Date(time); + + return currentDate.getTime() < selectedDate.getTime(); + }; + + + + // Fonction d'ajout d'un 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 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", format(p_activite_deadline, 'dd/MM/yyyy')); + form.append("type", p_activite_type); + form.append("status", p_activite_status); + + + // 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 'Description' comporte plus de 500 caractères "); + return; + } + + + var myurl = ""; + if (current_activite_recid && String(current_activite_recid).length > 3) { + // 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); + + } else { + // 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", "partner_client"); + 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); + setrecordPartnerClient_Activite_Data_api("true"); + setrecordPartnerClient_Activite_Data_result(res.data.message); + + setaddactivite("0"); + Get_List_Activite_Of_client_Part(); + alert(res.data.message); + setdatamodification_activite("0"); + setformedit_mode_activite("0"); + setcurrent_activite_recid(""); + } + + 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); + + } + + + }).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é "); + + }) + } + + 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 form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("activite_recid", event.target.id); + + + 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); + + setaddactivite("1"); + 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(""); + + + 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); + + } + + + }).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é"); + + }) + } + + async function Disable_activite_fields() { + + await sleep(5); + + if (document.getElementsByName("activite_description")) { + document.getElementsByName("activite_description")[0].disabled = true; + document.getElementsByName("activite_description")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("activite_deadline")) { + document.getElementsByName("activite_deadline")[0].disabled = true; + document.getElementsByName("activite_deadline")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("activite_type")) { + document.getElementsByName("activite_type")[0].disabled = true; + document.getElementsByName("activite_type")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("activite_status")) { + document.getElementsByName("activite_status")[0].disabled = true; + document.getElementsByName("activite_status")[0].style.backgroundColor = "#ECEFF1"; + } + + if (document.getElementsByName("activite_detail")) { + 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_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(""); + setp_activite_type(""); + setp_activite_status(""); + setp_activite_status_label(""); + } + + + + 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 = ""; + } + + } + + + return ( +
+ +
+ {String(addactivite) === "0" &&
+
Ajouter une activité
+
+ +
+ + {Get_List_Activite_Of_client_Part_result && String(Get_List_Activite_Of_client_Part_api) === "true" && + Get_List_Activite_Of_client_Part_result.map((client) => ( + +
+ description = {String(JSON.parse(client).description)}
+ detail = {String(JSON.parse(client).detail)}
+ type = {String(JSON.parse(client).type)}
+ deadline = {String(JSON.parse(client).deadline)}
+ + +
+ + + ))} +
+
+
} + {String(addactivite) === "1" &&
+
+ 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" &&
+ + +
} + + {String(formedit_mode_activite) === "1" &&
+ setp_activite_type(e.target.value)} > + {type_activite_list.map((option) => ( + + {option.label}  
+
+ ))} +
+ +
} + + {String(formedit_mode_activite) === "0" &&
+ setp_activite_type(e.target.value)} > + + + +
} + + {String(formedit_mode_activite) === "1" &&
+ setp_activite_status(e.target.value)} > + {activite_status_list.map((option) => ( + + {option.label}  
+
+ ))} +
+
} + + {String(formedit_mode_activite) === "0" &&
+ setp_activite_status(e.target.value)} > + +
} + +
+ setp_activite_detail(e.target.value)} + + /> +
+
+   +
+ {String(datamodification_activite) === "1" &&
+
/!\ Pensez à enregistrer les modifications
} + + {String(formedit_mode_activite) === "1" &&
+
+ +
+
+ +
+
+ } + + {String(formedit_mode_activite) !== "1" &&
+ +
+ +
+ +
+ +
+
+ } + + +
} + +
+ +
+ ) +} + +export default PartnerClientActivite; \ No newline at end of file diff --git a/src/styles/components/_addpartnerclient.scss b/src/styles/components/_addpartnerclient.scss index 4f44810..8c4b4e8 100644 --- a/src/styles/components/_addpartnerclient.scss +++ b/src/styles/components/_addpartnerclient.scss @@ -108,6 +108,7 @@ width: 90% !important; height: 3rem !important; margin: 5px !important; + margin-bottom: 1rem !important; } .bton_suppr { diff --git a/src/styles/components/_partner_client_activite.scss b/src/styles/components/_partner_client_activite.scss new file mode 100644 index 0000000..89c6de9 --- /dev/null +++ b/src/styles/components/_partner_client_activite.scss @@ -0,0 +1,230 @@ +.partner_client_activite { + + .okUpdateData { + font-size: small; + color: green; + font-style: italic; + } + + .koUpdateData { + font-size: small; + color: red; + font-style: italic; + } + + @media only screen and (max-width: 600px) {} + + @media only screen and (min-width: 601px) and (max-width: 991px) {} + + @media only screen and (min-width: 992px) and (max-width: 1199px) {} + + @media only screen and (min-width: 1200px) { + + .div_row { + float: left; + //border:0px solid black; + border-width: 0.01rem; + width: 100%; + margin-bottom: 1rem; + border-radius: 1rem; + } + + .div_row_gauche { + float: left; + //border:0px solid black; + border-width: 0.01rem; + width: 48%; + border-radius: 1rem; + } + + .div_row_droite { + float: right; + //border:0px solid black; + border-width: 0.01rem; + width: 48%; + border-radius: 1rem; + } + + .titre1 { + font-family: "Quicksand", "Signika", sans-serif; + font-size: medium; + text-align: center; + margin-bottom: 0.8rem; + color: white; + cursor: pointer; + font-style: italic; + background-color: gray; + font-weight: normal; + float: left; + width: 100%; + } + + + .training_data { + float: left; + width: 100%; + box-shadow: 1px 1px 10px 1px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 1px 1px 10px 1px rgba(0, 0, 0, 0.5); + border-radius: 10px; + margin-top: 10px; + margin-bottom: 10px; + padding-top: 10px; + padding-bottom: 10px; + } + + .training_caract { + width: 50%; + padding: 5px; + float: left; + } + + .training_text { + width: 50%; + padding: 5px; + float: left; + height: 320px !important; + min-height: 320px !important; + max-height: 320px !important; + margin-bottom: 10px; + } + + .titre_training_text { + font-size: small; + padding-left: 5px; + } + + .css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input { + padding-left: 5px !important; + } + + .css-1sumxir-MuiFormLabel-root-MuiInputLabel-root { + margin-left: 1px !important; + } + + .disabled_style { + //background-color: #ECEFF1; + font-size: small !important; + color: black; + width: 90% !important; + height: 3rem !important; + margin: 5px !important; + margin-bottom: 1rem !important; + } + + .bton_suppr { + background: transparent; + color: red; + border-radius: 5rem; + font-size: small; + text-align: center; + height: 2.5rem; + width: 40%; + margin-left: 10px; + margin-right: 10px; + } + + .bton_enreg { + border-radius: 5rem; + font-size: small; + background: #81BC3A !important; + text-align: right; + height: 2.5rem; + width: 40%; + color: white; + margin-left: 10px; + margin-right: 10px; + } + + .bton_edit { + border-radius: 5rem; + font-size: small; + background: black !important; + text-align: right; + height: 2.5rem; + width: 40%; + color: white; + margin-left: 10px; + margin-right: 10px; + } + + .bton_annule { + border-radius: 5rem; + font-size: small; + background: lightgray !important; + text-align: right; + height: 2.5rem; + width: 40%; + color: black; + margin-left: 10px; + margin-right: 10px; + } + + .detail_submenu { + background: #d8edfc; + border-radius: 15px; + margin-right: 1rem; + padding: 0.3rem; + margin-bottom: 0.5rem; + min-width: 10rem; + text-align: center; + border: 1px solid #9cf; + color: #3b3e40; + font-family: "verdana", "Quicksand", "Signika", sans-serif; + font-size: small; + letter-spacing: 0.1rem; + font-weight: normal; + } + + + .detail_submenu:hover, + .detail_submenu:focus, + .detail_submenu:active, + .detail_submenu:checked { + background-color: #104277; + color: white; + } + } + + + .contact_grid { + margin-right: 10px !important; + margin-left: 10px !important; + display: grid; + height: 200px; + grid-template: repeat(2, 1fr) / repeat(2, 1fr); + gap: 20px 10px; + } + + .contact_grid>div { + display: inline-block; + color: #444; + border: 1px solid #CCC; + background: #DDD; + box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%); + cursor: pointer; + vertical-align: middle; + padding: 5px; + text-align: left; + } + + .contact_grid>div:hover { + box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%); + } + + .css-1v4ccyo { + height: 3rem !important; + } + + + .css-1x5jdmq { + height: 3rem !important; + font-size: medium !important; + padding: 0px !important; + padding-left: 5px !important; + padding-right: 5px !important; + } + + .css-1jy569b-MuiFormLabel-root-MuiInputLabel-root{ + margin-left: 0px !important; + } +} \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index d6db9ef..ddbab9e 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -66,4 +66,5 @@ @import "./components/hebergementlms"; @import "./components/addpartnerclient"; @import "./components/partnerclient"; -@import "./components/contactpartnerclient" +@import "./components/contactpartnerclient"; +@import "./components/partner_client_activite";