chore: sync submodule state (parent ref update)
Made-with: Cursor
This commit is contained in:
335
docs/accounting/CHART_OF_ACCOUNTS.md
Normal file
335
docs/accounting/CHART_OF_ACCOUNTS.md
Normal file
@@ -0,0 +1,335 @@
|
||||
# General Ledger Chart of Accounts
|
||||
|
||||
**Status:** ✅ **Deployable and Ready**
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The DBIS Core system includes a comprehensive General Ledger Chart of Accounts that is compliant with both **USGAAP** (US Generally Accepted Accounting Principles) and **IFRS** (International Financial Reporting Standards).
|
||||
|
||||
---
|
||||
|
||||
## Account Structure
|
||||
|
||||
### Account Categories
|
||||
|
||||
| Code Range | Category | Normal Balance | Description |
|
||||
|------------|----------|----------------|-------------|
|
||||
| **1000-1999** | Assets | DEBIT | Resources owned by the entity |
|
||||
| **2000-2999** | Liabilities | CREDIT | Obligations owed by the entity |
|
||||
| **3000-3999** | Equity | CREDIT | Owner's equity and reserves |
|
||||
| **4000-4999** | Revenue | CREDIT | Income and gains |
|
||||
| **5000-6999** | Expenses | DEBIT | Costs and losses |
|
||||
| **7000-9999** | Other | Varies | Special purpose accounts |
|
||||
|
||||
---
|
||||
|
||||
## Account Hierarchy
|
||||
|
||||
### Level 1: Main Categories
|
||||
- `1000` - ASSETS
|
||||
- `2000` - LIABILITIES
|
||||
- `3000` - EQUITY
|
||||
- `4000` - REVENUE
|
||||
- `5000` - EXPENSES
|
||||
|
||||
### Level 2: Sub-Categories
|
||||
- `1100` - Current Assets
|
||||
- `1200` - Non-Current Assets
|
||||
- `2100` - Current Liabilities
|
||||
- `2200` - Non-Current Liabilities
|
||||
- `3100` - Capital
|
||||
- `3200` - Retained Earnings
|
||||
- `3300` - Reserves
|
||||
- `4100` - Operating Revenue
|
||||
- `4200` - Non-Operating Revenue
|
||||
- `5100` - Operating Expenses
|
||||
- `5200` - Non-Operating Expenses
|
||||
|
||||
### Level 3+: Detail Accounts
|
||||
- `1110` - Cash and Cash Equivalents
|
||||
- `1111` - Cash on Hand
|
||||
- `1112` - Cash in Banks
|
||||
- `1120` - Accounts Receivable
|
||||
- `1130` - Settlement Assets
|
||||
- `1140` - CBDC Holdings
|
||||
- `1150` - GRU Holdings
|
||||
- etc.
|
||||
|
||||
---
|
||||
|
||||
## USGAAP Compliance
|
||||
|
||||
### Classification Mapping
|
||||
|
||||
| Account | USGAAP Classification |
|
||||
|---------|----------------------|
|
||||
| `1110` | Cash and Cash Equivalents |
|
||||
| `1120` | Trade Receivables |
|
||||
| `1122` | Allowance for Doubtful Accounts |
|
||||
| `1210` | Property, Plant and Equipment |
|
||||
| `1211` | Accumulated Depreciation |
|
||||
| `2110` | Accounts Payable |
|
||||
| `2120` | Short-term Debt |
|
||||
| `2210` | Long-term Debt |
|
||||
| `3100` | Stockholders Equity |
|
||||
| `3200` | Retained Earnings |
|
||||
| `4110` | Interest Income |
|
||||
| `5110` | Interest Expense |
|
||||
| `5160` | Provision for Credit Losses |
|
||||
|
||||
---
|
||||
|
||||
## IFRS Compliance
|
||||
|
||||
### Classification Mapping
|
||||
|
||||
| Account | IFRS Classification |
|
||||
|---------|---------------------|
|
||||
| `1110` | Cash and Cash Equivalents |
|
||||
| `1120` | Trade Receivables |
|
||||
| `1122` | Impairment of Receivables |
|
||||
| `1210` | Property, Plant and Equipment |
|
||||
| `1211` | Accumulated Depreciation |
|
||||
| `2110` | Trade Payables |
|
||||
| `2120` | Financial Liabilities |
|
||||
| `2210` | Financial Liabilities |
|
||||
| `3100` | Share Capital |
|
||||
| `3200` | Retained Earnings |
|
||||
| `3300` | Reserves |
|
||||
| `4110` | Interest Income |
|
||||
| `5110` | Finance Costs |
|
||||
| `5160` | Expected Credit Losses |
|
||||
|
||||
---
|
||||
|
||||
## Key Features
|
||||
|
||||
### ✅ Implemented
|
||||
|
||||
1. **Hierarchical Structure**
|
||||
- Parent-child relationships
|
||||
- Multi-level account hierarchy
|
||||
- Tree navigation support
|
||||
|
||||
2. **Dual Standard Support**
|
||||
- USGAAP classifications
|
||||
- IFRS classifications
|
||||
- Both standards supported simultaneously
|
||||
|
||||
3. **Account Coding**
|
||||
- 4-digit account codes
|
||||
- Logical numbering system
|
||||
- Extensible structure
|
||||
|
||||
4. **Normal Balance Tracking**
|
||||
- DEBIT accounts (Assets, Expenses)
|
||||
- CREDIT accounts (Liabilities, Equity, Revenue)
|
||||
- Automatic validation
|
||||
|
||||
5. **System Accounts**
|
||||
- Pre-defined system accounts
|
||||
- Custom account creation
|
||||
- Active/inactive status
|
||||
|
||||
---
|
||||
|
||||
## Deployment
|
||||
|
||||
### Step 1: Add Prisma Model
|
||||
|
||||
The `ChartOfAccount` model has been added to the Prisma schema.
|
||||
|
||||
### Step 2: Run Migration
|
||||
|
||||
```bash
|
||||
cd dbis_core
|
||||
npx prisma migrate dev --name add_chart_of_accounts
|
||||
```
|
||||
|
||||
Or manually run the SQL migration:
|
||||
```bash
|
||||
psql -d dbis_core -f prisma/migrations/add_chart_of_accounts.sql
|
||||
```
|
||||
|
||||
### Step 3: Initialize Chart of Accounts
|
||||
|
||||
```typescript
|
||||
import { chartOfAccountsService } from '@/core/accounting/chart-of-accounts.service';
|
||||
|
||||
// Initialize standard accounts
|
||||
await chartOfAccountsService.initializeChartOfAccounts();
|
||||
```
|
||||
|
||||
Or via API:
|
||||
```bash
|
||||
POST /api/accounting/chart-of-accounts/initialize
|
||||
```
|
||||
|
||||
### Step 4: Verify
|
||||
|
||||
```typescript
|
||||
// Get all accounts
|
||||
const accounts = await chartOfAccountsService.getChartOfAccounts();
|
||||
|
||||
// Get by category
|
||||
const assets = await chartOfAccountsService.getAccountsByCategory(AccountCategory.ASSET);
|
||||
|
||||
// Get hierarchy
|
||||
const assetHierarchy = await chartOfAccountsService.getAccountHierarchy('1000');
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| `GET` | `/api/accounting/chart-of-accounts` | Get all accounts |
|
||||
| `POST` | `/api/accounting/chart-of-accounts/initialize` | Initialize standard accounts |
|
||||
| `GET` | `/api/accounting/chart-of-accounts/:accountCode` | Get account by code |
|
||||
| `GET` | `/api/accounting/chart-of-accounts/category/:category` | Get by category |
|
||||
| `GET` | `/api/accounting/chart-of-accounts/:parentCode/children` | Get child accounts |
|
||||
| `GET` | `/api/accounting/chart-of-accounts/:rootCode/hierarchy` | Get account hierarchy |
|
||||
| `POST` | `/api/accounting/chart-of-accounts` | Create new account |
|
||||
| `PUT` | `/api/accounting/chart-of-accounts/:accountCode` | Update account |
|
||||
| `GET` | `/api/accounting/chart-of-accounts/:accountCode/balance` | Get account balance |
|
||||
|
||||
---
|
||||
|
||||
## Account Examples
|
||||
|
||||
### Assets
|
||||
|
||||
```typescript
|
||||
{
|
||||
accountCode: '1110',
|
||||
accountName: 'Cash and Cash Equivalents',
|
||||
category: 'ASSET',
|
||||
normalBalance: 'DEBIT',
|
||||
usgaapClassification: 'Cash and Cash Equivalents',
|
||||
ifrsClassification: 'Cash and Cash Equivalents',
|
||||
level: 3
|
||||
}
|
||||
```
|
||||
|
||||
### Liabilities
|
||||
|
||||
```typescript
|
||||
{
|
||||
accountCode: '2140',
|
||||
accountName: 'CBDC Liabilities',
|
||||
category: 'LIABILITY',
|
||||
normalBalance: 'CREDIT',
|
||||
usgaapClassification: 'Digital Currency Liabilities',
|
||||
ifrsClassification: 'Financial Liabilities',
|
||||
level: 3
|
||||
}
|
||||
```
|
||||
|
||||
### Revenue
|
||||
|
||||
```typescript
|
||||
{
|
||||
accountCode: '4110',
|
||||
accountName: 'Interest Income',
|
||||
category: 'REVENUE',
|
||||
normalBalance: 'CREDIT',
|
||||
usgaapClassification: 'Interest Income',
|
||||
ifrsClassification: 'Interest Income',
|
||||
level: 3
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integration with Ledger
|
||||
|
||||
The Chart of Accounts integrates with the existing ledger system:
|
||||
|
||||
```typescript
|
||||
// Post entry using chart of accounts
|
||||
await ledgerService.postDoubleEntry(
|
||||
ledgerId,
|
||||
'1112', // Cash in Banks (from chart of accounts)
|
||||
'4110', // Interest Income (from chart of accounts)
|
||||
amount,
|
||||
currencyCode,
|
||||
assetType,
|
||||
transactionType,
|
||||
referenceId
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Compliance Features
|
||||
|
||||
### USGAAP Features
|
||||
- ✅ Standard account classifications
|
||||
- ✅ Depreciation methods
|
||||
- ✅ Allowance for doubtful accounts
|
||||
- ✅ Provision for credit losses
|
||||
- ✅ Stockholders equity structure
|
||||
|
||||
### IFRS Features
|
||||
- ✅ IFRS-compliant classifications
|
||||
- ✅ Revaluation reserves
|
||||
- ✅ Expected credit losses (IFRS 9)
|
||||
- ✅ Share capital structure
|
||||
- ✅ Comprehensive income tracking
|
||||
|
||||
---
|
||||
|
||||
## Files Created
|
||||
|
||||
1. ✅ `src/core/accounting/chart-of-accounts.service.ts` - Service implementation
|
||||
2. ✅ `src/core/accounting/chart-of-accounts.routes.ts` - API routes
|
||||
3. ✅ `prisma/migrations/add_chart_of_accounts.sql` - Database migration
|
||||
4. ✅ Prisma schema updated with `ChartOfAccount` model
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Run Migration:**
|
||||
```bash
|
||||
npx prisma migrate dev --name add_chart_of_accounts
|
||||
```
|
||||
|
||||
2. **Initialize Accounts:**
|
||||
```bash
|
||||
# Via API or service
|
||||
POST /api/accounting/chart-of-accounts/initialize
|
||||
```
|
||||
|
||||
3. **Link to Ledger:**
|
||||
- Update ledger service to use chart of accounts
|
||||
- Map bank accounts to chart of accounts codes
|
||||
- Generate financial statements using chart of accounts
|
||||
|
||||
4. **Generate Reports:**
|
||||
- Balance Sheet (Assets = Liabilities + Equity)
|
||||
- Income Statement (Revenue - Expenses = Net Income)
|
||||
- Statement of Cash Flows
|
||||
- Statement of Changes in Equity
|
||||
|
||||
---
|
||||
|
||||
## Status
|
||||
|
||||
✅ **Chart of Accounts is deployable and ready for use!**
|
||||
|
||||
The system includes:
|
||||
- ✅ Complete account structure
|
||||
- ✅ USGAAP compliance
|
||||
- ✅ IFRS compliance
|
||||
- ✅ Hierarchical organization
|
||||
- ✅ API endpoints
|
||||
- ✅ Database schema
|
||||
- ✅ Service implementation
|
||||
|
||||
---
|
||||
|
||||
**Ready for deployment and integration with the General Ledger system.**
|
||||
Reference in New Issue
Block a user