# Features — superbowl

Evidence date: 2026-10-02.

Source: `git@bitbucket.org:overdrive/superbowl.git`, `master` at `a6f4b8b` (2026-09-16).

Status words: **Current** (present and reachable in this revision), **Completed** (shipped in git; the task file may still say in progress), **Planned** (named and not done), **Inactive** (code remains but the menu or the handler no longer runs it).

## Current

### Sign-in and shell

- Windows logon lookup against `mstUser` / `mstUserGroupSuperbowl`, usage-log insert, session group and level. `Superbowl/Superbowl/index.aspx.vb`.
- Master shell, menu, logout link, debug auto-login when `blnDebug` is true and the build is DEBUG. `Admin.Master`, `Admin.Master.vb`.
- Central role checks. `UserPermissions.vb`.

### Accounts

- Customers, including country, customer group, tags (500), liquor licence (25), promotional-account flag, Snell fields, and warehouse copy. `CustomerList.aspx`, `CustomerDetails.aspx`.
- Key accounts (price group code, on-con / toolkit / rebate / pay-less-invoice flags) and key account groups. `KeyAccount*`, `KeyGroup*`.
- Snell areas and Snell super groups. `SnellArea*`, `Snellsupergroup*`.
- Countries and customer groups (added on master before the SC Admin merge; comments and scripts `Add_mstCountry_and_refCountryID_FKs.sql`, `Add_mstCustomerGroup_and_refCustomerGroupID.sql`).
- AdCheck store list and mapping detail. `ACCustomerList.aspx`, `ACCustomerDetails.aspx`.

### Product

- Brands (principal, company, two brand-manager slots, Accpac code, groupings, lead months, variance, active). `BrandList.aspx`, `BrandDetails.aspx`.
- Companies and principals, each with financial-year start and end. `Company*`, `Principal*`.
- Products (pack, size, price, type, price segment, barcodes, display order, category, QF flag, data-transfer flag, competitor-product flag, tags). `ProductList.aspx`, `ProductDetails.aspx`.
- Product data and dimensions (ABV, pallet geometry, weights, barcodes, vendor and Accpac codes, active). `ProductDataDimension*`.
- AdCheck product list and mapping. `ACProductList.aspx`, `ACProductDetails.aspx`.
- Product archive to the `9xxxx` range plus an `ArchiveProduct` cron row. `ProductArchiveList.aspx`, `ProductArchiveDetails.aspx`.
- Competitor sets, up to 10 products. `CompSetProductList.aspx`, `CompSetProductDetails.aspx`.

### Sales reps and setup

- Sales reps (market, branch, segment, email) and rep managers. `Rep*`, `RepManager*`.
- Branches, channel segments, rep segments, users (domain login and cross-system group ids). `Branch*`, `Channel*`, `Segment*`, `User*`.

### Data capturing

- Export sales search, paging, Excel export, add, edit, delete of unprocessed rows, and full-admin batch process into `dwfSales`. Selection is a hidden CSV of ids. `ExportsList.aspx.vb`, `ExportsDetails.aspx.vb`.

### Utilities

- Home sales-to-date grid (GSV, 9L, free stock). `home.aspx`.
- Audit log, daily import log (`dlyImportLog`), usage log. `AuditLog.aspx`, `DailyLog.aspx`, `UsageLog.aspx`.
- Integrity lists and admin inserts between `mstCustomer`/`dwdCustomer` and `mstProduct`/`dwdProduct`. `Integrity.aspx`.
- Month-end BFBE tab file from `sysQuery` `bfbe-Sales_Month_to_Date`. `MonthEnd.aspx`.
- On-consumption and off-consumption promo extracts. `OnconPromo.aspx`, `OffconPromo.aspx`.
- Second menu link to Product Archive under Utilities (same page as the Product menu link).

### Shared list behaviour

List pages that follow the older template support search, sort, page size 50 or 1000, and an HTML-as-Excel download. Filter and page index are written to `Web.config` appSettings keys (`strPage`, `intListIndex`, `intListFilter`, `ShowMore`).

## Completed

- TASK-001 SC Admin profile. Merged by pull request #1 (`868dcfc`) and again by pull request #2 (`a6f4b8b`, 2026-09-16) after a further master merge (`c216d11`). Script: `Scripts/Add_SC_Admin_Superbowl_Group.sql`.
- Session storage of `ULEVEL` instead of authorizing from appSettings. `index.aspx.vb`, `UserPermissions.vb`.
- Server-side 403 demands on product, export, accounts, reps, setup, month-end process, and integrity mutations. See the file list in `docs/tasks/TASK-001.md`.
- Connection string removed from `Web.config`. Loaded from `RGBC_SUPERBOWL_CONNECTION_STRING`. `SecureConfig.vb`, `EnvConnectionStringsExpressionBuilder.vb`, commit messages "Security Enhancements Item env Changes" (`b2f694b`).
- Country and customer-group master data on the Accounts menu. Commits `bca00e7`, `2364ef4`.
- Competitor-set maintenance. Commits `772965c`, `0c85113`.
- Customer and product tags. Commits `95e4795`, `9714709`, script `Add_strTags_Columns.sql`.
- Non-RGBC customers folded into `mstCustomer` by script, and the old list retired to a redirect. `Scripts/Migrate_NonRGBC_To_mstCustomer.sql`, `NonRGBCCustomerList.aspx.vb`.

`docs/index.md` still says TASK-001 is in progress. Git says the branch is merged. The unfinished checks are verification and production assignment, not missing code. See project plan.

## Planned

From `docs/tasks/TASK-001.md` (unchecked):

- Verify Export Sales against a database that contains `mstExports`.
- Create the production SC Admin group (script) and assign the client-specified user. The username is an open question.
- Debug and Release builds on a machine that has `Microsoft.WebApplication.targets`.
- Role-matrix, hostile-postback, and concurrent-session tests.

No other future feature is named in `docs/`.

## Inactive or removed from the menu

| Item | Evidence | Notes |
|---|---|---|
| Non-RGBC customer menu entry | commented `MenuItem` in `Admin.Master`; `Page_Init` redirect | Page and details code remain. Deletes on the old list are cancelled (`NonRGBCCustomerList.aspx.vb`, TASK-001 notes) |
| File import UI | `Import.aspx.vb` is a comment block; not on the menu | Header says it was copied from stock-control import. `ImportList.aspx` is also not on the menu |
| Sales QF menu target | `NavigateUrl=""` and tooltip `Sales QF SalesRepQF.aspx` | `SalesRepQF.aspx` and `RepQF.vb` remain in the project |
| ZZ maintenance | not on the menu; save in `ZZDetails.aspx.vb` is commented | Template page |
| Month-end email | `MailBrandon()` exists; `btnProcess_Click` does not call it | Recipients are hard-coded inside the unused method |
| Integrity "update brands" button | handler commented; `UpdateBrands` still demands full admin | Not wired to a click |
| In-app product-archive updates of sales, QF, surveys, stock, AdCheck, exports | commented block in `ProductArchiveDetails.aspx.vb` | Comment: moved to Superbowl cron job |
| Authorize from `appSettings ULEVEL` | removed in TASK-001 | `ULEVEL` key remains in `Web.config` with value `0` and is not read by `UserPermissions.CurrentLevel` |

## Recently changed (git, newest first)

| Commit | Date | Change |
|---|---|---|
| `a6f4b8b` | 2026-09-16 | Merge pull request #2, `feature/TASK-001-sc-admin` |
| `6a4eb2c` | (parent of that merge) | Explicit parameter types on product data-dimension SQL helpers |
| `868dcfc` | | Merge pull request #1, same feature |
| `c216d11` | | `[TASK-001] Merge master and harden SC Admin authorization` |
| `488960c` | | `[TASK-001] Add Superbowl SC Admin product and export permissions` |
| `a2a90af` | | Product archive fix |
| `dad9cca`, `7965f79`, `399352e` | | Cognos column and promotions fixes |
| `2364ef4`, `bca00e7` | | Customer groups; country selection |
| `b2f694b`, `e4b2c6d` | | Env-based connection string; Sonar-titled security commit |

Dates without a day in the table were not re-read one by one; the 2026-09-16 merge date is from `git log`. Older subject lines are the commit messages on `master`.

## Deprecated behaviour that code still mentions

- Duplicate customer and duplicate product checks are commented out, not deleted. `CustomerDetails.aspx.vb`, `ProductDetails.aspx.vb`.
- Non-RGBC duplicate check was disabled in v1.3.3 (2010-01-27) per the file header, and the page now redirects before that code runs.
