Version 1.0.7
[spip_souscriptions.git] / souscription_fonctions.php
1 <?php
2 if (!defined('_ECRIRE_INC_VERSION')) return;
3
4 function calcul_avancement_campagne($id_campagne, $type_objectif, $objectif_initial) {
5
6   $res = sql_fetsel(array("COUNT(*) as nombre",
7                           "SUM(montant) AS somme"),
8                     "spip_souscriptions AS S INNER JOIN spip_transactions AS T ON (S.id_transaction = T.id_transaction)",
9                     array("S.id_souscription_campagne=".sql_quote($id_campagne),
10                           "T.reglee = 'oui'"));
11
12   return ($type_objectif == "don" ? $res['somme'] : $res['nombre']) + $objectif_initial;
13 }
14
15 /*
16  * Balise #AVANCEMENT_CAMPAGNE permettant de faire les calculs
17  * d'avancement de la campagne (nombre des adhésions pourl es
18  * campagnes de type adhésion ; somme des montants pour les campagnes
19  * de dons).
20  *
21  * Cette balise ne peut être utilisée que dans une boucle de type
22  * SOUSCRIPTION_CAMPAGNE
23  */
24 function balise_AVANCEMENT_CAMPAGNE_dist($p) {
25
26   if($p->type_requete != "souscription_campagnes") {
27     $msg = array('zbug_champ_hors_boucle',
28                  array('champ' => '#AVANCEMENT_CAMPAGNE')
29                  );
30     erreur_squelette($msg, $p);
31   }
32   else {
33     $_campagne = champ_sql('id_souscription_campagne', $p);
34     $_type_objectif = champ_sql('type_objectif', $p);
35     $_objectif_initial = champ_sql('objectif_initial', $p);
36     $p->code = "calcul_avancement_campagne($_campagne, $_type_objectif, $_objectif_initial)";
37     $p->interdire_scripts = false;
38   }
39
40   return $p;
41 }
42
43 function montants_str2array($str) {
44   include_spip('inc/saisies');
45
46   /* Vérification du format de la chaine. Elle doit être sous la forme
47    * « [montant] | [label] », par exemple « 10 | 10 € ». */
48   foreach(explode("\n", trim($str)) as $l) {
49     if(!preg_match('/^[0-9]+\|.*/', $l)) {
50       return false;
51     }
52   }
53
54   return saisies_chaine2tableau(saisies_aplatir_chaine($str));
55 }
56
57 function campagne_afficher_objectif($nombre,$type_objectif){
58         return $nombre.($type_objectif == "don" ? " EUR" : "");
59 }