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>
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).
|