3.6 KiB
Task Fix: Document Sequence Branch Display Name
Objective
Fix /dashboard/crm/settings/document-sequences so Branch displays as a readable name/code instead of raw UUID.
Current issue:
1b960bfc-91de-4b69-a389-f060ef21bed2
should display as:
Branch Name
or:
Branch Code - Branch Name
Problem
Document Sequence records store:
branchId
but the settings UI currently displays the raw ID directly.
This breaks admin usability and is inconsistent with the display-name cleanup direction.
Mandatory Review
Review:
src/features/foundation/document-sequence/**
src/app/dashboard/crm/settings/document-sequences/**
src/db/schema.ts
src/features/foundation/display/**
src/features/foundation/master-options/**
Search:
rg "branchId|branch_id|document-sequences|DocumentSequence" src/features/foundation src/app/dashboard/crm/settings/document-sequences
Scope 1: API / DTO Display Fields
Update document sequence read model to include:
branchId?: string | null;
branchCode?: string | null;
branchName?: string | null;
branchDisplayName?: string | null;
Display rule:
branchId = null
→ All Branches
branchCode + branchName
→ {branchCode} - {branchName}
branchName only
→ {branchName}
unknown branch
→ Unknown Branch ({branchId})
Do not remove branchId; keep it for update/generate logic.
Scope 2: Resolve Branch Display Server-Side
In document sequence service/list API, resolve branch display before returning response.
Preferred:
Use shared branch display resolver if already created.
Fallback:
- If branch is table-backed, join branch table.
- If branch is
ms_options, resolve from the branch option category. - If unknown, return fallback display string.
Avoid N+1 queries.
Batch resolve all branch IDs in the list.
Scope 3: UI Rendering Fix
Update document sequence table/cards.
Replace:
{row.branchId}
with:
{row.branchDisplayName ?? 'All Branches'}
or:
<BranchDisplay value={row.branchDisplayName} />
Rules:
- never show raw UUID in normal UI
- raw ID may be visible only in debug/dev details if explicitly labelled
- use muted text for fallback unknown branch
Scope 4: Form Select Display
If create/edit form has branch select:
- show readable branch names in dropdown
- value remains
branchId - include option:
All Branches
for nullable branch
Dropdown labels:
ALL - All Branches
BKK - Bangkok
RYG - Rayong
Scope 5: Seed Check
Verify seed creates branch data that can be resolved.
Check whether branch source is:
branch table
or:
ms_options category
If document sequence references a branch ID that seed does not create, fix seed.
Scope 6: Verification
Run:
npm exec tsc --noEmit
npm run build
Manual verification:
Open /dashboard/crm/settings/document-sequences
No raw UUID is shown for branch
All Branches displays correctly for null branchId
Known branch displays readable name/code
Unknown branch fallback is readable
Create/edit branch dropdown shows names, not IDs
Saving still persists branchId correctly
Document number generation still works
Definition of Done
Task is complete when:
- Document Sequence list does not show raw branch UUID
- API returns branch display fields
- UI uses branch display fields
- branch select uses readable labels
- document sequence generation behavior remains unchanged
Result:
Document Sequence Branch Display = Fixed
Admin UX = Improved
Raw Branch UUID Leakage = Removed