24/07/23 - 17h

recette2
cherif 2023-07-24 17:54:02 +02:00
parent 0ed4c2471c
commit 5386cb5f0b
8 changed files with 496 additions and 20 deletions

View File

@ -85,7 +85,7 @@ function Account() {
const [isimage, setisimage] = useState();
function getImage(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
var form = new FormData();
form.append("token", stored_user);
form.append("type", "user");

View File

@ -32,6 +32,7 @@ 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 AddParnerClient = (props) => {
const history = useHistory();
@ -66,8 +67,24 @@ const AddParnerClient = (props) => {
const [p_client_invoice_code_postal, setclient_invoice_code_postal] = useState("");
const [p_client_invoice_pays, setclient_invoice_pays] = useState("");
// Données contact
const [p_contact_email, setp_contact_email] = useState("");
const [p_contact_nom, setp_contact_nom] = useState("");
const [p_contact_prenom, setp_contact_prenom] = useState("");
const [p_contact_siret, setcontact_siret] = useState("");
const [p_contact_tva, setcontact_tva] = useState("");
const [p_contact_adresse, setcontact_adresse] = useState("");
const [p_contact_ville, setcontact_ville] = useState("");
const [p_contact_code_postal, setcontact_code_postal] = useState("");
const [p_contact_pays, setcontact_pays] = useState("");
const [p_contact_telephone, setcontact_telephone] = useState("");
const [p_contact_telephone_mobile, setp_contact_telephone_mobile] = useState("");
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const [importmessage, setimportmessage] = useState("");
async function submenu_donnee_client() {
setsubmenu("submenu_donnee_client");
@ -81,6 +98,24 @@ const AddParnerClient = (props) => {
Enable_fields();
}
document.getElementById("submenu_factures").style.background = "#d8edfc";
document.getElementById("submenu_factures").style.color = "#3b3e40";
document.getElementById("submenu_stagiaires").style.background = "#d8edfc";
document.getElementById("submenu_stagiaires").style.color = "#3b3e40";
document.getElementById("submenu_devis").style.background = "#d8edfc";
document.getElementById("submenu_devis").style.color = "#3b3e40";
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_activite").style.background = "#d8edfc";
document.getElementById("submenu_activite").style.color = "#3b3e40";
document.getElementById("submenu_donnee_client").style.background = "#d8edfc";
document.getElementById("submenu_donnee_client").style.color = "#3b3e40";
@ -93,9 +128,7 @@ const AddParnerClient = (props) => {
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function submenu_donnee_facturation() {
setsubmenu("submenu_donnees_facturation");
@ -109,6 +142,24 @@ const AddParnerClient = (props) => {
Enable_invoice_fields();
}
document.getElementById("submenu_factures").style.background = "#d8edfc";
document.getElementById("submenu_factures").style.color = "#3b3e40";
document.getElementById("submenu_stagiaires").style.background = "#d8edfc";
document.getElementById("submenu_stagiaires").style.color = "#3b3e40";
document.getElementById("submenu_devis").style.background = "#d8edfc";
document.getElementById("submenu_devis").style.color = "#3b3e40";
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_activite").style.background = "#d8edfc";
document.getElementById("submenu_activite").style.color = "#3b3e40";
document.getElementById("submenu_donnee_client").style.background = "#d8edfc";
document.getElementById("submenu_donnee_client").style.color = "#3b3e40";
@ -122,6 +173,122 @@ const AddParnerClient = (props) => {
}
async function submenu_contact() {
setsubmenu("submenu_contact");
/*
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();
}*/
document.getElementById("submenu_factures").style.background = "#d8edfc";
document.getElementById("submenu_factures").style.color = "#3b3e40";
document.getElementById("submenu_stagiaires").style.background = "#d8edfc";
document.getElementById("submenu_stagiaires").style.color = "#3b3e40";
document.getElementById("submenu_devis").style.background = "#d8edfc";
document.getElementById("submenu_devis").style.color = "#3b3e40";
document.getElementById("submenu_cmd").style.background = "#d8edfc";
document.getElementById("submenu_cmd").style.color = "#3b3e40";
document.getElementById("submenu_donnee_facturation").style.background = "#d8edfc";
document.getElementById("submenu_donnee_facturation").style.color = "#3b3e40";
document.getElementById("submenu_activite").style.background = "#d8edfc";
document.getElementById("submenu_activite").style.color = "#3b3e40";
document.getElementById("submenu_donnee_client").style.background = "#d8edfc";
document.getElementById("submenu_donnee_client").style.color = "#3b3e40";
document.getElementById("submenu_donnee_facturation").style.background = "#d8edfc";
document.getElementById("submenu_donnee_facturation").style.color = "#3b3e40";
document.getElementById("submenu_contact").style.background = "#104277";
document.getElementById("submenu_contact").style.color = "white";
}
async function submenu_activite() {
setsubmenu("submenu_activite");
/*
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();
}*/
document.getElementById("submenu_factures").style.background = "#d8edfc";
document.getElementById("submenu_factures").style.color = "#3b3e40";
document.getElementById("submenu_stagiaires").style.background = "#d8edfc";
document.getElementById("submenu_stagiaires").style.color = "#3b3e40";
document.getElementById("submenu_devis").style.background = "#d8edfc";
document.getElementById("submenu_devis").style.color = "#3b3e40";
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_client").style.background = "#d8edfc";
document.getElementById("submenu_donnee_client").style.color = "#3b3e40";
document.getElementById("submenu_donnee_facturation").style.background = "#d8edfc";
document.getElementById("submenu_donnee_facturation").style.color = "#3b3e40";
document.getElementById("submenu_activite").style.background = "#104277";
document.getElementById("submenu_activite").style.color = "white";
}
async function submenu_devis() {
setsubmenu("submenu_devis");
/*
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);
}
async function submenu_cmd() {
setsubmenu("submenu_cmd");
/*
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);
}
async function submenu_factures() {
setsubmenu("submenu_factures");
/*
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);
}
async function submenu_stagiaires() {
setsubmenu("submenu_stagiaires");
/*
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);
}
function DataUpdated() {
setdatamodification("1");
@ -177,6 +344,15 @@ const AddParnerClient = (props) => {
}
}
const [addcontact, setaddcontact] = useState("0");
function Add_Contact() {
setaddcontact("1");
}
function Close_Contact() {
setaddcontact("0");
}
useEffect(() => {
@ -191,6 +367,8 @@ const AddParnerClient = (props) => {
setdatamodification("0");
setdatamodification_invoice("0");
Get_List_Contact_Of_client_Part();
window.scrollTo(0, 0);
} else {
setformedit_mode("1");
@ -530,6 +708,49 @@ const AddParnerClient = (props) => {
}
const [Get_List_Contact_Of_client_Part_api, setGet_List_Contact_Of_client_Part_api] = useState();
const [Get_List_Contact_Of_client_Part_message, setGet_List_Contact_Of_client_Part_message] = useState();
const [Get_List_Contact_Of_client_Part_result, setGet_List_Contact_Of_client_Part_result] = useState();
function Get_List_Contact_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.client_mail);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Entity_Contact/";
axios.post(myurl, form).then(res => {
console.log(" In Get_List_Contact_Of_client_Part res.data.status = " + res.data.status);
console.log(" In Get_List_Contact_Of_client_Part res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
setGet_List_Contact_Of_client_Part_api("true");
setGet_List_Contact_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_Contact_Of_client_Part_api("false");
setGet_List_Contact_Of_client_Part_message(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( Get_List_Contact_Of_client_Part = ', error);
setGet_List_Contact_Of_client_Part_api("false");
//setmyApimyApiMessage("")
})
}
function clear_fields() {
if (document.getElementsByName("client_email")) {
document.getElementsByName("client_email")[0].value = "";
@ -710,7 +931,7 @@ const AddParnerClient = (props) => {
}
function confirm_add_user() {
confirmAlert({
title: '',
@ -1389,8 +1610,8 @@ const AddParnerClient = (props) => {
 
</div>
<div className="div_row">
<div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="bton_enreg " onClick={confirm_add_user}>Enregistrer &nbsp; <AiTwotoneSave /> </Button>
</div>
@ -1406,12 +1627,12 @@ const AddParnerClient = (props) => {
<div className="div_row">
<Button variant="outlined" onClick={submenu_donnee_client} className="detail_submenu" id='submenu_donnee_client' name='submenu_donnee_client'>Données Client</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_donnee_facturation' name='submenu_donnee_facturation'>Données Facuturation</Button>
<Button variant="outlined" onClick={submenu_donnee_client} className="detail_submenu" id='submenu_contact' name='submenu_contact'>Contact & Adresses</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_activite' name='submenu_activite'>Activité</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_devis' name='submenu_devis'>Devis</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_cmd' name='submenu_cmd'>Commandes</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_factures' name='submenu_factures'>Factures</Button>
<Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_stagiaires' name='submenu_stagiaires'>Stagiaires</Button>
<Button variant="outlined" onClick={submenu_contact} className="detail_submenu" id='submenu_contact' name='submenu_contact'>Contact & Adresses</Button>
<Button variant="outlined" onClick={submenu_activite} className="detail_submenu" id='submenu_activite' name='submenu_activite'>Activité</Button>
<Button variant="outlined" onClick={submenu_devis} className="detail_submenu" id='submenu_devis' name='submenu_devis'>Devis</Button>
<Button variant="outlined" onClick={submenu_cmd} className="detail_submenu" id='submenu_cmd' name='submenu_cmd'>Commandes</Button>
<Button variant="outlined" onClick={submenu_factures} className="detail_submenu" id='submenu_factures' name='submenu_factures'>Factures</Button>
<Button variant="outlined" onClick={submenu_stagiaires} className="detail_submenu" id='submenu_stagiaires' name='submenu_stagiaires'>Stagiaires</Button>
</div>
{String(submenu).trim() === "submenu_donnee_client" && <div className="training_data" onChange={DataUpdated}>
@ -1759,6 +1980,228 @@ const AddParnerClient = (props) => {
</div>}
{String(submenu).trim() === "submenu_contact" && <div className="training_data" onChange={"DataUpdated_Invoice_Data"}>
{String(addcontact) !== "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px" }}>
<div className="div_row" onClick={Add_Contact} style={{ "cursor": "pointer" }}> <AiOutlineUserAdd /> Ajouter un contact </div>
<div className="div_row">
<div className="contact_grid">
{Get_List_Contact_Of_client_Part_result && String(Get_List_Contact_Of_client_Part_api) === "true" &&
Get_List_Contact_Of_client_Part_result.map((client) => (
<div>
mail = {String(JSON.parse(client).email)} <br />
Tel = {String(JSON.parse(client).telephone)} <br />
</div>
))}
</div>
</div>
</div>}
{String(addcontact) !== "0" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px" }} >
<h2> Ajout d'un nouveau contact </h2>
<div className="training_caract">
<TextField
required
name="contact_email"
label="Email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_email}
onChange={(e) => setp_contact_email(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_nom"
label="Nom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_nom}
onChange={(e) => setp_contact_nom(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_prenom"
label="Prenom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_prenom}
onChange={(e) => setp_contact_prenom(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_siret"
label="N° Siret"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_siret}
onChange={(e) => setcontact_siret(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_tva"
label="N° TVA"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_tva}
onChange={(e) => setcontact_tva(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_adresse"
label="Adresse"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_adresse}
onChange={(e) => setcontact_adresse(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_ville"
label="ville"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_ville}
onChange={(e) => setcontact_ville(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_code_postal"
label="Code Postal"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_code_postal}
onChange={(e) => setcontact_code_postal(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_pays"
label="Pays"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_pays}
onChange={(e) => setcontact_pays(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_telephone"
label="Telephone"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_telephone}
onChange={(e) => setcontact_telephone(e.target.value)}
/>
</div>
<div className="training_caract">
<TextField
required
name="contact_telephone_mobile"
label="Téléphone Mobile"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_telephone_mobile}
onChange={(e) => setp_contact_telephone_mobile(e.target.value)}
/>
</div>
<div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="bton_enreg " onClick={"recordPartnerClient_Invoice_Data"}>Enregistrer &nbsp; <AiTwotoneSave /> </Button>
</div>
<div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="bton_annule" onClick={Close_Contact}>Annuler</Button>
</div>
</div>
</div>}
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
{String(datamodification_invoice) === "1" && <div className="div_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div></div>}
{String(formedit_mode_invoice) === "1" && <div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="bton_enreg " onClick={recordPartnerClient_Invoice_Data}>Enregistrer &nbsp; <AiTwotoneSave /> </Button>
</div>
<div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="bton_annule" onClick={AnnulerEdit_Invoice_Data}>Annuler</Button>
</div>
</div>
}
</div>}
<div className="div_row" style={{
"border": "None", "marginLeft": "auto", "marginLeft": "auto", "marginRight": "auto", "textAlign": "center",
"marginTop": "1rem", "cursor": "pointer", "marginBottom": "1rem", "marginLeft": "auto", "marginRight": "auto"

View File

@ -177,7 +177,7 @@ const Partner = (props) => {
const [isimage, setisimage] = useState();
function getImage(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
var form = new FormData();
form.append("token", stored_cookie);
form.append("type", "partner");
@ -725,14 +725,14 @@ const Partner = (props) => {
<hr />
{String(deplie_hebergement) === "1" && <div className="sousmenu sousmenu" style={{ "color": "white", "textAlign": "center" }} onClick={ftion_deplie_hebergement}>
Espace Hébergement <img src={downarrow} className="hebergement_icone" />
Espace E-Learning <img src={downarrow} className="hebergement_icone" />
</div>}
<hr className="my_hr" />
{String(deplie_hebergement) !== "1" &&
<div className="nom_prenom sousmenu" style={{ "color": "white", "textAlign": "center" }} >
<nav onClick={ftion_deplie_hebergement}> Espace Hébergement <img src={uparrow} className="hebergement_icone" /> </nav>
<nav onClick={ftion_deplie_hebergement}> Espace E-Learning <img src={uparrow} className="hebergement_icone" /> </nav>
<hr className="my_hr" />
{String(has_partner_lms_url) === "1" && <div className="sousmenu" onClick={(e) => {

View File

@ -5,7 +5,7 @@ import partnerbannerimg from "../mysy_img/MYSY_banner_compte.png";
import { Button, FormGroup, Label, Input } from "reactstrap";
import { useCookies } from "react-cookie";
import { confirmAlert } from 'react-confirm-alert';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import bannerimg2 from "../mysy_img/MYSY-LOGO-BLUE.png";
import { Helmet } from "react-helmet";
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
@ -130,8 +130,8 @@ function PartnerSignIn() {
var val = result['status'];
if (String(val) === String("true")) {
sessionStorage.setItem("token", result['message']);
setCookie("tokenmysypart", result['message'], { path: '/' });
setCookie("tokenmysypart", JSON.parse(result['message']).token, { path: '/' });
//setCookie("tokenmysypart", result['message']);
history.push("/Partner");
}
else {

View File

@ -78,7 +78,7 @@ function SignUp() {
handleSubmit,
} = useForm();
const [menucompte, setmenucompte] = useState("user");
const [menucompte, setmenucompte] = useState("partner");
function handleChange1(prop) {
return (event) => {

View File

@ -184,4 +184,30 @@
}
}
.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%);
}
}

View File

@ -2349,6 +2349,7 @@
.css-vubbuv{
font-size: medium !important;
margin-right: 10px !important;
}
// end media

View File

@ -1726,4 +1726,10 @@
.css-1laqsz7-MuiInputAdornment-root{
padding-right: 10px !important;
}
.css-vubbuv{
font-size: medium !important;
margin-right: 10px !important;
}
}