WIP: customer balance report.

This commit is contained in:
a.bouhuolia
2021-05-05 02:19:43 +02:00
parent 8275d3d395
commit 8ca3509f03
14 changed files with 843 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
import { INumberFormatQuery } from './FinancialStatements';
export interface ICustomerBalanceSummaryQuery {
asDate: Date;
numberFormat: INumberFormatQuery;
comparison: {
percentageOfColumn: boolean;
};
noneTransactions: boolean;
noneZero: boolean;
}
export interface ICustomerBalanceSummaryAmount {
amount: number;
formattedAmount: string;
currencyCode: string;
}
export interface ICustomerBalanceSummaryPercentage {
amount: number;
formattedAmount: string;
}
export interface ICustomerBalanceSummaryCustomer {
customerName: string;
total: ICustomerBalanceSummaryAmount;
percentageOfColumn?: ICustomerBalanceSummaryPercentage;
}
export interface ICustomerBalanceSummaryTotal {
total: ICustomerBalanceSummaryAmount;
percentageOfColumn?: ICustomerBalanceSummaryPercentage;
}
export interface ICustomerBalanceSummaryData {
customers: ICustomerBalanceSummaryCustomer[];
total: ICustomerBalanceSummaryTotal;
}
export interface ICustomerBalanceSummaryStatement {
data: ICustomerBalanceSummaryData;
columns: {};
query: ICustomerBalanceSummaryQuery;
}
export interface ICustomerBalanceSummaryService {
customerBalanceSummary(
tenantId: number,
query: ICustomerBalanceSummaryQuery,
): Promise<ICustomerBalanceSummaryStatement>;
}

View File

@@ -0,0 +1,45 @@
import { INumberFormatQuery } from './FinancialStatements';
export interface ITransactionsByCustomersAmount {
amount: number;
formattedAmount: string;
}
export interface ITransactionsByCustomersTransaction {
date: string|Date,
credit: ITransactionsByCustomersAmount;
debit: ITransactionsByCustomersAmount;
runningBalance: ITransactionsByCustomersAmount;
referenceNumber: string;
transactionNumber: string;
}
export interface ITransactionsByCustomersCustomer {
customerName: string;
openingBalance: any;
closingBalance: any;
transactions: ITransactionsByCustomersTransaction[];
}
export interface ITransactionsByCustomersFilter {
fromDate: Date;
toDate: Date;
numberFormat: INumberFormatQuery;
noneTransactions: boolean;
noneZero: boolean;
}
export interface ITransactionsByCustomersData {
customers: ITransactionsByCustomersCustomer[];
}
export interface ITransactionsByCustomersStatement {
data: ITransactionsByCustomersData;
}
export interface ITransactionsByCustomersService {
transactionsByCustomers(
tenantId: number,
filter: ITransactionsByCustomersFilter
): Promise<ITransactionsByCustomersStatement>;
}

View File

@@ -42,4 +42,6 @@ export * from './Mailable';
export * from './InventoryAdjustment';
export * from './Setup'
export * from './IInventoryValuationSheet';
export * from './SalesByItemsSheet';
export * from './SalesByItemsSheet';
export * from './CustomerBalanceSummary';
export * from './TransactionsByCustomers';