From 547ee1addb47235f28b53a330b1f80e2ea2ef0f9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20T=C3=A9tard?= <olivier.tetard@miskin.fr> Date: Fri, 4 Oct 2013 15:54:08 +0200 Subject: [PATCH] Ajout d'une nouvelle balise #AVANCEMENT_CAMPAGNE. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Cette balise permet de calculer l'avancement d'une campagne en fonction du type de celle-ci et du niveau initial (le cas échéant). --- souscription_fonctions.php | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 souscription_fonctions.php diff --git a/souscription_fonctions.php b/souscription_fonctions.php new file mode 100644 index 0000000..eccddeb --- /dev/null +++ b/souscription_fonctions.php @@ -0,0 +1,44 @@ +<?php +if (!defined('_ECRIRE_INC_VERSION')) return; + +function calcul_avancement_campagne($id_campagne, $type_objectif, $objectif_initial) { + + $res = sql_fetsel(array("COUNT(*) as nombre", + "SUM(montant) AS somme"), + "spip_souscriptions AS S INNER JOIN spip_transactions AS T ON (S.id_transaction = T.id_transaction)", + array("S.id_souscription_campagne=".sql_quote($id_campagne), + "T.reglee = 'oui'")); + + $nombre = $res['nombre']; + $somme = $objectif_initial; + + return ($type_souscription == "don" ? $somme : $nombre) + $objectif_initial; +} + +/* + * Balise #AVANCEMENT_CAMPAGNE permettant de faire les calculs + * d'avancement de la campagne (nombre des adhésions pourl es + * campagnes de type adhésion ; somme des montants pour les campagnes + * de dons). + * + * Cette balise ne peut être utilisée que dans une boucle de type + * SOUSCRIPTION_CAMPAGNE + */ +function balise_AVANCEMENT_CAMPAGNE_dist($p) { + + if($p->type_requete != "souscription_campagnes") { + $msg = array('zbug_champ_hors_boucle', + array('champ' => '#AVANCEMENT_CAMPAGNE') + ); + erreur_squelette($msg, $p); + } + else { + $_campagne = champ_sql('id_souscription_campagne', $p); + $_type_objectif = champ_sql('type_objectif', $p); + $_objectif_initial = champ_sql('objectif_initial', $p); + $p->code = "calcul_avancement_campagne($_campagne, $_type_objectif, $_objectif_initial)"; + $p->interdire_scripts = false; + } + + return $p; +} -- 2.39.5