From: Stéphane Jacob Date: Wed, 17 Nov 2010 10:54:51 +0000 (+0100) Subject: Allows sorting on payment lists in X.net. X-Git-Tag: xorg/1.1.0~264 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=af387c4b257d3f68bb78892edcc76bffe05d8312;p=platal.git Allows sorting on payment lists in X.net. Signed-off-by: Stéphane Jacob --- diff --git a/modules/payment.php b/modules/payment.php index d01be39..014bf70 100644 --- a/modules/payment.php +++ b/modules/payment.php @@ -503,19 +503,44 @@ class PaymentModule extends PLModule WHERE asso_id = {?} AND NOT FIND_IN_SET('old', flags) ORDER BY id DESC", $globals->asso('id')); $tit = $res->fetchAllAssoc(); - $page->assign('titres', $tit); + $page->assign('titles', $tit); - - // TODO: replug sort. - $page->assign('order', false); $trans = array(); $event = array(); + if (may_update()) { + static $orders = array('timestamp' => 'p', 'directory_name' => 'a', 'promo' => 'pd', 'comment' => 'p', 'amount' => 'p'); + + if (Get::has('order_id') && Get::has('order') && array_key_exists(Get::v('order'), $orders)) { + $order_id = Get::i('order_id'); + $order = Get::v('order'); + $ordering = ' ORDER BY ' . $orders[$order] . '.' . $order; + if (Get::has('order_inv') && Get::i('order_inv') == 1) { + $ordering .= ' DESC'; + $page->assign('order_inv', 0); + } else { + $page->assign('order_inv', 1); + } + $page->assign('order_id', $order_id); + $page->assign('order', $order); + } else { + $order_id = false; + $ordering = ''; + $page->assign('order', false); + } + } else { + $ordering = ''; + $page->assign('order', false); + } foreach($tit as $foo) { $pid = $foo['id']; if (may_update()) { - $res = XDB::query('SELECT uid, IF(timestamp = \'0000-00-00\', 0, timestamp) AS date, comment, amount - FROM payment_transactions - WHERE ref = {?}', $pid); + $res = XDB::query('SELECT p.uid, IF(p.timestamp = \'0000-00-00\', 0, p.timestamp) AS date, p.comment, p.amount + FROM payment_transactions AS p + INNER JOIN accounts AS a ON (a.uid = p.uid) + LEFT JOIN account_profiles AS ap ON (ap.uid = p.uid AND FIND_IN_SET(\'owner\', ap.perms)) + LEFT JOIN profile_display AS pd ON (ap.pid = pd.pid) + WHERE p.ref = {?}' . (($order_id == $pid) ? $ordering : ''), + $pid); $trans[$pid] = User::getBulkUsersWithUIDs($res->fetchAllAssoc(), 'uid', 'user'); $sum = 0; foreach ($trans[$pid] as $i => $t) { diff --git a/templates/payment/xnet.tpl b/templates/payment/xnet.tpl index d6d3a0d..0d82b54 100644 --- a/templates/payment/xnet.tpl +++ b/templates/payment/xnet.tpl @@ -26,7 +26,7 @@ Voici la liste des paiements en ligne possible pour le groupe {$asso->nom} :

-{foreach from=$titres item=p} +{foreach from=$titles item=p}
{icon name=money title="Télépaiement"}{$p.text} @@ -68,43 +68,43 @@ Voici la liste des paiements en ligne possible pour le groupe {$asso->nom} 
- {if $order eq 'timestamp'} - + {if $order eq 'timestamp' && $order_id eq $p.id} + {else} - + {/if}Date - {if $order eq 'nom'} - + {if $order eq 'directory_name' && $order_id eq $p.id} + {else} - {/if} + {/if} NOM Prénom - {if $order eq 'promo'} - + {if $order eq 'promo' && $order_id eq $p.id} + {else} - + {/if}Promo - {if $order eq 'comment'} - + {if $order eq 'comment' && $order_id eq $p.id} + {else} - + {/if}Commentaire - {if $order eq 'amount'} - + {if $order eq 'amount' && $order_id eq $p.id} + {else} - + {/if}Montant