diff --git a/src/components/DisplayDetailClass_new_v2.js b/src/components/DisplayDetailClass_new_v2.js
index 7f7ab7b..94f1221 100644
--- a/src/components/DisplayDetailClass_new_v2.js
+++ b/src/components/DisplayDetailClass_new_v2.js
@@ -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) {
diff --git a/src/components/Facture.js b/src/components/Facture.js
index d191742..b520a3d 100644
--- a/src/components/Facture.js
+++ b/src/components/Facture.js
@@ -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 (
+ {isLoading &&
}
{String(gotocheckout) === String("1") &&
diff --git a/src/components/Inscription_Information.js b/src/components/Inscription_Information.js
index e404dc0..c6d3251 100644
--- a/src/components/Inscription_Information.js
+++ b/src/components/Inscription_Information.js
@@ -1355,7 +1355,7 @@ function Inscription_Information(props) {
- {/* -- début champs specifiques **/}
+ {/* -- début champs specifiques ** /}
diff --git a/src/components/Module_Editique.js b/src/components/Module_Editique.js
index ef0bd96..a4016e0 100644
--- a/src/components/Module_Editique.js
+++ b/src/components/Module_Editique.js
@@ -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 (
@@ -1065,6 +1093,46 @@ const Module_Editique = (props) => {
+ {/* Dialog pour gerer les MSG_INFO */}
+
+ {/* FIN Dialog pour gerer les MSG_INFO */}
+
+
{/* Dialog pour gerer les CONF_INSCRIPTION */}
-
+
Produits & Services
+
+
+
+
+
+
-
- Produits & Services
+
+ Gestion Administrative & Pédagogique
+
+
Gestion administrative
+
+
+ - Publication catalogue formations (intranet / API)
+ - Gestion des Inscriptions (mise en attente, motif annulation, etc)
+ - Gestion des Sessions (planifiée, à la demande)
+ - Gestion avis participants
+ - Gestion des employés et du matériel pédagogique
+ - Émargement électronique
+ - Gestion des agendas & réservation de matériel (salles, projecteurs, etc)
+ - Personnalisation et versionning des documents (convention, convocation, ...)
+ - Edition automatique des document liés à la formation (Convention, convocation, Programme…)
+ - Gestion automatique et manuelle des séquences de formations
+ - Gestion des absences
+
+
+
+
+
+
+
+ Gestion relation client (CRM)
+
+
+
+
Gestion relation client (CRM)
+
+
+ - Gestion clients & Contacts
+ - Affectation et Suivi tâches
+ - Affectation et Suivi tâches
+ - Catalogue prix clients
+ - Devis & Commandes (envoi électronique)
+ - Facturation
+
+
+
+
+
+ Hébergement de formations (LMS)
+
+
+
+
+
Intranet personnalisé
+
+
+ - Mise en place d’un site web (intranet) personnalisé.
+
+
+
+
+
Plate-forme de E-learning personnalisée
+
+
+ - Nom de domaine personnalisé
+ - Personnalisation de la charte graphique (couleurs & bannière)
+
+
+
+
+
+
+
Système de E-learning
+
+
+ - Echange prof / apprenant (courriel interne)
+ - Espace enseignant
+ - Espace apprenant
+ - Evaluation (note)
+ - Gestion planning
+ - Travaux dirigés & pratiques
+ - Session live virtuelle
+
+
+
+
+
+
Moteur de Recherche
@@ -234,85 +320,56 @@ function ProduitsServices() {
-
- Gestion Administrative & Pédagogique
-
-
-
Gestion administrative
-
-
- - Publication catalogue formations (intranet / API)
- - Gestion des Inscriptions (mise en attente, motif annulation, etc)
- - Gestion des Sessions (planifiée, à la demande)
- - Gestion avis participants
- - Gestion des employés et du matériel pédagogique
- - Émargement électronique
-
-
-
-
-
-
Gestion relation client (CRM)
-
-
- - Gestion clients
- - Affectation et Suivi tâches
- - Catalogue prix clients
- - Devis & Commandes (envoi électronique)
- - Facturation
-
-
-
-
-
- Hébergement de formations (LMS)
-
-
-
-
-
Intranet personnalisé
-
-
- - Mise en place d’un site web (intranet) personnalisé.
-
-
-
-
-
Plate-forme de E-learning personnalisée
-
-
- - Nom de domaine personnalisé
- - Personnalisation de la charte graphique (couleurs & bannière)
-
-
-
-
-
-
-
Système de E-learning
-
-
- - Echange prof / apprenant (courriel interne)
- - Espace apprenant
- - Evaluation (note)
- - Gestion planning
- - Travaux dirigés & pratiques
- - Session live virtuelle
-
-
-
-
+
+
-
Découverte
+
Indépendant
- Pour chaque Formation
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+

+
+
+

+
+
+
+

+
+
+
@@ -323,7 +380,7 @@ function ProduitsServices() {
-

+

@@ -337,37 +394,10 @@ function ProduitsServices() {
-
-
-
-
-
-
-

-
-
-

-
-
-
-
-
-
-
-
-

-
-
-

-
-
-
-

-
-
+
- Gratuit 15 jours
+ 150 HT €/mois
@@ -390,30 +420,10 @@ function ProduitsServices() {
Standard
- Pour chaque Formation
-
-
-
-
-
-
-
-

-
-
-
-

-
-
-

-
-
-
-

-
-
-
-

+
+
+
+
@@ -422,10 +432,15 @@ function ProduitsServices() {
-

+
+
+
+
+
+
-

+
@@ -437,16 +452,43 @@ function ProduitsServices() {
-

+
-

+
+
+
+
+
+
+
+

+
+
+
+

+
+
+

+
+
+
+

+
+
+
+

+
+
+
+
+
- 50 HT €/mois
+ 299 HT €/mois
@@ -468,10 +510,45 @@ function ProduitsServices() {
-
Gold
+
Gold
- Pour chaque Formation
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+

+
+
+

+
+
+
+
@@ -486,48 +563,23 @@ function ProduitsServices() {
-

+
-

+
-

+
-
-
-
-
-
-
-

-
-
-

-
-
-
-
-
-
-
-
-

-
-
-

-
-
-
-

-
+
+
- 90 € HT /mois
+ A partir de 599 € HT /mois
@@ -558,7 +610,7 @@ function ProduitsServices() {
- Vous souhaitez avoir des précisions, contactez nous. {}
+ Vous souhaitez avoir des précisions, un Devis contactez nous. {}
diff --git a/src/mysy_img/mysy_spin_loading.gif b/src/mysy_img/mysy_spin_loading.gif
index 8e6d471..11225d7 100644
Binary files a/src/mysy_img/mysy_spin_loading.gif and b/src/mysy_img/mysy_spin_loading.gif differ
diff --git a/src/mysy_img/mysy_spin_loading_old.gif b/src/mysy_img/mysy_spin_loading_old.gif
new file mode 100644
index 0000000..8e6d471
Binary files /dev/null and b/src/mysy_img/mysy_spin_loading_old.gif differ
diff --git a/src/mysy_img/mysy_spin_loading_old2.gif b/src/mysy_img/mysy_spin_loading_old2.gif
new file mode 100644
index 0000000..673587d
Binary files /dev/null and b/src/mysy_img/mysy_spin_loading_old2.gif differ
diff --git a/src/styles/components/_abonnement.scss b/src/styles/components/_abonnement.scss
index 588a0b4..62f3849 100644
--- a/src/styles/components/_abonnement.scss
+++ b/src/styles/components/_abonnement.scss
@@ -38,7 +38,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_addclassmanual.scss b/src/styles/components/_addclassmanual.scss
index ef8b328..e7cb3bc 100644
--- a/src/styles/components/_addclassmanual.scss
+++ b/src/styles/components/_addclassmanual.scss
@@ -27,7 +27,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_checkout.scss b/src/styles/components/_checkout.scss
index f39d5d8..fdfe9c6 100644
--- a/src/styles/components/_checkout.scss
+++ b/src/styles/components/_checkout.scss
@@ -26,7 +26,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_displaypartnertrainingpagination.scss b/src/styles/components/_displaypartnertrainingpagination.scss
index f44a026..1bf65d5 100644
--- a/src/styles/components/_displaypartnertrainingpagination.scss
+++ b/src/styles/components/_displaypartnertrainingpagination.scss
@@ -8,7 +8,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_hebergementlms.scss b/src/styles/components/_hebergementlms.scss
index f36b240..c7bd726 100644
--- a/src/styles/components/_hebergementlms.scss
+++ b/src/styles/components/_hebergementlms.scss
@@ -21,7 +21,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_partner.scss b/src/styles/components/_partner.scss
index 83c7107..63180db 100644
--- a/src/styles/components/_partner.scss
+++ b/src/styles/components/_partner.scss
@@ -27,7 +27,7 @@
.mysy_spinner {
border-radius: 5px;
- border: 1px solid black;
+ //border: 1px solid black;
opacity: 100%;
}
diff --git a/src/styles/components/_produitsservices.scss b/src/styles/components/_produitsservices.scss
index 56eae4c..67ec425 100644
--- a/src/styles/components/_produitsservices.scss
+++ b/src/styles/components/_produitsservices.scss
@@ -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
}
\ No newline at end of file