gigafibre-fsm/docs/archive/LEGACY-ACCOUNTING-ANALYSIS.md
louispaulb 41d9b5f316 feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2
Major additions accumulated over 9 days — single commit per request.

Flow editor (new):
- Generic visual editor for step trees, usable by project wizard + agent flows
- PROJECT_KINDS / AGENT_KINDS catalogs decouple UI from domain
- Drag-and-drop reorder via vuedraggable with scope isolation per peer group
- Chain-aware depends_on rewrite on reorder (sequential only — DAGs preserved)
- Variable picker with per-applies_to catalog (Customer / Quotation /
  Service Contract / Issue / Subscription), insert + copy-clipboard modes
- trigger_condition helper with domain-specific JSONLogic examples
- Global FlowEditorDialog mounted once in MainLayout, Odoo inline pattern
- Server: targo-hub flow-runtime.js, flow-api.js, flow-templates.js
- ERPNext: Flow Template/Run doctypes, scheduler, 5 seeded system templates
- depends_on chips resolve to step labels instead of opaque "s4" ids

QR/OCR scanner (field app):
- Camera capture → Gemini Vision via targo-hub with 8s timeout
- IndexedDB offline queue retries photos when signal returns
- Watcher merges late-arriving scan results into the live UI

Dispatch:
- Planning mode (draft → publish) with offer pool for unassigned jobs
- Shared presets, recurrence selector, suggested-slots dialog
- PublishScheduleModal, unassign confirmation

Ops app:
- ClientDetailPage composables extraction (useClientData, useDeviceStatus,
  useWifiDiagnostic, useModemDiagnostic)
- Project wizard: shared detail sections, wizard catalog/publish composables
- Address pricing composable + pricing-mock data
- Settings redesign hosting flow templates

Targo-hub:
- Contract acceptance (JWT residential + DocuSeal commercial tracks)
- Referral system
- Modem-bridge diagnostic normalizer
- Device extractors consolidated

Migration scripts:
- Invoice/quote print format setup, Jinja rendering
- Additional import + fix scripts (reversals, dates, customers, payments)

Docs:
- Consolidated: old scattered MDs → HANDOFF, ARCHITECTURE, DATA_AND_FLOWS,
  FLOW_EDITOR_ARCHITECTURE, BILLING_AND_PAYMENTS, CPE_MANAGEMENT,
  APP_DESIGN_GUIDELINES
- Archived legacy wizard PHP for reference
- STATUS snapshots for 2026-04-18/19

Cleanup:
- Removed ~40 generated PDFs/HTMLs (invoice_preview*, rendered_jinja*)
- .gitignore now covers invoice preview output + nested .DS_Store

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 10:44:17 -04:00

24 KiB
Raw Blame History

Analyse du système comptable legacy (facturation.targo.ca)

Avril 2026 — Audit complet du système PHP/MariaDB pour migration vers ERPNext


1. Pages PHP activement utilisées (Apache access.log)

Classement par fréquence d'accès (logs récents) :

Rang Page (menu=) Fichier PHP Fonction Accès
1 ticket_view ticket_view.php Consultation tickets 47 964
2 ticket_calendar ticket_calendar.php Calendrier dispatch tickets 24 626
3 client_view client_view.php Fiche client 15 075
4 client_list client_list.php Liste clients 12 638
5 ticket_open ticket_open.php Tickets ouverts 6 571
6 device_view device_view.php Fiche équipement 3 664
7 passwords_manager_list passwords_manager_list.php Gestionnaire de mots de passe 3 662
8 client_r client_r.php Recherche client 2 731
9 service_view service_view.php Détail service/abonnement 1 898
10 passwords_manager passwords_manager.php Mots de passe (détail) 1 738
11 invoice_view invoice_view.php Consultation facture 1 231
12 client_wizard client_wizard.php Wizard création client 876
13 pbx_list_pg pbx_list_pg.php Liste lignes PBX 845
14 ticket_new ticket_new.php Nouveau ticket 839
15 inventaire_remove inventaire_remove.php Retrait inventaire 812
16 fibre_adr_search fibre_adr_search.php Recherche adresse fibre 751
17 prorata prorata.php Calculateur pro-rata 656
18 payment_view payment_view.php Consultation paiement 550
19 payment_add payment_add.php Ajout paiement 538
20 tele_migration tele_migration.php Migration TV 419
21 invoice_add invoice_add.php Création facture 338
22 ticket_calendar_dispatch ticket_calendar_dispatch.php Dispatch calendrier 291
23 tele_channel_list tele_channel_list.php Liste chaînes TV 268
24 ticket_search ticket_search.php Recherche tickets 158
25 soumission soumission.php Soumissions/devis 157
26 inscription_add inscription_add.php Inscription client 157
27 cal_tax rapport_tax.php Rapport taxes 152
28 rapport_age_compte_payment rapport_age_compte.php Âge des comptes 151
29 raisecom_list raisecom_list.php Équipement Raisecom 129
30 client_add client_add.php Ajout client 107
31 report report.php Rapports généraux 101
32 task_generate_statement task_generate_statement.php Génération états de compte 43
33 service_add service_add.php Ajout service 43
34 accord_paiement accord_paiement.php Ententes de paiement 25
35 report_vente report_vente.php Rapport ventes mensuelles 24
36 invoice_credit invoice_credit.php Note de crédit 23
37 payment_accesd payment_accesd.php Paiement AccèsD 14
38 credit_creance credit_creance.php Crédit mauvaises créances 10

2. Plan comptable complet (compta_comptes)

Actifs

# Compte Description
1000 Encaisse PPA
1001 Encaisse Paiement direct
1002 Encaisse Carte de crédit
1003 Encaisse Comptant/Chèques
1004 Encaisse Ajustements
1005 Encaissement de crédit
1050 Petite caisse - bureau
1060 Petite caisse - service à la clientèle
1100 Caisse populaire
1200 Comptes à recevoir
1205 Provisions mauvaises créances

Passifs

# Compte Description
2110 Excédent
2115 Dépôt/Acompte client
2300 TPS perçue
2305 TPS payée
2350 TVQ perçue
2355 TVQ payée

Revenus (4000-4xxx)

# Compte Description
4000 Revenus autres
4001 Location espace cloud
4010 Honoraires
4015 Téléphonie
4016 Saisonniers (coupons-maraîchers)
4017 Installation et équipement fibre
4018 Équipement télé
4019 Mensualité télévision
4020 Mensualité fibre
4021 Mensualité Internet Haute-Vitesse sans fil
4022 Installation Internet Haute-Vitesse sans fil
4023 Équipement Internet Haute-Vitesse sans fil
4024 Téléchargement supplémentaire
4025 Garantie prolongée
4026 Section de Tour
4027 IP Fixe
4028 Frais d'activation
4031 Création de site Internet
4041 Nom de Domaine
4042 Hébergement
4051 Système Informatique
4052 Revenu - Service Informatique
4054 Pièces Informatiques
4106 Déplacement/temps technicien
4250 Intérêts et frais divers
4260 Frais divers taxables
4300 Temporaire

Dépenses / Charges

# Compte Description
7575 Frais PayPal
7900 Mauvaises créances
7905 Frais de recouvrement
7910 Déficit ou surplus de caisse

3. Taxes — Configuration

Taux de taxe

ID Nom Taux No. enregistrement
1 TPS 5.0% #834975559RT0001
2 TVQ 8.925% #1213765929 (ancien)
3 TVQ 8.5% #1213765929 (ancien)
4 TVQ 9.975% #1213765929 (actuel)

Groupes de taxe

ID Nom Taxes appliquées
1 Federal + Provincial (9.5%) TPS (5%) + TVQ (9.975%)
2 Federal seulement TPS (5%)
3 Aucune taxe
4 Provincial seulement TVQ (8.5%)
5 Fed 5% + Prov 8.5% TPS (5%) + TVQ (8.5%)

Comptes de taxe dans le journal

  • 2300 = TPS perçue (CT sur vente, DT sur crédit)
  • 2305 = TPS payée (DT sur achat)
  • 2350 = TVQ perçue (CT sur vente, DT sur crédit)
  • 2355 = TVQ payée (DT sur achat)

4. Codes de crédit

ID Description
1 Raison inconnue
2 Correction d'une facture
3 Client sous garantie
4 Annulation Téléchargement supplémentaire
5 Entente prise

5. Récurrence des services actifs

Code Fréquence Services actifs
0 Annuel 314
1 Bi-mensuel 43
2 Mensuel 37 435
3 Charge unique 255
4 Aux 4 mois 7
5 Aux 6 mois 1 471
6 Aux 3 mois (trimestriel) 98

6. Analyse détaillée des processus comptables

6.1 Facturation récurrente (task_charge_recurrent.php)

Processus mensuel exécuté manuellement via l'interface web.

Étapes :

  1. L'opérateur choisit : date service ≤, date d'origine, date d'échéance

  2. Option : surcharge de taxe, message à inclure sur les factures

  3. Le script itère sur tous les comptes (SELECT * FROM account)

  4. Pour chaque compte :

    • Vérifie si une facture autobilling existe déjà pour cette date (dédoublonnage)
    • Parcourt les delivery (points de livraison) → service (abonnements)
    • Conditions de facturation :
      • date_next_invoice <= date_choisie
      • service.status = 1 (actif)
      • account.status = 1 (actif)
    • Calcule le prix : quantité × prix_unitaire (quantité basée sur la récurrence)
    • Supporte le hijack de prix/description : prix custom par service
  5. Consommation excédentaire (bandwidth overage) :

    • Vérifie les quotas jour/nuit via service_snapshot
    • Compare avec la consommation réelle (conso_archive ou conso_radius_monthly2)
    • Si dépassement ≥ 1 GB : ajoute un item de facturation HVGO × n GO × prix/GO
  6. Frais de retard :

    • 2% du solde impayé des factures en souffrance
    • Exception : clients VIP (1 mois de grâce), clients au recouvrement, clients avec PPA (pré-autorisé)
    • Compte : 4250 (Intérêts et frais divers)
  7. Taxes : Calculées selon le tax_group du client

  8. Écriture comptable : Chaque facture génère :

    • DT 1200 (Comptes à recevoir) = total
    • CT [compte revenu selon produit] = sous-total par item
    • CT 2300 (TPS perçue) = montant TPS
    • CT 2350 (TVQ perçue) = montant TVQ
    • Type écriture : F (Facture)

6.2 Création de facture manuelle (invoice_add.php)

Même logique comptable que la facturation récurrente, mais :

  • L'opérateur saisit manuellement les items (SKU, description, prix, quantité)
  • Le compte de revenu est déterminé par la catégorie du produit (product_cat.num_compte)
  • Supporte un champ "dépense" (DT sur un compte spécifique, déduit du total)
  • Options : sans taxe, surcharge de taxe, impression, envoi par email
  • Écriture identique : DT 1200 + CT [revenus] + CT taxes

6.3 Note de crédit (invoice_credit.php)

Logique inversée par rapport à la facture :

  • Items avec prix négatif (unitary_price = montant négatif)
  • Écritures inversées :
    • CT 1200 (comptes à recevoir) = total du crédit
    • DT [compte revenu] = montant par item
    • DT 2300 (TPS) = taxe TPS sur le crédit
    • DT 2350 (TVQ) = taxe TVQ sur le crédit
  • Crée simultanément un payment de type credit pour le même montant
  • invoice.refund_status = 2 (Crédit)
  • invoice.billing_status = 1 (considéré comme payé)
  • Associé à un credit_code pour catégoriser la raison

6.4 Paiement (payment_add.php)

Méthodes de paiement :

  • PPA (pré-autorisé)
  • Comptant
  • Chèque
  • Carte de crédit
  • Paiement direct
  • Crédit TARGO

Processus :

  1. L'opérateur entre le client, montant, méthode, date
  2. Le système affiche les factures impayées (via AJAX payment_ajax_date.php)
  3. L'opérateur coche les factures à appliquer et les montants
  4. L'excédent va dans le compte 2115 (Dépôt/Acompte client) ou 2110 (Excédent)
  5. Met à jour invoice.billed_amt et invoice.billing_status
  6. Crée les payment_item pour tracer l'application

6.5 Entente de paiement (accord_paiement.php)

Fonctionnalités :

  • Création d'une entente avec : date accord, date paiement (échéance), montant, méthode
  • Calcul automatique de la date de coupure basé sur la méthode :
    • Comptant : +2 jours
    • Chèque : +9 jours
    • Carte crédit : +2 jours
    • Paiement direct : +4 jours
    • Indéfini : +3 jours
    • Option "grâce férié" : +2 jours supplémentaires
  • Envoi automatique d'email bilingue (FR/EN) au client via PHPMailer/Mailjet
  • Statut : En attente / Respecté / Non respecté (forçable)
  • BCC automatique à Comptabilite@targointernet.com

6.6 Crédit mauvaise créance (credit_creance.php)

Pour radier les comptes irrécouvrables :

  1. L'opérateur spécifie le client et les factures à radier
  2. Le système vérifie que le montant couvre exactement les factures
  3. Reverse-engineer le montant hors taxe : montant / (1 + somme_taux_taxes)
  4. Écritures :
    • CT 1200 (comptes à recevoir) = montant total
    • DT 2300 (TPS) = portion TPS
    • DT 2350 (TVQ) = portion TVQ
    • DT 7900 (mauvaises créances) = montant hors taxe
  5. Marque les factures comme payées (billing_status = 1)
  6. Crée un paiement de type credit pour tracer

6.7 État de compte (task_generate_statement.php)

Processus de batch :

  1. Itère sur tous les comptes avec un solde impayé
  2. Pour chaque compte : collecte les factures et paiements non soldés
  3. Génère un PDF via DomPDF
  4. Envoi par email (Mailjet SMTP) ou impression (lpr)
  5. Message bilingue (FR/EN) avec liens vers le portail client

6.8 Soumissions/Devis (soumission.php)

Fonctionnalités :

  • Création de devis avec items matériel et mensuels
  • Sérialization PHP pour stocker les items (serialize/unserialize)
  • Conversion en facture : crée automatiquement une facture + services mensuels
  • Même logique comptable que invoice_add.php
  • Création automatique de services récurrents pour les items mensuels

7. Rapports comptables

7.1 Rapport de ventes (report_vente.php)

  • Sélection par intervalle de dates
  • Pour chaque facture dans la période :
    • Calcule le sous-total (SUM(quantity × unitary_price) de invoice_item)
    • Récupère les taxes TPS/TVQ séparément de invoice_tax
  • Sortie CSV : #Facture, #Client, SousTotal, TPS, TVQ, Total

7.2 Rapport de revenus par compte (report_revenu.php) — LE RAPPORT CLÉ

  • Requête les comptes de revenus 4000-5000 dans compta_comptes
  • Pour chaque mois dans l'intervalle sélectionné :
    • SELECT SUM(amount) FROM compta_journal_ecriture_detail d JOIN compta_journal_ecriture e WHERE d.num_compte = [compte] AND e.date_orig BETWEEN [début] AND [fin]
    • CT (crédit) = ajoute au revenu
    • DT (débit) = soustrait du revenu (renversements, crédits)
  • Génère un graphique stacked area (Google Charts) + CSV

7.3 Rapport de taxes (rapport_tax.php)

  • Période mensuelle ou trimestrielle
  • 4 comptes suivis :
    • 2300 : TPS perçue (sur ventes)
    • 2305 : TPS payée (sur achats)
    • 2350 : TVQ perçue (sur ventes)
    • 2355 : TVQ payée (sur achats)
  • Revenu total des comptes 4000-6000
  • Utilisé pour les déclarations TPS/TVQ

7.4 Rapport crédits/renversements (report_credit.php)

  • Filtre les factures par refund_status :
    • 1 = Renversement
    • 2 = Crédit
    • 3 = Remboursement
  • Jointure avec credit_code pour la catégorisation
  • Détails par client + totaux par type

7.5 Âge des comptes (rapport_age_compte.php)

  • Buckets : Courant, 30 jours, 60 jours, 90 jours, 120+ jours
  • Pour chaque compte actif :
    • Calcule total_amt - billed_amt par bucket temporel
    • Affiche le solde dû par tranche

7.6 Calculateur pro-rata (prorata.php)

  • Outil manuel : saisie d'un intervalle de dates + montants
  • Formule : montant / jours_total_période × jours_dans_intervalle
  • Pas de logique automatisée — utilisé manuellement par le staff

8. Schéma de la double entrée comptable

FACTURE (vente):
  DT 1200 (Comptes à recevoir)    = TOTAL
  CT [4xxx] (Revenu par catégorie) = Sous-total par item
  CT 2300 (TPS perçue)            = Taxe fédérale
  CT 2350 (TVQ perçue)            = Taxe provinciale

CRÉDIT/RENVERSEMENT:
  CT 1200 (Comptes à recevoir)    = TOTAL
  DT [4xxx] (Revenu par catégorie) = Sous-total par item
  DT 2300 (TPS perçue)            = Taxe fédérale
  DT 2350 (TVQ perçue)            = Taxe provinciale

PAIEMENT:
  CT 1200 (Comptes à recevoir)    = Montant appliqué
  DT [1000-1004] (Encaisse)       = Selon méthode
  DT 2115 (Dépôt client)          = Excédent si applicable

MAUVAISE CRÉANCE:
  CT 1200 (Comptes à recevoir)    = TOTAL
  DT 7900 (Mauvaises créances)    = Montant hors taxe
  DT 2300 (TPS)                   = Portion TPS
  DT 2350 (TVQ)                   = Portion TVQ

9. Mapping vers ERPNext — Analyse de conformité

Ce qu'ERPNext gère nativement

Fonction legacy Équivalent ERPNext Notes
Invoice (facture) Sales Invoice Double entrée automatique
Invoice credit Credit Note (return against) Lié à la facture originale
Payment Payment Entry Application automatique aux factures
Tax groups Sales Taxes and Charges Template TPS + TVQ configurables
Chart of accounts Chart of Accounts Standard Canada (à personnaliser)
Account aging Accounts Receivable report Standard
Statement of Account Statement of Account Standard, envoi email
Product → revenue account Item → Income Account (via Item Group) Mapping par catégorie
Late fees ⚠️ Pas natif, besoin custom
Pro-rata Partiellement via Subscription

⚠️ Ce qui nécessite du développement custom

Fonction legacy Complexité Approche ERPNext
Facturation récurrente automatique Moyenne ERPNext Subscription doctype — mais ne gère pas : hijack prix/desc par service, consommation bandwidth, frais de retard conditionnels
Frais de retard (2% du solde) Moyenne Script schedulé custom : requête AR aging, crée Sales Invoice pour frais
Consommation excédentaire (bandwidth) Haute Script custom : lire données RADIUS/conso, comparer quotas, créer items de facturation
Hijack prix/description Basse Utiliser Subscription Plan avec prix custom par abonnement (champ custom)
Entente de paiement Moyenne Doctype custom Payment Agreement avec workflow (statut, date coupure, email auto)
Crédit mauvaise créance Basse Journal Entry custom : DT 7900 + DT taxes + CT 1200
Soumissions → facture + services Moyenne Quotation → Sales Invoice + création auto Subscription
Rapport revenus par compte GL Basse General Ledger report filtré par groupe de comptes
Rapport taxes TPS/TVQ Basse Tax report custom ou filtrage du GL
Rapport crédits par code Basse Custom report sur Credit Notes avec champ custom credit_code
Calculateur pro-rata Basse Déjà dans ERPNext pour les Subscriptions

Gaps critiques — ERPNext ne gère PAS nativement

  1. Facturation par point de livraison (delivery) : Le legacy facture par "delivery" (adresse) avec des services distincts par delivery. ERPNext n'a pas ce concept — il faudrait soit un champ custom service_location sur les items de Subscription, soit un Subscription par adresse.

  2. Récurrences variées sur un même compte : Un client peut avoir des services mensuels, semestriels et annuels. ERPNext Subscription ne supporte qu'une seule fréquence par subscription — il faudrait plusieurs Subscriptions par client.

  3. Période comptable fermée : Le legacy a une variable $month_close / $year_close qui empêche de créer des écritures dans les périodes fermées. ERPNext a le concept d'Accounting Period mais la vérification est différente.

  4. Encaisse séparée par méthode de paiement : Comptes 1000-1004 distincts (PPA, direct, carte, comptant). ERPNext utilise un seul compte bancaire par défaut — il faut créer des Mode of Payment avec des comptes distincts.

  5. Inventaire des mots de passe (passwords_manager) : Aucun équivalent dans ERPNext — outil externe nécessaire (Vault, Bitwarden, etc.)


10. Scénarios complexes de facturation

Scénario : Contrat 24 mois avec crédits récurrents

Legacy (tel que décrit par l'opérateur) :

Client signe Internet 100Mbps à 79.95$/mois × 24 mois
+ Crédit récurrent -20$/mois × 12 mois (promotion)
+ Crédit installation -10$/mois × 24 mois (amortissement installation)
= Mois 1-12 : 79.95 - 20 - 10 = 49.95$/mois
= Mois 13-24 : 79.95 - 10 = 69.95$/mois
= Mois 25+ : 79.95$/mois

Résiliation anticipée au mois 18 :
- Pénalité : solde restant des crédits d'installation (6 × 10$ = 60$)
- Frais de résiliation : selon conditions

Implémentation dans le legacy :

  • Service principal avec hijack_price = 79.95
  • Service crédit promotion avec hijack_price = -20, actif_until = date+12 mois
  • Service crédit installation avec hijack_price = -10, actif_until = date+24 mois
  • La résiliation anticipe est gérée manuellement (pas automatisée)

Approche ERPNext proposée :

  • Subscription principal : item Internet 100Mbps, prix 79.95
  • Subscription Plan avec Pricing Rule ou items de crédit négatifs
  • Champs custom sur Subscription : engagement_months, engagement_start
  • Script de résiliation custom : calcule la pénalité selon les mois restants
  • ⚠️ Nécessite un développement custom significatif

Scénario : Client avec plusieurs adresses et services mixtes

Client TARGO-1234 :
├── Adresse 1 (123 rue Principale)
│   ├── Internet Fibre 100Mbps (mensuel)
│   ├── Téléphonie VoIP (mensuel)
│   └── TV Premium (mensuel)
├── Adresse 2 (456 av. du Parc)
│   ├── Internet Sans-fil (semestriel)
│   └── IP Fixe (annuel)
└── Adresse 3 (789 ch. du Lac - saisonnier)
    └── Internet Fibre 50Mbps (6 mois : mai-octobre)

Legacy : Chaque adresse = 1 delivery, chaque item = 1 service avec sa propre date_next_invoice

ERPNext : Nécessite 5+ Subscriptions avec des fréquences différentes, toutes liées au même Customer. Les items doivent référencer la Service Location. La facture unique mensuelle qui regroupe tout n'est pas le comportement par défaut d'ERPNext.


11. Tables legacy non migrées — Priorité

Priorité CRITIQUE (comptabilité)

Table Records Description Migration
compta_journal_ecriture ~500K+ Écritures comptables → GL Entry
compta_journal_ecriture_detail ~1.5M+ Détails écritures → GL Entry
compta_comptes 37 Plan comptable → Chart of Accounts
compta_setup 1 Période fermée → Accounting Period
invoice ~500K+ Factures → Sales Invoice (partiel )
invoice_item ~2M+ Items de facture → Sales Invoice Item
invoice_tax ~1M+ Taxes par facture → Sales Taxes and Charges
payment ~200K+ Paiements → Payment Entry
payment_item ~400K+ Application paiements → Payment Entry Reference
credit_code 5 Codes de crédit → Custom DocType
tax_group 5 Groupes de taxe → Sales Taxes Template
tax 4 Taux de taxe → Tax template

Priorité HAUTE (opérations)

Table Description Migration
service Abonnements actifs → Subscription
delivery Points de livraison → Service Location (partiel )
product Catalogue produits → Item (partiel )
product_cat Catégories + comptes de revenu → Item Group
product_translate Traductions produits → Item (description champ)
accord_paiement Ententes de paiement → Custom DocType
soumission Devis/soumissions → Quotation
deposit Bordereaux de dépôt → Bank Transaction

Priorité MOYENNE (support)

Table Description Migration
ticket / ticket_response Tickets support → Issue (partiel )
account_note Notes client → Comment
attachments Pièces jointes → File
bon_travail Bons de travail → Work Order / Dispatch Job
inventaire Inventaire équipement → Service Equipment (partiel )
passwords_manager Mots de passe réseau → Outil externe

Priorité BASSE (legacy/obsolète)

Table Description Notes
conso_archive Consommation bandwidth Historique, pas de migration active
conso_radius_monthly2 Consommation RADIUS Historique
service_snapshot Snapshots quotas Historique
invoice_call Appels interurbains Fonction potentiellement obsolète
invoice_msg_template Templates messages facture → Print Format
staff Personnel → Employee
phone Lignes téléphoniques → Voix / PBX
ip Adresses IP → Service Equipment

12. Recommandations — Ordre de migration

Phase 1 : Fondations comptables

  1. Mapper le plan comptable legacy → ERPNext Chart of Accounts
  2. Configurer les taxes TPS/TVQ avec les bons comptes
  3. Configurer les Mode of Payment avec comptes d'encaisse séparés (1000-1004)
  4. Créer les Item Groups avec les comptes de revenu correspondants

Phase 2 : Import historique

  1. Importer les factures historiques (invoice → Sales Invoice)
  2. Importer les paiements historiques (payment → Payment Entry)
  3. Vérifier la balance de migration (comptes à recevoir)

Phase 3 : Processus récurrents

  1. Développer le module de facturation récurrente custom (basé sur Subscription mais avec les spécificités Targo)
  2. Intégrer les frais de retard automatiques
  3. Développer les ententes de paiement (custom doctype)

Phase 4 : Rapports

  1. Valider que le GL report reproduit le rapport de revenus
  2. Développer le rapport de taxes TPS/TVQ
  3. Adapter le rapport d'âge des comptes

Phase 5 : Fonctionnalités avancées

  1. Consommation excédentaire bandwidth
  2. Soumissions → facturation automatique
  3. Crédits mauvaises créances
  4. Migration des données de consommation historiques (si nécessaire)