========================================================================== TUTORIEL OFFICIEL — Systeme de facturation « Facturation Maroc » (LOCAL) ========================================================================== Approche officielle : TOUT EN LOCAL, synchronise vers le cloud par Google Drive pour Desktop. La generation des factures, le registre et le tableau de bord se font sur le disque, en place (resultat immediat). Google Drive ne sert qu'a synchroniser le dossier vers le cloud — aucun upload manuel, aucun doublon. Aucune donnee d'entreprise n'est codee en dur : tout est parametre une fois, puis memorise dans le dossier local. -------------------------------------------------------------------------- 1. POURQUOI CETTE APPROCHE -------------------------------------------------------------------------- Le connecteur Google Drive (API cloud) ne sait pas modifier un fichier en place : il lit et il depose. Mettre a jour le registre directement sur le cloud imposait de telecharger -> regenerer -> redeposer, et comme le depot n'ecrase pas mais AJOUTE, cela creait des doublons et c'etait lent. En local, le registre s'edite directement et instantanement. Si le dossier de travail est place DANS Google Drive pour Desktop, la synchro vers le cloud est automatique. On garde donc la vitesse du local ET la sauvegarde cloud. -------------------------------------------------------------------------- 2. LES LIVRABLES -------------------------------------------------------------------------- - facturation-maroc.plugin Le plugin (a installer dans Cowork). - facturation-maroc-plugin.zip Meme contenu, format zip telechargeable. - Archi generique.zip La structure de dossier a poser en local (config.json vierge, _Assets, _Registre, _Modeles). Reutilisable par tout le monde. -------------------------------------------------------------------------- 3. INSTALLATION (a faire une fois) -------------------------------------------------------------------------- ETAPE 1 — Installer Google Drive pour Desktop - Telecharger Google Drive pour Desktop : https://www.google.com/drive/download/ - L'installer et se connecter avec le compte Google qui hebergera la facturation. - Verifier que « Mon Drive » apparait dans le Finder / l'Explorateur (sur Mac : generalement ~/Library/CloudStorage/GoogleDrive-/Mon Drive). ETAPE 2 — Poser la structure de dossier - Dezipper « Archi generique.zip ». - Glisser le dossier « Facturation » DANS « Mon Drive » (le dossier synchronise par Google Drive pour Desktop). Exemple : .../Mon Drive/Facturation - (Optionnel) Le renommer comme tu veux ; retiens son chemin complet. ETAPE 3 — Installer le plugin - Ouvrir « facturation-maroc.plugin » et l'accepter dans Cowork. ETAPE 4 — Connecter le dossier a Claude - Demander a Claude d'utiliser ce dossier (il proposera de le connecter), ou le selectionner quand il le demande. Choisir le dossier « Facturation » place dans Mon Drive a l'etape 2. - C'est ce dossier (base_dir) que tout le systeme utilisera. ETAPE 5 — Lancer la configuration - Dire : « configure la facturation ». - Le skill « configuration » va : * renseigner base_dir (chemin du dossier connecte) dans config.json ; * demander, POUR CHAQUE SOCIETE : raison sociale, nom affiche, forme + capital, adresse, telephone, ICE (obligatoire), IF, RC, patente, banque, RIB, un PREFIXE de numerotation (2-6 lettres, ex. TAR), une couleur d'accent ; * importer tes visuels (logo + cachet AVEC signature superposee) dans _Assets ; * creer le dossier d'archive // de chaque societe ; * ecrire config.json complet. - Fini : le systeme est pret, et tout se synchronise tout seul vers le cloud. NOTE — Sans Google Drive pour Desktop, le systeme fonctionne quand meme : il reste 100 % local, mais sans synchro cloud automatique (tu geres la sauvegarde toi-meme). -------------------------------------------------------------------------- 4. UTILISATION AU QUOTIDIEN -------------------------------------------------------------------------- GENERER UNE FACTURE « Facture pour , a HT, echeance 30 j. » -> Claude lit config.json + le registre local, calcule le numero PREFIXE-AAAA-NNN, genere le PDF dans //, montre un recap et ATTEND ta validation, puis met le registre a jour EN PLACE. -> ICE client obligatoire (demande s'il manque). Client repris du carnet si connu. CREER UN AVOIR « Avoir sur la facture . » -> serie PREFIXE-AAAA-AVNNN, montants negatifs au registre (a confirmer). GENERER UN LOT Fournir une liste : Claude numerote chaque facture (compteur par prefixe), genere les PDF, met le registre a jour UNE SEULE FOIS. TABLEAU DE BORD « Montre-moi le suivi de facturation / les impayes. » -> vue d'ensemble, par societe, echeances depassees et a venir. RELANCES « Prepare les relances pour les impayes. » -> brouillons d'e-mails (ton adapte au retard). AUCUN e-mail n'est envoye : tu copies, verifies, envoies. MARQUER UNE FACTURE PAYEE « La facture est payee le . » -> statut « Paye » + date, registre regenere en place. -------------------------------------------------------------------------- 5. FAIRE EVOLUER LA CONFIGURATION -------------------------------------------------------------------------- - Ajouter une societe : « ajoute une societe a la facturation ». - Changer un visuel (logo, cachet, SIGNATURE) : « mets a jour le cachet de » -> tu fournis l'image, Claude superpose la signature sur le cachet (script fusion_cachet.py), enregistre le PNG dans _Assets et met a jour config.json. - Corriger une mention (RIB, adresse...) : modifie dans config.json. -------------------------------------------------------------------------- 6. REGLES IMPORTANTES (GARDE-FOUS) -------------------------------------------------------------------------- - Tout est LOCAL ; la synchro cloud est automatique via Google Drive pour Desktop. PAS de suppression/re-upload du registre : il est edite en place. - Validation humaine avant d'ecraser le registre. - Aucun e-mail envoye automatiquement (brouillons seulement). - Pas de suppression de fichier sans confirmation. - Le registre local est la SOURCE DE VERITE des numeros et montants. - Cachet + signature = UN SEUL PNG fusionne (le generateur n'insere qu'une image). - config.json ne contient AUCUN secret (pas de mot de passe). -------------------------------------------------------------------------- 7. DETAILS TECHNIQUES (pour Claude / Claude Code) -------------------------------------------------------------------------- SKILLS configuration onboarding + maj config (local). facturation factures/avoirs, registre (local, en place). suivi-facturation tableau de bord, relances (lecture locale). FICHIERS DE REFERENCE (dans le plugin) skills/configuration/references/config-schema.md schema de config.json (v2 local) skills/facturation/references/schema-facture.md schema du spec de facture SCRIPTS facturation/scripts/generate_invoice.py spec.json ///.pdf facturation/scripts/maj_registre.py input.json /_Registre/registre-factures.xlsx input = { "annee", "societes":[{prefix,nom_affiche}], "rows":[...] } -> recalcule le prochain numero PAR PREFIXE (facture + avoir) + tableau de bord -> REECRIT le meme fichier (pas de suppression/re-upload) suivi-facturation/scripts/tableau_bord.py input.json --json dash.json suivi-facturation/scripts/relance.py input.json configuration/scripts/fusion_cachet.py cachet.png signature.png sortie.png [--scale 0.6 --x 0.5 --y 0.55 --angle 0] CONFIG (config.json, a la racine de base_dir) base_dir chemin absolu du dossier de travail local dossiers/registre_file/carnet_file chemins RELATIFS a base_dir societes[] prefix, mentions legales, logo_path, cachet_path, archive_dir clients[] carnet (code, nom, ICE, adresse) DEPENDANCES pip install reportlab openpyxl pillow --break-system-packages NUMEROTATION PREFIXE-AAAA-NNN (factures), PREFIXE-AAAA-AVNNN (avoirs), series separees par societe, remise a zero annuelle, lue dans le registre (jamais devinee). ==========================================================================