2 if (!defined("_ECRIRE_INC_VERSION")) return;
4 function action_exporter_souscriptions_dist($arg=null) {
6 * $arg contient les différents arguments, séparés par des '/'. Une
7 * fois passés dans la fonctions split, il se présente de la manière
10 * argument en position 1 : 'paye', 'commande', 'erreur' ou 'tous'
11 * argument en position 2 : type de souscription ('dons',
13 * argument en position 3 : identifiant de la campagne
14 * argument en position 4 : date de début (au format timestamp)
15 * argument en position 5 : date de fin (au format timestamp)
18 /* FIXME: améliorer la jointure... */
21 $securiser_action = charger_fonction('securiser_action', 'inc');
22 $arg = $securiser_action();
25 /* Vérification des droits de l'utilisateur. */
26 if(!autoriser("exporter", "souscription", '')) {
27 include_spip('inc/minipres');
33 $arg = explode("/", $arg);
36 throw new Exception();
38 $type_souscription = $arg[0];
39 if($type_souscription && !in_array($type_souscription, array('don', 'adhesion')))
40 throw new Exception();
43 if($statut && !in_array($statut, array('paye', 'commande', 'erreur')))
44 throw new Exception();
46 $id_campagne = $arg[2];
47 if($id_campagne && !ctype_digit($id_campagne))
48 throw new Exception();
50 $date_debut = $arg[3];
53 if(($date_debut && !ctype_digit($date_debut)) || ($date_fin && !ctype_digit($date_fin)))
54 throw new Exception();
57 include_spip('inc/minipres');
62 /* Préparation de la requête */
63 $select = "id_souscription, courriel, type_souscription,"
64 ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
65 ."nom, prenom, adresse, code_postal, ville, pays, telephone, recu_fiscal, envoyer_info, informer_comite_local, date_souscription,"
66 ."spip_souscription_campagnes.id_souscription_campagne, titre";
67 $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)";
70 if($type_souscription)
71 $where[] = "type_souscription='$type_souscription'";
75 $where[] = "reglee='oui'";
76 elseif($statut == "commande")
77 $where[] = "spip_transactions.statut='commande'";
78 elseif($statut == "erreur")
79 $where[] = "spip_transactions.statut like 'echec%'";
83 $where[] = "spip_souscription_campagnes.id_souscription_campagne = '$id_campagne'";
86 $where[] = "date_souscription > '" . date ("Y-m-d 00:00:00", $date_debut) . "'";
89 $where[] = "date_souscription < '" . date ("Y-m-d 23:59:59", $date_fin) . "'";
91 $row = sql_select($select, $from, $where);
93 $entete = array(_T("souscription:label_exporter_entete_id_don"),
94 _T("souscription:label_exporter_entete_courriel"),
95 _T("souscription:label_exporter_entete_type_souscription"),
96 _T("souscription:label_exporter_entete_montant"),
97 _T("souscription:label_exporter_entete_reglee"),
98 _T("souscription:label_exporter_entete_statut"),
99 _T("souscription:label_exporter_entete_date_paiement"),
100 _T("souscription:label_exporter_entete_mode_paiement"),
101 _T("souscription:label_exporter_entete_id_autorisation"),
102 _T("souscription:label_exporter_entete_nom"),
103 _T("souscription:label_exporter_entete_prenom"),
104 _T("souscription:label_exporter_entete_adresse"),
105 _T("souscription:label_exporter_entete_code_postal"),
106 _T("souscription:label_exporter_entete_ville"),
107 _T("souscription:label_exporter_entete_pays"),
108 _T("souscription:label_exporter_entete_telephone"),
109 _T("souscription:label_exporter_entete_recu_fiscal"),
110 _T("souscription:label_exporter_entete_informer"),
111 _T("souscription:label_exporter_entete_informer_comite_local"),
112 _T("souscription:label_exporter_entete_date_don"),
113 _T("souscription:label_exporter_entete_id_campagne"),
114 _T("souscription:label_exporter_entete_titre_campagne"));
116 /* Utilisation de la fonction exporter_csv de Bonux */
117 $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
119 $exporter_csv("souscriptions", $row, ',', $entete);