# Features — glob-1 (Global Welness Centre)

Evidence date: 2026-10-13.

Source: `git@bitbucket.org:overdrive/glob-1.git`, `main` at `f26707a`.

Status labels: **Current**, **Completed**, **Planned**, **In development**, **Changed**, **Deprecated / removed**. "Current" means the code is on `main` and is not marked obsolete in source. It does not mean the module is enabled in the live database.

## Current — tenant site `core_custom/GLOB-1`

Public pages (master `Core.master`):

| Page | Role |
|---|---|
| `Default.aspx` | Home / canvas host |
| `Products.aspx`, `Cart.aspx` | Catalogue and cart |
| `Search.aspx` | Search |
| `Media.aspx` | Media |
| `Reset.aspx`, `Unsubscribe.aspx` | Password reset and unsubscribe |
| `Error.aspx` | Error redirect target used by controls |
| `Test.aspx` | Sets `customerCode` to `GLOB-1` on a new user. Treat as a test page, not a product screen |

Admin pages (master `Administration.master`): banners, calendar, campaigns, canvas, content, customers, FAQ, gallery, job cards, loyalty groups and stores, media, product brands and categories, products, projects, promotions, releases, report, setup, sign-in, SMS credit, support, surface and surface code, tasks, templates, users.

Medical reference pages: conditions, diagnosis, doctors, ICD-10, medical administrators, practice extras, practices, procedures, schemes, symptoms, tariffs, trauma.

Sales: `Sales_SalesItems.aspx`.

Handlers: `SessionHeartbeat.ashx`, `WebMethods.ashx`.

### Controls that carry GLOB behaviour

| Area | Path | What is current |
|---|---|---|
| Patient surface | `controls/surface/surface_form.ascx.cs` | Ideal x-ray copy, master x-ray edit lock, Welgemoed numbers, registration mail, copy-from-patient, visit status button |
| Enquiry / billing | `controls/module/enquiry.ascx.cs` | Private tariff default, statement email default, invoice sort, VAT rate via `InvoiceVatPolicy` |
| Sales | `controls/module/sales.ascx.cs` | Tax-invoice VAT cut-over; quotes unchanged |
| VAT policy | `App_Code/InvoiceVatPolicy.cs` | Cut-over date 2026-04-01 |
| MediSwitch | `App_Code/MediSwitch.cs` | Remark that persisted account VAT is 0% from the cut-over |
| Calendar | `controls/module/calendar.ascx.cs`, `calendarEventToolTip.ascx.cs` | Subject and tooltip for GLOB-1, GLOB-2, MEDI-1 |
| Campaigns | `controls/admin/campaigns.ascx.cs` | Name fields suffixed with their group display |
| User link | `controls/admin/userLink.ascx.cs` | Label is first name, surname, and patient number |
| Login and registration shell | `Core.master.cs` | Tenant login, inactive website-user block, registration template pick |
| Debtors documents | `business/classes/xDebtors.cs` | Site instead of place of service; main member and account holder from surface fields |

Other module controls present on the fork, without a GLOB-only branch found in this pass: body map, cart, content, debtors reports, FAQ, job cards, loyalty members, media, medical complaints, history, listings, patient queue, patient sign-in, practice extras, subjectives, symptoms, procedure booking, products, report, sales, search, surface notes, tasks. Medical maintenance controls live under `controls/medical/`. Admin maintenance controls live under `controls/admin/`.

These are **Current** as source. Enabling them is a database concern (`oModule`, surfaces). **Unknown** which are on for GWC.

## Current — shared framework

| Feature | Where | Status |
|---|---|---|
| Business and library assemblies | `business/`, `library/` | **Current** |
| WCF process and version API | `service/App_Code/Iframework_service.cs` | **Current** |
| Palette scheduler | `tools/scheduler/Program.cs` | **Current**: campaigns (hour check commented out, so campaigns run whenever the scheduler runs without a Google-sheet argument), loyalty email in the configured hour's first five minutes, transaction lock, MediSwitch queue, surface data import. Google sheet import is a separate argument path |
| Scheduler launcher | `SchedulerTool/` | **Current** project. Its `App.config` catalog is `Framework_FAST-2`, not `Framework_GLOB-1` |
| Release bundles | `release/1.0.0.1`, `release/1.0.5` | **Current** files. What each zip contains was not unpacked |
| Payments folder | `library/Payment` | **Current** directory. No GLOB-specific payment rule was read |

## Changed

| Change | Evidence | Status |
|---|---|---|
| VAT removed on tax invoices from 2026-04-01 | `InvoiceVatPolicy`, commit `f26707a` "Initial commit plus VatRemoveWork" | **Changed** relative to the older comment in enquiry that had hardcoded `vatRate = 14` (that line is commented). The zero-VAT path is **Current** |
| Billing sort newest service date first | Comment GWC-71; the ascending sort is commented above the current call | **Changed** inside the GLOB-1 enquiry fork |

No earlier git revision contains the product tree. `3a96fce` is `.gitignore` only, so a line-by-line history of the VAT edit is not available. The policy class and its call sites are the evidence.

## In development

None identified. There is no feature branch in the fetched remote (`main` only) and no TODO that describes unfinished GLOB-1 product work beyond ordinary code comments ("jas todo" on remember-me, "TO DO" on scheduler instance creation). Remember-me is commented out. **Current** code does not persist a cookie id.

## Planned

No planned feature list exists in the repository or in a prior `silicon_ark/glob-1/` document.

## Deprecated / removed

| Item | Evidence |
|---|---|
| Hardcoded medical VAT rate 14 on one edit path | Commented in `enquiry.ascx.cs` ("CVH 2018-03-23"). Replaced by the practice rate, then by `InvoiceVatPolicy` |
| Ascending invoice sort | Commented beside the GWC-71 descending sort |
| Live MediSwitch URLs and live WCF host | Present only as comments. Active settings are QA MediSwitch and localhost WCF |
| `connLive` to `Framework_STUD-1_Demo` | Commented in `core_custom/GLOB-1/Web.config` |
| Injury-on-duty assignment on the GLOB account-build path | The assignments are commented inside the GLOB-1 / GLOB-2 / MEDI-1 block in `xDebtors.cs`. The general path above that block still sets IOD fields. **Requires Confirmation** which path runs for a GLOB statement |
| GLOB-1-only branches in `core` and `core-dev` that are commented | Several `setup.code == "GLOB-1"` blocks in `core/controls/surface/surface_form.ascx.cs` are commented. The active GLOB behaviour is on `core_custom/GLOB-1` |

## Not this product

| Path | Why it is listed |
|---|---|
| `core_custom/GLOB-3` | Separate site, catalog `Framework_GLOB-3`, brand "Global Wellness Chiropractic". Includes debtors pages (`Debtors_*.aspx`) and a precompiled `bin`. Not in `GLOB-1.sln` |
| `tools/CAPI.Custom`, `tools/CEP` | CAPI quote tooling and a console test project |
| `data/Scripts/*` other than a missing GLOB-1 folder | Scripts for other tenant codes, including SHOU-1 and a shoulder-practice rates readme |
| `publish/SHOU-1` | Published Shoulder Practice site, catalog `Framework_SHOU-1_Dev` |
| `mobile` | Library stub |

## Recently changed

The only product commit is `f26707a` (2026-04-14), which adds the tree and the VAT cut-over together. Nothing has been committed since.
