<jupyter_start><jupyter_text>Qonto - Releve de compte augmente **Tags:** qonto bank statement naas_drivers notification emailbuilder asset scheduler naas Recevez un relevé de compte augmenté par email gratuitement, chaque semaine, grâce à un template Naas.ai (moteur de données opensource, 100 crédits offert par mois). -Durée de l'installation = 5 minutes-Support d'installation = Guide vidéo-Niveau = Facile  InputDans cette section, vous trouverez les informations à configurer pour que ce notebook puisse accéder à vos données via l'API Qonto.  Import des librairiesLes libraries sont des outils créé dans le language Python qui permettent le fonctionnement du notebook. Aucune action nécessaire.<jupyter_code>from naas_drivers import qonto, emailbuilder
from datetime import datetime, timedelta
import pandas as pd
import naas<jupyter_output><empty_output><jupyter_text>Configuration des accès API👇 Veuillez saisir ci-dessous, entre les guillemets, votre identifiant et votre clé secrète récupérés sur la plateforme Qonto.<jupyter_code>QONTO_USER_ID = 'Votre_identifiant_ici'
QONTO_API_KEY = 'Votre_clé_secrète_ici'<jupyter_output><empty_output><jupyter_text>Configuration de l'email👇 Veuillez saisir ci-dessous, entre les guillemets, le destinataire de l'email (si vous avez plusieurs destinataires, separez d'une virgule les emails en conservants les guillemets)Vous pouvez aussi changer l'objet de l'email (configuration avancée)<jupyter_code># Destinataire
EMAIL_TO = ["Votre_adresse_email_ici"]

# Objet de l'email
EMAIL_SUBJECT = f"🏛️ Qonto - Votre relevé de compte augmenté du {datetime.now().strftime('%d/%m/%Y')}"<jupyter_output><empty_output><jupyter_text>Configuration de la période de l'analyse👇 Veuillez saisir ci-dessous, entre les guillemets, la date de début (et la date de fin de votre analyse.<jupyter_code># Date de début au format AAAA-MM-JJ
DATE_FROM = "2021-01-01"

# Date de fin au format AAAA-MM-JJ (par defaut, c'est la date d'aujoud'hui qui est selectionnée)
DATE_TO = datetime.now().strftime("%Y-%m-%d")

# Nombre de jours de récupération des dernières transactions (doit être un chiffre négatif)
LAST_TRANSACTIONS = -7<jupyter_output><empty_output><jupyter_text>Configuration de l'automatisationGrâce à la formule ci-dessous, le notebook se lancera tous les lundis à 8h.Si vous souhaitez modifier la fréquence d'envoi, vous devez modifier la synthaxe entre guillemets en  suivant la documentation officielle CRON (standard internationnal pour la programmation de tâches automatisées)<jupyter_code>naas.scheduler.add(cron="0 8 * * 1")<jupyter_output><empty_output><jupyter_text>**Configuration des noms de fichiers (avancé)**<jupyter_code>GRAPH_FILE = "graph_account_statement.html"
GRAPH_IMG = "graph_account_statement.jpeg"
TABLE_FILE = "account_statement.xlsx"<jupyter_output><empty_output><jupyter_text>Model  Récupération du relevé de compte consolidé<jupyter_code># Colonne to consolidate (DATE already included), if empty return only DATE, AMOUNT, POSITION
to_conso = ["TRANSACTION_ID",
            "LABEL",
            "OPERATION_TYPE"]

df_statement = qonto.connect(QONTO_USER_ID, QONTO_API_KEY).statement.consolidated(to_conso=to_conso,
                                                                                  date_from=DATE_FROM,
                                                                                  date_to=DATE_TO)
df_statement<jupyter_output><empty_output><jupyter_text>Création du graphique "Evolution de la Trésorerie"<jupyter_code>barline = qonto.connect(QONTO_USER_ID, QONTO_API_KEY).statement.barline(date_from=DATE_FROM,
                                                                        date_to=DATE_TO)
barline<jupyter_output><empty_output><jupyter_text>Récupération des opérations par type<jupyter_code>cash_summary = qonto.connect(QONTO_USER_ID, QONTO_API_KEY).statement.summary(date_from=DATE_FROM,
                                                                             date_to=DATE_TO)
cash_summary<jupyter_output><empty_output><jupyter_text>Récupération des dernières transactions<jupyter_code>df_last = qonto.connect(QONTO_USER_ID, QONTO_API_KEY).statement.transactions(date_from=LAST_TRANSACTIONS,
                                                                             date_to=DATE_TO)
df_last<jupyter_output><empty_output><jupyter_text>Calcule du solde courant<jupyter_code>current_position = round(df_statement['POSITION'].tolist()[-1], 2)
current_position<jupyter_output><empty_output><jupyter_text>Output  Sauvegarde du relevé de compte et partage du fichier Excel<jupyter_code>df_statement.to_excel(TABLE_FILE)
statement_link = naas.asset.add(TABLE_FILE)<jupyter_output><empty_output><jupyter_text>Sauvegarde et partage du graphique en tant qu'image et page html<jupyter_code># Image
barline.write_image(GRAPH_IMG)
graph_img = naas.asset.add(GRAPH_IMG)

# HTML
barline.write_html(GRAPH_FILE)
params = {"inline": True}
graph_link = naas.asset.add(GRAPH_FILE, params=params)<jupyter_output><empty_output><jupyter_text>Creation de l'email<jupyter_code>email_content = qonto.connect(QONTO_USER_ID, QONTO_API_KEY).statement.email(DATE_FROM,
                                                                            DATE_TO,
                                                                            current_position,
                                                                            graph_img,
                                                                            graph_link,
                                                                            cash_summary,
                                                                            LAST_TRANSACTIONS,
                                                                            df_last,
                                                                            statement_link)<jupyter_output><empty_output><jupyter_text>Envoi de l'email<jupyter_code>naas.notification.send(EMAIL_TO,
                       EMAIL_SUBJECT,
                       email_content)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07005109609362123, 'fraction_numerical': 0.0031316960606560078, 'mean_word_length': 2.838077166350411, 'pattern_counts': {'":': 1, '<': 61, '<?xml version=': 0, '>': 61, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 39, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '15', 'dir': 'jupyter-structured-clean-dedup', 'id': '123038', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1857, 'n_tokens_neox': 1825, 'n_words': 406, 'path': 'Qonto/Qonto_Releve_de_compte_augmente.ipynb', 'repo_name': 'jorgeariasm/Plantillas-ML', 'size': '6067'}