216 lines
6.4 KiB
PHP
216 lines
6.4 KiB
PHP
<?php
|
|
|
|
namespace Garradin;
|
|
|
|
use Garradin\Plugin\RecusFiscaux\Utils;
|
|
|
|
// ------------------------------------------------------------------------
|
|
// opérations communes
|
|
// ------------------------------------------------------------------------
|
|
|
|
// champs pour le nom et prénom
|
|
$confNoms = Utils::getChampsNom($config, $plugin);
|
|
uasort($confNoms, function ($a, $b)
|
|
{
|
|
return $a->position - $b->position;
|
|
});
|
|
$champsNom = array();
|
|
foreach ($confNoms as $nom => $champ)
|
|
{
|
|
if ($champ->position != 0) { $champsNom[] = $nom; }
|
|
}
|
|
|
|
// membres donateurs
|
|
$_SESSION['membresDonateurs'] = Utils::getDonateurs($_SESSION['annee_recu'],
|
|
$champsNom);
|
|
|
|
// comparaison de lignes de versements
|
|
// comparer 2 lignes selon le nom
|
|
function comparerNoms($ligne1, $ligne2)
|
|
{
|
|
return
|
|
$_SESSION['membresDonateurs'][$ligne1->idUser]->rang
|
|
-
|
|
$_SESSION['membresDonateurs'][$ligne2->idUser]->rang;
|
|
}
|
|
|
|
// comparer 2 activités par leur libellé
|
|
function comparerActivites($ligne1, $ligne2)
|
|
{
|
|
return strcoll(
|
|
$_SESSION['lesActivites'][$_SESSION['lesTarifs'][$ligne1->idTarif]->idActivite]->label,
|
|
$_SESSION['lesActivites'][$_SESSION['lesTarifs'][$ligne2->idTarif]->idActivite]->label);
|
|
}
|
|
|
|
// comparer 2 lignes selon la date
|
|
function comparerDate($ligne1, $ligne2)
|
|
{
|
|
return
|
|
strtotime($ligne1->date) - strtotime($ligne2->date);
|
|
}
|
|
|
|
// comparer 2 lignes selon un champ numérique entier
|
|
function comparerChamp($ligne1, $ligne2, $champ)
|
|
{
|
|
return $ligne1->$champ - $ligne2->$champ;
|
|
}
|
|
|
|
// ------------------------------------------------------------------------
|
|
// fonctions pour l'affichage
|
|
// ------------------------------------------------------------------------
|
|
|
|
// afficher les informations d'une activité et d'un tarif
|
|
$tpl->register_function('afficher_debut_tarif', function ($params)
|
|
{
|
|
$versement = $params['versement'];
|
|
$idTarif = $versement->idTarif;
|
|
|
|
$out = sprintf('
|
|
<details class="activite" open="open">
|
|
<summary class="activite">
|
|
<div class="activite">
|
|
<input type="checkbox" id="check_%1$s"
|
|
onclick="cocherDecocherTarif(check_%1$s)" />',
|
|
$idTarif);
|
|
if ($idTarif == 0) {
|
|
// versement sur un compte non rattaché à une activité
|
|
$out .= sprintf('
|
|
<label for="check_%s">
|
|
<h3 class="activite">Versements non rattachés à une activité</h3>',
|
|
$idTarif);
|
|
}
|
|
else {
|
|
$tarif = $_SESSION['lesTarifs'][$idTarif];
|
|
$idActivite = $tarif->idActivite;
|
|
$activite = $_SESSION['lesActivites'][$idActivite];
|
|
|
|
$out .= sprintf('
|
|
<label for="check_%s">
|
|
<h3 class="activite">Activité « %s »</h3>',
|
|
$idTarif,
|
|
$activite->label);
|
|
|
|
if (!empty($activite->description)) {
|
|
$out .= sprintf('
|
|
<p class="activite">%s</p>', $activite->description);
|
|
}
|
|
$out .= sprintf('
|
|
<p class="activite">tarif « %s »', $tarif->label);
|
|
if ($tarif->montant > 0) {
|
|
$out .= sprintf(' montant : %.2f €</p>', $tarif->montant/100);
|
|
} else {
|
|
$out .= ' montant : libre</p>';
|
|
}
|
|
}
|
|
$out .= '
|
|
</label>
|
|
</div>
|
|
</summary>';
|
|
return $out;
|
|
});
|
|
|
|
// Afficher les informations d'une personne
|
|
$tpl->register_function('afficher_debut_personne', function ($params)
|
|
{
|
|
$idUser = $params['user'];
|
|
$idVersement = $params['idVersement'];
|
|
|
|
$personne = $_SESSION['membresDonateurs'][$idUser];
|
|
$out = sprintf('
|
|
<details class="personne" open="open">
|
|
<summary class="personne">
|
|
<div class="personne">
|
|
<input type="checkbox" id="check_%1$s"
|
|
onclick="cocherDecocherPersonne(check_%1$s, total_%1$s)" />
|
|
<label for="check_%1$s">
|
|
%2$s : <span class="total" id="total_%1$s">0,00 €</span>
|
|
</label>
|
|
</div>
|
|
</summary>
|
|
<div class="versements">',
|
|
$idVersement,
|
|
$personne->nomPrenom
|
|
);
|
|
return $out;
|
|
});
|
|
|
|
// afficher infos compte
|
|
$tpl->register_function('afficher_debut_compte', function ($params)
|
|
{
|
|
$idCompte = $params['idCompte'];
|
|
$out = sprintf('
|
|
<fieldset class="versements">
|
|
<div><p>Compte N° %1$s : %2$s</p></div>',
|
|
$_SESSION['comptes'][$idCompte]->codeCompte,
|
|
$_SESSION['comptes'][$idCompte]->nomCompte);
|
|
return $out;
|
|
});
|
|
|
|
// afficher un versement
|
|
$tpl->register_function('afficher_versement', function ($params)
|
|
{
|
|
$versement = $params['versement'];
|
|
$idVersement = $params['idVersement'];
|
|
$rang = $params['rang'];
|
|
$pair = $params['pair'];
|
|
|
|
$out = '<div class="';
|
|
$out .= $pair ? 'pair">' : 'impair">';
|
|
$out .= sprintf('
|
|
<input type="checkbox"
|
|
class="check_%1$s"
|
|
id="check_%1$s_%2$s"
|
|
name="selected[]"
|
|
value="%2$s"
|
|
onclick="cocherDecocherVersement(check_%1$s_%2$s, total_%1$s)" />
|
|
<label for="check_%1$s_%2$s"><span class="montant">%3$s</span>
|
|
<span>%4$s</span>
|
|
</label>
|
|
</div>',
|
|
$idVersement,
|
|
$rang,
|
|
number_format(
|
|
$versement->versement/100,
|
|
2,
|
|
",",
|
|
" "
|
|
),
|
|
date_format(date_create($versement->date),"d/m/Y")
|
|
);
|
|
return $out;
|
|
});
|
|
|
|
$tpl->register_function('fin_compte', function ()
|
|
{
|
|
$out = '
|
|
</fieldset>';
|
|
return $out;
|
|
});
|
|
|
|
$tpl->register_function('fin_personne', function ()
|
|
{
|
|
$out = '
|
|
</div>
|
|
</details>';
|
|
return $out;
|
|
});
|
|
|
|
$tpl->register_function('fin_tarif', function ($params)
|
|
{
|
|
$out = '
|
|
</details>';
|
|
return $out;
|
|
});
|
|
|
|
// ------------------------------------------------------------------------
|
|
// aiguillage
|
|
// ------------------------------------------------------------------------
|
|
|
|
if ($_GET['action'] == 'personne') {
|
|
require('versements_personnes.php');
|
|
} else if ($_GET['action'] == 'compte') {
|
|
require('versements_personnes.php');
|
|
} else if ($_GET['action'] == 'activite') {
|
|
require('versements_activites.php');
|
|
}
|