Overview
Comment:Liste des paiements pour une activité/cotisation
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1c0dc4441c5c81953f43e84509dc00f42560955f
User & Date: bohwaz on 2014-02-07 16:30:23
Other Links: manifest | tags
Context
2014-02-07
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
15:45
Style pour les mobiles et tablettes check-in: 23baeb2a1c user: bohwaz tags: trunk
Changes

Modified src/include/class.membres_transactions.php from [8bcbdfa34c] to [e41d596f67].

1
2
3
4
5
6


7
8
9
10
11
12
13
...
241
242
243
244
245
246
247




































248
249
250
251
252
253
254
<?php

namespace Garradin;

class Membres_Transactions
{


	/**
	 * Vérification des champs fournis pour la modification de donnée
	 * @param  array $data Tableau contenant les champs à ajouter/modifier
	 * @return void
	 */
	protected function _checkFields(&$data)
	{
................................................................................
	public function get($id)
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT *,
			(SELECT COUNT(*) FROM membres_transactions_operations WHERE id_membre_transaction = id) AS nb_operations
			FROM membres_transactions WHERE id = ?;', true, (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
			FROM membres_transactions AS mtr 






>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
<?php

namespace Garradin;

class Membres_Transactions
{
	const ITEMS_PER_PAGE = 100;

	/**
	 * Vérification des champs fournis pour la modification de donnée
	 * @param  array $data Tableau contenant les champs à ajouter/modifier
	 * @return void
	 */
	protected function _checkFields(&$data)
	{
................................................................................
	public function get($id)
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT *,
			(SELECT COUNT(*) FROM membres_transactions_operations WHERE id_membre_transaction = id) AS nb_operations
			FROM membres_transactions WHERE id = ?;', true, (int) $id);
	}

	/**
	 * Liste des paiements pour une activité/cotisation
	 * @param  integer  $id   Numéro de transaction
	 * @param  integer $page Numéro de page pour la pagination
	 * @return array        Liste des activités
	 */
	public function listForTransaction($id, $page = 1)
	{
		$begin = ($page - 1) * self::ITEMS_PER_PAGE;

		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM membres_transactions 
			WHERE id_transaction = ? ORDER BY date DESC LIMIT ?,?;',
			\SQLITE3_ASSOC, (int)$id, $begin, self::ITEMS_PER_PAGE);
	}

	/**
	 * Nombre de paiements pour une activité
	 * @param  integer $id Numéro de l'activité/cotisation
	 * @return integer     Nombre de paiements pour cette activité
	 */
	public function countForTransaction($id)
	{
		$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
			FROM membres_transactions AS mtr 

Modified src/include/class.transactions.php from [5fe7ab0740] to [8d0fafb055].

130
131
132
133
134
135
136
137



138
139
140
141
142
143
144
145
146
147
148
149
150









151
152
153

		return $db->simpleExec('DELETE FROM transactions WHERE id = ?;', (int) $id);
	}

	public function get($id)
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT * FROM transactions WHERE id = ?;', true, (int) $id);



	}

	public function listByName()
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM transactions ORDER BY intitule;');
	}

	public function listCurrent()
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM transactions WHERE fin >= date(\'now\') OR fin IS NULL ORDER BY intitule;');
	}









}

?>







|
>
>
>













>
>
>
>
>
>
>
>
>



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165

		return $db->simpleExec('DELETE FROM transactions WHERE id = ?;', (int) $id);
	}

	public function get($id)
	{
		$db = DB::getInstance();
		return $db->simpleQuerySingle('SELECT *,
			(SELECT COUNT(*) FROM membres_transactions WHERE id_transaction = :id) AS nb_paiements,
			(SELECT COUNT(DISTINCT id_membre) FROM membres_transactions WHERE id_transaction = :id) AS nb_membres
			FROM transactions WHERE id = :id;', true, ['id' => (int) $id]);
	}

	public function listByName()
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM transactions ORDER BY intitule;');
	}

	public function listCurrent()
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT * FROM transactions WHERE fin >= date(\'now\') OR fin IS NULL ORDER BY intitule;');
	}

	public function listCurrentWithStats()
	{
		$db = DB::getInstance();
		return $db->simpleStatementFetch('SELECT *,
			(SELECT COUNT(*) FROM membres_transactions WHERE id_transaction = transactions.id) AS nb_paiements,
			(SELECT COUNT(DISTINCT id_membre) FROM membres_transactions WHERE id_transaction = transactions.id) AS nb_membres
			FROM transactions WHERE fin >= date(\'now\') OR fin IS NULL ORDER BY intitule;');
	}
}

?>

Added src/templates/admin/membres/transactions/index.tpl version [238b00232b].























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
{include file="admin/_head.tpl" title="Paiements" 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>

<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 $tr.duree}
                        {$tr.duree|escape} jours
                    {elseif $tr.debut}
                        du {$tr.debut|format_sqlite_date_to_french} au {$tr.fin|format_sqlite_date_to_french}
                    {else}
                        ponctuelle
                    {/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"}

Added src/templates/admin/membres/transactions/voir.tpl version [a652d3cc9b].













































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
{include file="admin/_head.tpl" title="Paiements" 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 paiements liés</dt>
    <dd>{$cotisation.nb_paiements|escape}</dd>
</dl>

{if !empty($liste)}
    <table class="list">
        <thead>
            <td>Membre</td>
            <td>Date</td>
            <th>Libellé</th>
            <td>Montant</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.date|format_sqlite_date_to_french}</th>
                    <td>{$tr.libelle|escape}</td>
                    <td class="num">{$tr.montant|html_money} {$config.monnaie|escape}</td>
                    <td class="actions">
                        <a class="icn" href="{$admin_url}membres/transactions/modifier.php?id={$tr.id|escape}" title="Modifier">✎</a>
                        <a class="icn" href="{$admin_url}membres/transactions/supprimer.php?id={$tr.id|escape}" title="Supprimer">✘</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/index.php version [3c0853ad4e].



































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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.");
}

$transactions = new Transactions;

$tpl->assign('liste', $transactions->listCurrentWithStats());

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

?>

Added src/www/admin/membres/transactions/voir.php version [9dd6c643c0].

















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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->countForTransaction($tr['id']));
$tpl->assign('pagination_url', utils::getSelfUrl(true) . '?id=' . $tr['id'] . '&amp;p=[ID]');

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

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

?>