Files
demat-facturation/scripts/web-import/README.md

1.8 KiB

Connecteurs Web - Scripts d'import automatique

Prérequis sur le serveur LWS

cd /opt/web-import
npm install playwright
npx playwright install chromium --with-deps

Configuration

  1. Depuis l'application : Configuration > Connecteurs web → créer une source SFR → copier le token API
  2. Créer un fichier de configuration :
cp config.example.json config.json
# Éditer config.json avec vos valeurs

Contenu de config.json :

{
  "sfrLogin": "votre-login@sfr.fr",
  "sfrPassword": "votre-mot-de-passe",
  "appUrl": "https://demat-facturation.santinova-soft.org",
  "apiToken": "votre-token-api-copié-depuis-lappli",
  "downloadDir": "/tmp/sfr-invoices",
  "processedFile": "/tmp/sfr-processed.json"
}

Ou utiliser des variables d'environnement :

export SFR_LOGIN=votre-login@sfr.fr
export SFR_PASSWORD=votre-mot-de-passe
export APP_URL=https://demat-facturation.santinova-soft.org
export API_TOKEN=votre-token-api

Exécution manuelle

node sfr-connector.mjs

Planification (cron)

Ajouter dans le crontab (crontab -e) :

# Import SFR le 5 de chaque mois à 8h00
0 8 5 * * /usr/bin/node /opt/web-import/sfr-connector.mjs >> /var/log/sfr-import.log 2>&1

Ajouter un nouveau connecteur

Dupliquer sfr-connector.mjs et adapter :

  1. L'URL du portail (portalUrl)
  2. Les sélecteurs CSS pour le login et les liens de factures
  3. Le nom du fichier de suivi (processedFile)

Fonctionnement

  1. Le script se connecte au site SFR avec les identifiants fournis
  2. Il navigue vers la section factures
  3. Il télécharge les PDFs non encore traités
  4. Il les envoie à l'application via l'endpoint /api/web-import/push-invoice
  5. L'application extrait les données avec l'IA et crée les factures
  6. Le script marque les factures comme traitées pour éviter les doublons