Début restructuration pour compatibilité version 1.3 de paheko

FossilOrigin-Name: 467790c5738a867592117ea6b3a7ac6c61738dab3b8e29a48fed8f19b9df2b38
This commit is contained in:
engel 2023-09-28 09:08:46 +00:00
parent e75c56b736
commit bc4739877c
27 changed files with 77 additions and 46 deletions

View File

@ -1,10 +1,10 @@
# Plugin reçus fiscaux pour Garradin/Paheko # Plugin reçus fiscaux pour Paheko
Plugin de reçus fiscaux pour le logiciel de gestion d'association [Garradin/Paheko](https://paheko.cloud). Plugin de reçus fiscaux pour le logiciel de gestion d'association [Paheko](https://paheko.cloud).
## Installation ## Installation
**Attention :** les archives disponibles sur ce gitlab n'ont pas un format compatible avec Garradin/Paheko et ne peuvent donc être utilisées telles quelles ; il faut soit les transformer pour les rendre compatibles, soit télécharger [cette archive](https://ncloud6.zaclys.com/index.php/s/RZQK2So8HemkH3w), et la copier dans le dossier plugins de Garradin/Paheko. **Attention :** les archives disponibles sur ce gitlab n'ont pas un format compatible avec Paheko et ne peuvent donc être utilisées telles quelles ; il faut soit les transformer pour les rendre compatibles, soit télécharger [cette archive](https://ncloud6.zaclys.com/index.php/s/RZQK2So8HemkH3w), et la copier dans le dossier plugins de Paheko.
## Fonctionnalités ## Fonctionnalités
- Créer des reçus fiscaux pour les dons des membres - Créer des reçus fiscaux pour les dons des membres

View File

@ -97,6 +97,9 @@ function genererRecusPDF($totalPersonnes,
$libelles_taux $libelles_taux
) )
{ {
// <TEST>
$fichierHTML = sprintf('%s/print-%s.html', CACHE_ROOT, md5(random_bytes(16)));
// </TEST>
$listeFichiersPDF = array(); $listeFichiersPDF = array();
$fmt = new \NumberFormatter('fr_FR', \NumberFormatter::SPELLOUT); $fmt = new \NumberFormatter('fr_FR', \NumberFormatter::SPELLOUT);
$prefixeNum = getNumPrefixe($configNum); $prefixeNum = getNumPrefixe($configNum);
@ -163,21 +166,43 @@ function genererRecusPDF($totalPersonnes,
} }
); );
// <TEST>
// récupérer les reçus au format html
$recuHTML = $tpl->fetch();
// enregistrer dans le fichier
file_put_contents($fichierHTML, $recuHTML, FILE_APPEND);
// </TEST>
// fabriquer le fichier PDF // fabriquer le fichier PDF
genererPDF($tpl->fetch(), $personne->nomPrenom, $listeFichiersPDF); genererPDF($tpl->fetch(), $personne->nomPrenom, $listeFichiersPDF);
} }
// faire une archive zip // afficher dans un dialog
$fichierZip = Utils::makeArchive( //marche pas
$listeFichiersPDF, // printf('
$_SESSION['annee_recu'], // <dialog id="dialog" open="" style="" class="loaded">
PLUGIN_ROOT . "/zip" // <button class="icn-btn closeBtn" data-icon="✘" type="button">Fermer
); // </button>
// <iframe src="%s" name="dialog" id="frameDialog" scrolling="yes" data-height="%s" style="height: %s;" width="0" height="0">
// </iframe>
// </dialog>
// ', $fichierHTML, "90%", "90%");
//supprimer les fichiers pdf (utile ?) // affiche une page vide
foreach ($listeFichiersPDF as $f) { // $link = "<script>window.open('$fichierHTML', '_blank')</script>";
// Utils::safe_unlink($f); // echo $link;
}
// faire une archive zip
// $fichierZip = Utils::makeArchive(
// $listeFichiersPDF,
// $_SESSION['annee_recu'],
// PLUGIN_ROOT . "/zip"
// );
//supprimer les fichiers pdf
// foreach ($listeFichiersPDF as $f) {
// \Garradin\Utils::safe_unlink($f);
// }
} // genererRecusPDF } // genererRecusPDF
function generererRecusHTML($tpl, function generererRecusHTML($tpl,
@ -298,6 +323,7 @@ function cumulerVersementsTarif($versements)
$dateMax = -1; $dateMax = -1;
$totalVersements = 0; $totalVersements = 0;
foreach ($versements as $ligne) { foreach ($versements as $ligne) {
error_log("\nligne=" . print_r($ligne, true));
if ( if (
$ligne->idTarif != $idTarifCourant || $ligne->idTarif != $idTarifCourant ||
$ligne->idUser != $idPersonneCourant || $ligne->idUser != $idPersonneCourant ||

View File

@ -25,10 +25,11 @@ if (null !== f('tarifs')) {
} else if (! isset($_SESSION['tauxSelectionnes'])) { } else if (! isset($_SESSION['tauxSelectionnes'])) {
$tarifsSelectionnes = []; $tarifsSelectionnes = [];
} }
error_log("\ntarifsSelectionnes=" . print_r($tarifsSelectionnes, true));
// comptes sélectionnés // comptes sélectionnés
if (null !== f('comptes')) { if (null !== f('comptes')) {
$_SESSION['comptesSelectionnes'] = f('comptes'); $_SESSION['comptesSelectionnes'] = f('comptes');
error_log("\ncomptesSelectionnes=" . print_r($_SESSION['comptesSelectionnes'], true));
} /* } /*
else if (! isset($_SESSION['tauxSelectionnes'])) { else if (! isset($_SESSION['tauxSelectionnes'])) {
$_SESSION['comptesSelectionnes'] = []; $_SESSION['comptesSelectionnes'] = [];
@ -71,6 +72,7 @@ if (count($lesTarifs) != 0)
$lesTarifs, $lesTarifs,
$lesComptes, $lesComptes,
$champsNom); $champsNom);
error_log("lesVersements=" . print_r($_SESSION['lesVersements'], true));
} }
// ajouter les versements sans tarif (tri par nom, compte, date) // ajouter les versements sans tarif (tri par nom, compte, date)
@ -84,6 +86,8 @@ if (isset($_SESSION['comptesSelectionnes']))
$_SESSION['lesVersements'][] = $versement; $_SESSION['lesVersements'][] = $versement;
} }
} }
error_log("lesVersements=" . print_r($_SESSION['lesVersements'], true));
// préparation de l'affichage // préparation de l'affichage
$tpl->assign('lesVersements', $_SESSION['lesVersements']); $tpl->assign('lesVersements', $_SESSION['lesVersements']);
$tpl->assign('annee_recu', $_SESSION['annee_recu']); $tpl->assign('annee_recu', $_SESSION['annee_recu']);

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
use Garradin\Entities\Files\File; use Paheko\Entities\Files\File;
// « signature » par défaut à remplacer (voir l'onglet de configuration) // « signature » par défaut à remplacer (voir l'onglet de configuration)
$path = __DIR__ . '/data/default_signature.png'; $path = __DIR__ . '/data/default_signature.png';

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin\Plugin\RecusFiscaux; namespace Paheko\Plugin\RecusFiscaux;
/** /**
* rassembler les infos d'une personne * rassembler les infos d'une personne

View File

@ -1,8 +1,8 @@
<?php <?php
namespace Garradin\Plugin\RecusFiscaux; namespace Paheko\Plugin\RecusFiscaux;
use Garradin\DB; use Paheko\DB;
use KD2\ZipWriter; use KD2\ZipWriter;
class Utils class Utils
@ -229,6 +229,7 @@ class Utils
$condition, $condition,
$tri $tri
); );
error_log("\ngetVersementsTarifsComptes : sql=" . $sql);
return $db->get($sql); return $db->get($sql);
} }
@ -417,7 +418,7 @@ class Utils
/** /**
* récupérer dans la config du plugin les champs des membres * récupérer dans la config du plugin les champs des membres
* utilisés pour le nom et le prénom ; ajouter/supprimer les * utilisés pour le nom et le prénom ; ajouter/supprimer les
* modifications par rapport à la config garradin * modifications par rapport à la config paheko
* @return array tableau des champs : clé = nom, valeur = { titre, position } * @return array tableau des champs : clé = nom, valeur = { titre, position }
*/ */
public static function getChampsNom($config, $plugin) : array public static function getChampsNom($config, $plugin) : array
@ -426,11 +427,11 @@ class Utils
// pour le nom et le prénom (le tableau est vide si pas mémorisé) // pour le nom et le prénom (le tableau est vide si pas mémorisé)
$champsNom = (array) $plugin->getConfig('champsNom'); $champsNom = (array) $plugin->getConfig('champsNom');
// récupérer dans la config Garradin les champs des membres // récupérer dans la config Paheko les champs des membres
// utilisés pour le nom et le préno // utilisés pour le nom et le préno
$champsGarradin = $config->get('champs_membres')->listAssocNames(); $champsPaheko = $config->get('champs_membres')->listAssocNames();
foreach ($champsGarradin as $name => $title) foreach ($champsPaheko as $name => $title)
{ {
if (stristr($title, 'nom')) if (stristr($title, 'nom'))
{ {
@ -447,10 +448,10 @@ class Utils
} }
} }
// opération symétrique : un champ mémorisé dans la config du // opération symétrique : un champ mémorisé dans la config du
// plugin a-t-il disparu de la config garradin ? // plugin a-t-il disparu de la config paheko ?
foreach ($champsNom as $nom => $champ) foreach ($champsNom as $nom => $champ)
{ {
if (! array_key_exists($nom, $champsGarradin)) if (! array_key_exists($nom, $champsPaheko))
{ {
// absent => le supprimer // absent => le supprimer
unset($champsNom[$nom]); unset($champsNom[$nom]);

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin\Plugin\RecusFiscaux; namespace Paheko\Plugin\RecusFiscaux;
class Versement class Versement
{ {

View File

@ -1,8 +1,8 @@
nom="Reçus fiscaux" name="Reçus fiscaux"
description="Génération de reçus fiscaux pour les dons des membres" description="Génération de reçus fiscaux pour les dons des membres"
auteur="jce" author="Jean-Christophe Engel"
url="https://ncloud6.zaclys.com/index.php/s/RZQK2So8HemkH3w" url="https://ncloud6.zaclys.com/index.php/s/RZQK2So8HemkH3w"
version="0.9" version="0.10"
menu=1 menu=1
config=1 config=1
min_version="1.1.23" min_version="1.3"

View File

@ -1,5 +1,5 @@
<!-- title --> <!-- title -->
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id} {include file="_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
<!-- nav bar --> <!-- nav bar -->
<nav class="tabs"> <nav class="tabs">

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Changer d'année fiscale"} {include file="_head.tpl" title="Changer d'année fiscale"}
<form method="post" action="{$self_url}" data-focus="1"> <form method="post" action="{$self_url}" data-focus="1">
<fieldset> <fieldset>
@ -17,4 +17,4 @@
</p> </p>
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -212,4 +212,4 @@
{/literal} {/literal}
<!-- footer --> <!-- footer -->
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -140,4 +140,4 @@ document.addEventListener('DOMContentLoaded',
{/literal} {/literal}
<!-- footer --> <!-- footer -->
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Envoi de fichier"} {include file="_head.tpl" title="Envoi de fichier"}
{form_errors} {form_errors}
@ -15,4 +15,4 @@
</fieldset> </fieldset>
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -86,4 +86,4 @@
<script src="script.js"></script> <script src="script.js"></script>
<!-- footer --> <!-- footer -->
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -67,4 +67,4 @@
<script src="script.js"></script> <script src="script.js"></script>
<!-- footer --> <!-- footer -->
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,11 +1,11 @@
<?php <?php
namespace Garradin; namespace Paheko;
use Garradin\Entities\Files\File; use Paheko\Entities\Files\File;
// supprimer les fichiers créés // supprimer les fichiers créés
// signature par défaut // signature par défaut
$default_signature_file = \Garradin\Files\Files::get('skel/plugin/recusfiscaux/default_signature.png'); $default_signature_file = \Paheko\Files\Files::get('skel/plugin/recusfiscaux/default_signature.png');
if (null !== $default_signature_file) { if (null !== $default_signature_file) {
$default_signature_file->delete(); $default_signature_file->delete();
} }
@ -13,7 +13,7 @@ if (null !== $default_signature_file) {
// signature réelle // signature réelle
$signature = $plugin->getConfig('signature'); $signature = $plugin->getConfig('signature');
if (null !== $signature) { if (null !== $signature) {
$sig_file = \Garradin\Files\Files::get($signature); $sig_file = \Paheko\Files\Files::get($signature);
if (null !== $sig_file) { if (null !== $sig_file) {
$sig_file->delete(); $sig_file->delete();
} }

View File

@ -1,8 +1,8 @@
<?php <?php
namespace Garradin; namespace Paheko;
use Garradin\Entities\Files\File; use Paheko\Entities\Files\File;
$old_version = $plugin->getInfos('version'); $old_version = $plugin->getInfos('version');