Ajout d'un champ « informer comité local » pour les adhésions
[spip_souscriptions.git] / action / editer_souscription.php
1 <?php
2 if (!defined("_ECRIRE_INC_VERSION")) return;
3
4 function action_editer_souscription_dist($arg=null) {
5
6   if (is_null($arg)) {
7     $securiser_action = charger_fonction('securiser_action', 'inc');
8     $arg = $securiser_action();
9   }
10
11   if (!$id_souscription = intval($arg)) {
12     $id_souscription = souscription_inserer();
13   }
14
15   if (!$id_souscription)
16     return array(0, '');
17
18   $err = souscription_modifier($id_souscription);
19
20   return array($id_souscription, $err);
21 }
22
23 /**
24  * Inserer une nouvelle souscription en en base.
25  *
26  * @return bool
27  */
28 function souscription_inserer() {
29
30   $champs = array('date_souscription' => date('Y-m-d H:i:s'));
31         
32   // Envoyer aux plugins
33   $champs = pipeline('pre_insertion',
34                      array('args' => array('table' => 'spip_souscriptions'),
35                            'data' => $champs)
36                      );
37
38   $id_souscription = sql_insertq("spip_souscriptions", $champs);
39
40   pipeline('post_insertion',
41            array('args' => array('table' => 'spip_souscriptions',
42                                  'id_objet' => $id_souscription),
43                  'data' => $champs)
44            );
45
46   return $id_souscription;
47 }
48
49 /**
50  * Modifier une souscription
51  *
52  * $c est un contenu (par defaut on prend le contenu via _request())
53  *
54  * @param int $id_souscription
55  * @param array|bool $set
56  * @return string
57  */
58 function souscription_modifier($id_souscription, $set=false) {
59   include_spip('inc/modifier');
60
61   $c = collecter_requests(
62                           // white list
63                           array('courriel',
64                                 'recu_fiscal',
65                                 'envoyer_info',
66                                 'informer_comite_local',
67                                 'prenom',
68                                 'nom',
69                                 'adresse',
70                                 'code_postal',
71                                 'ville',
72                                 'id_souscription_campagne',
73                                 'type_souscription'),
74                           // black list
75                           array('statut', 'date'),
76                           // donnees eventuellement fournies
77                           $set
78                           );
79
80
81   $inserer_transaction = charger_fonction('inserer_transaction', 'bank');
82   $id_transaction = $inserer_transaction(_request('montant'),
83                                          '', /* montant_ht */
84                                          '', /* id_auteur */
85                                          $id_souscription, /* auteur_id => id_souscription */
86                                          _request('courriel'));
87
88   if(!$id_transaction) {
89     return "Identifiant de transaction introuvable..."; /* FIXME: à rendre traduisible. */
90   }
91
92   $c = array_merge($c, array("id_transaction" => $id_transaction));
93
94   if($err = objet_modifier_champs('souscription', $id_souscription, array(), $c))
95     return $err;
96 }