Ce script est développé en utilisant Node.js, une plateforme de développement JavaScript côté serveur. Node.js est construit sur le moteur JavaScript V8 de Google Chrome, ce qui lui confère une grande rapidité et une excellente performance.
Avant d'exécuter ce script, assurez-vous d'avoir Node.js installé sur votre système. Vous pouvez vérifier si Node.js est installé en ouvrant une fenêtre de terminal et en exécutant la commande suivante :
node --version
Si Node.js n'est pas installé, vous pouvez le télécharger et l'installer à partir du site officiel de Node.js (https://nodejs.org). Assurez-vous d'installer la version compatible avec votre système d'exploitation.
Ce script utilise des modules externes qui doivent être installés avant de l'exécuter. Pour installer les dépendances, ouvrez une fenêtre de terminal dans le répertoire où se trouve le script et exécutez la commande suivante :
npm install
Le fichier ./lib/configuration/config.json
est un fichier de configuration utilisé par le script. Il contient des paramètres spécifiques qui peuvent être personnalisés en fonction des besoins de l'utilisateur. Voici une explication des différentes sections de ce fichier :
La section nodemailer
contient les paramètres de configuration pour l'envoi de courriers électroniques à l'aide du module Nodemailer. Voici la signification des différentes clés :
host
: Il s'agit de l'hôte du serveur SMTP utilisé pour envoyer les courriers électroniques. Vous devez spécifier l'adresse de l'hôte SMTP fournie par votre fournisseur de messagerie ou votre service d'envoi de courrier électronique. (ex: smtp.orange.fr)port
: Il s'agit du port utilisé pour la connexion au serveur SMTP. Vous devez spécifier le numéro de port approprié fourni par votre fournisseur de messagerie ou votre service d'envoi de courrier électronique. (ex: 465)secure
: Il s'agit d'un paramètre booléen qui indique si la connexion avec le serveur SMTP doit être sécurisée ou non. Si la valeur est définie sur "true", une connexion sécurisée sera établie.sender
: Il s'agit du nom qui apparaitra lors de la réception du mail par les parents. (ex: Le Petit d'Homme)auth
: Cette section contient les informations d'authentification requises pour se connecter au serveur SMTP. Vous devez spécifier le nom d'utilisateur et le mot de passe associés à votre compte de messagerie.
Vous devez modifier les valeurs vides (""
) pour les clés host
, port
, user
et pass
avec les informations appropriées pour votre configuration de messagerie.
La section factures
contient des paramètres spécifiques aux factures. Dans cet exemple, il y a une clé min
qui indique une valeur minimale de 10 (€) pour les factures.
Vous pouvez modifier la valeur de min
en fonction de vos besoins. Par exemple, si vous souhaitez que seules les factures d'un montant supérieur ou égal à 5
(€) soient prises en compte, vous pouvez modifier la valeur de min
à 5
.
Le fichier ./lib/configuration/mail.txt
contient le contenu du courrier électronique qui sera envoyé par le script. Ce fichier peut être utilisé pour stocker des modèles de courrier électronique ou des messages prédéfinis. Il est possible d'utiliser des templates dans ce fichier, où des marqueurs spécifiques sont utilisés pour insérer des valeurs dynamiques lors de l'envoi du courrier électronique.
Voici une liste des valeurs dynamiques disponibles dans le contexte des courriers électroniques :
{{PERIODE}}
: Cette valeur dynamique représente la période concernée.{{CLASSE}}
: Cette valeur dynamique indique la classe ou le groupe concerné.{{TAUX_HORAIRE}}
: Cette valeur dynamique représente le taux horaire appliqué.{{TOTAL}}
: Cette valeur dynamique indique le montant total.{{NOM}}
: Cette valeur dynamique représente le nom associé.{{PRENOM}}
: Cette valeur dynamique indique le prénom associé.
Ces templates peuvent être utilisés dans le contenu du courrier électronique pour personnaliser les informations en fonction des données spécifiques. Les valeurs sont automatiquement changé selon l'élève, la classe et la période.
Pour que le script puisse fonctionner correctement, il est important de s'assurer que les fichiers Excel requis sont présents dans le répertoire ./lib/data/
. Voici les détails sur les fichiers nécessaires :
- Liste complète des inscrits à la garderie : Ce fichier devrait inclure les informations suivantes pour chaque élève : nom, prénom, classe, email1 et email2
- Liste des nombres d'heures de présence de chaque classe : Ce fichier devrait inclure les informations suivantes pour chaque élève : nom, prénom, id et prix garderie ainsi que le mois de facturation, la classe et le taux horaire
Il est important de noter que le formatage et la position des colonnes dans les fichiers Excel ne doivent pas être modifiés une fois qu'ils ont été configurés pour fonctionner avec le script. Tout changement dans le formatage ou la position des colonnes peut affecter le bon fonctionnement du script et entraîner des erreurs lors du traitement des données.
Pour exécuter le script, suivez les étapes ci-dessous :
- Ouvrez une fenêtre de terminal dans le répertoire où se trouve le script
- Exécutez la commande suivante :
node . <liste_complete> <liste_classe>
Lors de l'exécution du script, vous devez fournir deux arguments en ligne de commande : <liste_complete>
et <liste_classe>
. Voici une explication de ce que représentent ces arguments :
<liste_complete>
: Il s'agit du nom du fichier Excel contenant la liste complète des inscrits à la garderie. Ce fichier doit être présent dans le répertoire./lib/data/
, comme expliqué précédemment. Assurez-vous de fournir le nom exact du fichier, y compris l'extension (.xlsx)<liste_classe>
: Il s'agit du nom du fichier Excel contenant la liste des nombres de 1/4 heure de présence de chaque élève par classe à la garderie. Ce fichier doit également être présent dans le répertoire./lib/data/
. De même, assurez-vous de fournir le nom exact du fichier, y compris l'extension.
Veillez à remplacer <liste_complete>
et <liste_classe>
par les noms réels des fichiers Excel que vous souhaitez utiliser pour l'exécution du script. Par exemple :
node . Liste complète garderie 2022-2023.xlsx Facture 6-8 ans modèle MC 2022-2023.xlsx
Une fois la commande exécutée, suivez les instructions indiqué dans le terminal.
-
Erreur d'ouverture des fichiers : Si les noms des fichiers fournis en tant qu'arguments sont incorrects ou si les fichiers ne sont pas présents dans le répertoire
./lib/data/
, une erreur d'ouverture des fichiers peut se produire. -
Erreur de récupération des données : Si le formatage ou la position des colonnes dans les fichiers Excel a été modifié, le script peut échouer lors de la récupération des données. Il est essentiel de maintenir le formatage et la structure des fichiers Excel tels qu'ils ont été initialement configurés pour fonctionner avec le script.
-
Erreur de sauvegarde des factures : Si l'ordinateur n'a pas suffisamment d'espace disponible pour sauvegarder les factures générées, une erreur de sauvegarde peut se produire.
-
Erreur lors de l'envoi des e-mails : Si les adresses e-mail fournies sont incorrectes ou ne sont pas renseignées, une erreur d'envoi des e-mails peut se produire.
MIT License
Copyright (c) 2023 Yaniv DOUIEB
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.