From b0a44b85c670a530f6bcd6cb7d0c975b0c904118 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 12 Mar 2024 18:36:07 +0100 Subject: [PATCH 01/29] =?UTF-8?q?Ajout=20format=20num=C3=A9ro=20t=C3=A9l?= =?UTF-8?q?=C3=A9phone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/client.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/client.tpl b/templates/client.tpl index 07731e2..6b8db5b 100644 --- a/templates/client.tpl +++ b/templates/client.tpl @@ -44,7 +44,7 @@ {if empty($client.telephone)} (Non renseigné) {else} - {$client.telephone} + {$client.telephone|format_phone_number} {/if} From 1d4f17ead634b76be47c2eba3bd8f4d24c9d3c72 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 29 Mar 2024 11:57:36 +0100 Subject: [PATCH 02/29] Correction erreur si pas de prix saisi --- admin/_facture_common.php | 202 +++++++++++++++++++------------------- 1 file changed, 103 insertions(+), 99 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index cedacfa..ecc0c30 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -34,14 +34,14 @@ $tpl->assign('formes_don', array('1' => 'Acte authentique', '3' => 'Don manuel', '4' => 'Autres')); $tpl->assign('natures_don', array('1' => 'Numéraire', - '2' => 'Chèque', - '3' => 'Virement, CB; ...')); + '2' => 'Chèque', + '3' => 'Virement, CB; ...')); $tpl->assign('textes_don', $facture->listTextesCerfa()); if ( !$target ) { f(['id' => 'required|numeric']); $id = (int) qg('id'); - + if (!$f = $facture->get($id)) { throw new UserException("Ce document n'existe pas."); @@ -52,109 +52,113 @@ if ( !$target ) { $data=[]; $form->runIf(f('save') && !$form->hasErrors(), function () use ($client, &$data, $form) - { - try - { - if ( count(f('designation')) !== count(f('prix')) ) - { - throw new UserException('Nombre de désignations et de prix reçus différent.'); - } + { + try + { + if ( count(f('designation')) !== count(f('prix')) ) + { + throw new UserException('Nombre de désignations et de prix reçus différent.'); + } - $data = [ - 'numero' => f('numero_facture'), - 'date_emission' => f('date_emission'), - 'date_echeance' => f('date_echeance'), - 'reglee' => f('reglee') == 1?1:0, - 'archivee' => f('archivee') == 1?1:0, - 'moyen_paiement' => f('moyen_paiement'), - 'toto' => 0 - ]; - $data['type_facture'] = f('type'); - if (in_array(f('type'), [DEVIS, FACT])) - { - foreach(f('designation') as $k=>$value) - { - $data['contenu'][$k]['designation'] = $value; - $data['contenu'][$k]['prix'] = Utils::moneyToInteger(f('prix')[$k]); - $data['toto'] += Utils::moneyToInteger(f('prix')[$k]); - } - $data['total'] = $data['toto']; - unset($data['toto']); - } - elseif ( f('type') == CERFA ) - { - $data['moyen_paiement'] = f('moyen_paiement_cerfa'); - $data['contenu'] = [ - 'forme' => f('forme_don'), - 'nature' => f('nature_don'), - 'texte' => f('texte_don')]; - $data['total'] = Utils::moneyToInteger(f('total')); - unset($data['toto']); - } - if (f('base_receveur') == 'client') - { - $data['receveur_membre'] = 0; - $data['receveur_id'] = f('client'); - } - elseif (f('base_receveur') == 'membre') - { - $data['receveur_membre'] = 1; - $data['receveur_id'] = f('membre'); - } - else - { - throw new UserException('Vous devez indiquer si le receveur est un client ou un membre'); - } + $data = [ + 'numero' => f('numero_facture'), + 'date_emission' => f('date_emission'), + 'date_echeance' => f('date_echeance'), + 'reglee' => f('reglee') == 1?1:0, + 'archivee' => f('archivee') == 1?1:0, + 'moyen_paiement' => f('moyen_paiement'), + 'toto' => 0 + ]; + $data['type_facture'] = f('type'); + if (in_array(f('type'), [DEVIS, FACT])) + { + foreach(f('designation') as $k=>$value) + { + if ($value != '' && f('prix')[$k] == null) { + throw new UserException('Il manque le prix sur la ligne '. $k+1 . ' !!'); + } - } - catch(UserException $e) - { - $form->addError($e->getMessage()); - } - - }, $csrf_key); + $data['contenu'][$k]['designation'] = $value; + $data['contenu'][$k]['prix'] = Utils::moneyToInteger(f('prix')[$k]); + $data['toto'] += Utils::moneyToInteger(f('prix')[$k]); + } + $data['total'] = $data['toto']; + unset($data['toto']); + } + elseif ( f('type') == CERFA ) + { + $data['moyen_paiement'] = f('moyen_paiement_cerfa'); + $data['contenu'] = [ + 'forme' => f('forme_don'), + 'nature' => f('nature_don'), + 'texte' => f('texte_don')]; + $data['total'] = Utils::moneyToInteger(f('total')); + unset($data['toto']); + } + if (f('base_receveur') == 'client') + { + $data['receveur_membre'] = 0; + $data['receveur_id'] = f('client'); + } + elseif (f('base_receveur') == 'membre') + { + $data['receveur_membre'] = 1; + $data['receveur_id'] = f('membre'); + } + else + { + throw new UserException('Vous devez indiquer si le receveur est un client ou un membre'); + } + + } + catch(UserException $e) + { + $form->addError($e->getMessage()); + } + + }, $csrf_key); $form->runIf(f('select_cotis') && !$form->hasErrors(), function () use ($step) - { - $step = true; - }, 'add_cotis_1'); + { + $step = true; + }, 'add_cotis_1'); $form->runIf(f('add_cotis') && !$form->hasErrors(), function () use ($radio, $fields, $facture, $form) - { - $radio['type'] = f('cotisation'); - try - { - $num = (int) str_replace('cotis_', '', $radio['type']); - foreach($fields as $field) - { - $cotis[$field] = f($field.'_'.$num); - } + { + $radio['type'] = f('cotisation'); + try + { + $num = (int) str_replace('cotis_', '', $radio['type']); + foreach($fields as $field) + { + $cotis[$field] = f($field.'_'.$num); + } - $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); - $r = $r[0]; + $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); + $r = $r[0]; - $data = [ - 'type_facture' => COTIS, - 'numero' => f('numero_facture'), - 'receveur_membre' => 1, - 'receveur_id' => f('membre_cotis'), - 'date_emission' => f('date_emission'), - 'moyen_paiement' => 'AU', - 'total' => $r->paid_amount ?? $r->amount, - 'contenu' => ['id' => $cotis['id'], - 'intitule' => $cotis['label'], - 'souscription' => $cotis['date'], - 'expiration' => $cotis['expiry'] ] - ]; + $data = [ + 'type_facture' => COTIS, + 'numero' => f('numero_facture'), + 'receveur_membre' => 1, + 'receveur_id' => f('membre_cotis'), + 'date_emission' => f('date_emission'), + 'moyen_paiement' => 'AU', + 'total' => $r->paid_amount ?? $r->amount, + 'contenu' => ['id' => $cotis['id'], + 'intitule' => $cotis['label'], + 'souscription' => $cotis['date'], + 'expiration' => $cotis['expiry'] ] + ]; - } - catch (UserException $e) - { - $form->addError($e->getMessage()); - } - }, 'add_cotis_2'); + } + catch (UserException $e) + { + $form->addError($e->getMessage()); + } + }, 'add_cotis_2'); if (! $form->hasErrors()) { @@ -224,12 +228,12 @@ if ($target) elseif (isset($doc['type'])) { $radio['type'] = $doc['type']; } // ... ou par défaut - else + else { $radio['type'] = FACT; } } -else +else { $doc['moyen_paiement'] = $f->moyen_paiement; $doc['type'] = $f->type_facture; @@ -239,7 +243,7 @@ else $doc['client'] = $f->receveur_id; $doc['membre'] = $f->receveur_id; $doc['contenu'] = $f->contenu; - + $doc['date_emission'] = f('date_emission') ?: $f->date_emission; $doc['date_echeance'] = f('date_echeance')?: $f->date_echeance; // Smarty m'a saoulé pour utiliser form_field|date_fr:--- /* modif DD -- CERFA -------------------------------------- */ @@ -249,7 +253,7 @@ else $doc['nature_don'] = $f->contenu['nature']; $doc['texte_don'] = $f->contenu['texte']; } - + $radio['type'] = f('type')??$doc['type']; } $tpl->assign('types_details', $facture->types); From dc7f944ead696a9bca5ecf007444627dd0fc9661 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 3 Apr 2024 13:11:14 +0200 Subject: [PATCH 03/29] =?UTF-8?q?Mise-=C3=A0-jour=20README=20et=20CHANGELO?= =?UTF-8?q?G?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 2 ++ README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 635627c..ea75dde 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +0.8.6 +- Correction erreur si pas de prix saisi 0.8.5 - Ajout numéro SIREN/SIRET pour les clients - Ajout pagination liste factures diff --git a/README.md b/README.md index 9f161d4..1829668 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Plugin de facturation pour le logiciel de gestion d'association Paheko ( https://paheko.eu/ - https://fossil.kd2.org/paheko ). Source : - version historique : https://gitlab.com/noizette/garradin-plugin-facturation -- version compatible paheko 1.3.x : https://git.roflcopter.fr/lesanges/paheko-plugin-facturation +- version compatible paheko 1.3.x : https://git.roflcopter.fr/lesanges/facturation ## Installation: Vous pouvez télécharger l'archive .tar.gz depuis la page des [releases](https://git.roflcopter.fr/lesanges/paheko-plugin-facturation/releases), supprimer le numéro de version du nom de l'archive puis la placer dans le dossier plugins de Paheko. From bd1f541bc0008c17ec255ea0c82fdb164d4e651a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sun, 2 Jun 2024 22:37:04 +0200 Subject: [PATCH 04/29] Correction typo --- admin/pdf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/pdf.php b/admin/pdf.php index c426f8b..b2e6d50 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -117,7 +117,7 @@ if ($f->type_facture != CERFA) if ($f->type_facture != COTIS) { $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; - $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été reglée.'; + $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; $footer = str_replace("\n", '
', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; From 128e538431ec1bf09673666b393f21bcf76389ae Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sun, 2 Jun 2024 22:37:04 +0200 Subject: [PATCH 05/29] Correction typo --- CHANGELOG | 2 ++ plugin.ini | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index ea75dde..e42abea 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +0.8.7 +- correction typo 0.8.6 - Correction erreur si pas de prix saisi 0.8.5 diff --git a/plugin.ini b/plugin.ini index 3bf1573..e4cd258 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.8.5" +version="0.8.7" menu=true restrict_section="accounting" restrict_level="read" From f93bb57906616cc652b5faad0f4270777fe9f36a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 8 Jun 2024 20:52:29 +0200 Subject: [PATCH 06/29] =?UTF-8?q?Adaptation=20Readme=20=C3=A0=20la=20situa?= =?UTF-8?q?tion=20actuelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 59 ++++++++++++++++++++++--------------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 1829668..09203f0 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,17 @@ # Plugin Facturation pour Paheko (ex Garradin) -Plugin de facturation pour le logiciel de gestion d'association Paheko ( https://paheko.eu/ - https://fossil.kd2.org/paheko ). +Plugin de facturation pour le logiciel de gestion d'association Paheko +( https://paheko.eu/ - https://fossil.kd2.org/paheko ). + Source : -- version historique : https://gitlab.com/noizette/garradin-plugin-facturation - version compatible paheko 1.3.x : https://git.roflcopter.fr/lesanges/facturation +- version historique non compatible paheko 1.3.x : https://gitlab.com/noizette/garradin-plugin-facturation -## Installation: -Vous pouvez télécharger l'archive .tar.gz depuis la page des [releases](https://git.roflcopter.fr/lesanges/paheko-plugin-facturation/releases), supprimer le numéro de version du nom de l'archive puis la placer dans le dossier plugins de Paheko. - -### Anciennes versions (<0.6) - -Normalement, les plugins de Paheko doivent seulement être laissé sous forme d'archive .tar.gz dans le dossier plugins, or pour la génération des PDF, la librairie mPDF a besoin d'écrire des fichiers temporaires. - -Il faut pour cela faire : - - tar xvf paheko-plugin-facturation-v0.5.0.tar.gz - mv paheko-plugin-facturation-v0.5.0 facturation - rm paheko-plugin-facturation-v0.5.0.tar.gz - chown -R www-data:www-data facturation/ - chmod -R g+w facturation/ - - -Supprimer l'archive permet à Paheko de ne pas la lire à la place du dossier. - -*Note : www-data correspond dans la plupart des cas à l'utlisateur d'Apache, si vous utilisez un autre serveur web, il faudra probablement adapter.* - -## Migration vers Garradin 1.0 (obsolète) - -Lorsque vous tentez de mettre à jour une installation de Garradin avec le plugin facturation vers Garradin 1.0, l'upgrade est bloquée par le plugin. - -Pour remédier à cela et parvenir à faire la mise à jour, il faut dans un premier temps installer la version 0.4 du plugin sur votre installation Garradin 0.9.8, se rendre sur la page principale du plugin (menu > Facturation), vous pouvez ensuite mettre à jour Garradin vers la 1.0. +## Installation : +Vous pouvez télécharger l'archive .tar.gz depuis la page des +[releases](https://git.roflcopter.fr/lesanges/paheko-plugin-facturation/releases), +supprimer le numéro de version du nom de l'archive puis la placer dans +le dossier plugins de Paheko. ## Fonctionnalités : - Créer et gérer une base de client·es @@ -45,12 +27,22 @@ Pour remédier à cela et parvenir à faire la mise à jour, il faut dans un pre - 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 set de signature sur le cerfa + - 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 fiche. +Note : pour le moment, les actions sur la liste des clients à cocher +ne fonctionnent pas. Pour supprimer un client, le faire depuis sa +fiche. -## Futur : -- Ajout des champs Référence, Prix unitaire, Quantité sur les documents +## Futur de ce plugin : +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. + +## Futur improbable (obsolète) : +- Ajout des champs Référence, Prix unitaire, Quantité sur les documents - Actions sur liste de client·es (exporter, supprimer) - Afficher/filtrer les documents par statuts réglé/archivé - Changer statut depuis la liste des documents @@ -59,13 +51,10 @@ Note : pour le moment, les actions sur la liste des clients à cocher ne fonctio - Gestion TVA ? - Un devis ne devrait pas pouvoir être réglé - Quid si un·e membre de l'asso est supprimé·e alors que des documents lui sont adressés ? - -## Futur improbable : - Opérations de paiements dans la compta liés à une facture - Gestion de produits - -Le plugin nécessite l'extension PHP mbstring. +Le plugin nécessite l'extension PHP mbstring. ## Inclus les bibliothèques suivantes : From 3d5af4ebb07afe1de94493d85fcd167db5d8306c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 20 Jun 2024 15:55:33 +0200 Subject: [PATCH 07/29] Ajout impression logo avec option de configuration --- admin/config.php | 5 +++-- admin/pdf.php | 18 +++++++++++++++--- templates/config.tpl | 3 ++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/admin/config.php b/admin/config.php index 0987bde..c709f53 100644 --- a/admin/config.php +++ b/admin/config.php @@ -23,8 +23,9 @@ $form->runIf('save', function () use ($plugin) { $plugin->setConfigProperty('objet_1', trim(f('objet_1'))); $plugin->setConfigProperty('objet_2', trim(f('objet_2')));; + $plugin->setConfigProperty('logo', (bool)f('logo')); $plugin->setConfigProperty('footer', f('footer')); - + $plugin->setConfigProperty('validate_cp', (bool)f('validate_cp')); $plugin->setConfigProperty('unique_client_name', (bool)f('unique_client_name')); @@ -38,4 +39,4 @@ $tpl->assign('ok', qg('ok') !== null); $tpl->assign('conf', $plugin->getConfig()); $tpl->assign('patterns', \Paheko\Plugin\Facturation\PATTERNS_LIST); -$tpl->display(PLUGIN_ROOT . '/templates/config.tpl'); \ No newline at end of file +$tpl->display(PLUGIN_ROOT . '/templates/config.tpl'); diff --git a/admin/pdf.php b/admin/pdf.php index b2e6d50..b32a39a 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -61,17 +61,17 @@ if ($f->type_facture != CERFA) $doc = 'Facture n° '. $f->numero; $txtemis = $doc . " - Émise le " . $emission; $txtdest = "Adressée à :"; - break; + break; case DEVIS: $doc = 'Devis n° '. $f->numero; $txtemis = $doc . " - Émis le " . $emission; $txtdest = "Adressé à :"; - break; + break; case COTIS: $doc = 'Reçu de cotisation n° '. $f->numero; $txtemis = $doc . " - Émis le " . $emission; $txtdest = "Adressé à :"; - break; + break; } // utiliser l'adresse configurée dans le plugin sinon celle de l'asso sinon rien ! @@ -93,6 +93,10 @@ if ($f->type_facture != CERFA) $adresse = ""; } + $logo=''; + if ($plugin->getConfig('logo')) { + $logo = ''; + } $asso = // 'Émis par :

'. ''.$config->get('org_name')."
". @@ -267,6 +271,13 @@ EOF; width: 40%; vertical-align: top; } + .adressage td#logo { + width: 20%; + vertical-align: top; + } + .adressage img#logo { + height : 3cm; + } .contenuTexte { padding: 0 6mm; @@ -318,6 +329,7 @@ EOF; + diff --git a/templates/config.tpl b/templates/config.tpl index de55d71..f750784 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -47,11 +47,12 @@ - + input type="checkbox" name
Factures
+ {input type="checkbox" name="logo" value="1" source=$conf label="Imprimer le logo de l'association"} {input type="textarea" class="full-width" rows="10" name="footer" source=$conf label="Pied de document — informations légales" required=true}
From 2ecbac159a8b51448ea9c3290135ea2ed5b94aed Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 13 Aug 2024 20:43:03 +0200 Subject: [PATCH 08/29] templates/config.tpl : correction typo --- templates/config.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/config.tpl b/templates/config.tpl index f750784..b9b5bb6 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -47,7 +47,7 @@ - input type="checkbox" name +
Factures From 57e6ad09f92af2f5c87c1efd8a10bc9bfd9cb65b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 30 Aug 2024 21:32:13 +0200 Subject: [PATCH 09/29] =?UTF-8?q?Ajout=20possibilit=C3=A9=20choisir=20cham?= =?UTF-8?q?ps=20identit=C3=A9=20et=20adresse=20membre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 ++-- admin/config.php | 12 ++- admin/pdf.php | 57 ++++++---- lib/Facture.php | 245 ++++++++++++++++++++++--------------------- templates/_style.css | 13 ++- templates/aide.tpl | 35 ++++--- templates/config.tpl | 48 +++++---- 7 files changed, 250 insertions(+), 182 deletions(-) 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 '
', $name, $current_value, $currency); } diff --git a/admin/pdf.php b/admin/pdf.php index c8fa8c4..3bd9d76 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -67,82 +67,74 @@ if (isset($f->date_echeance)) // -- Création du PDF -// Génération factures, devis et cotisation -if ($f->type_facture != CERFA) +// Génération factures, devis +switch ($f->type_facture) { - switch ($f->type_facture) - { - case FACT: - $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; - case COTIS: - $doc = 'Reçu de cotisation n° '. $f->numero; - $txtemis = $doc . " - Émis le " . $emission; - $txtdest = "Adressé à :"; - break; - } + case FACT: + $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; +} - // utiliser l'adresse configurée dans le plugin sinon celle de l'asso sinon rien ! - if ($plugin->getConfig('rue_asso') != null && - $plugin->getConfig('cp_asso') != null && - $plugin->getConfig('ville_asso') != null) - { - $adresse = - (($plugin->getConfig('numero_rue_asso') != null) ? $plugin->getConfig('numero_rue_asso') . " " : "") . - $plugin->getConfig('rue_asso') . "
" . - $plugin->getConfig('cp_asso') . " " . - $plugin->getConfig('ville_asso'); - } - else if ($config->get('org_address') != null) - { - $adresse = str_replace("\n", '
', $config->get('org_address')); - } - else { - $adresse = ""; - } +// utiliser l'adresse configurée dans le plugin sinon celle de l'asso sinon rien ! +if ($plugin->getConfig('rue_asso') != null && + $plugin->getConfig('cp_asso') != null && + $plugin->getConfig('ville_asso') != null) +{ + $adresse = + (($plugin->getConfig('numero_rue_asso') != null) ? $plugin->getConfig('numero_rue_asso') . " " : "") . + $plugin->getConfig('rue_asso') . "
" . + $plugin->getConfig('cp_asso') . " " . + $plugin->getConfig('ville_asso'); +} +else if ($config->get('org_address') != null) +{ + $adresse = str_replace("\n", '
', $config->get('org_address')); +} +else { + $adresse = ""; +} - $logo=''; - if ($plugin->getConfig('logo')) { - $logo = ''; - } - $asso = - // 'Émis par :

'. - ''.$config->get('org_name')."
". - $adresse ."
". - (($t = $plugin->getConfig('rna_asso'))?"RNA : $t
":''). - (($t = $plugin->getConfig('siret_asso'))?"SIRET : " . implode(' ', str_split($t, 3)) . "
":''). - (($t = $config->get('email_asso'))?"Email : $t
":''). - (($t = $config->get('site_asso'))?"Site web : $t
":''); +$logo=''; +if ($plugin->getConfig('logo')) { + $logo = ''; +} +$asso = + // 'Émis par :

'. + ''.$config->get('org_name')."
". + $adresse ."
". + (($t = $plugin->getConfig('rna_asso'))?"RNA : $t
":''). + (($t = $plugin->getConfig('siret_asso'))?"SIRET : " . implode(' ', str_split($t, 3)) . "
":''). + (($t = $config->get('email_asso'))?"Email : $t
":''). + (($t = $config->get('site_asso'))?"Site web : $t
":''); - $receveur = - $txtdest.'
'. - ''.$c->nom.'
'. - $c->adresse."
". - $c->code_postal.' '.$c->ville."
". - (($t = $c->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "
":''). - (($t = $c->email)?"Email : $t
":''). - (($t = $c->telephone)?"Tel : $t
":''); +$receveur = + $txtdest.'
'. + ''.$c->nom.'
'. + $c->adresse."
". + $c->code_postal.' '.$c->ville."
". + (($t = $c->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "
":''). + (($t = $c->email)?"Email : $t
":''). + (($t = $c->telephone)?"Tel : $t
":''); - $total = Utils::money_format($f->total, ',', ' '); +$total = Utils::money_format($f->total, ',', ' '); - // Devis et facture - if ($f->type_facture != COTIS) - { - $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; - $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; - $footer = str_replace("\n", '
', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); - $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; +// Devis et facture +{ + $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; + $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; + $footer = str_replace("\n", '
', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); + $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; - // Génération du contenu de la facture - ob_start(); - echo << Contenu - $doc @@ -162,18 +154,18 @@ if ($f->type_facture != CERFA) EOF; - $i = 1; - foreach($f->contenu as $k=>$v) - { - echo ''; - $i++; - } + $i = 1; + foreach($f->contenu as $k=>$v) + { + echo ''; + $i++; + } - echo << @@ -196,52 +188,14 @@ EOF; EOF; - $content = ob_get_clean(); + $content = ob_get_clean(); - } - else // Reçu de cotisation - { - $lieu = $plugin->getConfig('ville_asso'); - $intitule = $f->contenu['intitule']; +} - $souscription = date('d/m/Y', strtotime($f->contenu['souscription'])); +//-- Layout du document - if($f->contenu['expiration'] == '1970-01-01') - { - $expiration = "jour même, s'agissant d'une cotisation ponctuelle."; - } - else { - $expiration = date('d/m/Y', strtotime($f->contenu['expiration'])); - } - - // Génération du contenu du reçu de cotisation - $content = << - Reçu de votre cotisation - $doc - -
-
-

À $lieu, le $emission,

-

Bonjour,

- -

Nous accusons réception de votre cotisation « $intitule » reçue le $emission et nous vous en remercions.

-

Nous reconnaissons que vous avez acquitté la somme de {$total} €.
111 - Votre adhésion sera donc effective à compter du $souscription jusqu’au $expiration.

-
- -

Nous vous prions de recevoir, chère adhérente, cher adhérent, nos meilleures salutations,

-
-

-représentant·e de l'asso-

-
-

Nous vous rappelons que la cotisation n’est pas soumise à la TVA et qu’elle ne donne pas lieu à la délivrance d’une facture. Elle n’ouvre pas droit au bénéfice des dispositions des articles 200, 238 bis et 885-0 V bis A du code général des impôts.

-
-EOF; - } - - //-- Layout du document - - ob_start(); - echo << @@ -355,191 +309,7 @@ EOF; EOF; - $html = ob_get_clean(); - -} // Génération du CERFA -elseif ($f->type_facture == CERFA) -{ - - $doc = 'Reçu de don n°'. $f->numero; - $url = WWW_URL; - $libelles = $facture->listTextesCerfa(false); - - $t['numero'] = $f->numero; - $t['org_name'] = $config->get('org_name'); - $t['n_rue_asso'] = $plugin->getConfig('numero_rue_asso'); - $t['rue_asso'] = $plugin->getConfig('rue_asso'); - $t['cp_asso'] = $plugin->getConfig('cp_asso'); - $t['ville_asso'] = $plugin->getConfig('ville_asso'); - $t['objet0'] = $plugin->getConfig('objet_0'); - $t['objet1'] = $plugin->getConfig('objet_1'); - $t['objet2'] = $plugin->getConfig('objet_2'); - - $t['nom'] = $c->nom; - $t['adresse'] = $c->adresse; - $t['cp'] = $c->code_postal; - $t['ville'] = $c->ville; - $t['total'] = '***'.Utils::money_format($f->total).'***'; - $t['total_lettre'] = numfmt_create('fr_FR', \NumberFormatter::SPELLOUT)->format($f->total/100). ' euros'; - - - $t['d'] = ($f->date_emission->format('d')); - $t['m'] = ($f->date_emission->format('m')); - $t['Y'] = ($f->date_emission->format('Y')); - - $t['forme'] = $f->contenu['forme']; - $t['nature'] = $f->contenu['nature']; - $t['texte'] = $libelles[$f->contenu['texte']]; - - $t['art200'] = $t['art238'] = $t['art885'] = ''; - if($plugin->getConfig('droit_art200')){ - $t['art200'] = 'X'; - } - if($plugin->getConfig('droit_art238bis')){ - $t['art238'] = 'X'; - } - if($plugin->getConfig('droit_art885-0VbisA')){ - $t['art885'] = 'X'; - } - - // forme du don - switch ($t['forme']){ - case '1': - $t['frm'] = 'left: 15mm;'; - break; - case '2': - $t['frm'] = 'left: 57.3mm;'; - break; - case '3': - $t['frm'] = 'left: 115.2mm;'; - break; - case '4': - $t['frm'] = 'left: 175.2mm;'; - } - // nature du don - switch ($t['nature']){ - case '1': - $t['nat'] = 'left: 15mm;'; - break; - case '2': - $t['nat'] = 'left: 57.3mm;'; - break; - case '3': - $t['nat'] = 'left: 115.2mm;'; - } - // moyen de paiement - switch ($f->moyen_paiement){ - case 'ES': - $t['pos'] = 'left: 15mm;'; - break; - case 'CH': - $t['pos'] = 'left: 57.3mm;'; - break; - default: - $t['pos'] = 'left: 115.2mm;'; - } - - $t['d2'] = ($f->date_echeance->format('d')); - $t['m2'] = ($f->date_echeance->format('m')); - $t['Y2'] = ($f->date_echeance->format('Y')); - - ob_start(); - echo << - - - - {$doc}_{$emission} - - - -
-
{$t['numero']}
- -
{$t['org_name']}
-
{$t['n_rue_asso']}
-
{$t['rue_asso']}
-
{$t['cp_asso']}
-
{$t['ville_asso']}
- -
{$t['objet0']}
-
{$t['objet1']}
-
{$t['objet2']}
- -
X
-
-
-
{$t['nom']}
-
{$t['adresse']}
-
{$t['cp']}
-
{$t['ville']}
- -
{$t['total']}
-
{$t['total_lettre']}
- -
{$t['d']}
-
{$t['m']}
-
{$t['Y']}
- -
{$t['art200']}
-
{$t['art238']}
-
{$t['art885']}
-
X
-
X
-
{$t['texte']}
-
X
- -
{$t['d2']}
-
{$t['m2']}
-
{$t['Y2']}
- -
{$sign_tag}
-
- - -EOF; - - $html = ob_get_clean(); - -} // End if cerfa +$html = ob_get_clean(); if(qg('d') !== null) diff --git a/lib/Facture.php b/lib/Facture.php index 9baabf8..9433be3 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -15,17 +15,15 @@ class Facture const TYPES_NAMES = [ DEVIS => 'Devis', FACT => 'Facture', - CERFA => 'Reçu fiscal', - COTIS => 'Reçu de cotisation', ]; private $keys = [ - 'type_facture', // 0 : devis, 1 : facture, 2 : reçu cerfa, 3 : reçu cotis + 'type_facture', // 0 : devis, 1 : facture 'numero', 'receveur_membre', 'receveur_id', - 'date_emission', // Reçus : date du don - 'date_echeance', // Reçus : date d'édition du reçu + 'date_emission', + 'date_echeance', 'reglee', 'archivee', 'moyen_paiement', @@ -44,16 +42,6 @@ class Facture 'accounts' => [], 'label' => 'Facture', 'help' => ''], - CERFA => [ - 'id' => CERFA, - 'accounts' => [], - 'label' => 'Reçu fiscal', - 'help' => 'Reçu fiscal pour un don (membre ou client)'], - COTIS => [ - 'id' => COTIS, - 'accounts' => [], - 'label' => 'Reçu de cotisation', - 'help' => 'Reçu pour une cotisation payée par un·e membre'], ]; public function __construct() @@ -88,18 +76,12 @@ class Facture } if ($datas[$k] < 2) { $fac = true; - $cerfa = false; - $recu = false; } elseif ($datas[$k] == 2) { $fac = false; - $cerfa = true; - $recu = false; } elseif ($datas[$k] == 3) { $fac = false; - $cerfa = false; - $recu = true; } break; case 'receveur_membre': @@ -162,21 +144,9 @@ class Facture throw new UserException("Toutes les désignations/prix sont vides."); } } - elseif ($cerfa) - { - - } - elseif ($recu) - { - // $fields = ['id', 'intitule', 'date', 'expiration']; - // foreach ($datas[$k]as $) - } $datas[$k] = json_encode($datas[$k]); break; case 'total': - if ($cerfa && $datas[$k] < 1) { - throw new UserException('Le total ne peut être inférieur à 1€ pour les reçus (bug encore non résolu).'); - } if ($fac && !isset($datas['contenu'])) { throw new UserException("Pas de contenu fourni pour vérifier le total."); } @@ -230,15 +200,6 @@ class Facture $type = 'FACT'; $t = 'F'; } - elseif ($type == CERFA) { - $type = 'CERFA'; - $t = 'RF'; - } - else { - $type = 'COTIS'; - $t = 'RC'; - } - $year = $date->format('Y'); $y = $date->format('y'); @@ -415,21 +376,9 @@ class Facture // Remplir le contenu $content = json_decode((string)$row->contenu); - if ($row->type_facture == COTIS && isset($content->intitule, $content->souscription)) { - $row->contenu = sprintf("Cotisation %s\nSouscrite le %s", - $content->intitule, - Utils::date_fr($content->souscription, 'd/m/Y') - ); - } - elseif ($row->type_facture != CERFA) { - $row->contenu = implode("\n", array_map(function ($row) use ($currency) { - return sprintf('%s : %s %s', $row->designation, Utils::money_format($row->prix), $currency); - }, (array)$content)); - } - else - { - $row->contenu = ''; - } + $row->contenu = implode("\n", array_map(function ($row) use ($currency) { + return sprintf('%s : %s %s', $row->designation, Utils::money_format($row->prix), $currency); + }, (array)$content)); }); return $list; @@ -499,31 +448,6 @@ class Facture return DB::getInstance()->test('plugin_facturation_factures', 'receveur_membre = ? AND receveur_id = ?', $base, $id); } - // ** Pour type reçu ** - - public $recu_fields = ['id', 'label', 'amount', 'date', 'expiry', 'paid', 'paid_amount']; - - public function getCotis(int $user_id, int $su_id = null) - { - $where = 'WHERE su.id_user = ?'; - if (null !== $su_id) - { - $where .= ' AND su.id = '.$su_id; - } - - $sql = 'SELECT su.id, s.label, su.date, MAX(su.expiry_date) as expiry, sf.label as fee, sf.amount as amount, su.paid, SUM(tl.debit) as paid_amount - FROM services_users su - INNER JOIN services s ON s.id = su.id_service - LEFT JOIN services_fees sf ON sf.id = su.id_fee - LEFT JOIN acc_transactions_users tu ON tu.id_service_user = su.id - LEFT JOIN acc_transactions_lines tl ON tl.id_transaction = tu.id_transaction - '.$where.' - GROUP BY su.id - ORDER BY su.date;'; - - return DB::getInstance()->get($sql, $user_id); - } - public function listMoyensPaiement($assoc = false) { $db = DB::getInstance(); @@ -538,17 +462,6 @@ class Facture } } - /* modif DD -- lecture et retour des textes de CERFA -- */ - public function listTextesCerfa($menu = true) - { - $db = DB::getInstance(); - - $sel = ($menu) ? 'id, menu' : 'id, texte'; - $query = 'SELECT '.$sel.' FROM "plugin_facturation_txt_cerfa" WHERE 1 ORDER BY id ;'; - - return $db->getAssoc($query); - } - public function getMoyenPaiement($code) { $db = DB::getInstance(); diff --git a/templates/_form.tpl b/templates/_form.tpl index 3e6029d..8f78d7e 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -24,8 +24,6 @@
Créer un devis Créer une facture - Créer un reçu fiscal - Créer un reçu de cotisation
{input type="text" name="numero_facture" maxlength=18 label="Numéro du document" required=$require_number source=$doc} @@ -38,27 +36,21 @@ {/if} {input type="date" name="date_emission" default=$date label="Date d'émission" required=1 source=$doc} -
-

Date du versemen du don

-
-
+
{input type="date" name="date_echeance" default=$date label="Date d'échéance" required=1 source=$doc} -
-

Date d'établissement du document

-
- + {input type="checkbox" name="reglee" value="1" label="Réglée" source=$doc data-types="t1"} -
+
{input type="checkbox" name="archivee" value="1" label="Archivée" source=$doc disabled="disabled"}
-
+
Client
@@ -113,14 +105,14 @@
- {foreach from=$designations item=designation key=key} + {foreach from=$designations item=designation key=key} {money_fac value=$prix[$key] user=$from_user} {/foreach} - {else} + {else} {money_fac name="prix_tpl[]"} @@ -139,102 +131,12 @@ - -
- Contenu -
- {input type="money" name="total" label="Montant du don" required=1 source=$doc default="0,0"} - {input type="select" name="forme_don" required=1 label="Forme du don" source=$doc options=$formes_don default=$doc.forme_don} - {input type="select" name="nature_don" required=1 label="Nature du don" source=$doc options=$natures_don default=$doc.nature_don} - {input type="select" name="texte_don" required=1 label="Texte explicatif" source=$doc options=$textes_don default=$doc.texte_don} - {input type="select" name="moyen_paiement_cerfa" required=1 label="Moyen de paiement" source=$doc options=$moyens_paiement default=$doc.moyen_paiement_cerfa} -
-
- -

+

{csrf_field key=$csrf_key} {button type="submit" name="save" label="Enregistrer" shape="right" class="main"}

-
- Membre -
-
-
- {input type="select" name="membre_cotis" label="Membre" options=$users required=1 default=$doc.membre} -
-
-
- -

- {csrf_field key="add_cotis_1"} - {button type="submit" name="select_cotis" label="Sélectionner" shape="right" class="main"} -

- - -{if $step} -
- Cotisation - {if count($liste)} -
-
Sélectionnez la cotisation concernée :
- -
$asso $receveur
'; echo str_replace("\n", '
', $v['designation']); echo '
'; @@ -188,7 +203,7 @@ EOF; { $lieu = $plugin->getConfig('ville_asso'); $intitule = $f->contenu['intitule']; - + $souscription = date('d/m/Y', strtotime($f->contenu['souscription'])); if($f->contenu['expiration'] == '1970-01-01') @@ -224,7 +239,7 @@ EOF; } //-- Layout du document - + ob_start(); echo << @@ -237,7 +252,7 @@ EOF; size: A4 portrait; margin: 0; } - + body { padding: 4mm; font-family: Helvetica, Arial, sans; @@ -375,7 +390,7 @@ elseif ($f->type_facture == CERFA) $t['forme'] = $f->contenu['forme']; $t['nature'] = $f->contenu['nature']; $t['texte'] = $libelles[$f->contenu['texte']]; - + $t['art200'] = $t['art238'] = $t['art885'] = ''; if($plugin->getConfig('droit_art200')){ $t['art200'] = 'X'; @@ -441,7 +456,7 @@ elseif ($f->type_facture == CERFA) margin: 0; padding: 0; } - + body { font-family: Helvetica, Arial, sans; font-size: 10pt; @@ -463,11 +478,11 @@ elseif ($f->type_facture == CERFA) background-size: cover; background-position: -5mm -4.8mm; } - + #p1 { background-image: url('{$url}p/facturation/cerfa-1.png'); } - + #p2 { background-image: url('{$url}p/facturation/cerfa-2.png'); position: relative; diff --git a/lib/Facture.php b/lib/Facture.php index 0776728..9baabf8 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -34,27 +34,27 @@ class Facture ]; public $types = [ - DEVIS => [ - 'id' => DEVIS, - 'accounts' => [], - 'label' => 'Devis', - 'help' => ''], - FACT => [ - 'id' => FACT, - 'accounts' => [], - 'label' => 'Facture', - 'help' => ''], - CERFA => [ - 'id' => CERFA, - 'accounts' => [], - 'label' => 'Reçu fiscal', - 'help' => 'Reçu fiscal pour un don (membre ou client)'], - COTIS => [ - 'id' => COTIS, - 'accounts' => [], - 'label' => 'Reçu de cotisation', - 'help' => 'Reçu pour une cotisation payée par un·e membre'], - ]; + DEVIS => [ + 'id' => DEVIS, + 'accounts' => [], + 'label' => 'Devis', + 'help' => ''], + FACT => [ + 'id' => FACT, + 'accounts' => [], + 'label' => 'Facture', + 'help' => ''], + CERFA => [ + 'id' => CERFA, + 'accounts' => [], + 'label' => 'Reçu fiscal', + 'help' => 'Reçu fiscal pour un don (membre ou client)'], + COTIS => [ + 'id' => COTIS, + 'accounts' => [], + 'label' => 'Reçu de cotisation', + 'help' => 'Reçu pour une cotisation payée par un·e membre'], + ]; public function __construct() { @@ -79,112 +79,112 @@ class Facture { throw new UserException("La valeur de $k est vide"); } - + switch($k) { case 'type_facture': - if (!array_key_exists($datas[$k], $this->types)) { - throw new UserException("$k est de type non-attendue ($data)."); - } - if ($datas[$k] < 2) { - $fac = true; - $cerfa = false; - $recu = false; - } - elseif ($datas[$k] == 2) { - $fac = false; - $cerfa = true; - $recu = false; - } - elseif ($datas[$k] == 3) { - $fac = false; - $cerfa = false; - $recu = true; - } - break; + if (!array_key_exists($datas[$k], $this->types)) { + throw new UserException("$k est de type non-attendue ($data)."); + } + if ($datas[$k] < 2) { + $fac = true; + $cerfa = false; + $recu = false; + } + elseif ($datas[$k] == 2) { + $fac = false; + $cerfa = true; + $recu = false; + } + elseif ($datas[$k] == 3) { + $fac = false; + $cerfa = false; + $recu = true; + } + break; case 'receveur_membre': case 'reglee': case 'archivee': - if ($datas[$k] != 1 && $datas[$k] != 0) { - throw new UserException("$k est de valeur non-attendue ($data)."); - } - break; + if ($datas[$k] != 1 && $datas[$k] != 0) { + throw new UserException("$k est de valeur non-attendue ($data)."); + } + break; case 'receveur_id': - if (!is_numeric($datas[$k]) || $datas[$k] < 0) { - throw new UserException("L'id du receveur est non-attendu ($data)."); - } - break; + if (!is_numeric($datas[$k]) || $datas[$k] < 0) { + throw new UserException("L'id du receveur est non-attendu ($data)."); + } + break; case 'date_emission': - $datas[$k] = \DateTime::createFromFormat('!d/m/Y', $data)->format('Y-m-d'); - break; + $datas[$k] = \DateTime::createFromFormat('!d/m/Y', $data)->format('Y-m-d'); + break; case 'date_echeance': - $datas[$k] = \DateTime::createFromFormat('!d/m/Y', $data)->format('Y-m-d'); - if (DateTime::createFromFormat('!Y-m-d', $datas[$k])->format('U') < DateTime::createFromFormat('!Y-m-d', $datas['date_emission'])->format('U')) - { - throw new UserException("La date d'échéance est antérieure à la date d'émission ($data)."); - } - break; + $datas[$k] = \DateTime::createFromFormat('!d/m/Y', $data)->format('Y-m-d'); + if (DateTime::createFromFormat('!Y-m-d', $datas[$k])->format('U') < DateTime::createFromFormat('!Y-m-d', $datas['date_emission'])->format('U')) + { + throw new UserException("La date d'échéance est antérieure à la date d'émission ($data)."); + } + break; case 'moyen_paiement': - if (!array_key_exists($datas[$k], $this->listMoyensPaiement())) { - throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data)."); - } - break; + if (!array_key_exists($datas[$k], $this->listMoyensPaiement())) { + throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data)."); + } + break; case 'contenu': - if ($fac) + if ($fac) + { + if (!is_array($datas[$k]) || empty($datas[$k])) { + throw new UserException("Le contenu du document est vide ($data)."); + } + $total = 0; + foreach($datas[$k] as $g => $r) { - if (!is_array($datas[$k]) || empty($datas[$k])) { - throw new UserException("Le contenu du document est vide ($data)."); - } - $total = 0; - foreach($datas[$k] as $g => $r) + if (empty($r['designation']) && empty($r['prix'])) { - if (empty($r['designation']) && empty($r['prix'])) - { - unset($datas[$k][$g]); - unset($datas[$k]['prix']); - continue; - } - elseif (empty($r['prix'])) - { - $datas[$k]['prix'] = 0; - } - - if (!is_int($r['prix'])) - { - throw new UserException('Un (ou plus) des prix n\'est pas un entier.'); - } - - $total += $r['prix']; + unset($datas[$k][$g]); + unset($datas[$k]['prix']); + continue; } - - if($fac && !$total) + elseif (empty($r['prix'])) { - throw new UserException("Toutes les désignations/prix sont vides."); + $datas[$k]['prix'] = 0; } - } - elseif ($cerfa) - { + if (!is_int($r['prix'])) + { + throw new UserException('Un (ou plus) des prix n\'est pas un entier.'); + } + + $total += $r['prix']; } - elseif ($recu) + + if($fac && !$total) { - // $fields = ['id', 'intitule', 'date', 'expiration']; - // foreach ($datas[$k]as $) + throw new UserException("Toutes les désignations/prix sont vides."); } - $datas[$k] = json_encode($datas[$k]); - break; + } + elseif ($cerfa) + { + + } + elseif ($recu) + { + // $fields = ['id', 'intitule', 'date', 'expiration']; + // foreach ($datas[$k]as $) + } + $datas[$k] = json_encode($datas[$k]); + break; case 'total': - if ($cerfa && $datas[$k] < 1) { - throw new UserException('Le total ne peut être inférieur à 1€ pour les reçus (bug encore non résolu).'); - } - if ($fac && !isset($datas['contenu'])) { - throw new UserException("Pas de contenu fourni pour vérifier le total."); - } - if ($fac && $total != $datas[$k]) - { - throw new UserException("Les totaux sont différents ($total != $datas[$k]."); - } - break; + if ($cerfa && $datas[$k] < 1) { + throw new UserException('Le total ne peut être inférieur à 1€ pour les reçus (bug encore non résolu).'); + } + if ($fac && !isset($datas['contenu'])) { + throw new UserException("Pas de contenu fourni pour vérifier le total."); + } + if ($fac && $total != $datas[$k]) + { + throw new UserException("Les totaux sont différents ($total != $datas[$k]."); + } + break; } } } @@ -287,7 +287,7 @@ class Facture $r = $db->first('SELECT * FROM plugin_facturation_factures WHERE id = ? LIMIT 1;', (int)$id); if(!$r) - { + { throw new UserException("Pas de document retournée avec cet id."); } @@ -325,6 +325,14 @@ class Facture public function list(): DynamicList { $id_field = \Paheko\Users\DynamicFields::getNameFieldsSQL('u'); + $plugin_name = preg_replace('/^.*\/(\w+)\/$/', '${1}', \Paheko\PLUGIN_ADMIN_URL); + $plugin = \Paheko\Plugins::get($plugin_name); + + // adresse et ville peuvent être redéfinies dans la configuration du plugin + $adresse_client = $plugin->getConfig('adresse_client'); + if ($adresse_client == null) { $adresse = 'u.adresse'; } else { $adresse = 'u.' . $adresse_client; } + $ville_client = $plugin->getConfig('ville_client'); + if ($ville_client == null) { $ville = 'u.ville'; } else { $ville = 'u.' . $ville_client; } $columns = [ // Sélectionner cette colonne, mais ne pas la mettre dans la liste des colonnes @@ -349,15 +357,18 @@ class Facture ], 'receveur' => [ 'label' => 'Receveur', - 'select' => sprintf('CASE WHEN receveur_membre THEN %s ELSE c.nom END', $id_field), + // l'identité du membre peut être redéfinie dans la configuration des membres + 'select' => sprintf('CASE WHEN receveur_membre THEN CASE %s WHEN "" THEN "** ABSENT **" ELSE %s END ELSE c.nom END', $id_field, $id_field), ], 'receveur_adresse' => [ + // l'adresse peut être redéfinie dans la configuration du plugin 'label' => 'Adresse', - 'select' => 'CASE WHEN receveur_membre THEN u.adresse ELSE c.adresse END', + 'select' => sprintf('CASE WHEN receveur_membre THEN %s ELSE c.adresse END', $adresse), ], 'receveur_ville' => [ + // la ville peut être redéfinie dans la configuration du plugin 'label' => 'Ville', - 'select' => 'CASE WHEN receveur_membre THEN u.ville ELSE c.ville END', + 'select' => sprintf('CASE WHEN receveur_membre THEN %s ELSE c.ville END', $ville), ], 'date_emission' => [ 'label' => 'Émission', @@ -406,8 +417,8 @@ class Facture if ($row->type_facture == COTIS && isset($content->intitule, $content->souscription)) { $row->contenu = sprintf("Cotisation %s\nSouscrite le %s", - $content->intitule, - Utils::date_fr($content->souscription, 'd/m/Y') + $content->intitule, + Utils::date_fr($content->souscription, 'd/m/Y') ); } elseif ($row->type_facture != CERFA) { @@ -506,7 +517,7 @@ class Facture LEFT JOIN services_fees sf ON sf.id = su.id_fee LEFT JOIN acc_transactions_users tu ON tu.id_service_user = su.id LEFT JOIN acc_transactions_lines tl ON tl.id_transaction = tu.id_transaction - '.$where.' + '.$where.' GROUP BY su.id ORDER BY su.date;'; @@ -526,24 +537,24 @@ class Facture return $db->getGrouped($query); } } - + /* modif DD -- lecture et retour des textes de CERFA -- */ public function listTextesCerfa($menu = true) { $db = DB::getInstance(); - + $sel = ($menu) ? 'id, menu' : 'id, texte'; $query = 'SELECT '.$sel.' FROM "plugin_facturation_txt_cerfa" WHERE 1 ORDER BY id ;'; return $db->getAssoc($query); } - + public function getMoyenPaiement($code) { $db = DB::getInstance(); return $db->firstColumn('SELECT nom FROM plugin_facturation_paiement WHERE code = ?;', $code); } - + public function delete($id) { return DB::getInstance()->delete('plugin_facturation_factures', 'id = '. (int)$id); diff --git a/templates/_style.css b/templates/_style.css index 89a586e..f860f56 100644 --- a/templates/_style.css +++ b/templates/_style.css @@ -7,4 +7,15 @@ display: none; } -{/literal} \ No newline at end of file +div.aide { + margin: 1em; + padding: 1em; +} + +div.aide ul { + list-style: square; + margin: 1em; + padding: 1em; +} + +{/literal} diff --git a/templates/aide.tpl b/templates/aide.tpl index e947f09..6f8c672 100644 --- a/templates/aide.tpl +++ b/templates/aide.tpl @@ -1,21 +1,30 @@ {include file="_head.tpl" title="Aide — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="aide"} -
-

Quelques remarques et conseils sur l'utilisation du plugin Facturation

+

Quelques remarques et conseils sur l'utilisation du plugin Facturation

-

Une des premières choses à faire est d'aller dans l'onglet Configuration pour renseigner les valeurs nécessaires à la génération des documents.

-

Pour l'instant, il y a des choses encore brouillonnes. Notamment, dans les factures et devis, c'est l'adresse postale renseignée dans la configuration de Paheko qui fait foi plutôt que celle dans le plugin (qui sert en revanche pour les reçus).

-

Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), cela se passe dans la configuration de Paheko, onglet personnalisation. Il est préférable d'avoir un fond transparent. -

-
-

- Pour créer un reçu sur une cotisation, il faut pour le moment que cette cotisation soit attachée à la compta.

-

- Pour créer un reçu fiscal, l'interface est pour l'instant la même que pour créer une facture/devis. Les champs correspondent mais les noms/labels autour ne sont pas adaptés. Vous pouvez de toutes façons tester, et si le résultat est pas celui attendu, remodifiez derrière :)

-

- La partie « Droit à la réduction d'impôt » peut faire peur, elle correspond simplement à des cases du cerfa pour les reçus fiscaux. Je n'y connais pas grand chose pour le moment, je ne peux vous éclairer davantage, il va falloir se retourner vers légifrance :(

-
-

Hésitez pas à faire des retours, proposer meilleures explications, ou quoi, vous pouvez venir en causer soit sur mon gitlab, soit sur l'adresse d'entraide de Paheko. Si vous êtes un peu dev, le code est un peu cracra mais j'espère que ça vous repoussera pas trop à le bidouiller :)

+
+

Une des premières choses à faire est d'aller dans l'onglet {link href="config.php" label="Configuration du plugin"} pour renseigner les valeurs nécessaires à la génération des documents.

+
+ Informations à configurer +
+
+
Si elle n'est pas remplie, c'est l'adresse qui figure dans la {link href="!config" label="configuration de l'association"} qui sera utilisée
+
+
Les champs qui définissent l'identité d'un membre peuvent être choisis dans la {link href="!config/users" label="configuration de la fiche membre"}
+
+
Permet de choisir les champs pour l'adresse, le code postal et la ville parmi les {link href="!config/fields" label="champs de la fiche membre"}
+
+
-
+

Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), cela se passe dans la {link href="!config/custom.php" label="configuration de Paheko, onglet personnalisation"}. Il est préférable d'avoir un fond transparent. +

+
    +
  • Pour créer un reçu sur une cotisation, il vaut mieux utiliser le module {link href="!config/ext" label="Reçu de paiement"} intégré à Paheko.
  • +
  • Pour créer un reçu fiscal, il vaut mieux utiliser le module {link href="!config/ext" label="Reçus fiscaux"} intégré à Paheko.
  • +
+

N'hésitez pas à faire des retours, proposer de meilleures explications dans le forum d'entraide de Paheko. Si vous êtes un peu dev, le code est un peu cracra mais j'espère que ça ne vous repoussera pas trop à le bidouiller :)

+ {include file="_foot.tpl"} \ No newline at end of file diff --git a/templates/config.tpl b/templates/config.tpl index b9b5bb6..f2da195 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -27,25 +27,25 @@ {input type="text" name="ville_asso" source=$conf label="Ville"} -
- Objet -
-
obligatoire pour reçus fiscaux
- {input type="text" name="objet_0" source=$conf label="Ligne 1" maxlength=95} - {input type="text" name="objet_1" source=$conf label="Ligne 2" maxlength=95} - {input type="text" name="objet_2" source=$conf label="Ligne 3" maxlength=95} -
-
+
+ Objet +
+
obligatoire pour reçus fiscaux
+ {input type="text" name="objet_0" source=$conf label="Ligne 1" maxlength=95} + {input type="text" name="objet_1" source=$conf label="Ligne 2" maxlength=95} + {input type="text" name="objet_2" source=$conf label="Ligne 3" maxlength=95} +
+
-
- Droit à la réduction d'impôt -
-
obligatoire pour reçus fiscaux
- {input type="checkbox" name="droit_art200" value="1" source=$conf label="Article 200"} - {input type="checkbox" name="droit_art238bis" value="1" source=$conf label="Article 238 bis"} - {input type="checkbox" name="droit_art885_0VbisA" value="1" source=$conf label="Article 885-0V bis A"} -
-
+
+ Droit à la réduction d'impôt +
+
obligatoire pour reçus fiscaux
+ {input type="checkbox" name="droit_art200" value="1" source=$conf label="Article 200"} + {input type="checkbox" name="droit_art238bis" value="1" source=$conf label="Article 238 bis"} + {input type="checkbox" name="droit_art885_0VbisA" value="1" source=$conf label="Article 885-0V bis A"} +
+
@@ -53,8 +53,18 @@ Factures
{input type="checkbox" name="logo" value="1" source=$conf label="Imprimer le logo de l'association"} - {input type="textarea" class="full-width" rows="10" name="footer" source=$conf label="Pied de document — informations légales" required=true} + {input type="textarea" class="full-width" rows="5" name="footer" source=$conf label="Pied de document — informations légales" required=true}
+
+ + Choisir les champs à faire figurer sur la facture + +
+ {input type="select" name="adresse_client" label="Adresse" required=true options=$champsPaheko source=$conf} + {input type="select" name="code_postal_client" label="Code postal" required=true options=$champsPaheko source=$conf} + {input type="select" name="ville_client" label="Ville" required=true options=$champsPaheko source=$conf} +
+
From f321e83e20db0e49035c2b9f0cc76c9568fde3cb Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 6 Sep 2024 21:40:27 +0200 Subject: [PATCH 10/29] =?UTF-8?q?Simplification=20:=20suppression=20g?= =?UTF-8?q?=C3=A9n=C3=A9ration=20re=C3=A7u=20dons=20et=20cotisations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/_facture_common.php | 86 +-------- admin/_inc.php | 8 +- admin/pdf.php | 386 ++++++++------------------------------ lib/Facture.php | 99 +--------- templates/_form.tpl | 112 +---------- templates/_js.tpl | 8 +- templates/aide.tpl | 2 - templates/clients.tpl | 2 +- templates/config.tpl | 21 +-- 9 files changed, 102 insertions(+), 622 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index ecc0c30..8876d57 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -21,14 +21,10 @@ $db = DB::getInstance(); $step = false; $radio = $liste = $designations = $prix = []; -$fields = $facture->recu_fields; - $moyens_paiement = $facture->listMoyensPaiement(true); $tpl->assign('moyens_paiement', $moyens_paiement); $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES'); -$tpl->assign('moyen_paiement_cerfa', f('moyen_paiement_cerfa') ?: 'ES'); - $tpl->assign('formes_don', array('1' => 'Acte authentique', '2' => 'Acte sous seing privé', '3' => 'Don manuel', @@ -36,7 +32,6 @@ $tpl->assign('formes_don', array('1' => 'Acte authentique', $tpl->assign('natures_don', array('1' => 'Numéraire', '2' => 'Chèque', '3' => 'Virement, CB; ...')); -$tpl->assign('textes_don', $facture->listTextesCerfa()); if ( !$target ) { f(['id' => 'required|numeric']); @@ -85,16 +80,6 @@ $form->runIf(f('save') && !$form->hasErrors(), $data['total'] = $data['toto']; unset($data['toto']); } - elseif ( f('type') == CERFA ) - { - $data['moyen_paiement'] = f('moyen_paiement_cerfa'); - $data['contenu'] = [ - 'forme' => f('forme_don'), - 'nature' => f('nature_don'), - 'texte' => f('texte_don')]; - $data['total'] = Utils::moneyToInteger(f('total')); - unset($data['toto']); - } if (f('base_receveur') == 'client') { $data['receveur_membre'] = 0; @@ -118,62 +103,9 @@ $form->runIf(f('save') && !$form->hasErrors(), }, $csrf_key); -$form->runIf(f('select_cotis') && !$form->hasErrors(), - function () use ($step) - { - $step = true; - }, 'add_cotis_1'); - -$form->runIf(f('add_cotis') && !$form->hasErrors(), - function () use ($radio, $fields, $facture, $form) - { - $radio['type'] = f('cotisation'); - try - { - $num = (int) str_replace('cotis_', '', $radio['type']); - foreach($fields as $field) - { - $cotis[$field] = f($field.'_'.$num); - } - - $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); - $r = $r[0]; - - $data = [ - 'type_facture' => COTIS, - 'numero' => f('numero_facture'), - 'receveur_membre' => 1, - 'receveur_id' => f('membre_cotis'), - 'date_emission' => f('date_emission'), - 'moyen_paiement' => 'AU', - 'total' => $r->paid_amount ?? $r->amount, - 'contenu' => ['id' => $cotis['id'], - 'intitule' => $cotis['label'], - 'souscription' => $cotis['date'], - 'expiration' => $cotis['expiry'] ] - ]; - - } - catch (UserException $e) - { - $form->addError($e->getMessage()); - } - }, 'add_cotis_2'); - if (! $form->hasErrors()) { - if ($step) - { - try - { - $liste = $facture->getCotis((int)f('membre_cotis')); - } - catch (UserException $e) - { - $form->addError($e->getMessage()); - } - } - elseif (count($data) > 0) + if (count($data) > 0) { if ($target) { @@ -205,19 +137,13 @@ if ($target) $doc['base_receveur'] = $f->receveur_membre ? 'membre' : 'client'; $doc['client'] = $f->receveur_id; $doc['membre'] = $f->receveur_id; - - if ( $f->type_facture == CERFA ) { - $doc['forme_don'] = $f->contenu['forme']; - $doc['nature_don'] = $f->contenu['nature']; - $doc['texte_don'] = $f->contenu['texte']; - } } // Type du document: $type = qg('t') ? (int) qg('t') : null; // Si le type est défini dans l'URL - if (in_array($type, [DEVIS, FACT, CERFA, COTIS], true)) + if (in_array($type, [DEVIS, FACT], true)) { $radio['type'] = $type; } // ... s'il a été rempli dans le formulaire envoyé @@ -246,14 +172,6 @@ else $doc['date_emission'] = f('date_emission') ?: $f->date_emission; $doc['date_echeance'] = f('date_echeance')?: $f->date_echeance; // Smarty m'a saoulé pour utiliser form_field|date_fr:--- - /* modif DD -- CERFA -------------------------------------- */ - if ( $f->type_facture == CERFA ) { - $doc['total'] = $f->total; - $doc['forme_don'] = $f->contenu['forme']; - $doc['nature_don'] = $f->contenu['nature']; - $doc['texte_don'] = $f->contenu['texte']; - } - $radio['type'] = f('type')??$doc['type']; } $tpl->assign('types_details', $facture->types); diff --git a/admin/_inc.php b/admin/_inc.php index 582e462..da3cd9d 100644 --- a/admin/_inc.php +++ b/admin/_inc.php @@ -7,8 +7,6 @@ use Paheko\Utils; define('DEVIS', 0); define('FACT', 1); -define('CERFA', 2); -define('COTIS', 3); const PATTERNS_LIST = [ null => 'Aucun, le numéro sera à spécifier manuellement pour chaque document', @@ -48,11 +46,11 @@ $tpl->register_function('money_fac', function (array $params) if (!isset($user)) { $user = false; - } + } if (!isset($name)) { - $name = 'prix[]'; + $name = 'prix[]'; } if (null !== $current_value && !$user) { @@ -62,7 +60,7 @@ $tpl->register_function('money_fac', function (array $params) if (null !== $current_value) { $current_value = htmlspecialchars($current_value, ENT_QUOTES, 'UTF-8'); } - + $currency = Config::getInstance()->get('monnaie'); return sprintf('
%s
'; - echo str_replace("\n", '
', $v['designation']); - echo '
'; - echo Utils::money_format($v['prix'], ',', ' ') .' €'; - echo '
'; + echo str_replace("\n", '
', $v['designation']); + echo '
'; + echo Utils::money_format($v['prix'], ',', ' ') .' €'; + echo '
{button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"}
{button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"}
- - - - - - - - - - - - {foreach from=$liste item=cotis key=i} - {if !$cotis.paid} - {continue} - {/if} - - - {foreach from=$cotis item=element key=key} - {if $key == 'paid'} - {continue} - {/if} - - {/foreach} - - {/foreach} -
IdIntituléDate d'inscriptionExpiration d'expirationTarifMontantSomme payée
- {input type="radio" name="cotisation" value="%s"|args:$i} - - -
- - - - -

- {csrf_field key="add_cotis_2"} - {button type="submit" name="add_cotis" label="Enregistrer" shape="right" class="main"} -

- {else} -

Ce membre n'a aucune cotisation payée.

- - {/if} -{/if} - {include file="%s/templates/_js.tpl"|args:$plugin_root} diff --git a/templates/_js.tpl b/templates/_js.tpl index 301ddae..bf382d3 100644 --- a/templates/_js.tpl +++ b/templates/_js.tpl @@ -19,8 +19,8 @@ function plus(){ var newdiv = document.createElement('tr'); newdiv.innerHTML = document.getElementById('Line1').innerHTML; - newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); - newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); + newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); + newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); newdiv.querySelector('.fact_rm_line button').onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); updateSum(); @@ -33,12 +33,12 @@ $('#ajouter_ligne').onclick = plus; - a = document.querySelectorAll('[name="remove_line"]'); + a = document.querySelectorAll('[name="remove_line"]'); l = a.length; for(i = 0; i < l; i++) { a[i].onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); - updateSum(); + updateSum(); }; } diff --git a/templates/aide.tpl b/templates/aide.tpl index 6f8c672..a66b7c2 100644 --- a/templates/aide.tpl +++ b/templates/aide.tpl @@ -17,8 +17,6 @@ -

Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), cela se passe dans la {link href="!config/custom.php" label="configuration de Paheko, onglet personnalisation"}. Il est préférable d'avoir un fond transparent. -

  • Pour créer un reçu sur une cotisation, il vaut mieux utiliser le module {link href="!config/ext" label="Reçu de paiement"} intégré à Paheko.
  • Pour créer un reçu fiscal, il vaut mieux utiliser le module {link href="!config/ext" label="Reçus fiscaux"} intégré à Paheko.
  • diff --git a/templates/clients.tpl b/templates/clients.tpl index f0b037b..9c40f2c 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -14,7 +14,7 @@ {/if} {if $key == 'siret'} - diff --git a/templates/config.tpl b/templates/config.tpl index f2da195..eab9225 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -27,25 +27,6 @@ {input type="text" name="ville_asso" source=$conf label="Ville"} -
    - Objet -
    -
    obligatoire pour reçus fiscaux
    - {input type="text" name="objet_0" source=$conf label="Ligne 1" maxlength=95} - {input type="text" name="objet_1" source=$conf label="Ligne 2" maxlength=95} - {input type="text" name="objet_2" source=$conf label="Ligne 3" maxlength=95} -
    -
    - -
    - Droit à la réduction d'impôt -
    -
    obligatoire pour reçus fiscaux
    - {input type="checkbox" name="droit_art200" value="1" source=$conf label="Article 200"} - {input type="checkbox" name="droit_art238bis" value="1" source=$conf label="Article 238 bis"} - {input type="checkbox" name="droit_art885_0VbisA" value="1" source=$conf label="Article 885-0V bis A"} -
    -
    @@ -74,7 +55,7 @@ {input type="checkbox" name="unique_client_name" value="1" source=$conf label="Noms des clients uniques"} {input type="select" name="pattern" label="Format de numéro de document" required=false options=$patterns source=$conf}
    - F = Facture, D = Devis, RF = Reçu fiscal, RC = Reçu cotisation + F = Facture, D = Devis
    Pour personnaliser l'apparence de la facture, il faut pour l'instant se retrousser les manches et éditer soi-même le fichier www/admin/pdf.php du plugin ! From 72999b9fc663dd9365669fee5174b6bfdd7e9e27 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 6 Sep 2024 22:03:07 +0200 Subject: [PATCH 11/29] suppression image cerfa --- public/cerfa-1.png | Bin 124219 -> 0 bytes public/cerfa-2.png | Bin 74131 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/cerfa-1.png delete mode 100644 public/cerfa-2.png diff --git a/public/cerfa-1.png b/public/cerfa-1.png deleted file mode 100644 index 5ae816377e6b3a8e1ce1ffb4eb3662e60beabb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124219 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 z 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
  • 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 diff --git a/public/cerfa-2.png b/public/cerfa-2.png deleted file mode 100644 index 1af01a64e8bec3609296915f27ba1348af49b1a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74131 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

    c%tzl^$D-`{y&qQnOxy5o>65S_Q z#)4;?&hl9W{M6xDy_4g&NmHG!xzwpYd2304)9jrGM|oGHlbn@RMQgR^(lW&+MqjX; zp~7OVR^;HD_`7L)&J=4*;x3aV+e=zB%$JsVcLHp>D$@hWkTKNO%u96}S|SybON5+| zGR22mp;?YqVs>$=W!H>^5OTw$G=ug5`GDH~LubF*p6q9i{_cC(RBtSW4|BB>P ze>dUe71wz*d62@M$^MD&Ax^)ctvA*H{gN*6#NFK?vlMnXZ^Y3IcjITx@8dP$U3dx% zZfL?8vJa@IY-@sMl!~R?`1u48bRPXn+|Vt-f*bMCL_2L(M{1w5oF1d8ji+y#wRirN z`Sv>jFZ-K^zC`ShPA`U#RJhQNRJCQ_Wr<$l3Q6PUtc;l?*zm#P?y&n@cc@gKu)!)= zJ!?jzuj3?2SH^TsK;J?#Ao&Rk68Xh3s$ban>CAhJ3K8knc8eMAnRJ!zx<&WKQZcve zfp#S`wK2*SuWj0izJLXVO7hCn;XG%>qpl-RI~_6PkjW4glW=|UT7vqz`;~4U>G**Y zhkfp0tGn$YgN@f<>t=FMUqw2aOBdR;SOTlzk-f9?oSSY63m3=Pg;q&=h4d%-NY{q} zBGJ0(V|9pAac-dfp=)#P@5DkJws>|*sa_nu4DN_s(Q;stYNT@QZJi;0XHNqPjYT5+ zj}t&*(B(V2=}>vH5o#cMqsm_LW2AzhvvSr8GBP8Oh9l8Ckak+I;OY>K&HLaaB~8bN zCXJ=-CG&|gvr6f{oR3oSzp;uvHXW>YNgBX44ecWC9WCVzULZ#*|v%MAq61TxALhMz+c(D7M z`5pM!;80sxh<%0eMV0$RRx0Y}A;~1)*-U9V>g(P9MkAsDOjQ}-&bm-zr9@xG%@;Fe zF0c4b-!KYt3Qg#SYj(<=5rFt_2WN;>euz6TRY@iZt?Z^iz-glBkrQi#P}8#Z+G3Z9 z-gTl-S@;OA(Qy1b(3*2v5jSb;===5V+dKrVn0sL;Ov?*Z!RSwzMHHYzm{#@U-N0q7 z;u(NI2a1}E#=)4*h+-hH3NRB66L&ZhxJqv&6wH-Bu!`VMdO$O7;~~im*{VU<-G&cb z<$aE67%eN_KQX zpzUMbM4HO#c@|tw|E&44vyx#G<4JOK@ggHc)Ll-}*?yRIqTf8!)d8Lq>1^l?3t5N{ zQzhqbCkY>aJ95VP0;gM2^ATaC7D{U%D4S@93bF>yb`+a4=#$|;hA=i%Y9Pe$W4_8F zuBv`h;pi`CtQO`r{7FtNM=xDSH(GwpYvZNJZP3=m54~<;FW8W8a8tC^9g$O@5H)`dPD`e_|(XEbv5Wx1C-q+8lbx5#AD&!&w;V~K@BX{iD1?$j4a5LpjfK4^X&x4 zM)*NCsdGtxKDQt*Mnb`uZ}4U6J_EoFRk)3y;A7QxFR)+TfdC1_?u&Nb=rRsJ1=Ae* zCSK*#qx>^!bsT3>&@$Mh4Sy;wdh#tDTCYm?SPm5%xl}mhu|Qf@z>R!_;ir`} z=0DD9_&RoXe8nHr-+`=EG=WM?FEq+L=qo!%Fuj9O!4sCUF?x}oO!VyP9L#y?g^vBhy?qmWL`Wrrr{5Rh z(W3mo7UDKS&>o%{d+f!Yrz?cOco7}dwO25bhy#3Af)&>#b+}fkT(_}9&G6tk{SRNyY}Z)Y({j8 z*{WMv_K`XxalP0zeC0+hnjGZ{;Xs!&mZj5%R$zKGrZ!%tMJONgp(fMDF3#3GmWds_ zjv!uCO+Z6t9|m}iRni20V4*kEz_^c5=<68;+jbUF-T>6mZNjK8hWqhs7=w_RdsdULif^J?|6wqhfKXi%CkU9>v!OXR1o0npPl1DK5|>>hBE_! z6d-{OR>&2)7ij&*hN>$f*(aEtS1gb1FB+XU(D<30U!*VIoy%>e+ z22$R~CIv*njRTLlv&(xOv3U12to{=Dm6>TF-uoULaES6^d^ z_k+Ddc0J0|O^=)~eSqQxqK+4YH#_LOOShgDZzEUL@@0p`Xy=-vh^RjzU!NH)j0?9# z2V^taf0Fm_{Mj$j?BoRukSGK=O@3kA`MuOq)1)u<*fCf%jA}kW1)IA&cpiMMY8c}h z4k@oYOqOo26QliOvxxh^h_4iY(k%H_-tL}%D0I#Y*0s`{AP2>1i53eB9Ef(CBfGu> z1f;A|)faf&flQu;H>o-!*H9{h*J0ZY_A7}_f`q6?EOQhHAwG*N$7P6Uwz(hW@FMsT zvyNkx4MMa@jPi)f?6-X=_p{-P*-_KDS&lD^wgEG)0>*iT?My8i4;||;K(vN<4uq&ic zURSlP^^0DyI@!JG*8t(}d-RxrvR{{Hjw(7^kA{t33NNlBS%Yua%xbzPP(|pje&Yh- z19^APHiBgY2-mtG(~{~B!8pw8I#%m?L9wUotqB?OOn&W-!-V9+i#OYX-Oq~cm&zjg zEyu0QHsnd)Z`0YOc9#dvo5gbVFQY88V5gF(s~o~1nxpo|?o&N4hzW^7J9smuWLlNH z5&LyqTIbNnuZI1BNBGLk%^$M!Wq-g5-B2~tu}tFayVVHp_4H3xpM^#4REQ+Y7VPFm z)nu;<9+MCg)bH{_clBA;qdD)qAaDujyvj)JEuUm{6?HEo3Xxz$u93Jri0jzQn=kUI z(ul$=ExR}a+UZJ=kfEE6l?ip$I(MPPMo@XgNM|Kl!2rXiU;s)IN1x~&QFbJfgkOCA z`a<8UcA(Vm>Rb>EQtCB}k{iaYkomJCT(ehlhDcogI-h#sq>bWB3t%Ean5$L&&bN%` znYNEC%da0lQy!vDSni?4*N9ssV|23$hezzIam_N-z(r! z{DFgIywBX-#xwp0-a#BHZdt!psv+67;U<=kr@MU7P}&_iyS!cloGA=qiUd<`NimkC z=Ka$9;!~Dzut}ca`};`2)Ir4HW!xsrauz*muM zl}40u&!R`LEz4pj2OW8}JdMU2SVivEheJ@d=ZO8+W7Uc&&Ks-qIry&mrtA7TbF(-_ zEHZ;+&v>Yg(JV(iRJE;6vn@DOHl6pbrE9WPxDT7#90(AkjF#N7Ou=ut8g0M8j3+2X zLh2bpQ85sfIGrUmvkc{|@{KgR@{l_SLV}AgUpU?y9T%`~*~WCAXK-;52OO06nb{sR zdW2V{r0i9`uRZ_K>{t%%oynr@m8BwrR08dSwMG`tHYKPLQy3df&2fQZ-kU&o)0ahW1-Wb_;kCDs1V9Nehx;N6aEGnYUmIE!8SNXaCB&mMW>p+QpMFm9 zASFl<*P|!Lvnn<-r+vY$Td;U**P0cXha1hf30Jx&mjP6WB0kr8M#Baxa?F z^RTABT&w@i7xmvPAoYLF1NPfv_V3eH|5fMNKfCpx`Hlhjzx{6igInSM*u3gLLHNIT z>c6}76aGKc<@#^8%=(w+=Kn*?{GL8+iH`h!J`@aO8Da3qo`1rx64`ucpkYGTZ#{_t z>328ZX&L?QCq!xgfWi;){BiI2_jIqGkgBVp3$(-SBdz1@Ta-WwuDSzN(oCz?l+#q+ zCwvVOL{o)=xe6x*Aw3XZFfO>yN}@m@SG4aryM>Y+op;`Ubz7aMu6(T zPYYhw?LKN{2A;VF55@o!gbd9dB%mC#GnuR}oJt)7nRx3@#j0gCL1Qb;^{m)ZW%lb4 znb%#}PEF=Q4Op9a;EA%;dTuF8*}khGFB;`lD>K=EtRO4Pqs`}~t-A-EB0o`at0>#e z*9|fp2=>cZtmf|;gmBUGCeSL<&hf!Gcd5%aF5NTUSPY|>h094_N20|nE=Xwd=0uH1 zbmkC(eIk?37`>hbXw!xZ4vWD7I&gzB8)C|#b2pGza3dg! z21eb&Epx?>Bsv$<=6;myTaJn3N8F(5gen;?@Y$pnB_3cqUDy4xabDAL2LiP~ITH0X zkRorUVd^kZj^>Gen&jQ!3x{RMMPU=j8m{gnuGYMC^MENm)~^kt(-RYOb{qiaawmqe zgy}qxc|PRDM}YGJkiv`LhNX56`wKDMZn^Jp2E?KsN=O(Ryxbv(1qlT~%wkuDj51$repI1UdAHu!-?<6G#Bh1kgN z)eWGvaR(=!wNx`8TEr%b)JSyN32rodG4fQ`2WU6=i0z^u+p6ET+`HU6@cRnrl-DZA>19Q59rWxP0>(x?RsYlj1D@cnm);ZWio{Ay zVk|C6ug68rjK9`BZ%FxBwrPz9`ZEahba9AT>8O!I(m#(zWn3iaHz z*j+$&$GzBNRXP=bUZ?!jQo?fMve5n6*XdRA_Pof`SrcA~tCHH(~cQExdWOYand3Jb<(w-?8 z=X=V0^E_PUoaqW}wO=TP(Gy$nxh;(67gJj#PT3|jeyjg>W#DRQa7@;cZS{j*e~E*a zl)A15Ww9T;7fIzVSb2S}r(-&SR~Bc}qjp!=DzVP@FM)3A*IigQb3`C|f$$@%cjmo? zntyaH~lUF&`ElAAWLm_48o`EIZ!60skAw74Bb{E$$7V zVgdd0gp;JYk4lmzC`C!nRgBB%0aRt& zfha-2KG(7uHl$w~zSzl$Jh(yLHGqA6+>4#xk!s*(oW%e)JFYJwS7BC`OHFHlao~a& z>04=3Lyv)ND&c`s=yG4*|KBMZe}wISN$778{;k&k z5#Qf?zrRHLFDd=kZv1cR!2daA`3D{NueItw0R9gN`(1PPFZ}ksCV+rLKaHZHVqatI-}!<68x_@odXdXJE5~S*2Rk@_H30r+ivwWH z{s*U!|Nj8<-r&#{an~k(vQpxwSWrH_!C-qkTO~Gqj@Ba(G6k~D# From da713cc06d99875f468e011690a3578b352757c2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 10 Sep 2024 15:37:22 +0200 Subject: [PATCH 12/29] =?UTF-8?q?Correction=20identit=C3=A9=20membre=20dan?= =?UTF-8?q?s=20formulaire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/_facture_common.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index ecc0c30..10b10a4 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -4,6 +4,28 @@ namespace Paheko; require_once __DIR__ . '/_inc.php'; +function toArray($array, $cle, $sep=",") +{ + $result = array(); + foreach ($array as $elem) + { + $ro = new \ReflectionObject($elem); + $proprietes = $ro->getProperties(); + $ligne = ""; + foreach ($proprietes as $p) + { + if ($p->getName() == $cle) { + $key = $p->getValue($elem); + } + else { + $ligne .= $sep . $p->getValue($elem); + } + } + $result[$key] = substr($ligne, strlen($sep)); + } + return $result; +} + if (!isset($target) || !in_array( $target, ['new', 'edit'])) { throw new Exception('blabla illegal call'); // Fix: exception type? } else { @@ -301,9 +323,8 @@ $date = new \DateTime; $date->setTimestamp(time()); $tpl->assign('date', $date->format('d/m/Y')); - $tpl->assign(compact('liste', 'radio', 'step', 'designations', 'prix', 'from_user', 'identite', 'csrf_key', 'doc')); -$tpl->assign('users', $db->getAssoc('SELECT id, '.$identite.' FROM users WHERE id_category != -2 NOT IN (SELECT id FROM users_categories WHERE hidden = 1) ORDER BY ' .$identite. ';')); +$tpl->assign('users', toArray($db->get('SELECT id, '.$identite.' FROM users WHERE id_category != -2 NOT IN (SELECT id FROM users_categories WHERE hidden = 1) ORDER BY ' .$identite. ';'), 'id', " ")); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;')); $tpl->assign('require_number', $require_number); $tpl->assign('number_pattern', PATTERNS_LIST[$plugin->getConfig('pattern')]); From 46d0c838ae220508a20951dd4f7199daa4b62aaf Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 18 Sep 2024 18:44:06 +0200 Subject: [PATCH 13/29] =?UTF-8?q?Prise=20en=20compte=20du=20cas=20o=C3=B9?= =?UTF-8?q?=20le=20champ=20nom=20n'existe=20pas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/pdf.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/admin/pdf.php b/admin/pdf.php index c8fa8c4..326897f 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -27,9 +27,12 @@ try // 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 **'; + $elem = $c->$elem; }); - $c->nom = implode(" ", $name_fields); + $nom_client = implode(" ", $name_fields); + if (preg_match('/^ +$/', $nom_client)) { + $nom_client = "** ABSENT **"; + } // adresse, code postal et ville peuvent être redéfini(e)s dans la configuration du plugin $adresse_client = $plugin->getConfig('adresse_client'); @@ -50,6 +53,7 @@ try else { $c = $client->get($f->receveur_id); + $nom_client = $c->nom; } } catch(UserException $e) @@ -123,7 +127,7 @@ if ($f->type_facture != CERFA) $receveur = $txtdest.'
    '. - ''.$c->nom.'
    '. + ''.$nom_client.'
    '. $c->adresse."
    ". $c->code_postal.' '.$c->ville."
    ". (($t = $c->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "
    ":''). @@ -375,7 +379,7 @@ elseif ($f->type_facture == CERFA) $t['objet1'] = $plugin->getConfig('objet_1'); $t['objet2'] = $plugin->getConfig('objet_2'); - $t['nom'] = $c->nom; + $t['nom'] = $nom_client; $t['adresse'] = $c->adresse; $t['cp'] = $c->code_postal; $t['ville'] = $c->ville; @@ -546,7 +550,7 @@ if(qg('d') !== null) { $filename = 'Print'; if (preg_match('!(.*)!U', $html, $match)) { - $filename = trim($match[1]); + $filename = str_replace(" ", "_", trim($match[1])); } header('Content-type: application/pdf'); From 77180a38ff82f35da130555f7172d05ac0f04cad Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 18 Oct 2024 21:30:45 +0200 Subject: [PATCH 14/29] Suppression message inutile pour devis --- admin/facture.php | 2 +- admin/pdf.php | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/admin/facture.php b/admin/facture.php index e0044b5..e375bf3 100644 --- a/admin/facture.php +++ b/admin/facture.php @@ -21,7 +21,7 @@ if (!$f) } $tpl->assign('type', $f->type_facture); -$tpl->assign('facture', $f); +$tpl->assign('facture', $f); $tpl->assign('id', $id); $tpl->assign('footer', $plugin->getConfig('footer')?:''); $tpl->assign('siret_asso', $plugin->getConfig('siret_asso')?:''); diff --git a/admin/pdf.php b/admin/pdf.php index 988fcf5..7ad78d5 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -132,7 +132,11 @@ $total = Utils::money_format($f->total, ',', ' '); // Devis et facture { $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; - $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; + if ($f->type_facture == FACT) { + $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; + } else { + $reglee = ""; + } $footer = str_replace("\n", '
    ', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; From 201682f4d78f201712b6e41bddbd97d6ecd9678a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 18 Oct 2024 22:25:31 +0200 Subject: [PATCH 15/29] Changement mention finale pour devis --- admin/config.php | 13 ------------- admin/pdf.php | 7 ++++++- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/admin/config.php b/admin/config.php index 1a1e24f..5f69cfe 100644 --- a/admin/config.php +++ b/admin/config.php @@ -20,22 +20,9 @@ $form->runIf('save', function () use ($plugin) { $plugin->setConfigProperty('cp_asso', trim(f('cp_asso'))); $plugin->setConfigProperty('ville_asso', trim(f('ville_asso'))); - $plugin->setConfigProperty('droit_art200', (bool)f('droit_art200')); - $plugin->setConfigProperty('droit_art238bis', (bool)f('droit_art238bis')); - $plugin->setConfigProperty('droit_art885_0VbisA', (bool)f('droit_art885_0VbisA')); - $plugin->setConfigProperty('objet_0', trim(f('objet_0'))); - $plugin->setConfigProperty('objet_1', trim(f('objet_1'))); - $plugin->setConfigProperty('objet_2', trim(f('objet_2')));; - $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')); diff --git a/admin/pdf.php b/admin/pdf.php index 7ad78d5..a76f653 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -189,12 +189,17 @@ EOF; $echeance
    $reglee Moyen de paiement : $moyen_paiement -

    $footer

    + EOF; + if ($f->type_facture == DEVIS) { + echo <<Bon pour accord, date et signature

    +EOF; + } $content = ob_get_clean(); From f6eef8897e7df1b2b5263a312655eabb52797f8a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 19 Oct 2024 14:26:06 +0200 Subject: [PATCH 16/29] Annulation "fusion branche simplification" This reverts commit 16daac2e244d7b8278a3d750dfb710704d1c6ccb, reversing changes made to 46d0c838ae220508a20951dd4f7199daa4b62aaf. --- admin/_facture_common.php | 86 ++++++++- admin/_inc.php | 8 +- admin/pdf.php | 379 ++++++++++++++++++++++++++++++-------- lib/Facture.php | 99 +++++++++- public/cerfa-1.png | Bin 0 -> 124219 bytes public/cerfa-2.png | Bin 0 -> 74131 bytes templates/_form.tpl | 112 ++++++++++- templates/_js.tpl | 8 +- templates/aide.tpl | 2 + templates/clients.tpl | 2 +- templates/config.tpl | 21 ++- 11 files changed, 619 insertions(+), 98 deletions(-) create mode 100644 public/cerfa-1.png create mode 100644 public/cerfa-2.png diff --git a/admin/_facture_common.php b/admin/_facture_common.php index 0d53054..10b10a4 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -43,10 +43,14 @@ $db = DB::getInstance(); $step = false; $radio = $liste = $designations = $prix = []; +$fields = $facture->recu_fields; + $moyens_paiement = $facture->listMoyensPaiement(true); $tpl->assign('moyens_paiement', $moyens_paiement); $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES'); +$tpl->assign('moyen_paiement_cerfa', f('moyen_paiement_cerfa') ?: 'ES'); + $tpl->assign('formes_don', array('1' => 'Acte authentique', '2' => 'Acte sous seing privé', '3' => 'Don manuel', @@ -54,6 +58,7 @@ $tpl->assign('formes_don', array('1' => 'Acte authentique', $tpl->assign('natures_don', array('1' => 'Numéraire', '2' => 'Chèque', '3' => 'Virement, CB; ...')); +$tpl->assign('textes_don', $facture->listTextesCerfa()); if ( !$target ) { f(['id' => 'required|numeric']); @@ -102,6 +107,16 @@ $form->runIf(f('save') && !$form->hasErrors(), $data['total'] = $data['toto']; unset($data['toto']); } + elseif ( f('type') == CERFA ) + { + $data['moyen_paiement'] = f('moyen_paiement_cerfa'); + $data['contenu'] = [ + 'forme' => f('forme_don'), + 'nature' => f('nature_don'), + 'texte' => f('texte_don')]; + $data['total'] = Utils::moneyToInteger(f('total')); + unset($data['toto']); + } if (f('base_receveur') == 'client') { $data['receveur_membre'] = 0; @@ -125,9 +140,62 @@ $form->runIf(f('save') && !$form->hasErrors(), }, $csrf_key); +$form->runIf(f('select_cotis') && !$form->hasErrors(), + function () use ($step) + { + $step = true; + }, 'add_cotis_1'); + +$form->runIf(f('add_cotis') && !$form->hasErrors(), + function () use ($radio, $fields, $facture, $form) + { + $radio['type'] = f('cotisation'); + try + { + $num = (int) str_replace('cotis_', '', $radio['type']); + foreach($fields as $field) + { + $cotis[$field] = f($field.'_'.$num); + } + + $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); + $r = $r[0]; + + $data = [ + 'type_facture' => COTIS, + 'numero' => f('numero_facture'), + 'receveur_membre' => 1, + 'receveur_id' => f('membre_cotis'), + 'date_emission' => f('date_emission'), + 'moyen_paiement' => 'AU', + 'total' => $r->paid_amount ?? $r->amount, + 'contenu' => ['id' => $cotis['id'], + 'intitule' => $cotis['label'], + 'souscription' => $cotis['date'], + 'expiration' => $cotis['expiry'] ] + ]; + + } + catch (UserException $e) + { + $form->addError($e->getMessage()); + } + }, 'add_cotis_2'); + if (! $form->hasErrors()) { - if (count($data) > 0) + if ($step) + { + try + { + $liste = $facture->getCotis((int)f('membre_cotis')); + } + catch (UserException $e) + { + $form->addError($e->getMessage()); + } + } + elseif (count($data) > 0) { if ($target) { @@ -159,13 +227,19 @@ if ($target) $doc['base_receveur'] = $f->receveur_membre ? 'membre' : 'client'; $doc['client'] = $f->receveur_id; $doc['membre'] = $f->receveur_id; + + if ( $f->type_facture == CERFA ) { + $doc['forme_don'] = $f->contenu['forme']; + $doc['nature_don'] = $f->contenu['nature']; + $doc['texte_don'] = $f->contenu['texte']; + } } // Type du document: $type = qg('t') ? (int) qg('t') : null; // Si le type est défini dans l'URL - if (in_array($type, [DEVIS, FACT], true)) + if (in_array($type, [DEVIS, FACT, CERFA, COTIS], true)) { $radio['type'] = $type; } // ... s'il a été rempli dans le formulaire envoyé @@ -194,6 +268,14 @@ else $doc['date_emission'] = f('date_emission') ?: $f->date_emission; $doc['date_echeance'] = f('date_echeance')?: $f->date_echeance; // Smarty m'a saoulé pour utiliser form_field|date_fr:--- + /* modif DD -- CERFA -------------------------------------- */ + if ( $f->type_facture == CERFA ) { + $doc['total'] = $f->total; + $doc['forme_don'] = $f->contenu['forme']; + $doc['nature_don'] = $f->contenu['nature']; + $doc['texte_don'] = $f->contenu['texte']; + } + $radio['type'] = f('type')??$doc['type']; } $tpl->assign('types_details', $facture->types); diff --git a/admin/_inc.php b/admin/_inc.php index da3cd9d..582e462 100644 --- a/admin/_inc.php +++ b/admin/_inc.php @@ -7,6 +7,8 @@ use Paheko\Utils; define('DEVIS', 0); define('FACT', 1); +define('CERFA', 2); +define('COTIS', 3); const PATTERNS_LIST = [ null => 'Aucun, le numéro sera à spécifier manuellement pour chaque document', @@ -46,11 +48,11 @@ $tpl->register_function('money_fac', function (array $params) if (!isset($user)) { $user = false; - } + } if (!isset($name)) { - $name = 'prix[]'; + $name = 'prix[]'; } if (null !== $current_value && !$user) { @@ -60,7 +62,7 @@ $tpl->register_function('money_fac', function (array $params) if (null !== $current_value) { $current_value = htmlspecialchars($current_value, ENT_QUOTES, 'UTF-8'); } - + $currency = Config::getInstance()->get('monnaie'); return sprintf('%s', $name, $current_value, $currency); } diff --git a/admin/pdf.php b/admin/pdf.php index a76f653..926c543 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -71,52 +71,59 @@ if (isset($f->date_echeance)) // -- Création du PDF -// Génération factures, devis -switch ($f->type_facture) +// Génération factures, devis et cotisation +if ($f->type_facture != CERFA) { - case FACT: - $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; -} + switch ($f->type_facture) + { + case FACT: + $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; + case COTIS: + $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 ! -if ($plugin->getConfig('rue_asso') != null && - $plugin->getConfig('cp_asso') != null && - $plugin->getConfig('ville_asso') != null) -{ - $adresse = - (($plugin->getConfig('numero_rue_asso') != null) ? $plugin->getConfig('numero_rue_asso') . " " : "") . - $plugin->getConfig('rue_asso') . "
    " . - $plugin->getConfig('cp_asso') . " " . - $plugin->getConfig('ville_asso'); -} -else if ($config->get('org_address') != null) -{ - $adresse = str_replace("\n", '
    ', $config->get('org_address')); -} -else { - $adresse = ""; -} + // utiliser l'adresse configurée dans le plugin sinon celle de l'asso sinon rien ! + if ($plugin->getConfig('rue_asso') != null && + $plugin->getConfig('cp_asso') != null && + $plugin->getConfig('ville_asso') != null) + { + $adresse = + (($plugin->getConfig('numero_rue_asso') != null) ? $plugin->getConfig('numero_rue_asso') . " " : "") . + $plugin->getConfig('rue_asso') . "
    " . + $plugin->getConfig('cp_asso') . " " . + $plugin->getConfig('ville_asso'); + } + else if ($config->get('org_address') != null) + { + $adresse = str_replace("\n", '
    ', $config->get('org_address')); + } + else { + $adresse = ""; + } -$logo=''; -if ($plugin->getConfig('logo')) { - $logo = ''; -} -$asso = - // 'Émis par :

    '. - ''.$config->get('org_name')."
    ". - $adresse ."
    ". - (($t = $plugin->getConfig('rna_asso'))?"RNA : $t
    ":''). - (($t = $plugin->getConfig('siret_asso'))?"SIRET : " . implode(' ', str_split($t, 3)) . "
    ":''). - (($t = $config->get('email_asso'))?"Email : $t
    ":''). - (($t = $config->get('site_asso'))?"Site web : $t
    ":''); + $logo=''; + if ($plugin->getConfig('logo')) { + $logo = ''; + } + $asso = + // 'Émis par :

    '. + ''.$config->get('org_name')."
    ". + $adresse ."
    ". + (($t = $plugin->getConfig('rna_asso'))?"RNA : $t
    ":''). + (($t = $plugin->getConfig('siret_asso'))?"SIRET : " . implode(' ', str_split($t, 3)) . "
    ":''). + (($t = $config->get('email_asso'))?"Email : $t
    ":''). + (($t = $config->get('site_asso'))?"Site web : $t
    ":''); $receveur = $txtdest.'
    '. @@ -127,22 +134,23 @@ $asso = (($t = $c->email)?"Email : $t
    ":''). (($t = $c->telephone)?"Tel : $t
    ":''); -$total = Utils::money_format($f->total, ',', ' '); + $total = Utils::money_format($f->total, ',', ' '); -// Devis et facture -{ - $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; - if ($f->type_facture == FACT) { - $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; - } else { - $reglee = ""; - } - $footer = str_replace("\n", '
    ', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); - $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; + // Devis et facture + if ($f->type_facture != COTIS) + { + $echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance; + if ($f->type_facture == FACT) { + $reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été réglée.'; + } else { + $reglee = ""; + } + $footer = str_replace("\n", '
    ', $plugin->getConfig('footer') ?? '[Pied de page à configurer]'); + $ttc = $plugin->getConfig('ttc') ? 'TTC':'HT'; - // Génération du contenu de la facture - ob_start(); - echo << Contenu - $doc @@ -162,18 +170,18 @@ $total = Utils::money_format($f->total, ',', ' '); EOF; - $i = 1; - foreach($f->contenu as $k=>$v) - { - echo ''; - echo str_replace("\n", '
    ', $v['designation']); - echo ''; - echo Utils::money_format($v['prix'], ',', ' ') .' €'; - echo ''; - $i++; - } + $i = 1; + foreach($f->contenu as $k=>$v) + { + echo ''; + echo str_replace("\n", '
    ', $v['designation']); + echo ''; + echo Utils::money_format($v['prix'], ',', ' ') .' €'; + echo ''; + $i++; + } - echo << @@ -201,14 +209,52 @@ EOF; EOF; } - $content = ob_get_clean(); + $content = ob_get_clean(); -} + } + else // Reçu de cotisation + { + $lieu = $plugin->getConfig('ville_asso'); + $intitule = $f->contenu['intitule']; -//-- Layout du document + $souscription = date('d/m/Y', strtotime($f->contenu['souscription'])); -ob_start(); -echo <<contenu['expiration'] == '1970-01-01') + { + $expiration = "jour même, s'agissant d'une cotisation ponctuelle."; + } + else { + $expiration = date('d/m/Y', strtotime($f->contenu['expiration'])); + } + + // Génération du contenu du reçu de cotisation + $content = << + Reçu de votre cotisation - $doc + +
    +
    +

    À $lieu, le $emission,

    +

    Bonjour,

    + +

    Nous accusons réception de votre cotisation « $intitule » reçue le $emission et nous vous en remercions.

    +

    Nous reconnaissons que vous avez acquitté la somme de {$total} €.
    111 + Votre adhésion sera donc effective à compter du $souscription jusqu’au $expiration.

    +
    + +

    Nous vous prions de recevoir, chère adhérente, cher adhérent, nos meilleures salutations,

    +
    +

    -représentant·e de l'asso-

    +
    +

    Nous vous rappelons que la cotisation n’est pas soumise à la TVA et qu’elle ne donne pas lieu à la délivrance d’une facture. Elle n’ouvre pas droit au bénéfice des dispositions des articles 200, 238 bis et 885-0 V bis A du code général des impôts.

    +
    +EOF; + } + + //-- Layout du document + + ob_start(); + echo << @@ -322,7 +368,192 @@ echo << EOF; -$html = ob_get_clean(); + $html = ob_get_clean(); + +} // Génération du CERFA +elseif ($f->type_facture == CERFA) +{ + + $doc = 'Reçu de don n°'. $f->numero; + $url = WWW_URL; + $libelles = $facture->listTextesCerfa(false); + + $t['numero'] = $f->numero; + $t['org_name'] = $config->get('org_name'); + $t['n_rue_asso'] = $plugin->getConfig('numero_rue_asso'); + $t['rue_asso'] = $plugin->getConfig('rue_asso'); + $t['cp_asso'] = $plugin->getConfig('cp_asso'); + $t['ville_asso'] = $plugin->getConfig('ville_asso'); + $t['objet0'] = $plugin->getConfig('objet_0'); + $t['objet1'] = $plugin->getConfig('objet_1'); + $t['objet2'] = $plugin->getConfig('objet_2'); + + $t['nom'] = $nom_client; + $t['adresse'] = $c->adresse; + $t['cp'] = $c->code_postal; + $t['ville'] = $c->ville; + $t['total'] = '***'.Utils::money_format($f->total).'***'; + $t['total_lettre'] = numfmt_create('fr_FR', \NumberFormatter::SPELLOUT)->format($f->total/100). ' euros'; + + + $t['d'] = ($f->date_emission->format('d')); + $t['m'] = ($f->date_emission->format('m')); + $t['Y'] = ($f->date_emission->format('Y')); + + $t['forme'] = $f->contenu['forme']; + $t['nature'] = $f->contenu['nature']; + $t['texte'] = $libelles[$f->contenu['texte']]; + + $t['art200'] = $t['art238'] = $t['art885'] = ''; + if($plugin->getConfig('droit_art200')){ + $t['art200'] = 'X'; + } + if($plugin->getConfig('droit_art238bis')){ + $t['art238'] = 'X'; + } + if($plugin->getConfig('droit_art885-0VbisA')){ + $t['art885'] = 'X'; + } + + // forme du don + switch ($t['forme']){ + case '1': + $t['frm'] = 'left: 15mm;'; + break; + case '2': + $t['frm'] = 'left: 57.3mm;'; + break; + case '3': + $t['frm'] = 'left: 115.2mm;'; + break; + case '4': + $t['frm'] = 'left: 175.2mm;'; + } + // nature du don + switch ($t['nature']){ + case '1': + $t['nat'] = 'left: 15mm;'; + break; + case '2': + $t['nat'] = 'left: 57.3mm;'; + break; + case '3': + $t['nat'] = 'left: 115.2mm;'; + } + // moyen de paiement + switch ($f->moyen_paiement){ + case 'ES': + $t['pos'] = 'left: 15mm;'; + break; + case 'CH': + $t['pos'] = 'left: 57.3mm;'; + break; + default: + $t['pos'] = 'left: 115.2mm;'; + } + + $t['d2'] = ($f->date_echeance->format('d')); + $t['m2'] = ($f->date_echeance->format('m')); + $t['Y2'] = ($f->date_echeance->format('Y')); + + ob_start(); + echo << + + + + {$doc}_{$emission} + + + +
    +
    {$t['numero']}
    + +
    {$t['org_name']}
    +
    {$t['n_rue_asso']}
    +
    {$t['rue_asso']}
    +
    {$t['cp_asso']}
    +
    {$t['ville_asso']}
    + +
    {$t['objet0']}
    +
    {$t['objet1']}
    +
    {$t['objet2']}
    + +
    X
    +
    +
    +
    {$t['nom']}
    +
    {$t['adresse']}
    +
    {$t['cp']}
    +
    {$t['ville']}
    + +
    {$t['total']}
    +
    {$t['total_lettre']}
    + +
    {$t['d']}
    +
    {$t['m']}
    +
    {$t['Y']}
    + +
    {$t['art200']}
    +
    {$t['art238']}
    +
    {$t['art885']}
    +
    X
    +
    X
    +
    {$t['texte']}
    +
    X
    + +
    {$t['d2']}
    +
    {$t['m2']}
    +
    {$t['Y2']}
    + +
    {$sign_tag}
    +
    + + +EOF; + + $html = ob_get_clean(); + +} // End if cerfa + if(qg('d') !== null) { diff --git a/lib/Facture.php b/lib/Facture.php index 9433be3..9baabf8 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -15,15 +15,17 @@ class Facture const TYPES_NAMES = [ DEVIS => 'Devis', FACT => 'Facture', + CERFA => 'Reçu fiscal', + COTIS => 'Reçu de cotisation', ]; private $keys = [ - 'type_facture', // 0 : devis, 1 : facture + 'type_facture', // 0 : devis, 1 : facture, 2 : reçu cerfa, 3 : reçu cotis 'numero', 'receveur_membre', 'receveur_id', - 'date_emission', - 'date_echeance', + 'date_emission', // Reçus : date du don + 'date_echeance', // Reçus : date d'édition du reçu 'reglee', 'archivee', 'moyen_paiement', @@ -42,6 +44,16 @@ class Facture 'accounts' => [], 'label' => 'Facture', 'help' => ''], + CERFA => [ + 'id' => CERFA, + 'accounts' => [], + 'label' => 'Reçu fiscal', + 'help' => 'Reçu fiscal pour un don (membre ou client)'], + COTIS => [ + 'id' => COTIS, + 'accounts' => [], + 'label' => 'Reçu de cotisation', + 'help' => 'Reçu pour une cotisation payée par un·e membre'], ]; public function __construct() @@ -76,12 +88,18 @@ class Facture } if ($datas[$k] < 2) { $fac = true; + $cerfa = false; + $recu = false; } elseif ($datas[$k] == 2) { $fac = false; + $cerfa = true; + $recu = false; } elseif ($datas[$k] == 3) { $fac = false; + $cerfa = false; + $recu = true; } break; case 'receveur_membre': @@ -144,9 +162,21 @@ class Facture throw new UserException("Toutes les désignations/prix sont vides."); } } + elseif ($cerfa) + { + + } + elseif ($recu) + { + // $fields = ['id', 'intitule', 'date', 'expiration']; + // foreach ($datas[$k]as $) + } $datas[$k] = json_encode($datas[$k]); break; case 'total': + if ($cerfa && $datas[$k] < 1) { + throw new UserException('Le total ne peut être inférieur à 1€ pour les reçus (bug encore non résolu).'); + } if ($fac && !isset($datas['contenu'])) { throw new UserException("Pas de contenu fourni pour vérifier le total."); } @@ -200,6 +230,15 @@ class Facture $type = 'FACT'; $t = 'F'; } + elseif ($type == CERFA) { + $type = 'CERFA'; + $t = 'RF'; + } + else { + $type = 'COTIS'; + $t = 'RC'; + } + $year = $date->format('Y'); $y = $date->format('y'); @@ -376,9 +415,21 @@ class Facture // Remplir le contenu $content = json_decode((string)$row->contenu); - $row->contenu = implode("\n", array_map(function ($row) use ($currency) { - return sprintf('%s : %s %s', $row->designation, Utils::money_format($row->prix), $currency); - }, (array)$content)); + if ($row->type_facture == COTIS && isset($content->intitule, $content->souscription)) { + $row->contenu = sprintf("Cotisation %s\nSouscrite le %s", + $content->intitule, + Utils::date_fr($content->souscription, 'd/m/Y') + ); + } + elseif ($row->type_facture != CERFA) { + $row->contenu = implode("\n", array_map(function ($row) use ($currency) { + return sprintf('%s : %s %s', $row->designation, Utils::money_format($row->prix), $currency); + }, (array)$content)); + } + else + { + $row->contenu = ''; + } }); return $list; @@ -448,6 +499,31 @@ class Facture return DB::getInstance()->test('plugin_facturation_factures', 'receveur_membre = ? AND receveur_id = ?', $base, $id); } + // ** Pour type reçu ** + + public $recu_fields = ['id', 'label', 'amount', 'date', 'expiry', 'paid', 'paid_amount']; + + public function getCotis(int $user_id, int $su_id = null) + { + $where = 'WHERE su.id_user = ?'; + if (null !== $su_id) + { + $where .= ' AND su.id = '.$su_id; + } + + $sql = 'SELECT su.id, s.label, su.date, MAX(su.expiry_date) as expiry, sf.label as fee, sf.amount as amount, su.paid, SUM(tl.debit) as paid_amount + FROM services_users su + INNER JOIN services s ON s.id = su.id_service + LEFT JOIN services_fees sf ON sf.id = su.id_fee + LEFT JOIN acc_transactions_users tu ON tu.id_service_user = su.id + LEFT JOIN acc_transactions_lines tl ON tl.id_transaction = tu.id_transaction + '.$where.' + GROUP BY su.id + ORDER BY su.date;'; + + return DB::getInstance()->get($sql, $user_id); + } + public function listMoyensPaiement($assoc = false) { $db = DB::getInstance(); @@ -462,6 +538,17 @@ class Facture } } + /* modif DD -- lecture et retour des textes de CERFA -- */ + public function listTextesCerfa($menu = true) + { + $db = DB::getInstance(); + + $sel = ($menu) ? 'id, menu' : 'id, texte'; + $query = 'SELECT '.$sel.' FROM "plugin_facturation_txt_cerfa" WHERE 1 ORDER BY id ;'; + + return $db->getAssoc($query); + } + public function getMoyenPaiement($code) { $db = DB::getInstance(); diff --git a/public/cerfa-1.png b/public/cerfa-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae816377e6b3a8e1ce1ffb4eb3662e60beabb7d GIT binary patch literal 124219 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 z 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
  • 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 literal 0 HcmV?d00001 diff --git a/public/cerfa-2.png b/public/cerfa-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1af01a64e8bec3609296915f27ba1348af49b1a5 GIT binary patch literal 74131 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

    c%tzl^$D-`{y&qQnOxy5o>65S_Q z#)4;?&hl9W{M6xDy_4g&NmHG!xzwpYd2304)9jrGM|oGHlbn@RMQgR^(lW&+MqjX; zp~7OVR^;HD_`7L)&J=4*;x3aV+e=zB%$JsVcLHp>D$@hWkTKNO%u96}S|SybON5+| zGR22mp;?YqVs>$=W!H>^5OTw$G=ug5`GDH~LubF*p6q9i{_cC(RBtSW4|BB>P ze>dUe71wz*d62@M$^MD&Ax^)ctvA*H{gN*6#NFK?vlMnXZ^Y3IcjITx@8dP$U3dx% zZfL?8vJa@IY-@sMl!~R?`1u48bRPXn+|Vt-f*bMCL_2L(M{1w5oF1d8ji+y#wRirN z`Sv>jFZ-K^zC`ShPA`U#RJhQNRJCQ_Wr<$l3Q6PUtc;l?*zm#P?y&n@cc@gKu)!)= zJ!?jzuj3?2SH^TsK;J?#Ao&Rk68Xh3s$ban>CAhJ3K8knc8eMAnRJ!zx<&WKQZcve zfp#S`wK2*SuWj0izJLXVO7hCn;XG%>qpl-RI~_6PkjW4glW=|UT7vqz`;~4U>G**Y zhkfp0tGn$YgN@f<>t=FMUqw2aOBdR;SOTlzk-f9?oSSY63m3=Pg;q&=h4d%-NY{q} zBGJ0(V|9pAac-dfp=)#P@5DkJws>|*sa_nu4DN_s(Q;stYNT@QZJi;0XHNqPjYT5+ zj}t&*(B(V2=}>vH5o#cMqsm_LW2AzhvvSr8GBP8Oh9l8Ckak+I;OY>K&HLaaB~8bN zCXJ=-CG&|gvr6f{oR3oSzp;uvHXW>YNgBX44ecWC9WCVzULZ#*|v%MAq61TxALhMz+c(D7M z`5pM!;80sxh<%0eMV0$RRx0Y}A;~1)*-U9V>g(P9MkAsDOjQ}-&bm-zr9@xG%@;Fe zF0c4b-!KYt3Qg#SYj(<=5rFt_2WN;>euz6TRY@iZt?Z^iz-glBkrQi#P}8#Z+G3Z9 z-gTl-S@;OA(Qy1b(3*2v5jSb;===5V+dKrVn0sL;Ov?*Z!RSwzMHHYzm{#@U-N0q7 z;u(NI2a1}E#=)4*h+-hH3NRB66L&ZhxJqv&6wH-Bu!`VMdO$O7;~~im*{VU<-G&cb z<$aE67%eN_KQX zpzUMbM4HO#c@|tw|E&44vyx#G<4JOK@ggHc)Ll-}*?yRIqTf8!)d8Lq>1^l?3t5N{ zQzhqbCkY>aJ95VP0;gM2^ATaC7D{U%D4S@93bF>yb`+a4=#$|;hA=i%Y9Pe$W4_8F zuBv`h;pi`CtQO`r{7FtNM=xDSH(GwpYvZNJZP3=m54~<;FW8W8a8tC^9g$O@5H)`dPD`e_|(XEbv5Wx1C-q+8lbx5#AD&!&w;V~K@BX{iD1?$j4a5LpjfK4^X&x4 zM)*NCsdGtxKDQt*Mnb`uZ}4U6J_EoFRk)3y;A7QxFR)+TfdC1_?u&Nb=rRsJ1=Ae* zCSK*#qx>^!bsT3>&@$Mh4Sy;wdh#tDTCYm?SPm5%xl}mhu|Qf@z>R!_;ir`} z=0DD9_&RoXe8nHr-+`=EG=WM?FEq+L=qo!%Fuj9O!4sCUF?x}oO!VyP9L#y?g^vBhy?qmWL`Wrrr{5Rh z(W3mo7UDKS&>o%{d+f!Yrz?cOco7}dwO25bhy#3Af)&>#b+}fkT(_}9&G6tk{SRNyY}Z)Y({j8 z*{WMv_K`XxalP0zeC0+hnjGZ{;Xs!&mZj5%R$zKGrZ!%tMJONgp(fMDF3#3GmWds_ zjv!uCO+Z6t9|m}iRni20V4*kEz_^c5=<68;+jbUF-T>6mZNjK8hWqhs7=w_RdsdULif^J?|6wqhfKXi%CkU9>v!OXR1o0npPl1DK5|>>hBE_! z6d-{OR>&2)7ij&*hN>$f*(aEtS1gb1FB+XU(D<30U!*VIoy%>e+ z22$R~CIv*njRTLlv&(xOv3U12to{=Dm6>TF-uoULaES6^d^ z_k+Ddc0J0|O^=)~eSqQxqK+4YH#_LOOShgDZzEUL@@0p`Xy=-vh^RjzU!NH)j0?9# z2V^taf0Fm_{Mj$j?BoRukSGK=O@3kA`MuOq)1)u<*fCf%jA}kW1)IA&cpiMMY8c}h z4k@oYOqOo26QliOvxxh^h_4iY(k%H_-tL}%D0I#Y*0s`{AP2>1i53eB9Ef(CBfGu> z1f;A|)faf&flQu;H>o-!*H9{h*J0ZY_A7}_f`q6?EOQhHAwG*N$7P6Uwz(hW@FMsT zvyNkx4MMa@jPi)f?6-X=_p{-P*-_KDS&lD^wgEG)0>*iT?My8i4;||;K(vN<4uq&ic zURSlP^^0DyI@!JG*8t(}d-RxrvR{{Hjw(7^kA{t33NNlBS%Yua%xbzPP(|pje&Yh- z19^APHiBgY2-mtG(~{~B!8pw8I#%m?L9wUotqB?OOn&W-!-V9+i#OYX-Oq~cm&zjg zEyu0QHsnd)Z`0YOc9#dvo5gbVFQY88V5gF(s~o~1nxpo|?o&N4hzW^7J9smuWLlNH z5&LyqTIbNnuZI1BNBGLk%^$M!Wq-g5-B2~tu}tFayVVHp_4H3xpM^#4REQ+Y7VPFm z)nu;<9+MCg)bH{_clBA;qdD)qAaDujyvj)JEuUm{6?HEo3Xxz$u93Jri0jzQn=kUI z(ul$=ExR}a+UZJ=kfEE6l?ip$I(MPPMo@XgNM|Kl!2rXiU;s)IN1x~&QFbJfgkOCA z`a<8UcA(Vm>Rb>EQtCB}k{iaYkomJCT(ehlhDcogI-h#sq>bWB3t%Ean5$L&&bN%` znYNEC%da0lQy!vDSni?4*N9ssV|23$hezzIam_N-z(r! z{DFgIywBX-#xwp0-a#BHZdt!psv+67;U<=kr@MU7P}&_iyS!cloGA=qiUd<`NimkC z=Ka$9;!~Dzut}ca`};`2)Ir4HW!xsrauz*muM zl}40u&!R`LEz4pj2OW8}JdMU2SVivEheJ@d=ZO8+W7Uc&&Ks-qIry&mrtA7TbF(-_ zEHZ;+&v>Yg(JV(iRJE;6vn@DOHl6pbrE9WPxDT7#90(AkjF#N7Ou=ut8g0M8j3+2X zLh2bpQ85sfIGrUmvkc{|@{KgR@{l_SLV}AgUpU?y9T%`~*~WCAXK-;52OO06nb{sR zdW2V{r0i9`uRZ_K>{t%%oynr@m8BwrR08dSwMG`tHYKPLQy3df&2fQZ-kU&o)0ahW1-Wb_;kCDs1V9Nehx;N6aEGnYUmIE!8SNXaCB&mMW>p+QpMFm9 zASFl<*P|!Lvnn<-r+vY$Td;U**P0cXha1hf30Jx&mjP6WB0kr8M#Baxa?F z^RTABT&w@i7xmvPAoYLF1NPfv_V3eH|5fMNKfCpx`Hlhjzx{6igInSM*u3gLLHNIT z>c6}76aGKc<@#^8%=(w+=Kn*?{GL8+iH`h!J`@aO8Da3qo`1rx64`ucpkYGTZ#{_t z>328ZX&L?QCq!xgfWi;){BiI2_jIqGkgBVp3$(-SBdz1@Ta-WwuDSzN(oCz?l+#q+ zCwvVOL{o)=xe6x*Aw3XZFfO>yN}@m@SG4aryM>Y+op;`Ubz7aMu6(T zPYYhw?LKN{2A;VF55@o!gbd9dB%mC#GnuR}oJt)7nRx3@#j0gCL1Qb;^{m)ZW%lb4 znb%#}PEF=Q4Op9a;EA%;dTuF8*}khGFB;`lD>K=EtRO4Pqs`}~t-A-EB0o`at0>#e z*9|fp2=>cZtmf|;gmBUGCeSL<&hf!Gcd5%aF5NTUSPY|>h094_N20|nE=Xwd=0uH1 zbmkC(eIk?37`>hbXw!xZ4vWD7I&gzB8)C|#b2pGza3dg! z21eb&Epx?>Bsv$<=6;myTaJn3N8F(5gen;?@Y$pnB_3cqUDy4xabDAL2LiP~ITH0X zkRorUVd^kZj^>Gen&jQ!3x{RMMPU=j8m{gnuGYMC^MENm)~^kt(-RYOb{qiaawmqe zgy}qxc|PRDM}YGJkiv`LhNX56`wKDMZn^Jp2E?KsN=O(Ryxbv(1qlT~%wkuDj51$repI1UdAHu!-?<6G#Bh1kgN z)eWGvaR(=!wNx`8TEr%b)JSyN32rodG4fQ`2WU6=i0z^u+p6ET+`HU6@cRnrl-DZA>19Q59rWxP0>(x?RsYlj1D@cnm);ZWio{Ay zVk|C6ug68rjK9`BZ%FxBwrPz9`ZEahba9AT>8O!I(m#(zWn3iaHz z*j+$&$GzBNRXP=bUZ?!jQo?fMve5n6*XdRA_Pof`SrcA~tCHH(~cQExdWOYand3Jb<(w-?8 z=X=V0^E_PUoaqW}wO=TP(Gy$nxh;(67gJj#PT3|jeyjg>W#DRQa7@;cZS{j*e~E*a zl)A15Ww9T;7fIzVSb2S}r(-&SR~Bc}qjp!=DzVP@FM)3A*IigQb3`C|f$$@%cjmo? zntyaH~lUF&`ElAAWLm_48o`EIZ!60skAw74Bb{E$$7V zVgdd0gp;JYk4lmzC`C!nRgBB%0aRt& zfha-2KG(7uHl$w~zSzl$Jh(yLHGqA6+>4#xk!s*(oW%e)JFYJwS7BC`OHFHlao~a& z>04=3Lyv)ND&c`s=yG4*|KBMZe}wISN$778{;k&k z5#Qf?zrRHLFDd=kZv1cR!2daA`3D{NueItw0R9gN`(1PPFZ}ksCV+rLKaHZHVqatI-}!<68x_@odXdXJE5~S*2Rk@_H30r+ivwWH z{s*U!|Nj8<-r&#{an~k(vQpxwSWrH_!C-qkTO~Gqj@Ba(G6k~D# literal 0 HcmV?d00001 diff --git a/templates/_form.tpl b/templates/_form.tpl index 8f78d7e..3e6029d 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -24,6 +24,8 @@

    Créer un devis Créer une facture + Créer un reçu fiscal + Créer un reçu de cotisation
    {input type="text" name="numero_facture" maxlength=18 label="Numéro du document" required=$require_number source=$doc} @@ -36,21 +38,27 @@ {/if} {input type="date" name="date_emission" default=$date label="Date d'émission" required=1 source=$doc} -
    +
    +

    Date du versemen du don

    +
    +
    {input type="date" name="date_echeance" default=$date label="Date d'échéance" required=1 source=$doc} +
    +

    Date d'établissement du document

    +
    - + {input type="checkbox" name="reglee" value="1" label="Réglée" source=$doc data-types="t1"} -
    +
    {input type="checkbox" name="archivee" value="1" label="Archivée" source=$doc disabled="disabled"}
    -
    +
    Client
    @@ -105,14 +113,14 @@ {button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"} - {foreach from=$designations item=designation key=key} + {foreach from=$designations item=designation key=key} {money_fac value=$prix[$key] user=$from_user} {button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"} {/foreach} - {else} + {else} {money_fac name="prix_tpl[]"} @@ -131,12 +139,102 @@
    + +
    + Contenu +
    + {input type="money" name="total" label="Montant du don" required=1 source=$doc default="0,0"} + {input type="select" name="forme_don" required=1 label="Forme du don" source=$doc options=$formes_don default=$doc.forme_don} + {input type="select" name="nature_don" required=1 label="Nature du don" source=$doc options=$natures_don default=$doc.nature_don} + {input type="select" name="texte_don" required=1 label="Texte explicatif" source=$doc options=$textes_don default=$doc.texte_don} + {input type="select" name="moyen_paiement_cerfa" required=1 label="Moyen de paiement" source=$doc options=$moyens_paiement default=$doc.moyen_paiement_cerfa} +
    -

    +

    + +

    {csrf_field key=$csrf_key} {button type="submit" name="save" label="Enregistrer" shape="right" class="main"}

    +
    + Membre +
    +
    +
    + {input type="select" name="membre_cotis" label="Membre" options=$users required=1 default=$doc.membre} +
    +
    +
    + +

    + {csrf_field key="add_cotis_1"} + {button type="submit" name="select_cotis" label="Sélectionner" shape="right" class="main"} +

    + + +{if $step} +
    + Cotisation + {if count($liste)} +
    +
    Sélectionnez la cotisation concernée :
    + + + + + + + + + + + + + + {foreach from=$liste item=cotis key=i} + {if !$cotis.paid} + {continue} + {/if} + + + {foreach from=$cotis item=element key=key} + {if $key == 'paid'} + {continue} + {/if} + + {/foreach} + + {/foreach} +
    IdIntituléDate d'inscriptionExpiration d'expirationTarifMontantSomme payée
    + {input type="radio" name="cotisation" value="%s"|args:$i} + + +
    + +
    +
    + +

    + {csrf_field key="add_cotis_2"} + {button type="submit" name="add_cotis" label="Enregistrer" shape="right" class="main"} +

    + {else} +

    Ce membre n'a aucune cotisation payée.

    +
    + {/if} +{/if} + {include file="%s/templates/_js.tpl"|args:$plugin_root} diff --git a/templates/_js.tpl b/templates/_js.tpl index bf382d3..301ddae 100644 --- a/templates/_js.tpl +++ b/templates/_js.tpl @@ -19,8 +19,8 @@ function plus(){ var newdiv = document.createElement('tr'); newdiv.innerHTML = document.getElementById('Line1').innerHTML; - newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); - newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); + newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); + newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); newdiv.querySelector('.fact_rm_line button').onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); updateSum(); @@ -33,12 +33,12 @@ $('#ajouter_ligne').onclick = plus; - a = document.querySelectorAll('[name="remove_line"]'); + a = document.querySelectorAll('[name="remove_line"]'); l = a.length; for(i = 0; i < l; i++) { a[i].onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); - updateSum(); + updateSum(); }; } diff --git a/templates/aide.tpl b/templates/aide.tpl index a66b7c2..6f8c672 100644 --- a/templates/aide.tpl +++ b/templates/aide.tpl @@ -17,6 +17,8 @@ +

    Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), cela se passe dans la {link href="!config/custom.php" label="configuration de Paheko, onglet personnalisation"}. Il est préférable d'avoir un fond transparent. +

    • Pour créer un reçu sur une cotisation, il vaut mieux utiliser le module {link href="!config/ext" label="Reçu de paiement"} intégré à Paheko.
    • Pour créer un reçu fiscal, il vaut mieux utiliser le module {link href="!config/ext" label="Reçus fiscaux"} intégré à Paheko.
    • diff --git a/templates/clients.tpl b/templates/clients.tpl index 9c40f2c..f0b037b 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -14,7 +14,7 @@ {/if} {if $key == 'siret'} - diff --git a/templates/config.tpl b/templates/config.tpl index eab9225..f2da195 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -27,6 +27,25 @@ {input type="text" name="ville_asso" source=$conf label="Ville"} +
      + Objet +
      +
      obligatoire pour reçus fiscaux
      + {input type="text" name="objet_0" source=$conf label="Ligne 1" maxlength=95} + {input type="text" name="objet_1" source=$conf label="Ligne 2" maxlength=95} + {input type="text" name="objet_2" source=$conf label="Ligne 3" maxlength=95} +
      +
      + +
      + Droit à la réduction d'impôt +
      +
      obligatoire pour reçus fiscaux
      + {input type="checkbox" name="droit_art200" value="1" source=$conf label="Article 200"} + {input type="checkbox" name="droit_art238bis" value="1" source=$conf label="Article 238 bis"} + {input type="checkbox" name="droit_art885_0VbisA" value="1" source=$conf label="Article 885-0V bis A"} +
      +
      @@ -55,7 +74,7 @@ {input type="checkbox" name="unique_client_name" value="1" source=$conf label="Noms des clients uniques"} {input type="select" name="pattern" label="Format de numéro de document" required=false options=$patterns source=$conf}
      - F = Facture, D = Devis + F = Facture, D = Devis, RF = Reçu fiscal, RC = Reçu cotisation
      Pour personnaliser l'apparence de la facture, il faut pour l'instant se retrousser les manches et éditer soi-même le fichier www/admin/pdf.php du plugin ! From 6248904bd8f8831beef2447fbb154d2bd71c81a8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 19 Oct 2024 14:32:41 +0200 Subject: [PATCH 17/29] correction typos --- admin/_inc.php | 6 +++--- templates/_form.tpl | 8 ++++---- templates/_js.tpl | 10 +++++----- templates/clients.tpl | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/admin/_inc.php b/admin/_inc.php index 582e462..6b5906e 100644 --- a/admin/_inc.php +++ b/admin/_inc.php @@ -48,11 +48,11 @@ $tpl->register_function('money_fac', function (array $params) if (!isset($user)) { $user = false; - } + } if (!isset($name)) { - $name = 'prix[]'; + $name = 'prix[]'; } if (null !== $current_value && !$user) { @@ -62,7 +62,7 @@ $tpl->register_function('money_fac', function (array $params) if (null !== $current_value) { $current_value = htmlspecialchars($current_value, ENT_QUOTES, 'UTF-8'); } - + $currency = Config::getInstance()->get('monnaie'); return sprintf('%s', $name, $current_value, $currency); } diff --git a/templates/_form.tpl b/templates/_form.tpl index 3e6029d..93a0277 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -49,7 +49,7 @@
      - + {input type="checkbox" name="reglee" value="1" label="Réglée" source=$doc data-types="t1"}
      {input type="checkbox" name="archivee" value="1" label="Archivée" source=$doc disabled="disabled"} @@ -113,14 +113,14 @@ {button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"} - {foreach from=$designations item=designation key=key} + {foreach from=$designations item=designation key=key} {money_fac value=$prix[$key] user=$from_user} {button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"} {/foreach} - {else} + {else} {money_fac name="prix_tpl[]"} @@ -139,7 +139,7 @@ - +
      Contenu
      diff --git a/templates/_js.tpl b/templates/_js.tpl index 301ddae..5c63c5f 100644 --- a/templates/_js.tpl +++ b/templates/_js.tpl @@ -19,8 +19,8 @@ function plus(){ var newdiv = document.createElement('tr'); newdiv.innerHTML = document.getElementById('Line1').innerHTML; - newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); - newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); + newdiv.getElementsByTagName('textarea')[0].setAttribute('name', 'designation[]'); + newdiv.getElementsByTagName('input')[0].setAttribute('name', 'prix[]'); newdiv.querySelector('.fact_rm_line button').onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); updateSum(); @@ -33,12 +33,12 @@ $('#ajouter_ligne').onclick = plus; - a = document.querySelectorAll('[name="remove_line"]'); + a = document.querySelectorAll('[name="remove_line"]'); l = a.length; for(i = 0; i < l; i++) { a[i].onclick = function(){ this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); - updateSum(); + updateSum(); }; } @@ -99,4 +99,4 @@ hideAllTypes(); {/literal} selectType({$radio.type}); - \ No newline at end of file + diff --git a/templates/clients.tpl b/templates/clients.tpl index f0b037b..9c40f2c 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -14,7 +14,7 @@ {/if} {if $key == 'siret'} - From 38494a1a852a56b7122b3320bbb302b8675b0704 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 21 Oct 2024 09:09:25 +0200 Subject: [PATCH 18/29] =?UTF-8?q?m=C3=A0j=20CHANGELOG,=20README=20et=20plu?= =?UTF-8?q?gin.ini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 6 ++++++ README.md | 2 +- plugin.ini | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e42abea..fbfc2f0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +0.11 +- Changement mention finale pour devis +0.9 +- Ajout possibilité choisir champs identité et adresse membre +0.8.8 +- correction typo 0.8.7 - correction typo 0.8.6 diff --git a/README.md b/README.md index e42ad30..8685449 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ le dossier plugins de Paheko. - **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) + - Modification du pied de page des documents (notamment 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 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 diff --git a/plugin.ini b/plugin.ini index e4cd258..8a08cf4 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.8.7" +version="0.11" menu=true restrict_section="accounting" restrict_level="read" From 6e2ee31670876d64bcf2006c8419c7fd86ba3772 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 4 Jan 2025 14:58:48 +0100 Subject: [PATCH 19/29] =?UTF-8?q?Ajout=20Mollie=20=C3=A0=20la=20table=20mo?= =?UTF-8?q?yens=20de=20paiement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 2 ++ data/schema.sql | 1 + plugin.ini | 2 +- upgrade.php | 10 +++++++++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fbfc2f0..e4e5dae 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +0.12 +- Ajout Mollie à la table moyens de paiement 0.11 - Changement mention finale pour devis 0.9 diff --git a/data/schema.sql b/data/schema.sql index 0cc7a67..0d9431a 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -43,6 +43,7 @@ INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('PR', 'Pr INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('TI', 'TIP'); INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('VI', 'Virement'); INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('HA', 'HelloAsso'); +INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('MO', 'Mollie'); INSERT OR IGNORE INTO plugin_facturation_paiement (code, nom) VALUES ('AU', 'Autre'); -- Modif DD -- ajout de la table des textes associés aux CERFA diff --git a/plugin.ini b/plugin.ini index 8a08cf4..7f5766c 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.11" +version="0.12" menu=true restrict_section="accounting" restrict_level="read" diff --git a/upgrade.php b/upgrade.php index 5df22ea..feb994f 100644 --- a/upgrade.php +++ b/upgrade.php @@ -211,7 +211,6 @@ if (version_compare($old_version, '0.8.1', '<')) } // 0.8.5 Ajout champs SIREN/SIRET à la table clients - if (version_compare($old_version, '0.8.5', '<')) { $db->exec(<<exec(<< Date: Wed, 26 Feb 2025 11:02:45 +0100 Subject: [PATCH 20/29] =?UTF-8?q?Am=C3=A9lioration=20contr=C3=B4les=20sais?= =?UTF-8?q?ie=20facture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/_facture_common.php | 84 ++++++++++++++++++++++----------------- lib/Facture.php | 7 +++- 2 files changed, 52 insertions(+), 39 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index 10b10a4..e0ac6e5 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -94,10 +94,15 @@ $form->runIf(f('save') && !$form->hasErrors(), $data['type_facture'] = f('type'); if (in_array(f('type'), [DEVIS, FACT])) { - foreach(f('designation') as $k=>$value) + foreach(f('designation') as $k=>$value) { - if ($value != '' && f('prix')[$k] == null) { + if (empty($value) && f('prix')[$k] != null) { + throw new UserException("Il manque la désignation de la ligne " . $k+1 . " !!"); + } + elseif ($value != '' && f('prix')[$k] == null) { throw new UserException('Il manque le prix sur la ligne '. $k+1 . ' !!'); + } elseif (empty($value) && f('prix')[$k] == null) { + continue; } $data['contenu'][$k]['designation'] = $value; @@ -106,6 +111,9 @@ $form->runIf(f('save') && !$form->hasErrors(), } $data['total'] = $data['toto']; unset($data['toto']); + if (! isset($data['contenu'])) { + throw new UserException("Aucune désignation ni aucun prix saisi !!"); + } } elseif ( f('type') == CERFA ) { @@ -142,45 +150,45 @@ $form->runIf(f('save') && !$form->hasErrors(), $form->runIf(f('select_cotis') && !$form->hasErrors(), function () use ($step) - { - $step = true; - }, 'add_cotis_1'); + { + $step = true; + }, 'add_cotis_1'); $form->runIf(f('add_cotis') && !$form->hasErrors(), function () use ($radio, $fields, $facture, $form) - { - $radio['type'] = f('cotisation'); - try - { - $num = (int) str_replace('cotis_', '', $radio['type']); - foreach($fields as $field) - { - $cotis[$field] = f($field.'_'.$num); - } + { + $radio['type'] = f('cotisation'); + try + { + $num = (int) str_replace('cotis_', '', $radio['type']); + foreach($fields as $field) + { + $cotis[$field] = f($field.'_'.$num); + } - $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); - $r = $r[0]; + $r = $facture->getCotis(f('membre_cotis'), $cotis['id']); + $r = $r[0]; - $data = [ - 'type_facture' => COTIS, - 'numero' => f('numero_facture'), - 'receveur_membre' => 1, - 'receveur_id' => f('membre_cotis'), - 'date_emission' => f('date_emission'), - 'moyen_paiement' => 'AU', - 'total' => $r->paid_amount ?? $r->amount, - 'contenu' => ['id' => $cotis['id'], - 'intitule' => $cotis['label'], - 'souscription' => $cotis['date'], - 'expiration' => $cotis['expiry'] ] - ]; + $data = [ + 'type_facture' => COTIS, + 'numero' => f('numero_facture'), + 'receveur_membre' => 1, + 'receveur_id' => f('membre_cotis'), + 'date_emission' => f('date_emission'), + 'moyen_paiement' => 'AU', + 'total' => $r->paid_amount ?? $r->amount, + 'contenu' => ['id' => $cotis['id'], + 'intitule' => $cotis['label'], + 'souscription' => $cotis['date'], + 'expiration' => $cotis['expiry'] ] + ]; - } - catch (UserException $e) - { - $form->addError($e->getMessage()); - } - }, 'add_cotis_2'); + } + catch (UserException $e) + { + $form->addError($e->getMessage()); + } + }, 'add_cotis_2'); if (! $form->hasErrors()) { @@ -314,8 +322,10 @@ if (in_array($radio['type'], [DEVIS, FACT])) } } else { - $designations = ['Exemple']; - $prix = [250]; + /* + $designations = ['Exemple']; + $prix = [250]; + */ } } diff --git a/lib/Facture.php b/lib/Facture.php index 9baabf8..0abd435 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -144,10 +144,13 @@ class Facture unset($datas[$k]['prix']); continue; } - elseif (empty($r['prix'])) + elseif (! is_numeric($r['prix']) && empty($r['prix'])) { $datas[$k]['prix'] = 0; } + elseif (empty($r['designation'])) { + throw new UserException("Une au moins des désignations est absente."); + } if (!is_int($r['prix'])) { @@ -157,7 +160,7 @@ class Facture $total += $r['prix']; } - if($fac && !$total) + if ($fac && count($datas['contenu']) == 0) { throw new UserException("Toutes les désignations/prix sont vides."); } From 060802a43d50a6212e06169e944e5e731d11a69f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 21 Mar 2025 17:41:48 +0100 Subject: [PATCH 21/29] =?UTF-8?q?Correction=20config=20:=20oubli=20enregis?= =?UTF-8?q?trement=20coordonn=C3=A9es=20membres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/config.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/admin/config.php b/admin/config.php index 5f69cfe..638cd56 100644 --- a/admin/config.php +++ b/admin/config.php @@ -23,6 +23,10 @@ $form->runIf('save', function () use ($plugin) { $plugin->setConfigProperty('logo', (bool)f('logo')); $plugin->setConfigProperty('footer', f('footer')); + $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')); From 4ee3f65d0a80faee5dd68559b6e2311335ce7755 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 21 Mar 2025 20:32:41 +0100 Subject: [PATCH 22/29] =?UTF-8?q?Suppression=20possibilit=C3=A9=20g=C3=A9n?= =?UTF-8?q?=C3=A9rer=20re=C3=A7u=20dons=20et=20cotisations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Facture.php | 10 ---------- templates/_form.tpl | 4 +--- templates/config.tpl | 33 ++++++++------------------------- 3 files changed, 9 insertions(+), 38 deletions(-) diff --git a/lib/Facture.php b/lib/Facture.php index 0abd435..6ffcd0d 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -44,16 +44,6 @@ class Facture 'accounts' => [], 'label' => 'Facture', 'help' => ''], - CERFA => [ - 'id' => CERFA, - 'accounts' => [], - 'label' => 'Reçu fiscal', - 'help' => 'Reçu fiscal pour un don (membre ou client)'], - COTIS => [ - 'id' => COTIS, - 'accounts' => [], - 'label' => 'Reçu de cotisation', - 'help' => 'Reçu pour une cotisation payée par un·e membre'], ]; public function __construct() diff --git a/templates/_form.tpl b/templates/_form.tpl index 93a0277..21142ec 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -3,7 +3,7 @@
      - Type d'écriture + Type de document
      {foreach from=$types_details item="type"}
      @@ -24,8 +24,6 @@
      Créer un devis Créer une facture - Créer un reçu fiscal - Créer un reçu de cotisation
      {input type="text" name="numero_facture" maxlength=18 label="Numéro du document" required=$require_number source=$doc} diff --git a/templates/config.tpl b/templates/config.tpl index f2da195..60c62c1 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -19,7 +19,10 @@

      - Adresse + Adresse de l'association +
      + à saisir uniquement si elle n'est pas dans la configuration de la compta ou si elle doit remplacer celle qui est définie dans la configuration de la compta +
      {input type="text" name="numero_rue_asso" source=$conf label="Numéro de rue" maxlength=5} {input type="text" name="rue_asso" source=$conf label="Nom de rue"} @@ -27,37 +30,17 @@ {input type="text" name="ville_asso" source=$conf label="Ville"}
      -
      - Objet -
      -
      obligatoire pour reçus fiscaux
      - {input type="text" name="objet_0" source=$conf label="Ligne 1" maxlength=95} - {input type="text" name="objet_1" source=$conf label="Ligne 2" maxlength=95} - {input type="text" name="objet_2" source=$conf label="Ligne 3" maxlength=95} -
      -
      - -
      - Droit à la réduction d'impôt -
      -
      obligatoire pour reçus fiscaux
      - {input type="checkbox" name="droit_art200" value="1" source=$conf label="Article 200"} - {input type="checkbox" name="droit_art238bis" value="1" source=$conf label="Article 238 bis"} - {input type="checkbox" name="droit_art885_0VbisA" value="1" source=$conf label="Article 885-0V bis A"} -
      -
      -
      - Factures + Factures et devis
      {input type="checkbox" name="logo" value="1" source=$conf label="Imprimer le logo de l'association"} {input type="textarea" class="full-width" rows="5" name="footer" source=$conf label="Pied de document — informations légales" required=true}
      - Choisir les champs à faire figurer sur la facture + Choisir les champs à faire figurer sur la facture ou le devis pour l'adresse d'un membre
      {input type="select" name="adresse_client" label="Adresse" required=true options=$champsPaheko source=$conf} @@ -74,7 +57,7 @@ {input type="checkbox" name="unique_client_name" value="1" source=$conf label="Noms des clients uniques"} {input type="select" name="pattern" label="Format de numéro de document" required=false options=$patterns source=$conf}
      - F = Facture, D = Devis, RF = Reçu fiscal, RC = Reçu cotisation + F = Facture, D = Devis
      Pour personnaliser l'apparence de la facture, il faut pour l'instant se retrousser les manches et éditer soi-même le fichier www/admin/pdf.php du plugin ! @@ -86,4 +69,4 @@

      -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} From 950a6b8b2cb88b0fcab158de4cabb32004293244 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 22 Mar 2025 18:21:00 +0100 Subject: [PATCH 23/29] =?UTF-8?q?Ajout=20champ=20note=20=C3=A0=20la=20fich?= =?UTF-8?q?e=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/client_modifier.php | 41 ++++++++++++++------------- admin/clients.php | 3 +- data/schema.sql | 3 +- lib/Client.php | 6 +++- templates/client.tpl | 11 +++++++- templates/client_modifier.tpl | 3 +- templates/clients.tpl | 1 + upgrade.php | 53 ++++++++++++++++++++++++++++------- 8 files changed, 86 insertions(+), 35 deletions(-) diff --git a/admin/client_modifier.php b/admin/client_modifier.php index c3b8e3a..5f98dd1 100644 --- a/admin/client_modifier.php +++ b/admin/client_modifier.php @@ -17,27 +17,28 @@ if (!$c) } $form->runIf(f('save') && !$form->hasErrors(), - function () use ($client, $id, $form) - { - try - { - $r = $client->edit($id,[ - 'nom' => f('nom'), - 'adresse' => f('adresse'), - 'code_postal' => f('code_postal'), - 'ville' => f('ville'), - 'siret' => f('siret'), - 'telephone' => f('telephone'), - 'email' => f('email') - ]); + function () use ($client, $id, $form) + { + try + { + $r = $client->edit($id,[ + 'nom' => f('nom'), + 'adresse' => f('adresse'), + 'code_postal' => f('code_postal'), + 'ville' => f('ville'), + 'siret' => f('siret'), + 'telephone' => f('telephone'), + 'email' => f('email'), + 'note' => f('note') + ]); - $r ? Utils::redirect(PLUGIN_ADMIN_URL . 'client.php?id='.(int)$id):''; - } - catch (UserException $e) - { - $form->addError($e->getMessage()); - } - }, 'edit_client'); + $r ? Utils::redirect(PLUGIN_ADMIN_URL . 'client.php?id='.(int)$id):''; + } + catch (UserException $e) + { + $form->addError($e->getMessage()); + } + }, 'edit_client'); $tpl->assign('client', $c); diff --git a/admin/clients.php b/admin/clients.php index 24fe497..c8c1a4c 100644 --- a/admin/clients.php +++ b/admin/clients.php @@ -18,7 +18,8 @@ $form->runIf(f('add') && !$form->hasErrors(), 'ville' => f('ville'), 'siret' => f('siret'), 'telephone' => f('telephone'), - 'email' => f('email') + 'email' => f('email'), + 'note' => f('note') ]); $id ? Utils::redirect(PLUGIN_ADMIN_URL . 'client.php?id='.(int)$id):''; diff --git a/data/schema.sql b/data/schema.sql index 0d9431a..f3119bc 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -24,7 +24,8 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_clients ( siret TEXT, date_creation TEXT NOT NULL DEFAULT CURRENT_DATE CHECK (date(date_creation) IS NOT NULL AND date(date_creation) = date_creation), -- Date d\'inscription telephone TEXT, - email TEXT + email TEXT, + note TEXT ); diff --git a/lib/Client.php b/lib/Client.php index 66aabf3..edb4994 100644 --- a/lib/Client.php +++ b/lib/Client.php @@ -17,7 +17,8 @@ class Client 'ville', 'siret', 'telephone', - 'email' + 'email', + 'note' ]; private $config = [ @@ -136,6 +137,9 @@ class Client 'email' => [ 'label' => 'E-Mail', ], + 'note' => [ + 'label' => 'Note', + ], 'nb_documents' => [ 'label' => 'Nombre de documents', 'select' => '(SELECT COUNT(*) FROM plugin_facturation_factures WHERE receveur_id = c.id)', diff --git a/templates/client.tpl b/templates/client.tpl index 6b8db5b..0d72337 100644 --- a/templates/client.tpl +++ b/templates/client.tpl @@ -48,6 +48,15 @@ {/if}
      +
      Note
      +
      + {if empty($client.note)} + (Non renseigné) + {else} + {$client.note} + {/if} +
      +
      Date d'ajout
      {$client.date_creation|date:'d/m/Y'}
      @@ -94,4 +103,4 @@

      Ce client n'a pas de document associé.

      {/if} -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} diff --git a/templates/client_modifier.tpl b/templates/client_modifier.tpl index 42e6f1c..ba611dd 100644 --- a/templates/client_modifier.tpl +++ b/templates/client_modifier.tpl @@ -14,6 +14,7 @@ {input type="text" name="siret" label="SIREN/SIRET" source=$client} {input type="tel" name="telephone" label="Téléphone" source=$client} {input type="email" name="email" label="Adresse e-mail" source=$client} + {input type="textarea" cols="60" rows="3" name="note" label="Note" source=$client}
      @@ -24,4 +25,4 @@ -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} diff --git a/templates/clients.tpl b/templates/clients.tpl index 9c40f2c..9514d68 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -61,6 +61,7 @@ {input type="text" name="siret" label="SIREN/SIRET"} {input type="tel" name="telephone" label="Téléphone"} {input type="email" name="email" label="Adresse e-mail"} + {input type="textarea" cols="60" rows="3" name="note" label="Note"}
      diff --git a/upgrade.php b/upgrade.php index feb994f..385f171 100644 --- a/upgrade.php +++ b/upgrade.php @@ -12,7 +12,7 @@ error_log("upgrade::version = " . $old_version); if (version_compare($old_version, '0.2.0', '<')) { $r = (array) DB::getInstance()->get('SELECT * FROM plugin_facturation_factures'); - + foreach ($r as $e) { $e->contenu =json_encode(unserialize((string) $e->contenu)); $db->update('plugin_facturation_factures', $e, $db->where('id', (int)$e->id)); @@ -33,7 +33,7 @@ if (version_compare($old_version, '0.3.0', '<')) $db->exec('DROP TABLE `plugin_facturation_config`;'); } -// 0.4.0 - +// 0.4.0 - if (version_compare($old_version, '0.4.0', '<')) { $db->exec(<<contenu as $line => $content) { // Petit bug qui peut arriver avec des contenus mal enregistrés en db - if (is_int($content)) + if (is_int($content)) { continue; } @@ -143,7 +143,7 @@ EOT } } -// 0.6.2 - +// 0.6.2 - if (version_compare($old_version, '0.6.2', '<')) { define('DEVIS', 0); @@ -168,14 +168,14 @@ if (version_compare($old_version, '0.6.2', '<')) INSERT OR IGNORE INTO plugin_facturation_txt_cerfa ("id","menu","texte") VALUES ('0','Aucun',''); INSERT OR IGNORE INTO plugin_facturation_txt_cerfa - ("id","menu","texte") + ("id","menu","texte") VALUES ('1','HelloAsso','Don via HelloAsso'); INSERT OR IGNORE INTO plugin_facturation_txt_cerfa - ("id","menu","texte") + ("id","menu","texte") VALUES ('2','Frais de déplacement', 'Renonciation aux remboursements de frais de déplacement'); INSERT OR IGNORE INTO plugin_facturation_txt_cerfa - ("id","menu","texte") + ("id","menu","texte") VALUES ('3','Don en nature','Don en nature'); EOT ); @@ -251,3 +251,36 @@ if (version_compare($old_version, '0.12', '<')) EOT ); } + +// version 0.15 (?) Ajout champ note à la table client +if (version_compare($old_version, '0.15', '<')) +{ + $db->exec(<<iterate($sql) as $client) + { + $db->insert('plugin_facturation_clients_tmp', $client); + } + // remplacer l'ancienne table par la nouvelle + $db->exec(<< Date: Sun, 23 Mar 2025 18:27:47 +0100 Subject: [PATCH 24/29] Ajout divers champs pour facture/devis --- admin/_facture_common.php | 12 +++++-- admin/pdf.php | 13 +++++--- data/schema.sql | 5 ++- lib/Facture.php | 7 ++-- plugin.ini | 4 +-- templates/_form.tpl | 13 ++++++-- upgrade.php | 67 ++++++++++++++++++++++++++++++--------- 7 files changed, 93 insertions(+), 28 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index e0ac6e5..09d2e1a 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -89,6 +89,7 @@ $form->runIf(f('save') && !$form->hasErrors(), 'reglee' => f('reglee') == 1?1:0, 'archivee' => f('archivee') == 1?1:0, 'moyen_paiement' => f('moyen_paiement'), + 'nom_contact' => f('nom_contact'), 'toto' => 0 ]; $data['type_facture'] = f('type'); @@ -113,8 +114,12 @@ $form->runIf(f('save') && !$form->hasErrors(), unset($data['toto']); if (! isset($data['contenu'])) { throw new UserException("Aucune désignation ni aucun prix saisi !!"); - } - } + } + if (f('type') == FACT) { + $data['numero_commande'] = f('numero_commande'); + $data['reference_acheteur'] = f('reference_acheteur'); + } + } elseif ( f('type') == CERFA ) { $data['moyen_paiement'] = f('moyen_paiement_cerfa'); @@ -276,6 +281,9 @@ else $doc['date_emission'] = f('date_emission') ?: $f->date_emission; $doc['date_echeance'] = f('date_echeance')?: $f->date_echeance; // Smarty m'a saoulé pour utiliser form_field|date_fr:--- + $doc['nom_contact'] = $f->nom_contact; + $doc['numero_commande'] = $f->numero_commande; + $doc['reference_acheteur'] = $f->reference_acheteur; /* modif DD -- CERFA -------------------------------------- */ if ( $f->type_facture == CERFA ) { $doc['total'] = $f->total; diff --git a/admin/pdf.php b/admin/pdf.php index 926c543..d953414 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -128,12 +128,17 @@ if ($f->type_facture != CERFA) $receveur = $txtdest.'
      '. ''.$nom_client.'
      '. + (($t = $f->nom_contact)?"Contact : $t
      ":''). $c->adresse."
      ". $c->code_postal.' '.$c->ville."
      ". (($t = $c->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "
      ":''). (($t = $c->email)?"Email : $t
      ":''). (($t = $c->telephone)?"Tel : $t
      ":''); - + if ($f->type_facture == FACT) { + $receveur .= + (($t = $f->numero_commande)?"Commande N° : $t
      ":''). + (($t = $f->reference_acheteur)?"Référence : $t
      ":''); + } $total = Utils::money_format($f->total, ',', ' '); // Devis et facture @@ -203,11 +208,11 @@ EOF; EOF; - if ($f->type_facture == DEVIS) { - echo <<type_facture == DEVIS) { + echo <<Bon pour accord, date et signature

      EOF; - } + } $content = ob_get_clean(); diff --git a/data/schema.sql b/data/schema.sql index f3119bc..3263c43 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -10,7 +10,10 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_factures ( archivee INTEGER DEFAULT 0, -- bool moyen_paiement TEXT NOT NULL, contenu TEXT NOT NULL, - total INTEGER DEFAULT 0 + total INTEGER DEFAULT 0, + nom_contact TEXT, + numero_commande TEXT, + reference_acheteur TEXT -- FOREIGN KEY(moyen_paiement) REFERENCES compta_moyens_paiement(code) ); diff --git a/lib/Facture.php b/lib/Facture.php index 6ffcd0d..1e0dd2f 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -30,7 +30,10 @@ class Facture 'archivee', 'moyen_paiement', 'contenu', - 'total' + 'total', + 'nom_contact', + 'numero_commande', + 'reference_acheteur' ]; public $types = [ @@ -65,7 +68,7 @@ class Facture if(!is_array($data) && null !== $data){ $datas[$k] = trim($data); } - if ($datas[$k] === '' && $k != 'numero') + if ($datas[$k] === '' && ! in_array($k, ['numero', 'nom_contact', 'numero_commande', 'reference_acheteur'])) { throw new UserException("La valeur de $k est vide"); } diff --git a/plugin.ini b/plugin.ini index 7f5766c..dc6f8e1 100644 --- a/plugin.ini +++ b/plugin.ini @@ -1,8 +1,8 @@ name="Facturation" -description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." +description="Permet d'éditer des factures et devis à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.12" +version="0.14" menu=true restrict_section="accounting" restrict_level="read" diff --git a/templates/_form.tpl b/templates/_form.tpl index 21142ec..6410a2b 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -30,7 +30,7 @@
      {if $require_number} - Chaque document doit comporter un numéro unique délivré chronologiquement et de façon continue. Il faut que le système adopté par l'association garantisse que deux factures émises la même année ne peuvent pas porter le même numéro. + Chaque document doit comporter un numéro unique délivré chronologiquement et de façon continue. Il faut que le système adopté par l'association garantisse que deux factures émises la même année ne puissent pas porter le même numéro. {else} Laisser vide pour qu'un numéro soit automatiquement affecté au format {$number_pattern}. {/if} @@ -57,7 +57,7 @@
      - Client + Destinataire
      @@ -82,6 +82,15 @@ {/if}
      +
      + Autres informations + {input type="text" name="nom_contact" label="Nom du contact" source=$doc} +
      + {input type="text" name="numero_commande" label="Numéro de commande" source=$doc} + {input type="text" name="reference_acheteur" label="Référence acheteur" source=$doc} +
      +
      +
      Contenu diff --git a/upgrade.php b/upgrade.php index 385f171..309d569 100644 --- a/upgrade.php +++ b/upgrade.php @@ -6,7 +6,7 @@ use Paheko\Entities\Files\File; $db = DB::getInstance(); $old_version = $plugin->oldVersion(); -error_log("upgrade::version = " . $old_version); +error_log("upgrade:: à partir de la version = " . $old_version); // 0.2.0 - Stock le contenu en json plutôt qu'en serialized if (version_compare($old_version, '0.2.0', '<')) @@ -74,7 +74,7 @@ if (version_compare($old_version, '0.4.0', '<')) ALTER TABLE plugin_facturation_factures_tmp RENAME TO plugin_facturation_factures; EOT -); + ); } @@ -111,7 +111,7 @@ if (version_compare($old_version, '0.6.0', '<')) DROP TABLE plugin_facturation_factures; ALTER TABLE plugin_facturation_factures_tmp RENAME TO plugin_facturation_factures; EOT - ); + ); $factures = $facture->listAll(); foreach($factures as $k=>$f) @@ -119,13 +119,13 @@ EOT foreach($f->contenu as $line => $content) { // Petit bug qui peut arriver avec des contenus mal enregistrés en db - if (is_int($content)) - { - continue; - } + if (is_int($content)) + { + continue; + } $contenu[] = ['designation' => $content['designation'], - 'prix' => (int) ($content['prix'] * 100) ]; + 'prix' => (int) ($content['prix'] * 100) ]; } $f->contenu = $contenu; @@ -252,8 +252,10 @@ EOT ); } -// version 0.15 (?) Ajout champ note à la table client -if (version_compare($old_version, '0.15', '<')) +// version 0.14 +// Ajout champ note à la table clients +// Ajout divers champs à la table factures +if (version_compare($old_version, '0.14', '<')) { $db->exec(<<iterate($sql) as $client) @@ -279,8 +281,43 @@ if (version_compare($old_version, '0.15', '<')) } // remplacer l'ancienne table par la nouvelle $db->exec(<<exec(<<iterate($sql) as $facture) + { + $db->insert('plugin_facturation_factures_tmp', $facture); + } + // remplacer l'ancienne table par la nouvelle + $db->exec(<< Date: Tue, 25 Mar 2025 20:49:24 +0100 Subject: [PATCH 25/29] =?UTF-8?q?Ajout=20champ=20contact=20=C3=A0=20la=20f?= =?UTF-8?q?iche=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/_facture_common.php | 1 + admin/client_modifier.php | 1 + admin/clients.php | 1 + data/schema.sql | 1 + lib/Client.php | 6 +++++- plugin.ini | 2 +- templates/_form.tpl | 7 +++++-- templates/_js.tpl | 17 +++++++++++++++++ templates/client.tpl | 9 +++++++++ templates/client_modifier.tpl | 1 + templates/clients.tpl | 1 + upgrade.php | 7 ++++--- 12 files changed, 47 insertions(+), 7 deletions(-) diff --git a/admin/_facture_common.php b/admin/_facture_common.php index 09d2e1a..b729f34 100644 --- a/admin/_facture_common.php +++ b/admin/_facture_common.php @@ -344,6 +344,7 @@ $tpl->assign('date', $date->format('d/m/Y')); $tpl->assign(compact('liste', 'radio', 'step', 'designations', 'prix', 'from_user', 'identite', 'csrf_key', 'doc')); $tpl->assign('users', toArray($db->get('SELECT id, '.$identite.' FROM users WHERE id_category != -2 NOT IN (SELECT id FROM users_categories WHERE hidden = 1) ORDER BY ' .$identite. ';'), 'id', " ")); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;')); +$tpl->assign('contacts', $db->getAssoc('SELECT id, nom_contact FROM plugin_facturation_clients;')); $tpl->assign('require_number', $require_number); $tpl->assign('number_pattern', PATTERNS_LIST[$plugin->getConfig('pattern')]); diff --git a/admin/client_modifier.php b/admin/client_modifier.php index 5f98dd1..587f9f3 100644 --- a/admin/client_modifier.php +++ b/admin/client_modifier.php @@ -29,6 +29,7 @@ $form->runIf(f('save') && !$form->hasErrors(), 'siret' => f('siret'), 'telephone' => f('telephone'), 'email' => f('email'), + 'nom_contact' => f('nom_contact'), 'note' => f('note') ]); diff --git a/admin/clients.php b/admin/clients.php index c8c1a4c..ae8808f 100644 --- a/admin/clients.php +++ b/admin/clients.php @@ -19,6 +19,7 @@ $form->runIf(f('add') && !$form->hasErrors(), 'siret' => f('siret'), 'telephone' => f('telephone'), 'email' => f('email'), + 'nom_contact' => f('nom_contact'), 'note' => f('note') ]); diff --git a/data/schema.sql b/data/schema.sql index 3263c43..923b4eb 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -28,6 +28,7 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_clients ( date_creation TEXT NOT NULL DEFAULT CURRENT_DATE CHECK (date(date_creation) IS NOT NULL AND date(date_creation) = date_creation), -- Date d\'inscription telephone TEXT, email TEXT, + nom_contact TEXT, note TEXT ); diff --git a/lib/Client.php b/lib/Client.php index edb4994..66e7d75 100644 --- a/lib/Client.php +++ b/lib/Client.php @@ -18,6 +18,7 @@ class Client 'siret', 'telephone', 'email', + 'nom_contact', 'note' ]; @@ -41,7 +42,7 @@ class Client { $data[$key] = trim($data[$key]); - if($data[$key] == '' && ($key != 'siret' && $key != 'telephone' && $key != 'email')) + if($data[$key] == '' && ! in_array($key, ['siret', 'telephone', 'email', 'nom_contact', 'note'])) { throw new UserException('Le champs '.$key.' doit être renseigné.'); } @@ -137,6 +138,9 @@ class Client 'email' => [ 'label' => 'E-Mail', ], + 'nom_contact' => [ + 'label' => 'Contact', + ], 'note' => [ 'label' => 'Note', ], diff --git a/plugin.ini b/plugin.ini index dc6f8e1..db7f979 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures et devis à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.14" +version="0.15" menu=true restrict_section="accounting" restrict_level="read" diff --git a/templates/_form.tpl b/templates/_form.tpl index 6410a2b..f533acf 100644 --- a/templates/_form.tpl +++ b/templates/_form.tpl @@ -70,12 +70,12 @@
      - {input type="select" name="membre" label="Membre" options=$users required=1 source=$doc} + {input type="select" name="membre" label="Membre" options=$users required=1 source=$doc default_empty="— Choisir un membre —"}
      {if !empty($clients)}
      - {input type="select" name="client" label="Client" options=$clients required=1 class="type_client" source=$doc} + {input type="select" name="client" label="Client" options=$clients required=1 class="type_client" source=$doc default_empty="— Choisir un client —"}
      {else} @@ -85,6 +85,9 @@
      Autres informations {input type="text" name="nom_contact" label="Nom du contact" source=$doc} +
      {input type="text" name="numero_commande" label="Numéro de commande" source=$doc} {input type="text" name="reference_acheteur" label="Référence acheteur" source=$doc} diff --git a/templates/_js.tpl b/templates/_js.tpl index 5c63c5f..ed7feeb 100644 --- a/templates/_js.tpl +++ b/templates/_js.tpl @@ -51,6 +51,18 @@ } } + function modifierContact(client, idlist, idcontact) + { + let contactlist = document.querySelector(idlist); + let options = contactlist.querySelectorAll('option'); + for (i=0; i < options.length; ++i) { + if (options[i].value == client.value) { + break; + } + } + document.querySelector(idcontact).value = options[i].textContent; + } + const form = document.querySelector('#f_numero_facture').form; changeTypeSaisie(form.base_receveur.value); @@ -63,6 +75,11 @@ }; } + const selclient = document.querySelector('#f_client'); + selclient.addEventListener("change", () => { + modifierContact(selclient, '#f_contact_list', '#f_nom_contact'); + }); + } ()); diff --git a/templates/client.tpl b/templates/client.tpl index 0d72337..6f689a8 100644 --- a/templates/client.tpl +++ b/templates/client.tpl @@ -48,6 +48,15 @@ {/if}
      +
      Nom du contact
      +
      + {if empty($client.nom_contact)} + (Non renseigné) + {else} + {$client.nom_contact} + {/if} +
      +
      Note
      {if empty($client.note)} diff --git a/templates/client_modifier.tpl b/templates/client_modifier.tpl index ba611dd..b00c2cb 100644 --- a/templates/client_modifier.tpl +++ b/templates/client_modifier.tpl @@ -14,6 +14,7 @@ {input type="text" name="siret" label="SIREN/SIRET" source=$client} {input type="tel" name="telephone" label="Téléphone" source=$client} {input type="email" name="email" label="Adresse e-mail" source=$client} + {input type="text" name="nom_contact" label="Nom du contact" source=$client} {input type="textarea" cols="60" rows="3" name="note" label="Note" source=$client} diff --git a/templates/clients.tpl b/templates/clients.tpl index 9514d68..06fea3d 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -61,6 +61,7 @@ {input type="text" name="siret" label="SIREN/SIRET"} {input type="tel" name="telephone" label="Téléphone"} {input type="email" name="email" label="Adresse e-mail"} + {input type="text" name="nom_contact" label="Nom contact"} {input type="textarea" cols="60" rows="3" name="note" label="Note"} diff --git a/upgrade.php b/upgrade.php index 309d569..f47ac27 100644 --- a/upgrade.php +++ b/upgrade.php @@ -252,10 +252,10 @@ EOT ); } -// version 0.14 -// Ajout champ note à la table clients +// version 0.15 +// Ajout champs note et contact à la table clients // Ajout divers champs à la table factures -if (version_compare($old_version, '0.14', '<')) +if (version_compare($old_version, '0.15', '<')) { $db->exec(<< Date: Mon, 5 Jan 2026 11:42:56 +0100 Subject: [PATCH 26/29] =?UTF-8?q?Modifications=20pour=20compatibilit=C3=A9?= =?UTF-8?q?=20php8.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/_inc.php | 4 ++-- lib/Facture.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/admin/_inc.php b/admin/_inc.php index 6b5906e..f11fc22 100644 --- a/admin/_inc.php +++ b/admin/_inc.php @@ -11,7 +11,7 @@ define('CERFA', 2); define('COTIS', 3); const PATTERNS_LIST = [ - null => 'Aucun, le numéro sera à spécifier manuellement pour chaque document', + '' => 'Aucun, le numéro sera à spécifier manuellement pour chaque document', '%{type}-%{year}-%{ynumber}' => 'Type-Année-Numéro du document par année ("FACT-2021-42")', '%{year}-%{type}-%04{ynumber}' => 'Année-Type-Numéro du document par année ("2021-DEVIS-0042")', '%{t}-%{year}-%{ynumber}' => 'Type court-Année-Numéro du document par année ("F-2021-42")', @@ -52,7 +52,7 @@ $tpl->register_function('money_fac', function (array $params) if (!isset($name)) { - $name = 'prix[]'; + $name = 'prix[]'; } if (null !== $current_value && !$user) { diff --git a/lib/Facture.php b/lib/Facture.php index 1e0dd2f..d4515de 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -499,7 +499,7 @@ class Facture public $recu_fields = ['id', 'label', 'amount', 'date', 'expiry', 'paid', 'paid_amount']; - public function getCotis(int $user_id, int $su_id = null) + public function getCotis(int $user_id, ?int $su_id = null) { $where = 'WHERE su.id_user = ?'; if (null !== $su_id) From fa5751b7260fdce943dd9d2f67a8343d44a188d7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 5 Jan 2026 11:46:43 +0100 Subject: [PATCH 27/29] Suppression mention inutile --- plugin.ini | 2 +- templates/aide.tpl | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugin.ini b/plugin.ini index db7f979..c75a449 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures et devis à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.15" +version="0.16" menu=true restrict_section="accounting" restrict_level="read" diff --git a/templates/aide.tpl b/templates/aide.tpl index 6f8c672..6c17205 100644 --- a/templates/aide.tpl +++ b/templates/aide.tpl @@ -17,8 +17,10 @@ +{*

      Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), cela se passe dans la {link href="!config/custom.php" label="configuration de Paheko, onglet personnalisation"}. Il est préférable d'avoir un fond transparent.

      +*}
      • Pour créer un reçu sur une cotisation, il vaut mieux utiliser le module {link href="!config/ext" label="Reçu de paiement"} intégré à Paheko.
      • Pour créer un reçu fiscal, il vaut mieux utiliser le module {link href="!config/ext" label="Reçus fiscaux"} intégré à Paheko.
      • @@ -27,4 +29,4 @@
      -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} From 1c8502201659f6f7e14ae4ead9345ad001725b15 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 5 Jan 2026 15:05:42 +0100 Subject: [PATCH 28/29] =?UTF-8?q?Modification=20pour=20compatibilit=C3=A9?= =?UTF-8?q?=20menu=20principal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/aide.tpl | 2 +- templates/client.tpl | 2 +- templates/client_modifier.tpl | 2 +- templates/client_supprimer.tpl | 4 ++-- templates/clients.tpl | 2 +- templates/config.tpl | 2 +- templates/facture.tpl | 2 +- templates/facture_ajouter.tpl | 2 +- templates/facture_modifier.tpl | 2 +- templates/facture_supprimer.tpl | 4 ++-- templates/index.tpl | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/templates/aide.tpl b/templates/aide.tpl index 6c17205..f84b14d 100644 --- a/templates/aide.tpl +++ b/templates/aide.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Aide — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id} +{include file="_head.tpl" title="Aide — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="aide"}

      Quelques remarques et conseils sur l'utilisation du plugin Facturation

      diff --git a/templates/client.tpl b/templates/client.tpl index 6f689a8..f9d5609 100644 --- a/templates/client.tpl +++ b/templates/client.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=0} +{include file="_head.tpl" title="Client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=0} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client"}
      diff --git a/templates/client_modifier.tpl b/templates/client_modifier.tpl index b00c2cb..62f713b 100644 --- a/templates/client_modifier.tpl +++ b/templates/client_modifier.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Modifier un client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=0} +{include file="_head.tpl" title="Modifier un client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=0} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_modifier"} {form_errors} diff --git a/templates/client_supprimer.tpl b/templates/client_supprimer.tpl index de3becb..5759d2f 100644 --- a/templates/client_supprimer.tpl +++ b/templates/client_supprimer.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Supprimer un client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=0} +{include file="_head.tpl" title="Supprimer un client — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=0} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_supprimer"} {if !$deletable} @@ -12,4 +12,4 @@ {/if} -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} diff --git a/templates/clients.tpl b/templates/clients.tpl index 06fea3d..2c30760 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Clients — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=1} +{include file="_head.tpl" title="Clients — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=1} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="clients"} {if $list->count()} diff --git a/templates/config.tpl b/templates/config.tpl index 60c62c1..5bde404 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Configuration — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id} +{include file="_head.tpl" title="Configuration — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="config"} {if $ok && !$form->hasErrors()} diff --git a/templates/facture.tpl b/templates/facture.tpl index 9248779..1464bc4 100644 --- a/templates/facture.tpl +++ b/templates/facture.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id} +{include file="_head.tpl" title="Document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {form_errors} diff --git a/templates/facture_ajouter.tpl b/templates/facture_ajouter.tpl index e4add63..3730550 100644 --- a/templates/facture_ajouter.tpl +++ b/templates/facture_ajouter.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Créer un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=1} +{include file="_head.tpl" title="Créer un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=1} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="facture"} {include file="%s/templates/_form.tpl"|args:$plugin_root} diff --git a/templates/facture_modifier.tpl b/templates/facture_modifier.tpl index 77dd30b..73fb70d 100644 --- a/templates/facture_modifier.tpl +++ b/templates/facture_modifier.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Modifier un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=1} +{include file="_head.tpl" title="Modifier un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=1} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {include file="%s/templates/_form.tpl"|args:$plugin_root} diff --git a/templates/facture_supprimer.tpl b/templates/facture_supprimer.tpl index 4ba5791..3f9c761 100644 --- a/templates/facture_supprimer.tpl +++ b/templates/facture_supprimer.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Supprimer un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id js=0} +{include file="_head.tpl" title="Supprimer un document — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name js=0} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {form_errors} @@ -22,4 +22,4 @@ -{include file="_foot.tpl"} \ No newline at end of file +{include file="_foot.tpl"} diff --git a/templates/index.tpl b/templates/index.tpl index fd673cb..b6da4de 100644 --- a/templates/index.tpl +++ b/templates/index.tpl @@ -1,4 +1,4 @@ -{include file="_head.tpl" title="Documents — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.id} +{include file="_head.tpl" title="Documents — %s"|args:$plugin.name current="plugin_%s"|args:$plugin.name} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {form_errors} From cb3d201aecd8c9ab2f5257702dbd57dac4ff8202 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 5 Feb 2026 09:27:48 +0100 Subject: [PATCH 29/29] =?UTF-8?q?Suppression=20setCount=20car=20supprim?= =?UTF-8?q?=C3=A9=20de=20DynamicList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Facture.php | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/Facture.php b/lib/Facture.php index d4515de..270fca7 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -398,7 +398,6 @@ class Facture $list = new DynamicList($columns, $tables); $list->orderBy('date_emission', true); - $list->setCount('COUNT(f.id)'); $currency = Config::getInstance()->monnaie;