ajout fonctionnalités choix versements
FossilOrigin-Name: 62fb6243e8d4dfb25f2b856342249e827a261366be106680411204b5b58977f2
This commit is contained in:
parent
9bbd9de84f
commit
7b426d3e32
@ -96,13 +96,12 @@ class Utils
|
|||||||
services_fees.amount as montant,
|
services_fees.amount as montant,
|
||||||
acc_transactions_users.id_user as idUser,
|
acc_transactions_users.id_user as idUser,
|
||||||
acc_transactions_lines.credit as versement,
|
acc_transactions_lines.credit as versement,
|
||||||
membres.id as idMembre,
|
|
||||||
membres.nom as nom,
|
membres.nom as nom,
|
||||||
membres.adresse as adresse,
|
membres.adresse as adresse,
|
||||||
membres.ville as ville,
|
membres.ville as ville,
|
||||||
membres.code_postal as codePostal,
|
membres.code_postal as codePostal,
|
||||||
membres.email as courriel,
|
membres.email as courriel,
|
||||||
acc_transactions.date as Date,
|
acc_transactions.date,
|
||||||
acc_transactions_users.id_transaction as idTrans
|
acc_transactions_users.id_transaction as idTrans
|
||||||
FROM acc_transactions_users
|
FROM acc_transactions_users
|
||||||
INNER JOIN membres on acc_transactions_users.id_user = membres.id
|
INNER JOIN membres on acc_transactions_users.id_user = membres.id
|
||||||
@ -125,10 +124,11 @@ class Utils
|
|||||||
* @param $activite
|
* @param $activite
|
||||||
* @param $tarif
|
* @param $tarif
|
||||||
*/
|
*/
|
||||||
public static function getVersementsActivite($annee, $activite, $tarif)
|
public static function getVersementsActivite($annee, $lesTarifs)
|
||||||
{
|
{
|
||||||
$sql =
|
$db = DB::getInstance();
|
||||||
"SELECT
|
$sql = sprintf(
|
||||||
|
'SELECT
|
||||||
services.id as idActivite,
|
services.id as idActivite,
|
||||||
services_fees.id as idTarif,
|
services_fees.id as idTarif,
|
||||||
services.label as activite,
|
services.label as activite,
|
||||||
@ -137,7 +137,11 @@ class Utils
|
|||||||
acc_transactions_users.id_user as idUser,
|
acc_transactions_users.id_user as idUser,
|
||||||
acc_transactions_lines.credit as versement,
|
acc_transactions_lines.credit as versement,
|
||||||
membres.nom as nom,
|
membres.nom as nom,
|
||||||
acc_transactions.date as Date,
|
membres.adresse as adresse,
|
||||||
|
membres.ville as ville,
|
||||||
|
membres.code_postal as codePostal,
|
||||||
|
membres.email as courriel,
|
||||||
|
acc_transactions.date,
|
||||||
acc_transactions_users.id_transaction as idTrans
|
acc_transactions_users.id_transaction as idTrans
|
||||||
FROM acc_transactions_users
|
FROM acc_transactions_users
|
||||||
INNER JOIN membres on acc_transactions_users.id_user = membres.id
|
INNER JOIN membres on acc_transactions_users.id_user = membres.id
|
||||||
@ -147,15 +151,16 @@ class Utils
|
|||||||
INNER JOIN services_fees on services_users.id_fee = services_fees.id
|
INNER JOIN services_fees on services_users.id_fee = services_fees.id
|
||||||
INNER JOIN acc_transactions_lines on acc_transactions_lines.id_transaction = acc_transactions.id
|
INNER JOIN acc_transactions_lines on acc_transactions_lines.id_transaction = acc_transactions.id
|
||||||
WHERE
|
WHERE
|
||||||
(strftime(\"%Y\", acc_transactions.date) = ?
|
(strftime(%s, acc_transactions.date) = "%d"
|
||||||
AND
|
AND
|
||||||
services.id = ?
|
services_fees.%s
|
||||||
AND
|
|
||||||
services_fees.id = ?
|
|
||||||
AND
|
AND
|
||||||
acc_transactions_lines.credit > 0)
|
acc_transactions_lines.credit > 0)
|
||||||
ORDER by membres.nom, acc_transactions.date";
|
ORDER by membres.nom, acc_transactions.date',
|
||||||
return DB::getInstance()->get($sql, $annee, $activite, $tarif);
|
'"%Y"',
|
||||||
|
$annee,
|
||||||
|
$db->where('id', $lesTarifs));
|
||||||
|
return $db->get($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -230,9 +235,13 @@ class Utils
|
|||||||
return $anneesFiscales;
|
return $anneesFiscales;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
/** TODO
|
||||||
// zip archive creation
|
* générer les reçus
|
||||||
// ------------------------------------------------------------------------
|
* @param tableau des versements par personne
|
||||||
|
*/
|
||||||
|
static function genererRecus() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enregistrer les fichiers dans une archive zip
|
* enregistrer les fichiers dans une archive zip
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
<nav class="tabs">
|
<nav class="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
<li{if $current_nav == 'index'} class="current"{/if}><a href="{plugin_url}">Activités et tarifs</a></li>
|
<li{if $current_nav == 'index'} class="current"{/if}><a href="{plugin_url}">Activités et tarifs</a></li>
|
||||||
<li{if $current_nav == 'personne'} class="current"{/if}><a href="{plugin_url file="personne.php"}">Versements totaux par personne</a></li>
|
<li{if $current_nav == 'personne'} class="current"{/if}><a href="{plugin_url file="versements_personnes.php"}">Versements totaux par personne</a></li>
|
||||||
<li{if $current_nav == 'versements'} class="current"{/if}><a href="{plugin_url file="versements.php"}">Tous les versements</a></li>
|
<li{if $current_nav == 'versements'} class="current"{/if}><a href="{plugin_url file="versements_activites.php"}">Tous les versements</a></li>
|
||||||
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
|
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
|
||||||
<li{if $current_nav == 'config'} class="current"{/if}><a href="{plugin_url file="config.php"}">Configuration</a></li>
|
<li{if $current_nav == 'config'} class="current"{/if}><a href="{plugin_url file="config.php"}">Configuration</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{include file="%s/templates/_nav.tpl"|args:$plugin_root current_nav="index"}
|
{include file="%s/templates/_nav.tpl"|args:$plugin_root current_nav="index"}
|
||||||
|
|
||||||
<h2>Choisir l'année fiscale</h2>
|
<h2>Choisir l'année fiscale</h2>
|
||||||
<form>
|
<form id="formulaire_saisie" method="post" action="action.php">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{* <legend>Choisir l'année fiscale</legend> *}
|
{* <legend>Choisir l'année fiscale</legend> *}
|
||||||
<select id="annee_recu" name="annee_recu">
|
<select id="annee_recu" name="annee_recu">
|
||||||
@ -34,8 +34,7 @@
|
|||||||
|
|
||||||
<dd class="radio-btn">
|
<dd class="radio-btn">
|
||||||
<input type="radio" id="radio_versements_activites" name="choix_versements"
|
<input type="radio" id="radio_versements_activites" name="choix_versements"
|
||||||
value="versements_activites"
|
value="versements_activites" onclick="afficherMasquer(this.form, '.activites', '.tous');" />
|
||||||
onclick="afficherMasquer(this.form, '.activites', '.tous');" />
|
|
||||||
<label for="radio_versements_activites">
|
<label for="radio_versements_activites">
|
||||||
<div>
|
<div>
|
||||||
<h5>
|
<h5>
|
||||||
@ -51,12 +50,12 @@
|
|||||||
<div id="generer_tous" class="tous hidden">
|
<div id="generer_tous" class="tous hidden">
|
||||||
<p class=" submit">
|
<p class=" submit">
|
||||||
{csrf_field key="generer_tous_recus"}
|
{csrf_field key="generer_tous_recus"}
|
||||||
{button type="submit" name="generer_tous" label="Générer" shape="right" class="main"}
|
{button type="submit" name="generer_tous" label="Poursuivre" shape="right" class="main"}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="liste_activites_tarifs" class="activites hidden">
|
<div id="liste_activites_tarifs" class="activites hidden">
|
||||||
<h2>Choisir les activités et tarifs concernés par les reçus ainsi que le taux de réduction</h2>
|
<h2>Choisir les activités et tarifs concernés par les reçus ainsi que le taux de réduction</h2>
|
||||||
<table class="list">
|
<table class="List">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Cocher</th>
|
<th>Cocher</th>
|
||||||
@ -78,12 +77,12 @@
|
|||||||
<td>
|
<td>
|
||||||
<span class="radio-btn">
|
<span class="radio-btn">
|
||||||
<input type="radio" id="taux_normal_{$activite.idTarif}"
|
<input type="radio" id="taux_normal_{$activite.idTarif}"
|
||||||
name="taux_reduction_{$activite.idTarif}" value="taux_normal" />
|
name="taux_reduction_{$activite.idTarif}" value="taux_normal" disabled />
|
||||||
<label for="taux_normal_{$activite.idTarif}">normal</label>
|
<label for="taux_normal_{$activite.idTarif}">normal</label>
|
||||||
</span>
|
</span>
|
||||||
<span class=" radio-btn">
|
<span class=" radio-btn">
|
||||||
<input type="radio" id="taux_majore_{$activite.idTarif}"
|
<input type="radio" id="taux_majore_{$activite.idTarif}"
|
||||||
name="taux_reduction_{$activite.idTarif}" value="taux_majore" />
|
name="taux_reduction_{$activite.idTarif}" value="taux_majore" disabled />
|
||||||
<label for="taux_majore_{$activite.idTarif}">majoré</label>
|
<label for="taux_majore_{$activite.idTarif}">majoré</label>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
@ -99,17 +98,31 @@
|
|||||||
<div id="generer_activites" class="activites hidden">
|
<div id="generer_activites" class="activites hidden">
|
||||||
<p class=" submit">
|
<p class=" submit">
|
||||||
{csrf_field key="generer_recus_activites"}
|
{csrf_field key="generer_recus_activites"}
|
||||||
{button type="submit" name="generer_activites" label="Générer" shape="right" class="main"}
|
{button type="submit" name="generer_activites" label="Poursuivre" shape="right" class="main"}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<script defer type="text/javascript" src="script.js"></script>
|
|
||||||
|
<script type="text/javascript" src="script.js" defer="defer"></script>
|
||||||
{literal}
|
{literal}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// function afficherMasquer(formulaire, class1, visible1, class2, visible2) {
|
// activer/désactiver les radios
|
||||||
// afficher(formulaire, elem1, visible1);
|
for (var laCase of document.querySelectorAll("input[type=checkbox]")) {
|
||||||
// afficher(formulaire, elem2, visible2);
|
laCase.addEventListener('change', (evt) => {
|
||||||
// }
|
var idCase = evt.target;
|
||||||
|
// chercher la ligne englobante (<tr>)
|
||||||
|
var ligne = idCase.closest("tr");
|
||||||
|
// itérer sur les radio de cette ligne
|
||||||
|
var lesRadios = ligne.querySelectorAll('input[type=radio]');
|
||||||
|
for (var idRadio of lesRadios) {
|
||||||
|
if (idCase.checked) {
|
||||||
|
idRadio.disabled = '';
|
||||||
|
} else {
|
||||||
|
idRadio.disabled = 'disabled';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
{/literal}
|
{/literal}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<button type="button" data-icon="↑" class="icn-btn" id="close_details">Replier toutes les activités</button>
|
<button type="button" data-icon="↑" class="icn-btn" id="close_details">Replier toutes les activités</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form method="post" action="action.php" class="memberList">
|
<form method="post" action="generer_activites.php">
|
||||||
|
|
||||||
<fieldset class="versements" id="versements_global">
|
<fieldset class="versements" id="versements_global">
|
||||||
<input type="checkbox" class="check_global" id="check_global" onclick="cocherDecocherTout(check_global)" />
|
<input type="checkbox" class="check_global" id="check_global" onclick="cocherDecocherTout(check_global)" />
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
<h2>Liste des versements totaux par personne</h2>
|
<h2>Liste des versements totaux par personne</h2>
|
||||||
|
|
||||||
<form method="post" action="" class="memberList">
|
<form method="post" action="generer_personnes.php">
|
||||||
|
|
||||||
{* Itération sur les perssonnes *}
|
{* Itération sur les personnes *}
|
||||||
<table class="list">
|
<table class="list">
|
||||||
<thead class="userOrder">
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="check">
|
<th class="check">
|
||||||
<input type="checkbox" title="Tout cocher / décocher" id="f_all" />
|
<input type="checkbox" title="Tout cocher / décocher" id="f_all" />
|
||||||
@ -22,13 +22,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{foreach from=$lesVersementsTotaux item="versement"}
|
{foreach from=$lesVersementsTotaux key=rang item="versement"}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="check">
|
<td class="check">
|
||||||
{input
|
{input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
name="selected[]"
|
name="selected[]"
|
||||||
value=$versement.idUser}
|
value=$rang}
|
||||||
</td>
|
</td>
|
||||||
<td>{$versement.idUser}</td>
|
<td>{$versement.idUser}</td>
|
||||||
<td>{$versement.nom}</td>
|
<td>{$versement.nom}</td>
|
@ -2,136 +2,8 @@
|
|||||||
|
|
||||||
namespace Garradin;
|
namespace Garradin;
|
||||||
|
|
||||||
use Garradin\Plugin\RecusFiscaux\RecusPDF;
|
if ($_POST['choix_versements'] == 'tous_versements') {
|
||||||
use Garradin\Plugin\RecusFiscaux\Utils;
|
require('versements_personnes.php');
|
||||||
use Garradin\Plugin\RecusFiscaux\Personne;
|
} else {
|
||||||
|
require('versements_activites.php');
|
||||||
// récupérer les cases sélectionnées
|
|
||||||
$list = f('selected');
|
|
||||||
|
|
||||||
// filtrer les versements sélectionnés
|
|
||||||
$versementsSelectionnes = array();
|
|
||||||
foreach ($list as $indice => $ligne) {
|
|
||||||
$versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne];
|
|
||||||
}
|
|
||||||
|
|
||||||
// cumuler les versements d'une personne
|
|
||||||
$totalPersonnes = cumulerVersements($versementsSelectionnes);
|
|
||||||
|
|
||||||
// générer les reçus
|
|
||||||
$nomAsso = Utils::getNomAsso();
|
|
||||||
$adresseAsso = Utils::getAdresseAsso();
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
// - mémoriser numéro reçu pour pouvoir générer des reçus en plusieurs sessions indépendantes
|
|
||||||
// - paramétrer l'année fiscale
|
|
||||||
$annee_recu = "2021";
|
|
||||||
|
|
||||||
// récupérer le logo CERFA (bôf) et la signature
|
|
||||||
// TODO : paramétrer le répertoire des images
|
|
||||||
$logoCERFA = PLUGIN_ROOT . "/data/logoCerfa.png";
|
|
||||||
$signature = PLUGIN_ROOT . "/data/default_signature.png";
|
|
||||||
$listeFichiers = [];
|
|
||||||
|
|
||||||
foreach ($totalPersonnes as $idPersonne => $personne) {
|
|
||||||
// générer un fichier par reçu
|
|
||||||
$pdf = new RecusPDF(
|
|
||||||
'DejaVu',
|
|
||||||
'SerifCondensed',
|
|
||||||
$nomAsso,
|
|
||||||
$adresseAsso,
|
|
||||||
$logoCERFA,
|
|
||||||
$signature
|
|
||||||
);
|
|
||||||
// extraire les montants des versements
|
|
||||||
$lesMontants = array();
|
|
||||||
foreach ($personne->versements as $versement) {
|
|
||||||
$lesMontants[] = $versement->montant;
|
|
||||||
}
|
|
||||||
$pdf->imprimer_recu(
|
|
||||||
$annee_recu,
|
|
||||||
$personne->id,
|
|
||||||
$personne->nomPrenom,
|
|
||||||
$lesMontants,
|
|
||||||
$personne->adresse,
|
|
||||||
$personne->ville,
|
|
||||||
$personne->codePostal
|
|
||||||
);
|
|
||||||
// fabriquer le nom du fichier PDF
|
|
||||||
$nom = str_replace(' ', '_', $personne->nomPrenom);
|
|
||||||
$nom = str_replace("'", "", $nom);
|
|
||||||
// $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf';
|
|
||||||
$nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $annee_recu . '_' . $nom . '.pdf';
|
|
||||||
|
|
||||||
$pdf->Output('F', $nomFichier);
|
|
||||||
// ajouter le nom du fichier à la liste pour mettre dans une archive
|
|
||||||
$listeFichiers[] = $nomFichier;
|
|
||||||
}
|
|
||||||
|
|
||||||
// faire une archive zip
|
|
||||||
$fichierZip = Utils::makeArchive(
|
|
||||||
$listeFichiers,
|
|
||||||
$annee_recu,
|
|
||||||
PLUGIN_ROOT . "/zip"
|
|
||||||
);
|
|
||||||
// la copier dans le cache ?
|
|
||||||
|
|
||||||
// afficher la page de téléchargement => n'est plus utile
|
|
||||||
// le téléchargement démarre dès la fin de la création du fichier zip
|
|
||||||
//$_SESSION['zipfile'] = $fichierZip;
|
|
||||||
//$tpl->display(PLUGIN_ROOT . '/templates/telechargement.tpl');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cumuler les versements de chaque personne par tarif et activité
|
|
||||||
* @param tableau des versements
|
|
||||||
* @return tableau des versements cumulés
|
|
||||||
*/
|
|
||||||
function cumulerVersements($versements)
|
|
||||||
{
|
|
||||||
$totalPersonnes = array();
|
|
||||||
$idActivite_courant = -1;
|
|
||||||
$idTarif_courant = -1;
|
|
||||||
$idPersonne_courant = -1;
|
|
||||||
$totalVersements = 0;
|
|
||||||
foreach ($versements as $ligne) {
|
|
||||||
if (
|
|
||||||
$ligne->idActivite != $idActivite_courant ||
|
|
||||||
$ligne->idTarif != $idTarif_courant ||
|
|
||||||
$ligne->idUser != $idPersonne_courant
|
|
||||||
) {
|
|
||||||
if ($idActivite_courant != -1) {
|
|
||||||
$totalPersonnes["$idPersonne_courant"]->ajouterVersement(
|
|
||||||
$idActivite_courant,
|
|
||||||
$idTarif_courant,
|
|
||||||
$totalVersements/100
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$idActivite_courant = $ligne->idActivite;
|
|
||||||
$idTarif_courant = $ligne->idTarif;
|
|
||||||
$idPersonne_courant = $ligne->idUser;
|
|
||||||
$totalVersements = $ligne->versement;
|
|
||||||
// créer les infos de la personne, sauf si elle est déjà présente
|
|
||||||
if (!array_key_exists($idPersonne_courant, $totalPersonnes)) {
|
|
||||||
$totalPersonnes["$idPersonne_courant"] = new Personne(
|
|
||||||
$ligne->idUser,
|
|
||||||
$ligne->nom,
|
|
||||||
$ligne->adresse,
|
|
||||||
$ligne->ville,
|
|
||||||
$ligne->codePostal,
|
|
||||||
$ligne->courriel
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// cumuler versements
|
|
||||||
$totalVersements += $ligne->versement;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// et le dernier
|
|
||||||
$totalPersonnes["$idPersonne_courant"]->ajouterVersement(
|
|
||||||
$idActivite_courant,
|
|
||||||
$idTarif_courant,
|
|
||||||
$totalVersements/100
|
|
||||||
);
|
|
||||||
|
|
||||||
return $totalPersonnes;
|
|
||||||
}
|
}
|
||||||
|
129
www/admin/generer_activites.php
Normal file
129
www/admin/generer_activites.php
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Garradin;
|
||||||
|
|
||||||
|
use Garradin\Plugin\RecusFiscaux\RecusPDF;
|
||||||
|
use Garradin\Plugin\RecusFiscaux\Utils;
|
||||||
|
use Garradin\Plugin\RecusFiscaux\Personne;
|
||||||
|
|
||||||
|
// récupérer les lignes sélectionnées
|
||||||
|
$lesLignes = f('selected');
|
||||||
|
|
||||||
|
// filtrer les versements sélectionnés
|
||||||
|
$versementsSelectionnes = array();
|
||||||
|
foreach ($lesLignes as $indice => $ligne) {
|
||||||
|
$versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne];
|
||||||
|
}
|
||||||
|
|
||||||
|
// cumuler les versements d'une personne
|
||||||
|
$totalPersonnes = cumulerVersements($versementsSelectionnes);
|
||||||
|
|
||||||
|
// générer les reçus
|
||||||
|
$nomAsso = Utils::getNomAsso();
|
||||||
|
$adresseAsso = Utils::getAdresseAsso();
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
// - mémoriser numéro reçu pour pouvoir générer des reçus en plusieurs sessions indépendantes
|
||||||
|
|
||||||
|
// récupérer le logo CERFA (bôf) et la signature
|
||||||
|
// TODO : paramétrer le répertoire des images
|
||||||
|
$logoCERFA = PLUGIN_ROOT . "/data/logoCerfa.png";
|
||||||
|
$signature = PLUGIN_ROOT . "/data/default_signature.png";
|
||||||
|
$listeFichiers = [];
|
||||||
|
|
||||||
|
foreach ($totalPersonnes as $idPersonne => $personne) {
|
||||||
|
// générer un fichier par reçu
|
||||||
|
$pdf = new RecusPDF(
|
||||||
|
'DejaVu',
|
||||||
|
'SerifCondensed',
|
||||||
|
$nomAsso,
|
||||||
|
$adresseAsso,
|
||||||
|
$logoCERFA,
|
||||||
|
$signature
|
||||||
|
);
|
||||||
|
// extraire les montants des versements
|
||||||
|
$lesMontants = array();
|
||||||
|
foreach ($personne->versements as $versement) {
|
||||||
|
$lesMontants[] = $versement->montant;
|
||||||
|
}
|
||||||
|
$pdf->imprimer_recu(
|
||||||
|
$_SESSION['annee_recu'],
|
||||||
|
$personne->id,
|
||||||
|
$personne->nomPrenom,
|
||||||
|
$lesMontants,
|
||||||
|
$personne->adresse,
|
||||||
|
$personne->ville,
|
||||||
|
$personne->codePostal
|
||||||
|
);
|
||||||
|
// fabriquer le nom du fichier PDF
|
||||||
|
$nom = str_replace(' ', '_', $personne->nomPrenom);
|
||||||
|
$nom = str_replace("'", "", $nom);
|
||||||
|
// $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf';
|
||||||
|
$nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $_SESSION['annee_recu'] . '_' . $nom . '.pdf';
|
||||||
|
|
||||||
|
$pdf->Output('F', $nomFichier);
|
||||||
|
// ajouter le nom du fichier à la liste pour mettre dans une archive
|
||||||
|
$listeFichiers[] = $nomFichier;
|
||||||
|
}
|
||||||
|
|
||||||
|
// faire une archive zip
|
||||||
|
$fichierZip = Utils::makeArchive(
|
||||||
|
$listeFichiers,
|
||||||
|
$_SESSION['annee_recu'],
|
||||||
|
PLUGIN_ROOT . "/zip"
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cumuler les versements de chaque personne par tarif et activité
|
||||||
|
* @param tableau des versements
|
||||||
|
* @return tableau des versements cumulés
|
||||||
|
*/
|
||||||
|
function cumulerVersements($versements)
|
||||||
|
{
|
||||||
|
$totalPersonnes = array();
|
||||||
|
$idActivite_courant = -1;
|
||||||
|
$idTarif_courant = -1;
|
||||||
|
$idPersonne_courant = -1;
|
||||||
|
$totalVersements = 0;
|
||||||
|
foreach ($versements as $ligne) {
|
||||||
|
if (
|
||||||
|
$ligne->idActivite != $idActivite_courant ||
|
||||||
|
$ligne->idTarif != $idTarif_courant ||
|
||||||
|
$ligne->idUser != $idPersonne_courant
|
||||||
|
) {
|
||||||
|
if ($idActivite_courant != -1) {
|
||||||
|
$totalPersonnes["$idPersonne_courant"]->ajouterVersement(
|
||||||
|
$idActivite_courant,
|
||||||
|
$idTarif_courant,
|
||||||
|
$totalVersements/100
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$idActivite_courant = $ligne->idActivite;
|
||||||
|
$idTarif_courant = $ligne->idTarif;
|
||||||
|
$idPersonne_courant = $ligne->idUser;
|
||||||
|
$totalVersements = $ligne->versement;
|
||||||
|
// créer les infos de la personne, sauf si elle est déjà présente
|
||||||
|
if (!array_key_exists($idPersonne_courant, $totalPersonnes)) {
|
||||||
|
$totalPersonnes["$idPersonne_courant"] = new Personne(
|
||||||
|
$ligne->idUser,
|
||||||
|
$ligne->nom,
|
||||||
|
$ligne->adresse,
|
||||||
|
$ligne->ville,
|
||||||
|
$ligne->codePostal,
|
||||||
|
$ligne->courriel
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// cumuler versements
|
||||||
|
$totalVersements += $ligne->versement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// et le dernier
|
||||||
|
$totalPersonnes["$idPersonne_courant"]->ajouterVersement(
|
||||||
|
$idActivite_courant,
|
||||||
|
$idTarif_courant,
|
||||||
|
$totalVersements/100
|
||||||
|
);
|
||||||
|
|
||||||
|
return $totalPersonnes;
|
||||||
|
}
|
@ -14,6 +14,9 @@ if ($anneesFiscales[0] < $anneeCourante) {
|
|||||||
// liste des activités, cotisations et comptes associés
|
// liste des activités, cotisations et comptes associés
|
||||||
$activitesTarifsComptes = Utils::getActivitesTarifsEtComptes();
|
$activitesTarifsComptes = Utils::getActivitesTarifsEtComptes();
|
||||||
|
|
||||||
|
// actions
|
||||||
|
//lesActions = [ 'versements_personnes.php', 'versements_activites.php' ];
|
||||||
|
|
||||||
// préparation de l'affichage
|
// préparation de l'affichage
|
||||||
$tpl->assign('anneesFiscales', $anneesFiscales);
|
$tpl->assign('anneesFiscales', $anneesFiscales);
|
||||||
$tpl->assign('anneeCourante', $anneeCourante);
|
$tpl->assign('anneeCourante', $anneeCourante);
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Garradin;
|
|
||||||
|
|
||||||
use Garradin\Plugin\RecusFiscaux\Utils;
|
|
||||||
|
|
||||||
// liste du total des versements par personne
|
|
||||||
$_SESSION['lesVersementsTotaux'] = Utils::getVersementsTotaux("2021");
|
|
||||||
|
|
||||||
// préparation de l'affichage
|
|
||||||
$tpl->assign('lesVersementsTotaux', $_SESSION['lesVersementsTotaux']);
|
|
||||||
$tpl->assign('plugin_css', ['style.css']);
|
|
||||||
|
|
||||||
// envoyer au template
|
|
||||||
$tpl->display(PLUGIN_ROOT . '/templates/personne.tpl');
|
|
@ -127,6 +127,32 @@ function afficherMasquer(formulaire, nomClasse1, nomClasse2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inutilisé
|
||||||
|
function activerDesactiverRadio(evt) {
|
||||||
|
var idCase = evt.target;
|
||||||
|
// checher la ligne englobante ( <tr>)
|
||||||
|
var ligne = idCase.closest("tr");
|
||||||
|
// itérer sur les radio de cette ligne
|
||||||
|
var lesRadios = ligne.querySelectorAll('input[type=radio]');
|
||||||
|
for (var idRadio of lesRadios) {
|
||||||
|
if (idCase.checked) {
|
||||||
|
idRadio.disabled = '';
|
||||||
|
} else {
|
||||||
|
idRadio.disabled = 'disabled';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* indiquer le nom du script php à activer
|
||||||
|
* @param formulaire
|
||||||
|
* @param script php
|
||||||
|
*/
|
||||||
|
function activer(formulaire, script) {
|
||||||
|
formulaire.action = script;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Associer un écouteur à la première case à cocher de chaque table
|
* Associer un écouteur à la première case à cocher de chaque table
|
||||||
* @remarks : n'est plus utile
|
* @remarks : n'est plus utile
|
||||||
|
@ -4,8 +4,11 @@ namespace Garradin;
|
|||||||
|
|
||||||
use Garradin\Plugin\RecusFiscaux\Utils;
|
use Garradin\Plugin\RecusFiscaux\Utils;
|
||||||
|
|
||||||
// liste des versements pour activités
|
// récupérer les tarifs sélectionnés
|
||||||
$_SESSION['lesVersements'] = Utils::getTousLesVersements("2021");
|
$lesTarifs = f('tarifs');
|
||||||
|
$_SESSION['annee_recu'] = strip_tags($_POST['annee_recu']);
|
||||||
|
// liste des versements correspondants
|
||||||
|
$_SESSION['lesVersements'] = Utils::getVersementsActivite($_SESSION['annee_recu'], $lesTarifs);
|
||||||
|
|
||||||
// liste des activités
|
// liste des activités
|
||||||
$activites = Utils::getActivites();
|
$activites = Utils::getActivites();
|
||||||
@ -21,4 +24,4 @@ $tpl->assign('listeParActiviteEtTarif', $activites);
|
|||||||
$tpl->assign('plugin_css', ['style.css']);
|
$tpl->assign('plugin_css', ['style.css']);
|
||||||
|
|
||||||
// envoyer au template
|
// envoyer au template
|
||||||
$tpl->display(PLUGIN_ROOT . '/templates/versements.tpl');
|
$tpl->display(PLUGIN_ROOT . '/templates/versements_activites.tpl');
|
16
www/admin/versements_personnes.php
Normal file
16
www/admin/versements_personnes.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Garradin;
|
||||||
|
|
||||||
|
use Garradin\Plugin\RecusFiscaux\Utils;
|
||||||
|
|
||||||
|
// liste des versements totaux par personne
|
||||||
|
$_SESSION['annee_recu'] = strip_tags($_POST['annee_recu']);
|
||||||
|
$_SESSION['lesVersementsTotaux'] = Utils::getVersementsTotaux($_SESSION['annee_recu']);
|
||||||
|
|
||||||
|
// préparation de l'affichage
|
||||||
|
$tpl->assign('lesVersementsTotaux', $_SESSION['lesVersementsTotaux']);
|
||||||
|
$tpl->assign('plugin_css', ['style.css']);
|
||||||
|
|
||||||
|
// envoyer au template
|
||||||
|
$tpl->display(PLUGIN_ROOT . '/templates/versements_personnes.tpl');
|
Loading…
Reference in New Issue
Block a user