feat: format amount rows of financial statemnets.

This commit is contained in:
a.bouhuolia
2021-01-12 11:45:36 +02:00
parent 463c748717
commit 7680150a31
27 changed files with 392 additions and 208 deletions

View File

@@ -1,74 +1,79 @@
import {
INumberFormatQuery,
IFormatNumberSettings,
} from './FinancialStatements';
export interface IBalanceSheetQuery{
displayColumnsType: 'total' | 'date_periods',
displayColumnsBy: string,
fromDate: Date|string,
toDate: Date|string,
numberFormat: {
noCents: boolean,
divideOn1000: boolean,
},
noneZero: boolean,
noneTransactions: boolean,
basis: 'cash' | 'accural',
accountIds: number[],
export interface IBalanceSheetQuery {
displayColumnsType: 'total' | 'date_periods';
displayColumnsBy: string;
fromDate: Date | string;
toDate: Date | string;
numberFormat: INumberFormatQuery;
noneZero: boolean;
noneTransactions: boolean;
basis: 'cash' | 'accural';
accountIds: number[];
}
export interface IBalanceSheetFormatNumberSettings
extends IFormatNumberSettings {
type: string;
}
export interface IBalanceSheetStatementService {
balanceSheet(tenantId: number, query: IBalanceSheetQuery): Promise<IBalanceSheetStatement>;
balanceSheet(
tenantId: number,
query: IBalanceSheetQuery
): Promise<IBalanceSheetStatement>;
}
export interface IBalanceSheetStatementColumns {
export interface IBalanceSheetStatementColumns {}
}
export interface IBalanceSheetStatementData {
}
export interface IBalanceSheetStatementData {}
export interface IBalanceSheetStatement {
query: IBalanceSheetQuery,
columns: IBalanceSheetStatementColumns,
data: IBalanceSheetStatementData,
query: IBalanceSheetQuery;
columns: IBalanceSheetStatementColumns;
data: IBalanceSheetStatementData;
}
export interface IBalanceSheetStructureSection {
name: string,
sectionType?: string,
type: 'section' | 'accounts_section',
children?: IBalanceSheetStructureSection[],
accountsTypesRelated?: string[],
alwaysShow?: boolean,
name: string;
sectionType?: string;
type: 'section' | 'accounts_section';
children?: IBalanceSheetStructureSection[];
accountsTypesRelated?: string[];
alwaysShow?: boolean;
}
export interface IBalanceSheetAccountTotal {
amount: number,
formattedAmount: string,
currencyCode: string,
date?: string|Date,
amount: number;
formattedAmount: string;
currencyCode: string;
date?: string | Date;
}
export interface IBalanceSheetAccount {
id: number,
index: number,
name: string,
code: string,
parentAccountId: number,
type: 'account',
hasTransactions: boolean,
children?: IBalanceSheetAccount[],
total: IBalanceSheetAccountTotal,
totalPeriods?: IBalanceSheetAccountTotal[],
id: number;
index: number;
name: string;
code: string;
parentAccountId: number;
type: 'account';
hasTransactions: boolean;
children?: IBalanceSheetAccount[];
total: IBalanceSheetAccountTotal;
totalPeriods?: IBalanceSheetAccountTotal[];
}
export interface IBalanceSheetSection {
name: string,
sectionType?: string,
type: 'section' | 'accounts_section',
children: IBalanceSheetAccount[] | IBalanceSheetSection[],
total: IBalanceSheetAccountTotal,
name: string;
sectionType?: string;
type: 'section' | 'accounts_section';
children: IBalanceSheetAccount[] | IBalanceSheetSection[];
total: IBalanceSheetAccountTotal;
totalPeriods?: IBalanceSheetAccountTotal[];
accountsTypesRelated?: string[],
_forceShow?: boolean,
}
accountsTypesRelated?: string[];
_forceShow?: boolean;
}