19/03/2024 - 17h30
parent
d9f83fa846
commit
e6d2de7871
|
@ -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) {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -1355,7 +1355,7 @@ function Inscription_Information(props) {
|
|||
|
||||
</div>
|
||||
|
||||
{/* -- début champs specifiques **/}
|
||||
{/* -- début champs specifiques ** /}
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
</div>
|
||||
|
|
|
@ -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">
|
||||
|
||||
|
||||
</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);
|
||||
}
|
||||
|
||||
|
|
|
@ -143,7 +143,7 @@ function ProduitsServices() {
|
|||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div className="critere_droite">
|
||||
{/*<div className="critere_droite">
|
||||
<span className="span1"> Periodicité </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">
|
||||
<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" }}> </nav>
|
||||
<nav> </nav>
|
||||
<nav> </nav>
|
||||
<nav> </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 d’un 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 d’un 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> </nav>
|
||||
</div>
|
||||
|
||||
<div className="produits_service_label height_publication_header">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
|
@ -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">
|
||||
|
||||
</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> </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">
|
||||
|
||||
</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">
|
||||
|
||||
</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> </nav>
|
||||
</div>
|
||||
|
||||
<div className="produits_service_label height_publication_header">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
|
@ -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">
|
||||
|
||||
</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">
|
||||
|
||||
</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. {<SendIcon />}
|
||||
Vous souhaitez avoir des précisions, un <b> Devis </b> contactez nous. {<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 |
|
@ -38,7 +38,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
.mysy_spinner {
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
//border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue