Overview
Comment:Liste des membres ayant payé une activité / cotise
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: aca2bc153521320d478dbb4c1c03628e4dfc0094
User & Date: bohwaz on 2014-02-07 18:41:27
Other Links: manifest | tags
Context
2014-02-07
22:43
Ce champ est forcément présent check-in: 70ac807779 user: bohwaz tags: trunk
18:41
Liste des membres ayant payé une activité / cotise check-in: aca2bc1535 user: bohwaz tags: trunk
16:30
Liste des paiements pour une activité/cotisation check-in: 1c0dc4441c user: bohwaz tags: trunk
Changes

Modified src/include/class.membres_transactions.php from [e41d596f67] to [6d14c4032c].

273
274
275
276
277
278
279


















280
281


282
283









284
285
286
287
288
289
290
291
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT COUNT(*) FROM membres_transactions 
			WHERE id_transaction = ?;',
			false, (int)$id);
	}



















	public function listMembersForTransaction($id)
	{


		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM membres_transactions WHERE id_transaction = ? ORDER BY date DESC;',









			\SQLITE3_ASSOC, (int)$id);
	}

	public function listForMember($id)
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT mtr.*, tr.intitule, tr.duree, tr.debut, tr.fin,
				(SELECT COUNT(*) FROM membres_transactions_operations WHERE id_membre_transaction = mtr.id) AS nb_operations







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|

>
>

|
>
>
>
>
>
>
>
>
>
|







273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT COUNT(*) FROM membres_transactions 
			WHERE id_transaction = ?;',
			false, (int)$id);
	}

	/**
	 * Nombre de membres pour une activité
	 * @param  integer $id Numéro de l'activité/cotisation
	 * @return integer     Nombre de paiements pour cette activité
	 */
	public function countMembersForTransaction($id)
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT COUNT(DISTINCT id_membre) FROM membres_transactions 
			WHERE id_transaction = ?;',
			false, (int)$id);
	}

	/**
	 * Liste des membres qui ont payé une activité
	 * @param  integer $id Numéro de l'activité
	 * @return array     Liste des membres ayant un paiement associé
	 */
	public function listMembersForTransaction($id, $page = 1)
	{
		$begin = ($page - 1) * self::ITEMS_PER_PAGE;

		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT SUM(mtr.montant) AS total, mtr.id_membre,
			(SELECT nom FROM membres WHERE id = mtr.id_membre) AS nom, tr.montant,
			tr.montant - SUM(mtr.montant) AS a_payer, 
			CASE WHEN tr.duree IS NOT NULL THEN date(mtr.date, \'+\'||tr.duree||\' days\') >= date()
			WHEN tr.fin IS NOT NULL THEN tr.fin <= date() ELSE 1 END AS a_jour
			FROM membres_transactions AS mtr
				INNER JOIN transactions AS tr ON tr.id = mtr.id_transaction
			WHERE
				mtr.id_transaction = ?
			GROUP BY id_membre ORDER BY date DESC LIMIT ?,?;',
			\SQLITE3_ASSOC, (int)$id, $begin, self::ITEMS_PER_PAGE);
	}

	public function listForMember($id)
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT mtr.*, tr.intitule, tr.duree, tr.debut, tr.fin,
				(SELECT COUNT(*) FROM membres_transactions_operations WHERE id_membre_transaction = mtr.id) AS nb_operations

Modified src/templates/admin/membres/transactions/index.tpl from [238b00232b] to [a3b9f1d333].

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
..
29
30
31
32
33
34
35

36
37
38
39
40
41
42
43
</ul>

<table class="list">
    <thead>
        <th>Activité ou cotisation</th>
        <td>Période</td>
        <td>Montant</td>
        <td>Nombre de paiements</td>
        <td>Nombre de membres inscrits</td>
        <td></td>
    </thead>
    <tbody>
        {foreach from=$liste item="tr"}
            <tr>
                <th>{$tr.intitule|escape}</th>
                <td>
................................................................................
                    {/if}
                </td>
                <td class="num">{$tr.montant|html_money} {$config.monnaie|escape}</td>
                <td class="num">{$tr.nb_paiements|escape}</td>
                <td class="num">{$tr.nb_membres|escape}</td>
                <td class="actions">
                    <a href="{$admin_url}membres/transactions/voir.php?id={$tr.id|escape}">Paiements</a>

                </td>
            </tr>
        {/foreach}
    </tbody>
</table>


{include file="admin/_foot.tpl"}







|
|







 







>








7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
..
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
</ul>

<table class="list">
    <thead>
        <th>Activité ou cotisation</th>
        <td>Période</td>
        <td>Montant</td>
        <td>Paiements</td>
        <td>Membres inscrits</td>
        <td></td>
    </thead>
    <tbody>
        {foreach from=$liste item="tr"}
            <tr>
                <th>{$tr.intitule|escape}</th>
                <td>
................................................................................
                    {/if}
                </td>
                <td class="num">{$tr.montant|html_money} {$config.monnaie|escape}</td>
                <td class="num">{$tr.nb_paiements|escape}</td>
                <td class="num">{$tr.nb_membres|escape}</td>
                <td class="actions">
                    <a href="{$admin_url}membres/transactions/voir.php?id={$tr.id|escape}">Paiements</a>
                    | <a href="{$admin_url}membres/transactions/membres.php?id={$tr.id|escape}">Membres</a>
                </td>
            </tr>
        {/foreach}
    </tbody>
</table>


{include file="admin/_foot.tpl"}

Added src/templates/admin/membres/transactions/membres.tpl version [01a6a5f6ff].























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{include file="admin/_head.tpl" title="Membres ayant payé une activité ou cotisation" current="membres/transactions"}

<ul class="actions">
    <li class="current"><a href="{$admin_url}membres/transactions/">Paiements</a></li>
    <li><a href="{$admin_url}membres/transactions/ajout.php">Saisie d'un paiement</a></li>
    <li><a href="{$admin_url}membres/transactions/rappels.php">État des rappels</a></li>
</ul>

<dl class="cotisation">
    <dt>Cotisation ou activité</dt>
    <dd>{$cotisation.intitule|escape} — 
        {if $cotisation.duree}
            {$cotisation.duree|escape} jours
        {elseif $cotisation.debut}
            du {$cotisation.debut|format_sqlite_date_to_french} au {$cotisation.fin|format_sqlite_date_to_french}
        {else}
            ponctuelle
        {/if}
        — {$cotisation.montant|escape_money} {$config.monnaie|escape}
    </dd>
    <dt>Nombre de membres liés</dt>
    <dd>{$cotisation.nb_membres|escape}</dd>
</dl>

{if !empty($liste)}
    <table class="list">
        <thead>
            <td></td>
            <th>Nom</th>
            <td>Paiement</td>
            <td></td>
        </thead>
        <tbody>
            {foreach from=$liste item="tr"}
                <tr>
                    <td><a class="icn" href="{$admin_url}membres/fiche.php?id={$tr.id_membre|escape}">{$tr.id_membre|escape}</a></td>
                    <th>{$tr.nom|escape}</th>
                    <td>
                        {if $tr.a_payer > 0}
                            <b class="alert">Partiel</b>
                        {elseif $tr.a_jour}
                            <span class="confirm">À jour</span>
                        {else}
                            <b class="error">Expiré</b>
                        {/if}
                    </td>
                    <td class="actions">
                        <a href="{$admin_url}membres/transactions.php?id={$tr.id_membre|escape}">Activités &amp; cotisations de ce membre</a>
                    </td>
                </tr>
            {/foreach}
        </tbody>
    </table>

    {pagination url=$pagination_url page=$page bypage=$bypage total=$total}
{/if}


{include file="admin/_foot.tpl"}

Added src/www/admin/membres/transactions/membres.php version [6505a2bad6].

















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace Garradin;

require_once __DIR__ . '/../../_inc.php';

if ($user['droits']['membres'] < Membres::DROIT_ECRITURE)
{
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}

if (empty($_GET['id']) || !is_numeric($_GET['id']))
{
    throw new UserException("Argument du numéro de paiement manquant.");
}

$id = (int) $_GET['id'];

$transactions = new Transactions;
$m_transactions = new Membres_Transactions;

$tr = $transactions->get($id);

if (!$tr)
{
    throw new UserException("Ce paiement n'existe pas.");
}

$page = (int) utils::get('p') ?: 1;

$tpl->assign('page', $page);
$tpl->assign('bypage', Membres_Transactions::ITEMS_PER_PAGE);
$tpl->assign('total', $m_transactions->countMembersForTransaction($tr['id']));
$tpl->assign('pagination_url', utils::getSelfUrl(true) . '?id=' . $tr['id'] . '&amp;p=[ID]');

$tpl->assign('cotisation', $tr);
$tpl->assign('liste', $m_transactions->listMembersForTransaction($tr['id'], $page));

$tpl->display('admin/membres/transactions/membres.tpl');

?>