19/03/2024 - 17h30

recette2
cherif 2024-03-19 17:43:48 +01:00
parent d9f83fa846
commit e6d2de7871
15 changed files with 420 additions and 213 deletions

View File

@ -129,6 +129,7 @@ const DisplayDetailClass_new_v2 = (props) => {
async function funclocaltoken() {
if (action && String(action).toLocaleLowerCase() !== "inscription" &&
String(action).toLocaleLowerCase() !== "information") {
@ -173,11 +174,12 @@ const DisplayDetailClass_new_v2 = (props) => {
}
fetchData();
GetCurrentClass_trainingsession();
Display();
Display();
GetAssociatedTraning();
funclocaltoken();
window.scrollTo({
top: 0,
@ -338,7 +340,7 @@ const DisplayDetailClass_new_v2 = (props) => {
axios.post(myurl, form).then(res => {
console.log(" In Display res.data.status = " + res.data.status);
//console.log(" In Display res.data.message = " + res.data.message);
console.log(" In Display res.data.message = " + res.data.message);
if (String(res.data.status) === String("true")) {
if (res.data.message.length > 0) {

View File

@ -24,6 +24,9 @@ import CheckOut from "./CheckOut";
import PaymentMethod from "./PaymentMethode";
import { IoAddCircleOutline } from "react-icons/io5";
import fileDownload from 'js-file-download'
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
function Facture(props) {
@ -37,14 +40,15 @@ function Facture(props) {
const [selectedpacks, setselectedpacks] = useState("");
const [currentpack, setcurrentpack] = useState(props.currentpack);
const [isLoading, setLoading] = useState();
const columns = [
{ field: 'id', headerName: 'id', hide: true },
{ field: 'date_facture', headerName: 'Date Facture', width: 150, flex: 1 },
{ field: 'num_facture', headerName: 'Num Facture', width: 200, flex: 1 },
{ field: 'client_nom', headerName: 'Client', width: 200, flex: 1, hide: true },
{ field: 'montant_ht', headerName: 'Montant HT €', width: 200, flex: 1 },
{ field: 'montant_ttc', headerName: 'Montant TTC €', width: 100, flex: 1 },
{ field: 'num_facture', headerName: 'Num Facture', width: 200, flex: 1 },
{ field: 'client_nom', headerName: 'Client', width: 200, flex: 1, hide: true },
{ field: 'montant_ht', headerName: 'Montant HT €', width: 200, flex: 1 },
{ field: 'montant_ttc', headerName: 'Montant TTC €', width: 100, flex: 1 },
{ field: 'reduction', headerName: 'Discount', width: 150, flex: 1, hide: true },
{ field: 'mode_payement', headerName: 'Mode paiement', width: 150, flex: 1 },
{ field: 'date_payement', headerName: 'Date échéance', width: 150, flex: 1 },
@ -71,6 +75,7 @@ function Facture(props) {
function handleClick(event, cellValues) {
setLoading(true);
var nom_facture = cellValues.row.num_facture + ".pdf";
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart');
@ -83,8 +88,15 @@ function Facture(props) {
axios.get(url, { responseType: 'blob', },)
.then((res) => {
fileDownload(res.data, nom_facture)
})
setLoading(false);
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
});
}
@ -115,10 +127,10 @@ function Facture(props) {
.then((data) => data.json())
.then((data) => {
//console.log('Success:', data['message'], "data['status'] = ", data['status']);
if (String(data['status']) === String("false")) {
//console.log("erreur rrrr:" + data['status'])
setGetInvoices_api("false");
@ -379,11 +391,11 @@ function Facture(props) {
if (mylocaltraining.is_partner_admin_account) {
setis_partner_admin_account(mylocaltraining.is_partner_admin_account);
}else{
setis_partner_admin_account("0");
} else {
setis_partner_admin_account("0");
}
if (mylocaltraining.invoice_vat_num) {
document.getElementsByName("vat_num")[0].value = mylocaltraining.invoice_vat_num;
document.getElementsByName("vat_num")[0].disabled = true;
@ -479,7 +491,7 @@ function Facture(props) {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
if (String(packs).toLowerCase() === String("decouverte")) {
@ -495,7 +507,7 @@ function Facture(props) {
}
}
if (String(periode) === String("Annuel")) {
if (String(periode) === String("Annuel")) {
if (String(packs).toLowerCase() === String("standard")) {
setpackprice("600");
}
@ -510,9 +522,9 @@ function Facture(props) {
setgotocheckout("1");
setselectedpacks(packs);
window.scrollTo({
top: 0,
behavior: "smooth",
});
top: 0,
behavior: "smooth",
});
return;
}
@ -550,9 +562,9 @@ function Facture(props) {
setgotocheckout("1");
setselectedpacks(packs);
window.scrollTo({
top: 0,
behavior: "smooth",
});
top: 0,
behavior: "smooth",
});
}
}
@ -564,6 +576,9 @@ function Facture(props) {
const [packprice, setpackprice] = useState();
return (
<div className="facture">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{String(gotocheckout) === String("1") && <div>
<Button onClick={returntoorder} className="btn_retour_ps"> Retour aux produits & Services </Button>

View File

@ -1355,7 +1355,7 @@ function Inscription_Information(props) {
</div>
{/* -- début champs specifiques **/}
{/* -- début champs specifiques ** /}
<div className="div_row">
<hr />
</div>

View File

@ -146,7 +146,7 @@ const Module_Editique = (props) => {
//console.log(" In Invoice_Session_Formation res.data.message r_class = " + res.data.message);
setInvoice_Session_Formation_api("true");
setInvoice_Session_Formation_result(res.data.message);
Getall_Editable_Document_By_Partner_By_Collection();
Getall_Editable_Document_By_Partner_By_Collection();
props.GetListeInscrit(props.related_collection_recid, props.internal_url);
alert(res.data.message);
@ -221,10 +221,10 @@ const Module_Editique = (props) => {
form.append("related_collection", props.related_collection);
form.append("related_collection_recid", props.related_collection_recid);
console.log(" Lancement de l'action server ...Action_Server_", api_name)
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Action_Server_" + String(api_name) + "/";
console.log(" myurl...", myurl)
return;
setLoading(true);
@ -253,6 +253,11 @@ const Module_Editique = (props) => {
})
}
var date_today_90j = new Date();
date_today_90j.setDate(date_today_90j.getDate() + 90);
const [is_session_invoiced, setis_session_invoiced] = useState("0");
const [session_date_debut, setsession_date_debut] = useState(date_today_90j.toLocaleDateString('fr-FR'));
useEffect(() => {
@ -738,6 +743,15 @@ const Module_Editique = (props) => {
setselected_internal_url(mylocaltraining.class_internal_url);
}
if (mylocaltraining.invoiced_statut) {
setis_session_invoiced(mylocaltraining.invoiced_statut);
}
if (mylocaltraining.date_debut) {
setsession_date_debut(mylocaltraining.date_debut);
}
}
} else if (String(res.data.status) === String("Err_Connexion")) {
@ -1003,6 +1017,20 @@ const Module_Editique = (props) => {
setDialog_FACTURATION_FORMATION_open(false);
};
const [MSG_INFO_TEXT, setMSG_INFO_TEXT] = React.useState(false);
const [Dialog_MSG_INFO_open, setDialog_MSG_INFO_open] = React.useState(false);
const Dialog_MSG_INFO_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_MSG_INFO_handleClose_buton = () => {
setDialog_MSG_INFO_open(false);
};
return (
<div className="module_editique">
@ -1065,6 +1093,46 @@ const Module_Editique = (props) => {
</Dialog>
{/* Dialog pour gerer les MSG_INFO */}
<Dialog
open={Dialog_MSG_INFO_open}
onClose={Dialog_MSG_INFO_handleClose}
className="displaypartnersession"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "5rem" }}>
<DialogContentText>
<div style={{ "textAlign": "left" }}>
{MSG_INFO_TEXT}
</div>
</DialogContentText>
</DialogContent>
<DialogActions>
<div className="div_row">
<div className="div_row_gauche">
&nbsp;
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_MSG_INFO_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
{/* FIN Dialog pour gerer les MSG_INFO */}
{/* Dialog pour gerer les CONF_INSCRIPTION */}
<Dialog
open={Dialog_CONF_INSCRIPTION_open}
@ -1857,7 +1925,7 @@ const Module_Editique = (props) => {
return;
}
}
Dialog_convention_handleClose_buton();
Send_Stagiaire_Conventions_By_Email();
@ -1867,7 +1935,7 @@ const Module_Editique = (props) => {
{String(selected_convention_type) === "pdf" &&
<Button className="bton_enreg_dialog" onClick={(e) => {
Dialog_convention_handleClose_buton();
Download_Session_Conventions_PDF();
}}
@ -1930,7 +1998,7 @@ const Module_Editique = (props) => {
Dialog_FACTURATION_FORMATION_handleClose_buton();
Invoice_Session_Formation();
}}
className="bton_enreg_dialog">Facturer </Button>
@ -1956,6 +2024,7 @@ const Module_Editique = (props) => {
Getall_Editable_Document_By_Partner_By_Collection_result.map((document) => (
<div className="div_row" style={{ "height": "3rem", "marginLeft": "5px", "marginRight": "5px" }}>
<div className="bton_action_server" style={{ width: "45%", float: "left", height: "2.5rem", paddingTop: "10px" }} onClick={(e) => {
@ -1970,9 +2039,35 @@ const Module_Editique = (props) => {
if (String(JSON.parse(document).courrier_template_ref_interne) === "CONVENTION_STAGIAIRE_ENTREPRISE" ||
String(JSON.parse(document).courrier_template_ref_interne) === "CONVENTION_STAGIAIRE_INDIVIDUELLE") {
Get_List_Stagiaire_Conventions(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_convention_open(true);
// Verifier que la date de la session n'est pas passée
var date_eval = new Date(moment(session_date_debut, "DD/MM/YYYY"));
var diff = date_eval.getTime() - Date.now();
if (diff <= 0) {
setMSG_INFO_TEXT("Cette session a déjà commencé. Il n'est plus possible d'éditer une convention")
setDialog_MSG_INFO_open(true);
return;
}
if (String(is_session_invoiced) === "1") {
setMSG_INFO_TEXT("Cette session est en cours de facturation. Il n'est plus possible d'éditer une convention")
setDialog_MSG_INFO_open(true);
}
else if (String(is_session_invoiced) === "2") {
setMSG_INFO_TEXT("Cette session a déjà été facturée. Il n'est plus possible d'éditer une convention")
setDialog_MSG_INFO_open(true);
} else {
Get_List_Stagiaire_Conventions(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_convention_open(true);
}
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "EMARGEMENT_FORMATION") {
setDialog_EMARGEMENT_FORMATION_open(true);
@ -1984,9 +2079,34 @@ const Module_Editique = (props) => {
else if (String(JSON.parse(document).courrier_template_ref_interne) === "CONVOCATION_STAGIAIRE") {
Get_List_Stagiaire_Convocations(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_CONVOCATION_STAGIAIRE_open(true);
// Verifier que la date de la session n'est pas passée
var date_eval = new Date(moment(session_date_debut, "DD/MM/YYYY"));
var diff = date_eval.getTime() - Date.now();
if (diff <= 0) {
setMSG_INFO_TEXT("Cette session a déjà commencé. Il n'est plus possible d'éditer une convocation")
setDialog_MSG_INFO_open(true);
return;
}
if (String(is_session_invoiced) === "1") {
setMSG_INFO_TEXT("Cette session est en cours de facturation. Il n'est plus possible d'éditer une convocation")
setDialog_MSG_INFO_open(true);
}
else if (String(is_session_invoiced) === "2") {
setMSG_INFO_TEXT("Cette session a déjà été facturée. Il n'est plus possible d'éditer une convocation")
setDialog_MSG_INFO_open(true);
} else {
Get_List_Stagiaire_Convocations(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_CONVOCATION_STAGIAIRE_open(true);
}
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "CONF_INSCRIPTION") {
@ -1998,7 +2118,7 @@ const Module_Editique = (props) => {
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "FACTURATION_SESSION") {
setDialog_FACTURATION_FORMATION_open(true);
}

View File

@ -143,7 +143,7 @@ function ProduitsServices() {
</select>
</div>
</div>
<div className="critere_droite">
{/*<div className="critere_droite">
<span className="span1"> Periodicité &nbsp; </span>
<button
onClick={Clik_bton_mensuel}
@ -159,18 +159,104 @@ function ProduitsServices() {
</button>
</div>
</div> */}
</div>
<div className="div_row">
<div className="div_row_description">
<div className="div_basique_header"> &nbsp;
<div className="div_basique_header" style={{ "background": "#E9ECEF" }}> Produits & Services </div>
<hr style={{ "margin": "1px" }} />
<div style={{ "marginBottom": "0px", "fontSize": "small" }} className="block_vide_produit_service">
<nav style={{ "marginBottom": "0.8rem", "fontSize": "small", "textAlign": 'center', "fontWeight": "700" }}> &nbsp; </nav>
<nav> &nbsp;</nav>
<nav> &nbsp;</nav>
<nav> &nbsp; </nav>
</div>
<div style={{ "marginBottom": "1rem", "background": "#E9ECEF" }}>
Produits & Services
<div className="produits_service_label height_publication_header">
<b> Gestion Administrative & Pédagogique </b>
</div>
<div className="produits_service_label height_gestion_admin">
<b>Gestion administrative</b>
<ul>
<li>Publication catalogue formations (intranet / API)</li>
<li>Gestion des Inscriptions (mise en attente, motif annulation, etc) </li>
<li>Gestion des Sessions (planifiée, à la demande)</li>
<li>Gestion avis participants</li>
<li>Gestion des employés et du matériel pédagogique</li>
<li>Émargement électronique</li>
<li>Gestion des agendas & réservation de matériel (salles, projecteurs, etc)</li>
<li>Personnalisation et versionning des documents (convention, convocation, ...)</li>
<li>Edition automatique des document liés à la formation (Convention, convocation, Programme)</li>
<li>Gestion automatique et manuelle des séquences de formations </li>
<li>Gestion des absences</li>
</ul>
</div>
<div className="produits_service_label height_publication_header">
<b> Gestion relation client (CRM) </b>
</div>
<div className="produits_service_label height_gestion_crm">
<b>Gestion relation client (CRM) </b>
<ul>
<li>Gestion clients & Contacts</li>
<li>Affectation et Suivi tâches</li>
<li>Affectation et Suivi tâches</li>
<li>Catalogue prix clients</li>
<li>Devis & Commandes (envoi électronique) </li>
<li>Facturation</li>
</ul>
</div>
<div className="produits_service_label height_publication_header">
<b> Hébergement de formations (LMS) </b>
</div>
<div className="produits_service_label height_intranet">
<b>Intranet personnalisé</b>
<ul>
<li>Mise en place dun site web (intranet) personnalisé.</li>
</ul>
</div>
<div className="produits_service_label height_e_learning_persona">
<b>Plate-forme de E-learning personnalisée</b>
<ul>
<li>Nom de domaine personnalisé</li>
<li>Personnalisation de la charte graphique (couleurs & bannière) </li>
</ul>
</div>
<div className="produits_service_label height_e_learning">
<b>Système de E-learning</b>
<ul>
<li>Echange prof / apprenant (courriel interne)</li>
<li>Espace enseignant</li>
<li>Espace apprenant</li>
<li>Evaluation (note)</li>
<li>Gestion planning</li>
<li>Travaux dirigés & pratiques</li>
<li>Session live virtuelle</li>
</ul>
</div>
<div className="produits_service_label height_publication_header">
<b> Moteur de Recherche </b>
</div>
@ -234,85 +320,56 @@ function ProduitsServices() {
</ul>
</div>
<div className="produits_service_label height_publication_header">
<b> Gestion Administrative & Pédagogique </b>
</div>
<div className="produits_service_label height_gestion_admin">
<b>Gestion administrative</b>
<ul>
<li>Publication catalogue formations (intranet / API)</li>
<li>Gestion des Inscriptions (mise en attente, motif annulation, etc) </li>
<li>Gestion des Sessions (planifiée, à la demande)</li>
<li>Gestion avis participants</li>
<li>Gestion des employés et du matériel pédagogique</li>
<li>Émargement électronique</li>
</ul>
</div>
<div className="produits_service_label height_gestion_crm">
<b>Gestion relation client (CRM) </b>
<ul>
<li>Gestion clients</li>
<li>Affectation et Suivi tâches</li>
<li>Catalogue prix clients</li>
<li>Devis & Commandes (envoi électronique) </li>
<li>Facturation</li>
</ul>
</div>
<div className="produits_service_label height_publication_header">
<b> Hébergement de formations (LMS) </b>
</div>
<div className="produits_service_label height_intranet">
<b>Intranet personnalisé</b>
<ul>
<li>Mise en place dun site web (intranet) personnalisé.</li>
</ul>
</div>
<div className="produits_service_label height_e_learning_persona">
<b>Plate-forme de E-learning personnalisée</b>
<ul>
<li>Nom de domaine personnalisé</li>
<li>Personnalisation de la charte graphique (couleurs & bannière) </li>
</ul>
</div>
<div className="produits_service_label height_e_learning">
<b>Système de E-learning</b>
<ul>
<li>Echange prof / apprenant (courriel interne)</li>
<li>Espace apprenant</li>
<li>Evaluation (note)</li>
<li>Gestion planning</li>
<li>Travaux dirigés & pratiques</li>
<li>Session live virtuelle</li>
</ul>
</div>
</div>
<div className="div_row_basique">
<div className="div_basique_header"> Découverte </div>
<div className="div_basique_header"> Indépendant </div>
<hr style={{ "margin": "1px" }} />
<div style={{ "marginBottom": "0px", "fontSize": "small" }}>
Pour chaque Formation
<nav style={{ "marginBottom": "0.8rem", "fontSize": "small", "textAlign": 'center', "fontWeight": "700" }}> Moins de 25 Sessions / an </nav>
<nav> Sans engagement</nav>
<nav> 2 Utilisateurs </nav>
<nav> &nbsp; </nav>
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_admin">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_crm">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_intranet">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning_persona">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
@ -323,7 +380,7 @@ function ProduitsServices() {
</div>
<div className="produits_service_tick height_price_1">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_affichage_ftion">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
@ -337,37 +394,10 @@ function ProduitsServices() {
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_admin">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_gestion_crm">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_intranet">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning_persona">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="div_row_basique_price">
Gratuit 15 jours
150 HT /mois
</div>
<div className="div_row_basique_price">
&nbsp;
@ -390,30 +420,10 @@ function ProduitsServices() {
<div className="div_standard_header"> Standard </div>
<hr style={{ "margin": "0.2rem" }} />
<div style={{ "marginBottom": "0.8rem", "fontSize": "small" }}>
Pour chaque Formation
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_publication">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_price_1">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_affichage_ftion">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_leads">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_appel_offre">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
<nav style={{ "marginBottom": "0.8rem", "fontSize": "small", "textAlign": 'center', "fontWeight": "700" }}> De 26 à 200 Sessions / an </nav>
<nav> Sans engagement</nav>
<nav> Utilisateurs illimités </nav>
<nav> &nbsp; </nav>
</div>
<div className="produits_service_label height_publication_header">
@ -422,10 +432,15 @@ function ProduitsServices() {
<div className="produits_service_tick height_gestion_admin">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_crm">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
@ -437,16 +452,43 @@ function ProduitsServices() {
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning_persona">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_publication">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_price_1">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_affichage_ftion">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_leads">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_appel_offre">
<img src={tick_ko} alt="KO" className="tick_ok_ko" />
</div>
<div className="div_row_standard_price">
50 HT /mois
299 HT /mois
</div>
@ -468,10 +510,45 @@ function ProduitsServices() {
</div>
<div className="div_row_gold">
<div className="div_gold_header"> Gold </div>
<div className="div_gold_header"> Gold </div>
<hr style={{ "margin": "0.2rem" }} />
<div style={{ "marginBottom": "0.8rem", "fontSize": "small" }}>
Pour chaque Formation
<nav style={{ "marginBottom": "0.8rem", "fontSize": "small", "textAlign": 'center', "fontWeight": "700" }}> A partir de 201 Sessions / an </nav>
<nav> Sans engagement</nav>
<nav> Utilisateurs illimités </nav>
<nav> &nbsp; </nav>
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_admin">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_crm">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_intranet">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning_persona">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
@ -486,48 +563,23 @@ function ProduitsServices() {
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_affichage_ftion">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_leads">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_appel_offre">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_gestion_admin">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_gestion_crm">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_label height_publication_header">
&nbsp;
</div>
<div className="produits_service_tick height_intranet">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning_persona">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="produits_service_tick height_e_learning">
<img src={tick_ok} alt="OK" className="tick_ok_ko" />
</div>
<div className="div_row_gold_price">
90 HT /mois
A partir de 599 HT /mois
</div>
@ -558,7 +610,7 @@ function ProduitsServices() {
<div className="bton_envoyer_precision" onClick={sendEmail}>
Vous souhaitez avoir des précisions, contactez nous. &nbsp; &nbsp; {<SendIcon />}
Vous souhaitez avoir des précisions, un <b> Devis </b> contactez nous. &nbsp; &nbsp; {<SendIcon />}
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -38,7 +38,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -27,7 +27,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -26,7 +26,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -8,7 +8,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -21,7 +21,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -27,7 +27,7 @@
.mysy_spinner {
border-radius: 5px;
border: 1px solid black;
//border: 1px solid black;
opacity: 100%;
}

View File

@ -549,6 +549,10 @@
cursor: pointer;
}
.block_vide_produit_service{
height: 0.5rem;
}
}
@ -1091,7 +1095,7 @@
.height_gestion_admin {
height: 13rem !important;
height: 24rem !important;
}
.height_appel_offre {
@ -1135,6 +1139,10 @@
cursor: pointer;
}
.block_vide_produit_service{
height: 7rem;
}
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
@ -1679,7 +1687,7 @@
.height_gestion_admin {
height: 11rem !important;
height: 22rem !important;
}
.height_appel_offre {
@ -1724,6 +1732,11 @@
color: white;
cursor: pointer;
}
.block_vide_produit_service{
height: 8rem;
}
}
@media only screen and (min-width: 1200px) {
@ -1962,7 +1975,7 @@
.height_gestion_admin {
height: 11rem !important;
height: 18rem !important;
}
.height_appel_offre {
@ -1982,7 +1995,7 @@
}
.height_gestion_crm {
height: 9rem !important;
height: 12rem !important;
}
@ -2311,5 +2324,10 @@
cursor: pointer;
}
.block_vide_produit_service{
}
}
// end media
}