Début restructuration pour compatibilité version 1.3 de paheko
FossilOrigin-Name: 467790c5738a867592117ea6b3a7ac6c61738dab3b8e29a48fed8f19b9df2b38
This commit is contained in:
parent
e75c56b736
commit
bc4739877c
|
@ -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
|
||||||
|
|
|
@ -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 ||
|
|
@ -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']);
|
|
@ -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';
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Garradin\Plugin\RecusFiscaux;
|
namespace Paheko\Plugin\RecusFiscaux;
|
||||||
|
|
||||||
class Versement
|
class Versement
|
||||||
{
|
{
|
||||||
|
|
|
@ -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"
|
|
@ -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">
|
||||||
|
|
|
@ -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"}
|
|
@ -212,4 +212,4 @@
|
||||||
{/literal}
|
{/literal}
|
||||||
|
|
||||||
<!-- footer -->
|
<!-- footer -->
|
||||||
{include file="admin/_foot.tpl"}
|
{include file="_foot.tpl"}
|
|
@ -140,4 +140,4 @@ document.addEventListener('DOMContentLoaded',
|
||||||
{/literal}
|
{/literal}
|
||||||
|
|
||||||
<!-- footer -->
|
<!-- footer -->
|
||||||
{include file="admin/_foot.tpl"}
|
{include file="_foot.tpl"}
|
|
@ -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"}
|
||||||
|
|
|
@ -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"}
|
|
@ -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"}
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue