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>
24 KiB
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 :
-
L'opérateur choisit : date service ≤, date d'origine, date d'échéance
-
Option : surcharge de taxe, message à inclure sur les factures
-
Le script itère sur tous les comptes (
SELECT * FROM account) -
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_choisieservice.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
-
Consommation excédentaire (bandwidth overage) :
- Vérifie les quotas jour/nuit via
service_snapshot - Compare avec la consommation réelle (
conso_archiveouconso_radius_monthly2) - Si dépassement ≥ 1 GB : ajoute un item de facturation
HVGO × n GO × prix/GO
- Vérifie les quotas jour/nuit via
-
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)
-
Taxes : Calculées selon le
tax_groupdu client -
É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
paymentde typecreditpour le même montant invoice.refund_status = 2(Crédit)invoice.billing_status = 1(considéré comme payé)- Associé à un
credit_codepour 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 :
- L'opérateur entre le client, montant, méthode, date
- Le système affiche les factures impayées (via AJAX
payment_ajax_date.php) - L'opérateur coche les factures à appliquer et les montants
- L'excédent va dans le compte 2115 (Dépôt/Acompte client) ou 2110 (Excédent)
- Met à jour
invoice.billed_amtetinvoice.billing_status - Crée les
payment_itempour 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 :
- L'opérateur spécifie le client et les factures à radier
- Le système vérifie que le montant couvre exactement les factures
- Reverse-engineer le montant hors taxe :
montant / (1 + somme_taux_taxes) - É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
- Marque les factures comme payées (billing_status = 1)
- Crée un paiement de type
creditpour tracer
6.7 État de compte (task_generate_statement.php)
Processus de batch :
- Itère sur tous les comptes avec un solde impayé
- Pour chaque compte : collecte les factures et paiements non soldés
- Génère un PDF via DomPDF
- Envoi par email (Mailjet SMTP) ou impression (lpr)
- 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)deinvoice_item) - Récupère les taxes TPS/TVQ séparément de
invoice_tax
- Calcule le sous-total (
- 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_codepour 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_amtpar bucket temporel - Affiche le solde dû par tranche
- Calcule
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
-
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_locationsur les items de Subscription, soit un Subscription par adresse. -
Récurrences variées sur un même compte : Un client peut avoir des services mensuels, semestriels et annuels. ERPNext
Subscriptionne supporte qu'une seule fréquence par subscription — il faudrait plusieurs Subscriptions par client. -
Période comptable fermée : Le legacy a une variable
$month_close/$year_closequi empêche de créer des écritures dans les périodes fermées. ERPNext a le concept d'Accounting Periodmais la vérification est différente. -
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.
-
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 :
Subscriptionprincipal : item Internet 100Mbps, prix 79.95Subscription PlanavecPricing Ruleou 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
- Mapper le plan comptable legacy → ERPNext Chart of Accounts
- Configurer les taxes TPS/TVQ avec les bons comptes
- Configurer les Mode of Payment avec comptes d'encaisse séparés (1000-1004)
- Créer les Item Groups avec les comptes de revenu correspondants
Phase 2 : Import historique
- Importer les factures historiques (invoice → Sales Invoice)
- Importer les paiements historiques (payment → Payment Entry)
- Vérifier la balance de migration (comptes à recevoir)
Phase 3 : Processus récurrents
- Développer le module de facturation récurrente custom (basé sur Subscription mais avec les spécificités Targo)
- Intégrer les frais de retard automatiques
- Développer les ententes de paiement (custom doctype)
Phase 4 : Rapports
- Valider que le GL report reproduit le rapport de revenus
- Développer le rapport de taxes TPS/TVQ
- Adapter le rapport d'âge des comptes
Phase 5 : Fonctionnalités avancées
- Consommation excédentaire bandwidth
- Soumissions → facturation automatique
- Crédits mauvaises créances
- Migration des données de consommation historiques (si nécessaire)