336 lines
7.9 KiB
Markdown
336 lines
7.9 KiB
Markdown
|
|
# 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.**
|