# Plugin Facturation pour Garradin

Plugin de facturation pour le logiciel de gestion d'association Garradin ( https://garradin.eu/ - https://fossil.kd2.org/garradin ).
Source : https://gitlab.com/ramoloss/garradin-plugin-facturation

## Installation:
Vous pouvez télécharger l'archive depuis la page des [releases](https://gitlab.com/ramoloss/garradin-plugin-facturation/-/releases).

Normalement, les plugins de Garradin 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 garradin-plugin-facturation-v0.3.0.tar.gz
    mv garradin-plugin-facturation-v0.3.0 facturation
    rm garradin-plugin-facturation-v0.3.0.tar.gz
    chown -R www-data:www-data facturation/
    chmod -R g+w facturation/ 


Supprimer l'archive permet à Garradin 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.*

Il y a un problème entre les bibliothèques pour importer le cerfa (reçu fiscal) et l'autoloader de Garradin. Il faut pour cela, en attendant la version 1.0 de Garradin, faire une petite modif dans le fichier include/init.php, au niveau de la ligne 111 :

        
```
        if (!file_exists($path))
        {
            return false;
        }
```    

à la place de la ligne :


```
        if (!file_exists($path))
        {
            throw new \Exception('File '.$path.' doesn\'t exists');
        };    
```

Ne vous en faites pas, ça va pas tout casser, et c'est réglé dans la version 1.0 de Garradin, et ça sert seulement pour éditer des reçus fiscaux.

## 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
- Liste les documents associés sur la fiche d'un·e client·e
- Permet de définir le statut du document sur reglée
- **Configuration** :
    - Possibilité d'ajouter un numéro RNA et SIRET de l'association si elle en possède (apparait alors sur les documents)
    - 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 set 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.

## Futur :
- 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
- Système de template ou jsp pour modifier facilement l'apparence de la facture par l'utilisateur ?
- Petite modif/fix CSS
- 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. 

## Inclus les bibliothèques suivantes :

- Composer :
    https://getcomposer.org/
    Copyright (c) Nils Adermann, Jordi Boggiano,
    Licence: MIT

- mPDF :
    https://mpdf.github.io/
    Copyright (C) 2010 Ian Back,
    Licence : GNU GPL v2

Et les dépendances de mPDF :

- DeepCopy :
    https://travis-ci.org/myclabs/DeepCopy
    Copyright (c) 2013 My C-Sens,
    Licence: MIT

- random_compat :
    https://github.com/paragonie/random_compat
    Copyright (c) 2015 Paragon Initiative Enterprises,
    Licence: MIT

- fpdi :
    https://www.setasign.com/products/fpdi/
    Copyright (c) 2017 Setasign - Jan Slabon, https://www.setasign.com ,
    Licence: MIT