diff --git a/README.md b/README.md
index 09203f0..e42ad30 100644
--- a/README.md
+++ b/README.md
@@ -16,18 +16,19 @@ le dossier plugins de Paheko.
## Fonctionnalités :
- Créer et gérer une base de client·es
- Créer et modifier des factures et devis adressés aux membres de l'association ou des client·es ajouté·es
-- Créer des reçus fiscaux pour des dons et génération du cerfa correspondant
-- Créer des reçus sur des cotisations
-- Génération des documents (facture et devis) en PDF grâce à la librairie mPDF
+- (obsolète) Créer des reçus fiscaux pour des dons et génération du CERFA correspondant
+- (obsolète) Créer des reçus sur des cotisations
+- Génération des documents (facture et devis) en PDF
- Liste les documents associés sur la fiche d'un·e client·e
-- Permet de définir le statut du document sur reglée
+- Permet de définir le statut du document à « réglé »
- **Configuration** :
- Possibilité d'ajouter un numéro RNA et SIRET de l'association si elle en possède (apparait alors sur les documents)
+ - Possibilité de choisir certains champs à faire figurer sur la facture (adresse, code postal, ville)
- Modification du pied de page des documents (notament pour y inscrire des mentions légales)
- Vérifier le code postal : si coché, lors d'ajout ou de modification de client, le plugin vérifiera que le code postal entré est bien formaté (par rapport aux codes postaux français seulement)
- - Noms de client·es uniques : si coché, lors d'ajout ou de modicifation de client·e, le nom du/de la client·e ne pourra pas être le même que celui d'un·e client·e déjà existant
- - Informations relatives au cerfa pour les reçus fiscaux
- - Image qui sert de signature sur le cerfa
+ - Noms de client·es uniques : si coché, lors d'ajout ou de modification de client·e, le nom du/de la client·e ne pourra pas être le même que celui d'un·e client·e déjà existant
+ - (obsolète) Informations relatives au CERFA pour les reçus fiscaux
+ - (obsolète) Image qui sert de signature sur le CERFA
Note : pour le moment, les actions sur la liste des clients à cocher
ne fonctionnent pas. Pour supprimer un client, le faire depuis sa
@@ -38,8 +39,9 @@ Un nouveau plugin est en cours de développement par BohwaZ, donc il
n'est pas pertinent d'ajouter de nouvelles fonctionnalités à celui-ci.
Par contre, si des bugs sont signalés sur la liste
-hebergement@paheko.cloud, je peux tenter de les corriger, à condition
-que ça n'impacte pas trop la structure du plugin.
+hebergement@paheko.cloud ou aide@paheko.cloud, je
+(lesanges@zaclys.net) peux tenter de les corriger, à condition que ça
+n'impacte pas trop la structure du plugin.
## Futur improbable (obsolète) :
- Ajout des champs Référence, Prix unitaire, Quantité sur les documents
@@ -56,7 +58,7 @@ que ça n'impacte pas trop la structure du plugin.
Le plugin nécessite l'extension PHP mbstring.
-## Inclus les bibliothèques suivantes :
+## (???) Inclus les bibliothèques suivantes :
- Composer :
https://getcomposer.org/
diff --git a/admin/config.php b/admin/config.php
index c709f53..1a1e24f 100644
--- a/admin/config.php
+++ b/admin/config.php
@@ -1,11 +1,15 @@
requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN);
+$champsPaheko = DynamicFields::getInstance()->listAssocNames();
+$champsPaheko = array('' => '- Choisir un champ -') + $champsPaheko;
+
$form->runIf('save', function () use ($plugin) {
$plugin->setConfigProperty('rna_asso', trim(f('rna_asso')));
$plugin->setConfigProperty('siret_asso', trim(f('siret_asso')));
@@ -26,9 +30,14 @@ $form->runIf('save', function () use ($plugin) {
$plugin->setConfigProperty('logo', (bool)f('logo'));
$plugin->setConfigProperty('footer', f('footer'));
+ $plugin->setConfigProperty('nom_client', f('nom_client'));
+ $plugin->setConfigProperty('prenom_client', f('prenom_client'));
+ $plugin->setConfigProperty('adresse_client', f('adresse_client'));
+ $plugin->setConfigProperty('code_postal_client', f('code_postal_client'));
+ $plugin->setConfigProperty('ville_client', f('ville_client'));
+
$plugin->setConfigProperty('validate_cp', (bool)f('validate_cp'));
$plugin->setConfigProperty('unique_client_name', (bool)f('unique_client_name'));
-
$plugin->setConfigProperty('pattern', f('pattern'));
$plugin->save();
@@ -38,5 +47,6 @@ $form->runIf('save', function () use ($plugin) {
$tpl->assign('ok', qg('ok') !== null);
$tpl->assign('conf', $plugin->getConfig());
$tpl->assign('patterns', \Paheko\Plugin\Facturation\PATTERNS_LIST);
+$tpl->assign('champsPaheko', $champsPaheko);
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl');
diff --git a/admin/pdf.php b/admin/pdf.php
index b32a39a..c8fa8c4 100644
--- a/admin/pdf.php
+++ b/admin/pdf.php
@@ -24,11 +24,26 @@ try
if ($f->receveur_membre)
{
$c = $users->get($f->receveur_id);
+ // l'identité du membre peut être redéfinie dans la configuration des membres
+ $name_fields = \Paheko\Users\DynamicFields::getNameFields();
+ array_walk($name_fields, function(&$elem) use ($c) {
+ $elem = $c->$elem ?? '** ABSENT **';
+ });
+ $c->nom = implode(" ", $name_fields);
+
+ // adresse, code postal et ville peuvent être redéfini(e)s dans la configuration du plugin
+ $adresse_client = $plugin->getConfig('adresse_client');
+ if ($adresse_client != null && $c->$adresse_client != null) { $c->adresse = $c->$adresse_client; }
+ $code_postal_client = $plugin->getConfig('code_postal_client');
+ if ($code_postal_client != null && $c->$code_postal_client != null) { $c->code_postal = $c->$code_postal_client; }
+ $ville_client = $plugin->getConfig('ville_client');
+ if ($ville_client != null && $c->$ville_client != null) { $c->ville = $c->$ville_client; }
+
foreach(['ville','code_postal','adresse'] as $v)
{
if($c->$v == '')
{
- $c->$v = '[A RENSEIGNER DANS LA FICHE MEMBRE]';
+ $c->$v = '[À RENSEIGNER DANS LA FICHE MEMBRE]';
}
}
}
@@ -58,20 +73,20 @@ if ($f->type_facture != CERFA)
switch ($f->type_facture)
{
case FACT:
- $doc = 'Facture n° '. $f->numero;
- $txtemis = $doc . " - Émise le " . $emission;
- $txtdest = "Adressée à :";
- break;
+ $doc = 'Facture n° '. $f->numero;
+ $txtemis = $doc . " - Émise le " . $emission;
+ $txtdest = "Adressée à :";
+ break;
case DEVIS:
- $doc = 'Devis n° '. $f->numero;
- $txtemis = $doc . " - Émis le " . $emission;
- $txtdest = "Adressé à :";
- break;
+ $doc = 'Devis n° '. $f->numero;
+ $txtemis = $doc . " - Émis le " . $emission;
+ $txtdest = "Adressé à :";
+ break;
case COTIS:
- $doc = 'Reçu de cotisation n° '. $f->numero;
- $txtemis = $doc . " - Émis le " . $emission;
- $txtdest = "Adressé à :";
- break;
+ $doc = 'Reçu de cotisation n° '. $f->numero;
+ $txtemis = $doc . " - Émis le " . $emission;
+ $txtdest = "Adressé à :";
+ break;
}
// utiliser l'adresse configurée dans le plugin sinon celle de l'asso sinon rien !
@@ -149,7 +164,7 @@ EOF;
$i = 1;
foreach($f->contenu as $k=>$v)
- {
+ {
echo '