Rebrand: rename ondeck->horizon in package.json, docker-compose, SERVER.md, docs; production stack at /opt/stacks/horizon
This commit is contained in:
parent
77f23e12cd
commit
bbdbe1ddc0
8 changed files with 464 additions and 46 deletions
|
|
@ -6,11 +6,11 @@ The Designation Admin Interface allows administrators to create and manage clien
|
|||
|
||||
## Key Concepts
|
||||
|
||||
### Designations are Created in OnDeck
|
||||
### Designations are Created in Horizon
|
||||
|
||||
**All designations are created and managed within the OnDeck application.** They are NOT imported from AFW. Instead:
|
||||
**All designations are created and managed within the Horizon application.** They are NOT imported from AFW. Instead:
|
||||
|
||||
1. **Create a designation** in OnDeck (e.g., "Shape", "Premium", "VIP")
|
||||
1. **Create a designation** in Horizon (e.g., "Shape", "Premium", "VIP")
|
||||
2. **Optionally map it to an AFW ANotId** (a GUID that identifies customers in AMS360)
|
||||
3. **Sync to automatically assign** clients based on their AFW data
|
||||
|
||||
|
|
@ -19,12 +19,12 @@ The Designation Admin Interface allows administrators to create and manage clien
|
|||
Each designation can have an **optional AFW ANotId** field:
|
||||
- This is a GUID from AMS360/AFW (e.g., `13CF7DCB-F6AF-42C2-A7AB-26641A216A81`)
|
||||
- It identifies a group of customers in the AFW database
|
||||
- When you sync, clients with this ANotId in AFW get assigned to this designation in OnDeck
|
||||
- When you sync, clients with this ANotId in AFW get assigned to this designation in Horizon
|
||||
|
||||
### Example Workflow
|
||||
|
||||
```
|
||||
1. Admin creates "Shape" designation in OnDeck
|
||||
1. Admin creates "Shape" designation in Horizon
|
||||
- Name: Shape
|
||||
- Color: Indigo
|
||||
- AFW ANotId: 13CF7DCB-F6AF-42C2-A7AB-26641A216A81
|
||||
|
|
@ -35,7 +35,7 @@ Each designation can have an **optional AFW ANotId** field:
|
|||
3. Admin saves the designation
|
||||
|
||||
4. Admin clicks "Sync" on the Shape designation
|
||||
- OnDeck queries AFW for customers with ANotId 13CF7DCB-...
|
||||
- Horizon queries AFW for customers with ANotId 13CF7DCB-...
|
||||
- Finds matching clients in local database
|
||||
- Updates their designationId to "Shape"
|
||||
- Result: 145 clients updated, 5 skipped (already had Shape)
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
### What this script does
|
||||
|
||||
This script imports historical SHAPE task completion data from the team's SharePoint Excel files into OnDeck. It is a **one-time migration tool** — not part of the ongoing sync.
|
||||
This script imports historical SHAPE task completion data from the team's SharePoint Excel files into Horizon. It is a **one-time migration tool** — not part of the ongoing sync.
|
||||
|
||||
Each team member has a folder on SharePoint at:
|
||||
```
|
||||
Claims/SHAPE Accounts/{MEMBER_FOLDER}/{Client}.xlsx
|
||||
```
|
||||
|
||||
The script reads every client Excel file for each advocate, matches it to a client in OnDeck, and records whether each SHAPE task was completed, marked N/A, or left blank.
|
||||
The script reads every client Excel file for each advocate, matches it to a client in Horizon, and records whether each SHAPE task was completed, marked N/A, or left blank.
|
||||
|
||||
### Team member folders
|
||||
|
||||
|
|
@ -52,12 +52,12 @@ After running, the report shows:
|
|||
| Stat | Meaning |
|
||||
|---|---|
|
||||
| **Files processed** | Excel files successfully downloaded and parsed |
|
||||
| **Clients matched** | Clients in the Excel that were found in OnDeck |
|
||||
| **Clients matched** | Clients in the Excel that were found in Horizon |
|
||||
| **Clients unmatched** | Clients that could not be matched — need manual review |
|
||||
| **Fuzzy matches** | Clients matched by approximate name — review for correctness |
|
||||
| **Tasks updated** | Existing tasks whose status was set to Completed or N/A |
|
||||
| **Tasks assigned** | Tasks that had the advocate linked to them |
|
||||
| **Tasks created** | Tasks from the Excel that didn't exist in OnDeck yet |
|
||||
| **Tasks created** | Tasks from the Excel that didn't exist in Horizon yet |
|
||||
| **Duplicates deleted** | Extra copies of the same task removed from the DB |
|
||||
| **Ad-hoc created** | "Additional Services" rows and unmatched tasks saved as free-form tasks |
|
||||
| **Advocates assigned** | Clients that had their Claims Advocate set from this import |
|
||||
|
|
@ -65,7 +65,7 @@ After running, the report shows:
|
|||
### What gets skipped
|
||||
|
||||
The script will **not** import a row if:
|
||||
- The client name in the Excel cannot be matched to any OnDeck client (logged as "unmatched")
|
||||
- The client name in the Excel cannot be matched to any Horizon client (logged as "unmatched")
|
||||
- The file is named `archive*`, contains `template`, `master workbook`, or starts with `all shape` — these are intentionally excluded
|
||||
|
||||
Nothing else is filtered. Every task row in every matched client file is processed.
|
||||
|
|
@ -80,9 +80,9 @@ Specifically: if the database already has two identical tasks for the same clien
|
|||
|
||||
After running the dry run, check the **"Unmatched Clients"** section of the report. For each one:
|
||||
|
||||
1. Check if the client exists in OnDeck under a different spelling
|
||||
2. If yes — either rename the client in OnDeck to match, or rename the Excel file
|
||||
3. If no — create the client in OnDeck first, then re-run the import
|
||||
1. Check if the client exists in Horizon under a different spelling
|
||||
2. If yes — either rename the client in Horizon to match, or rename the Excel file
|
||||
3. If no — create the client in Horizon first, then re-run the import
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ Each .xlsx file:
|
|||
4. processFile() × N For each file:
|
||||
└── parseExcelFile() Parse XLSX without external libraries (custom ZIP+XML)
|
||||
└── parseExcelBlocks() Extract client blocks and task rows
|
||||
└── matchClient() Match Excel client name → OnDeck client
|
||||
└── matchClient() Match Excel client name → Horizon client
|
||||
└── processTaskRow() × N For each task row:
|
||||
└── findMatchingTasks() Look up existing task in DB (±5-day window)
|
||||
└── deduplication Delete extras if >1 match
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue