Bonjour,

L’an dernier, vous m’avez brillamment aidée à développer le script qui suit. Cette année, je m’occupe toujours de la BD de l’organisation qui a pris un peu d’ampleur. L’an dernier, le script me permettait de mettre à jour le champ Adhesion de la table Membres, afin de connaître la date de renouvellement de l’adhésion. La majorité de nos adhésions se fait par Paypal.
Cette année, comme nous avons ajouté le module de renouvellement en ligne par Paypal, je dois prévoir la situation où une personne décide de renouveler son membership avant sa date d’échéance.
Je demande donc de m’aider à transformer le script pour prévoir ce nouveau cas de figure.

Structure de la table Membres :
Date_heure Timestamp de la création de l'enregistrement
No_membre Numéro du membre (clé)
Adhesion Date d'adhésion du membre
Date_Echeance Date de l'échéance de renouvellement
Nom Nom du membre
Prenom Prénom du membre
Sexe Sexe du membre (que personne ne rigole ici)

Structure de la table Commandes :
Date_transaction Timestamp de la dernière modification de l'enregistrement
Date_Adhesion Timestamp de l'enregistrement (ne change pas)
idCommande ID de la commande (numéro unique généré automatiquement), clé
No_membre Numéro du membre
Statut Statut de la commande (1 si complétée)
Paiement Montant de la commande, 10$, 25$ ou autre montnant si don
Choix C (chèque) P (Paypal ou carte de crédit)
TypeInscription Adhésion 1 an, Adhésion 3 an, Don
Écheance Généré par le script (1 ou 3 selon l'adhésion et rien pour un don)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
UPDATE Commandes  SET Echeance = 3 WHERE TypeInscription = "Adhesion 3 ans";
UPDATE Commandes  SET Echeance = 1 WHERE TypeInscription = "Adhesion 1 an";
UPDATE Membres m
INNER JOIN
(
 SELECT No_membre, MAX(Date_Adhesion) AS dern_date
 FROM Commandes
        WHERE (TypeInscription <> "Don" and Paiement <> 0)
 GROUP BY No_membre
) tmp ON tmp.No_membre = m.No_membre
 INNER JOIN Commandes c
  ON c.No_membre = tmp.No_membre
  AND c.Date_Adhesion = tmp.dern_date
SET m.Date_Echeance = ADDDATE(tmp.dern_date, INTERVAL Echeance YEAR)
Merci !