Amélioration de l'export des souscriptions.
[spip_souscriptions.git] / action / exporter_souscriptions.php
index a1228f6..e68eac7 100644 (file)
@@ -2,6 +2,13 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 function action_exporter_souscriptions_dist($arg=null) {
+  /* 
+   * $arg contient les différents arguments, séparés par des '/'. Une
+   * fois passés dans la fonctions split, il se présente de la manière
+   * suivante :
+   *   argument en position 1 : 'paye' ou 'tous'
+   *   argument en position 2 : type de souscription (dons, adhesion)
+   */
 
   /* FIXME: permettre de selectionner les exports */
   /* FIXME: améliorer la jointure... */
@@ -18,20 +25,30 @@ function action_exporter_souscriptions_dist($arg=null) {
     exit;
   }
 
-  if($arg == "payes") {
-    $row = sql_select("id_souscription, courriel,"
-                      ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
-                      ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
-                      ."id_souscription_campagne, titre",
-                      "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne) ",
-                      "reglee='oui'");
+  $arg = explode("/", $arg);
+
+  $type_statut = $arg[0];
+  $type_souscription = $arg[1];   
+
+  /* Préparation de la requête */
+  $select = "id_souscription, courriel, type_souscription,"
+    ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
+    ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+    ."spip_souscription_campagnes.id_souscription_campagne, titre";
+  $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)";
+
+  $where = array();
+  if($type_souscription)
+    $where[] = "type_souscription='$type_souscription'";
+  else
+    $type_souscription = "tous";
+
+
+  if($type_statut == "payes") {
+    $where[] = "reglee='oui'";
   }
-  elseif($arg == "tous") {
-    $row = sql_select("id_souscription, courriel,"
-                      ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
-                      ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
-                      ."id_souscription_campagne, titre",
-                      "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)");
+  elseif($type_statut == "tous") {
+    /* Afficher toutes les transactions du type demandé */
   }
   else {
     include_spip('inc/minipres');
@@ -39,9 +56,12 @@ function action_exporter_souscriptions_dist($arg=null) {
     exit;    
   }
 
+  $row = sql_select($select, $from, $where);
+
   $entete = array("ID du don",
                   "Courriel",
                   "Montant",
+                  "Type de souscription",
                   "Reglée",
                   "Statut",
                   "Date de paiement",
@@ -60,6 +80,6 @@ function action_exporter_souscriptions_dist($arg=null) {
   /* Utilisation de la fonction exporter_csv de Bonux */
   $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
 
-  $exporter_csv("souscriptions_${arg}", $row, ',', $entete);
+  $exporter_csv("souscriptions_${type_souscription}_${type_statut}", $row, ',', $entete);
   exit();
 }