This repository has been archived on 2026-08-11. You can view files and clone it, but cannot push or open issues or pull requests.
Gishen-B2B/docs/features/finance.md
kirukib 3778801ef5 Ship Gishen B2B institutional portal with polished layout and mock-backed flows.
Deliver role-aware shell (sidebar, breadcrumbs, quick search, tables, detail/create layouts), locale-ready pages, shared backend/feature docs, and Vercel project config so HR, finance, and members can demo against typed mocks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 21:18:23 +03:00

116 lines
3.0 KiB
Markdown

# Feature: Finance
Spend analytics, credit usage, monthly statements, Excel export, and threshold approvals.
**Workspace:** `/Users/kirukib/Desktop/Yaltopia Project/Gishen-B2B`
## Pages
| Route | Purpose |
|-------|---------|
| `/finance` | Spend dashboard — by dept/member/category, credit usage |
| `/finance/approvals` | Flagged spend queue — approve/reject |
| `/statements` | Monthly statement list + PDF download |
## Entities
- [`Finance`](../backend/entities/finance.md) — SpendSummary, SpendLine, Statement, ApprovalFlag, CreditUsage
## Endpoints
- [`finance.md`](../backend/endpoints/finance.md)
## Role access
| Capability | SUPER_USER | HR_ADMIN | FINANCE |
|------------|:----------:|:--------:|:-------:|
| Spend summary | ✓ | ✓ (aggregates) | ✓ |
| Spend lines | ✓ | ✗ | ✓ (redacted) |
| Excel export | ✓ | ✗ | ✓ |
| Credit usage | ✓ | ✓ read | ✓ |
| Statements | ✓ | ✗ | ✓ |
| Approvals | ✓ | ✗ | ✓ |
## Spend dimensions
| Group by | Use case |
|----------|----------|
| Department | Branch/division budget tracking |
| Category | Chronic vs OTC vs other |
| Member | Individual spend (metadata + amounts) |
Date range filter default: current calendar month.
## Approval workflow
Threshold rules (configured by Admin or org policy) flag spend lines:
| Reason | Example |
|--------|---------|
| `threshold_exceeded` | Single order > 5,000 ETB |
| `unusual_category` | High cosmetics spend |
| `first_time_high_value` | New member large order |
Finance reviews on `/finance/approvals` → approve or reject with notes.
## Statements
Monthly PDF statements from billing engine:
- Opening/closing balance
- Charges and payments
- Credit limit snapshot
- Issued date
## Credit usage widget
Shown on `/finance` and optionally `/organisation`:
```
Credit used: 1,245,000 / 5,000,000 ETB (24.9%)
```
Warning styling (accent `#e28a1a`) above 80% utilization.
## Clinical withhold
**Critical:** Finance views never show:
- Prescription images
- Medicine names, SKUs, dosages
- Prescriber or diagnosis data
Spend lines use:
- `category_code` (e.g. `chronic`)
- Redacted `description` (e.g. "Chronic medication order")
- Amounts: total, org-covered, member-paid
HR_ADMIN sees **summary aggregates only** — not line detail or approvals.
## Validation / errors
| Scenario | Code |
|----------|------|
| Org pending (no commercial) | `ORG_PENDING` |
| HR accessing spend lines | `FORBIDDEN` |
| HR mutating approval | `FORBIDDEN` |
## UI components
- Spend charts (by dept/category) — shadcn cards
- DataTable for spend lines and approvals
- Date range picker
- Export button → XLSX download
- Statement list with PDF link
## Coordination
- Statements generated by Admin/billing — [`gishen-admin.md`](../coordination/gishen-admin.md)
- Order events from Ecom feed spend — [`gishen-ecom.md`](../coordination/gishen-ecom.md)
## Related
- [org-departments.md](org-departments.md) — department sub-limits
- [packages.md](packages.md) — category coverage drives org-covered amounts