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) Merci ! :DCode:
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)