Quality-of-life enhancements: CSV import/export, opening balances, interest rates, mobile UX
- CSV import/export for Units, Projects, and Vendors with match-on-name/number upsert - Cash Flow report toggle for Cash Only vs Cash + Investments - Per-account and bulk opening balance setting with as-of date - Interest rate field on normal accounts with estimated monthly/annual interest display - Mobile sidebar auto-close on navigation - Shared CSV parsing/export utility extracted to frontend/src/utils/csv.ts DB migration needed for existing tenants: ALTER TABLE accounts ADD COLUMN IF NOT EXISTS interest_rate DECIMAL(6,4); Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,23 @@ export class AccountsController {
|
||||
return this.accountsService.setPrimary(id);
|
||||
}
|
||||
|
||||
@Post('bulk-opening-balances')
|
||||
@ApiOperation({ summary: 'Set opening balances for multiple accounts' })
|
||||
bulkSetOpeningBalances(
|
||||
@Body() dto: { asOfDate: string; entries: { accountId: string; targetBalance: number }[] },
|
||||
) {
|
||||
return this.accountsService.bulkSetOpeningBalances(dto);
|
||||
}
|
||||
|
||||
@Post(':id/opening-balance')
|
||||
@ApiOperation({ summary: 'Set opening balance for an account at a specific date' })
|
||||
setOpeningBalance(
|
||||
@Param('id') id: string,
|
||||
@Body() dto: { targetBalance: number; asOfDate: string; memo?: string },
|
||||
) {
|
||||
return this.accountsService.setOpeningBalance(id, dto);
|
||||
}
|
||||
|
||||
@Post(':id/adjust-balance')
|
||||
@ApiOperation({ summary: 'Adjust account balance to a target amount' })
|
||||
adjustBalance(
|
||||
|
||||
Reference in New Issue
Block a user