# script-invoice script-invoice est un script python qui permet de générer des factures au format docx et pdf à partir \ d'un fichier Excel (paramètre **EXCEL_FILE** dans le fichier .env) Le script permet de choisir depuis quelle feuille générer les factures. \ Il prend en compte une ligne de début et une ligne de fin. \ Parmi ces lignes, seules celles avec un numéro de facture seront prises en compte pour la génération des factures le script se sert d'un template docx comme modèle (**TEMPLATE_WORD** dans le fichier .env) Chaque facture sera ensuite générée et placée dans un sous dossier par client (l'emplacement des factures et des sous dossier se définit avec le paramètre **INVOICE_FOLDER** dans le fichier .env) ## Installation j'ai développé ce projet avec Python 3.8.2 il nécessite Microsoft Windows, Microsoft Word et [Microsoft Visual C++ Redistributable ](https://learn.microsoft.com/fr-fr/cpp/windows/latest-supported-vc-redist?view=msvc-170) **Cloner le repo avec** ``` git clone https://gitlab.anthony-jacob.com/anthony.jacob/script-invoice.git ``` **Creer un environement virtuel Python** ``` cd script-invoice python -m venv venv ``` **Activer l'environement virtuel** `venv\Scripts\activate.bat` **Installer les dépendances** `pip install -r requirements.txt` si l'installation de [lxml](https://lxml.de/installation.html) échoue, \ vous pouvez utiliser [les binaires sur PyPI](https://pypi.org/project/lxml/#files) \ ou [les builds non officiel de Christoph Gohlke](https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml) **Configurer le programme** le fichier *.env* contient 3 paramètres \ EXCEL_FILE=le chemin vers le fichier Excel contenant les informations de facturation INVOICE_FOLDER=le dossier qui contiendra tous les sous dossier client TEMPLATE_WORD=le chemin vers le template docx utilisé pour générer les factures **Lancer le programme** soit en ligne de commande: `python main.py` soit en double cliquant sur **generer.bat** (generer.bat permet d'activer l'environnement virtuel Python avant d'exécuter main.py\ il faut cependant **modifier le fichier pour y indiquer le bon chemin**)