Changeset 68047 in spip-zone


Ignore:
Timestamp:
Nov 30, 2012, 11:46:44 PM (7 years ago)
Author:
jeannolapin@…
Message:

[Source:_plugins_/Associaspip Associasip] Correction de multiples erreurs dans la gestion des destination comptables : affichage et edition de destination depuis la page d'edition d'une operation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Associaspip/trunk/inc/association_comptabilite.php

    r68042 r68047  
    3030 */
    3131function association_liste_destinations_associees($id_operation) {
    32         $sql = sql_select(' spip_asso_destination_op.*', 'spip_asso_destination_op', "id_compte=" . intval($id_operation));
     32        $sql = sql_select('recette,depense,id_destination', 'spip_asso_destination_op', "id_compte=" . intval($id_operation));
    3333        $destinations = array();
    3434        while ( $r = sql_fetch($sql) ) {
    3535          // soit recette soit depense est egal a 0,
    3636          // on se contente les additionner
    37             $destination[$r['id_destination']] = $r['recette'] + $r['depense'];
     37            $destinations[$r['id_destination']] = $r['recette'] + $r['depense'];
    3838        }
    3939        return $destinations;
     
    6969        if (!$options) return '';
    7070        $idIndex = 1;
     71       
     72        if (!$GLOBALS['association_metas']['unique_dest']) { // destinations multiples, on insere le js qui permet de les gerer
     73              $script = '<script type="text/javascript" src="'
     74                . find_in_path('javascript/jquery.destinations_form.js')
     75                . '"></script>';
     76                $addDestinationButton = "\n<button class='destButton' type='button' onclick='addFormField(); return FALSE;'>+</button>";
     77        }
     78
    7179        if ( is_array($destinations) ) {
    7280      // si on a une liste de destinations (on edite une operation)
     
    7785                . '<li class="editer_id_dest['.$idIndex.']">'
    7886                . '<select name="id_dest['.$idIndex.']" id="id_dest['.$idIndex.']" >'
    79                 . preg_replace('/(value="'.$destId.'")/', '$1 selected="selected"', $options)
     87                . preg_replace("/(value='".$destId."')/", '$1 selected="selected"', $options)
    8088                . '</select></li>';
    8189
     
    8492                        . association_formater_nombre($destMontant)
    8593                        . '" type="text" id="montant_dest['.$idIndex.']" class="number decimal price" /></li>'
    86                         . '<button class="destButton" type="button" onclick="addFormField(); return FALSE;">+</button>';
     94                        . '<button class="destButton" type="button" onclick="addFormField(); return false;">+</button>';
    8795                    if ($idIndex>1) {
    88                         $res .= '<button class="destButton" type="button" onclick="removeFormField(\'#row'.$idIndex.'\'); return FALSE;">-</button>';
     96                        $res .= '<button class="destButton" type="button" onclick="removeFormField(\'#row'.$idIndex.'\'); return false;">-</button>';
    8997                    }
    9098                }
     
    97105            }
    98106            $n = " name='id_dest[1]' id='id_dest[1]'";
    99             if ((count($options) == 1) AND $GLOBALS['association_metas']['unique_dest']) {
     107            if ((count($options) == 1)) { // on a une seule destination possible, pas de selecteur
    100108              $res = "<input$n readonly='readonly' value='$id' /> $texte";
    101             } else $res = "<select$n>" . join("\n", $options) . '</select>';
    102 
    103             if (!$GLOBALS['association_metas']['unique_dest']) { // destinations multiples
    104               $script = '<script type="text/javascript" src="'
    105                 . find_in_path('javascript/jquery.destinations_form.js')
    106                 . '"></script>';
    107 
     109            } else  {
    108110              $res = "<ul>\n<li class='editer_id_dest[1]'>"
    109                 . $res
     111                . "<select$n>" . join("\n", $options) . '</select>'
    110112                . "\n</li><li class='editer_montant_dest[1]'><input name='montant_dest[1]' id='montant_dest[1]'/></li>\n</ul>"
    111                 . $but
    112                 . "\n<button class='destButton' type='button' onclick='addFormField(); return FALSE;'>+</button>";
    113             } else {
    114               $script = '';
     113                . $addDestinationButton;
    115114            }
    116115
     
    312311        $attribution_montant = 'depense';
    313312    }
    314     $toutesDestinationsIds = association_recuperer_liste('id_dest');
    315     $toutesDestinationsMontants = association_recuperer_liste('montant_dest');
     313    $toutesDestinationsIds = association_recuperer_liste('id_dest', TRUE);
     314        $toutesDestinationsMontants = association_recuperer_liste('montant_dest', TRUE);
    316315    if ( count($toutesDestinationsIds)>1 ) { // plusieurs destinations
    317316        foreach ($toutesDestinationsIds as $id => $id_destination) { // ventilation des montants. le tableau des montants a des cles indentique a celui des id
     
    325324        $id_dest_op = sql_insertq('spip_asso_destination_op', array(
    326325            'id_compte' => $id_compte,
    327             'id_destination' => $toutesDestinations[1],
     326            'id_destination' => $toutesDestinationsIds[1],
    328327            $attribution_montant => $depense+$recette
    329328        ));
Note: See TracChangeset for help on using the changeset viewer.