Amélioration de l'export des souscriptions.
authorOlivier Tétard <olivier.tetard@miskin.fr>
Fri, 15 Mar 2013 13:16:22 +0000 (14:16 +0100)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Fri, 15 Mar 2013 13:16:22 +0000 (14:16 +0100)
Il est désormais possible de filter les éléments à exporter (dons ou
adhésions ou tous). Amélioration du code de l'export.

action/exporter_souscriptions.php
prive/objets/liste/souscriptions.html
prive/squelettes/extra/souscriptions.html [deleted file]

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();
 }
index 7f72867..ca4cb69 100644 (file)
 </B_liste_souscriptions>[
 <div class="liste-objets souscriptions caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
 ]<//B_liste_souscriptions>
+
+[(#BOITE_OUVRIR{<:souscription:voir_exporter:>,'simple','section'})]
+[(#SET{arguments_export, ''})]
+
+[(#SET{arguments_export,#GET{arguments_export}|concat{/#ENV{type_souscription}|?{#ENV{type_souscription}}, /}})]
+
+<ul>
+  <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,[(#VAL{payes}|concat{#GET{arguments_export}})]})]"><:souscription:label_exporter_payes:></a></li>
+  <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,[(#VAL{tous}|concat{#GET{arguments_export}})]})]"><:souscription:label_exporter_tous:></a></li>
+</ul>
+#BOITE_FERMER
diff --git a/prive/squelettes/extra/souscriptions.html b/prive/squelettes/extra/souscriptions.html
deleted file mode 100644 (file)
index 956f08a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-[(#BOITE_OUVRIR{<:souscription:voir_exporter:>,'simple','section'})]
-<ul>
-  <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,payes})]"><:souscription:label_exporter_payes:></a></li>
-  <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,tous})]"><:souscription:label_exporter_tous:></a></li>
-</ul>
-#BOITE_FERMER