feat: journal entries with expenses operations.

This commit is contained in:
a.bouhuolia
2021-01-03 12:47:20 +02:00
parent f18ab184e2
commit a2284945f1
9 changed files with 658 additions and 303 deletions

View File

@@ -1,70 +1,111 @@
import { ISystemUser } from "./User";
import { ISystemUser } from './User';
export interface IPaginationMeta {
total: number,
page: number,
pageSize: number,
};
total: number;
page: number;
pageSize: number;
}
export interface IExpensesFilter{
page: number,
pageSize: number,
};
export interface IExpensesFilter {
page: number;
pageSize: number;
}
export interface IExpense {
id: number,
totalAmount: number,
currencyCode: string,
description?: string,
paymentAccountId: number,
peyeeId?: number,
referenceNo?: string,
publishedAt: Date|null,
userId: number,
paymentDate: Date,
payeeId: number,
categories: IExpenseCategory[],
id: number;
totalAmount: number;
currencyCode: string;
description?: string;
paymentAccountId: number;
peyeeId?: number;
referenceNo?: string;
publishedAt: Date | null;
userId: number;
paymentDate: Date;
payeeId: number;
categories: IExpenseCategory[];
}
export interface IExpenseCategory {
expenseAccountId: number,
index: number,
description: string,
expenseId: number,
amount: number,
expenseAccountId: number;
index: number;
description: string;
expenseId: number;
amount: number;
}
export interface IExpenseDTO {
currencyCode: string,
description?: string,
paymentAccountId: number,
peyeeId?: number,
referenceNo?: string,
publish: boolean,
userId: number,
paymentDate: Date,
payeeId: number,
categories: IExpenseCategoryDTO[],
currencyCode: string;
description?: string;
paymentAccountId: number;
peyeeId?: number;
referenceNo?: string;
publish: boolean;
userId: number;
paymentDate: Date;
payeeId: number;
categories: IExpenseCategoryDTO[];
}
export interface IExpenseCategoryDTO {
expenseAccountId: number,
index: number,
description?: string,
expenseId: number,
};
expenseAccountId: number;
index: number;
description?: string;
expenseId: number;
}
export interface IExpensesService {
newExpense(tenantid: number, expenseDTO: IExpenseDTO, authorizedUser: ISystemUser): Promise<IExpense>;
editExpense(tenantid: number, expenseId: number, expenseDTO: IExpenseDTO, authorizedUser: ISystemUser): void;
newExpense(
tenantid: number,
expenseDTO: IExpenseDTO,
authorizedUser: ISystemUser
): Promise<IExpense>;
publishExpense(tenantId: number, expenseId: number, authorizedUser: ISystemUser): Promise<void>;
editExpense(
tenantid: number,
expenseId: number,
expenseDTO: IExpenseDTO,
authorizedUser: ISystemUser
): void;
deleteExpense(tenantId: number, expenseId: number, authorizedUser: ISystemUser): Promise<void>;
deleteBulkExpenses(tenantId: number, expensesIds: number[], authorizedUser: ISystemUser): Promise<void>;
publishExpense(
tenantId: number,
expenseId: number,
authorizedUser: ISystemUser
): Promise<void>;
publishBulkExpenses(tenantId: number, expensesIds: number[], authorizedUser: ISystemUser): Promise<void>;
deleteExpense(
tenantId: number,
expenseId: number,
authorizedUser: ISystemUser
): Promise<void>;
deleteBulkExpenses(
tenantId: number,
expensesIds: number[],
authorizedUser: ISystemUser
): Promise<void>;
publishBulkExpenses(
tenantId: number,
expensesIds: number[],
authorizedUser: ISystemUser
): Promise<{
meta: {
alreadyPublished: number;
published: number;
total: number,
},
}>;
getExpensesList(
tenantId: number,
expensesFilter: IExpensesFilter
): Promise<{
expenses: IExpense[];
pagination: IPaginationMeta;
filterMeta: IFilterMeta;
}>;
getExpensesList(tenantId: number, expensesFilter: IExpensesFilter): Promise<{ expenses: IExpense[], pagination: IPaginationMeta, filterMeta: IFilterMeta }>;
getExpense(tenantId: number, expenseId: number): Promise<IExpense>;
}
}