All docs moved with git mv so --follow preserves history. Flattens the single-folder layout into goal-oriented folders and adds a README.md index at every level. - docs/README.md — new landing page with "I want to…" intent table - docs/architecture/ — overview, data-model, app-design - docs/features/ — billing-payments, cpe-management, vision-ocr, flow-editor - docs/reference/ — erpnext-item-diff, legacy-wizard/ - docs/archive/ — HANDOFF-2026-04-18, MIGRATION, status-snapshots/ - docs/assets/ — pptx sources, build scripts (fixed hardcoded path) - roadmap.md gains a "Modules in production" section with clickable URLs for every ops/tech/portal route and admin surface - Phase 4 (Customer Portal) flipped to "Largely Shipped" based on audit of services/targo-hub/lib/payments.js (16 endpoints, webhook, PPA cron, Klarna BNPL all live) - Archive files get an "ARCHIVED" banner so stale links inside them don't mislead readers Code comments + nginx configs rewritten to use new doc paths. Root README.md documentation table replaced with intent-oriented index. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
61 lines
4.4 KiB
Markdown
61 lines
4.4 KiB
Markdown
# ERPNext Item Master — Diff vs Legacy `gestionclient`
|
||
|
||
Tracks every **new Item** created in ERPNext that does **not** exist (by SKU or
|
||
semantic concept) in the legacy `gestionclient.product` table. Each entry lists
|
||
the rationale, so the migration audit trail stays intact as we re-model pricing
|
||
in the wizard.
|
||
|
||
Conventions:
|
||
- **Reused** = SKU matches legacy 1:1 (already imported in bulk).
|
||
- **Semantic reuse** = different SKU in wizard, but a legacy SKU covers the same
|
||
concept — wizard-constants points at the legacy SKU.
|
||
- **New** = ERPNext-only SKU, no legacy equivalent.
|
||
|
||
---
|
||
|
||
## New Items (wizard-generated lines with no legacy counterpart)
|
||
|
||
| ERPNext SKU | Name | Rate | Group | Why new |
|
||
|---|---|---|---|---|
|
||
| `TV-BASE` | Télévision de base | 19.95 $ | Télévision | Wizard simplifies legacy `TVBSKINNY`/`TVBSTANDARD`/`TVBEVO` (25/30/35 $) into a single flat base. |
|
||
| `TV-MIX5` | Bonus Mix 5 chaînes | 10.00 $ | Télévision | Positive-rate addon (vs legacy `RABTV_MIX5` rebate at 0 $). Wizard flattens "pick 5 thematic forfaits + get rebate" into a single "+10 $ for 5 picks" line. |
|
||
| `TV-MIX10` | Bonus Mix 10 chaînes | 17.50 $ | Télévision | Same pattern as TV-MIX5 — replaces legacy picking N TVF* packs + `RABTV_MIX10`. |
|
||
| `TV-PREMIUM-SUR` | Supplément chaîne premium | 3.00 $ | Télévision | Wizard surcharge per premium sport pick (RDS, TSN, Sportsnet, TVA Sports). Emitted as a line per premium group. No legacy equivalent — legacy had thematic forfaits at 20 $ (TVFSPORTFR/EN) instead. |
|
||
| `TV-ALC-OVER` | Chaînes additionnelles (à la carte) | 0.00 $ (rate computed per line) | Télévision | Overage line when channel picks exceed the Mix allotment. No legacy equivalent. |
|
||
| `REF-CREDIT-50` | Crédit parrainage | -50.00 $ | Rabais | One-time credit when a valid referral code is entered. Legacy used `CRPROGREC` (-21.74 $) with a different program. *Pre-existed in ERPNext.* |
|
||
| `EQ-WIFI-BOOST` | Booster WiFi (maillage) | 5.00 $ | Équipement | Mesh booster — no legacy equivalent (legacy sold UniFi APs at 160–316 $, not a monthly rental). |
|
||
| `RAB-LOYAUTE` | Rabais Fidélité | -40.00 $ | Rabais | Flat fidélité rebate on FTTH80I to reach 39.95 $ promo. Legacy used `RAB_X` (-20 $) + other flags — wizard centralizes. |
|
||
| `FEE-INSTALL` | Frais d'installation | 99.95 $ | Frais | Flat install fee. Legacy model was `INSTFIBRES` 199 $ + `RABINS` -199 $ = 0 $ net with 24mo contract. Wizard simplifies. |
|
||
| `FEE-EXTRA` | Frais supplémentaire — installation | 0.00 $ (rate per line) | Frais | Per-step extra fees (émondage, creusage, etc.) from `EXTRA_FEE_PRESETS`. |
|
||
|
||
## Semantic reuse — wizard points at legacy SKUs
|
||
|
||
| Wizard concept | Legacy SKU reused | Rate | Notes |
|
||
|---|---|---|---|
|
||
| À la carte TV | `TELE_CARTE` | 0 $ | Legacy description: « Télévision à la carte » — exact match. Wizard uses this as the base for à-la-carte selections. |
|
||
| Téléphonie illimitée CA/US | `TELEPMENS` | 28.95 $ | Legacy description: « Téléphonie IP, options toutes incluses, Canada et É-U illimité ». Bundle discount (to reach ~10 $/mo) is applied manually, not auto-generated. |
|
||
| Portabilité téléphonique | `TELEPTRANS` | 40.00 $ | Legacy: « Transfert de numéro ». Wizard references only if port-in is requested. |
|
||
| Rabais combo 2 / 3 / 4 services | `RAB2X` / `RAB3X` / `RAB4X` | -5 / -10 / -15 $ | **Added manually** at the sales rep's discretion — no longer auto-inserted by the wizard. |
|
||
| Rabais engagement 24 mois | `RAB24M` | -15 $ | Legacy-only; reused directly. |
|
||
|
||
## Reused 1:1 (no diff)
|
||
|
||
- All `FTTH*I` SKUs (80, 150, 500, 1500, 3500, 8000)
|
||
- All `FTTB*I` SKUs (25, 50, 100, 300, 1000)
|
||
- All `TVF*` thematic forfaits (CRAVE, STARZ, SPORTEN, SPORTFR, SE, DECOU, STYLE, FILM, JEUNE, etc.)
|
||
- All `TVB*` base packages (SKINNY, STANDARD, EVO)
|
||
- Rebates: `RABTV_MIX5`, `RABTV_MIX10`, `RAB2X`, `RAB3X`, `RAB4X`, `RAB24M`, `RAB36M`, `RAB_X`, `RABINS`
|
||
- Fees: `ACTTELEP`, `INSTFIBRES`, `INSTFCAMP`, `CRINSTFIB`
|
||
- Phone: `TELEPMENS`, `TELEPTRANS`, `SERV911`, `TELEPMENSCR`
|
||
|
||
## Notable legacy SKUs explicitly NOT used by the wizard
|
||
|
||
- `TVBSKINNY` / `TVBSTANDARD` / `TVBEVO` — superseded by `TV-BASE`
|
||
- Individual `TVF*` thematic forfaits — wizard uses picker + Mix 5/10 instead
|
||
- `INSTFIBRES` + `RABINS` rebate mechanic — replaced by single `FEE-INSTALL`
|
||
- `RABTV_MIX5` / `RABTV_MIX10` rebate items — replaced by positive-rate `TV-MIX5` / `TV-MIX10`
|
||
|
||
---
|
||
|
||
**Last updated**: 2026-04-21 (wizard → legacy Item mapping audit).
|