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
**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
- Créer des reçus fiscaux pour les dons des membres

View File

@ -97,6 +97,9 @@ function genererRecusPDF($totalPersonnes,
$libelles_taux
)
{
// <TEST>
$fichierHTML = sprintf('%s/print-%s.html', CACHE_ROOT, md5(random_bytes(16)));
// </TEST>
$listeFichiersPDF = array();
$fmt = new \NumberFormatter('fr_FR', \NumberFormatter::SPELLOUT);
$prefixeNum = getNumPrefixe($configNum);
@ -162,22 +165,44 @@ 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
genererPDF($tpl->fetch(), $personne->nomPrenom, $listeFichiersPDF);
}
// faire une archive zip
$fichierZip = Utils::makeArchive(
$listeFichiersPDF,
$_SESSION['annee_recu'],
PLUGIN_ROOT . "/zip"
);
// afficher dans un dialog
//marche pas
// printf('
// <dialog id="dialog" open="" style="" class="loaded">
// <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 ?)
foreach ($listeFichiersPDF as $f) {
// Utils::safe_unlink($f);
}
// affiche une page vide
// $link = "<script>window.open('$fichierHTML', '_blank')</script>";
// 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
function generererRecusHTML($tpl,
@ -298,6 +323,7 @@ function cumulerVersementsTarif($versements)
$dateMax = -1;
$totalVersements = 0;
foreach ($versements as $ligne) {
error_log("\nligne=" . print_r($ligne, true));
if (
$ligne->idTarif != $idTarifCourant ||
$ligne->idUser != $idPersonneCourant ||

View File

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

View File

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

View File

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

View File

@ -1,8 +1,8 @@
<?php
namespace Garradin\Plugin\RecusFiscaux;
namespace Paheko\Plugin\RecusFiscaux;
use Garradin\DB;
use Paheko\DB;
use KD2\ZipWriter;
class Utils
@ -229,6 +229,7 @@ class Utils
$condition,
$tri
);
error_log("\ngetVersementsTarifsComptes : sql=" . $sql);
return $db->get($sql);
}
@ -417,7 +418,7 @@ class Utils
/**
* récupérer dans la config du plugin les champs des membres
* 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 }
*/
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é)
$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
$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'))
{
@ -447,10 +448,10 @@ class Utils
}
}
// 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)
{
if (! array_key_exists($nom, $champsGarradin))
if (! array_key_exists($nom, $champsPaheko))
{
// absent => le supprimer
unset($champsNom[$nom]);

View File

@ -1,6 +1,6 @@
<?php
namespace Garradin\Plugin\RecusFiscaux;
namespace Paheko\Plugin\RecusFiscaux;
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"
auteur="jce"
author="Jean-Christophe Engel"
url="https://ncloud6.zaclys.com/index.php/s/RZQK2So8HemkH3w"
version="0.9"
version="0.10"
menu=1
config=1
min_version="1.1.23"
min_version="1.3"

View File

@ -1,5 +1,5 @@
<!-- 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 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">
<fieldset>
@ -17,4 +17,4 @@
</p>
</form>
{include file="admin/_foot.tpl"}
{include file="_foot.tpl"}

View File

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

View File

@ -140,4 +140,4 @@ document.addEventListener('DOMContentLoaded',
{/literal}
<!-- 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}
@ -15,4 +15,4 @@
</fieldset>
</form>
{include file="admin/_foot.tpl"}
{include file="_foot.tpl"}

View File

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

View File

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

View File

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

View File

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