Changeset 67828 in spip-zone


Ignore:
Timestamp:
Nov 20, 2012, 4:47:44 PM (7 years ago)
Author:
esj@…
Message:

Associaspip rationnalisation: la fonction association_liste_destinations_associees avait été bousillée par r66822, et l'original était optimisable (quel besoin de trier en SQL vu qu'on construit un autre tableau ensuite ?). A noter qu'il ne sert à rien d'appeler cette fonction lorsque le numéro de l'opération est inconnu (cas d'ajout d'une cotisation).

Location:
_plugins_/Associaspip/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Associaspip/trunk/association_options.php

    r67826 r67828  
    25192519
    25202520function association_chargeparam_destinations($type, &$contexte) {
    2521         if ($GLOBALS['association_metas']['destinations']) { // on ajoute au contexte : id_dest, montant_dest, defaut_dest ; ces variables sont recuperees par la balise dynamique directement dans l'environnement
     2521        if ($GLOBALS['association_metas']['destinations'] AND $contexte['id_compte']) {
     2522                // Recuperer les destinations associees a id_compte
     2523                // pour ajouter au contexte : id_dest, montant_dest, defaut_dest
     2524                // ces variables sont recuperees par la balise dynamique
    25222525                include_spip('inc/association_comptabilite');
    2523                 $dest_id_montant = association_liste_destinations_associees($contexte['id_compte']); // on recupere les destinations associes a id_compte
    2524                 if (is_array($dest_id_montant)) {
    2525                         $contexte['id_dest'] = array_keys($dest_id_montant);
    2526                         $contexte['montant_dest'] = array_values($dest_id_montant);
     2526                $dest = association_liste_destinations_associees($contexte['id_compte']);
     2527                if ($dest) {
     2528                        $contexte['id_dest'] = array_keys($dest);
     2529                        $contexte['montant_dest'] = array_values($dest);
    25272530                } else {
    25282531                        $contexte['id_dest'] = '';
  • _plugins_/Associaspip/trunk/inc/association_comptabilite.php

    r67586 r67828  
    2727 *   id_compte de l'operation dans spip_asso_compte (et spip_asso_destination)
    2828 * @return array $destinations
    29  *   Un tableau de id_destination=>montant
    30  *   ou une chaine vide
     29 *   Un tableau eventuellement vide de id_destination=>montant
    3130 */
    3231function association_liste_destinations_associees($id_operation) {
    33     if (!$id_compte)
    34         return '';
    35     if ($sql = sql_select(' spip_asso_destination_op.*, spip_asso_destination.intitule', 'spip_asso_destination_op RIGHT JOIN spip_asso_destination ON spip_asso_destination.id_destination=spip_asso_destination_op.id_destination', "id_compte=$id_operation", '', 'spip_asso_destination.intitule')) {
     32        $sql = sql_select(' spip_asso_destination_op.*', 'spip_asso_destination_op RIGHT JOIN spip_asso_destination ON spip_asso_destination.id_destination=spip_asso_destination_op.id_destination', "id_compte=" . intval($id_operation));
    3633        $destinations = array();
    37         while ( $ventilations = sql_fetch($sql) ) {
    38             $destination[$ventilations['id_destination']] = $destination_op['recette']+$destination_op['depense']; // soit recette soit depense est egal a 0, donc pour l'affichage du montant on se contente les additionner
    39         }
    40         if ( !count($destinations) )
    41             $destinations = '';
    42     } else {
    43         $destinations = '';
    44     }
    45     return $destinations;
     34        while ( $r = sql_fetch($sql) ) {
     35          // soit recette soit depense est egal a 0,
     36          // on se contente les additionner
     37            $destination[$r['id_destination']] = $r['recette'] + $r['depense'];
     38        }
     39        return $destinations;
    4640}
    4741
Note: See TracChangeset for help on using the changeset viewer.