feat: Payment system with voucher cards.

feat: Design with inversion dependency injection architecture.
feat: Prettier http middleware.
feat: Re-write items categories with preferred accounts.
This commit is contained in:
Ahmed Bouhuolia
2020-08-27 20:39:55 +02:00
parent e23b8d9947
commit e4270dc039
63 changed files with 2567 additions and 462 deletions

View File

@@ -0,0 +1,30 @@
export interface IItemCategory {
name: string,
parentCategoryId?: number,
description?: string,
userId: number,
costAccountId?: number,
sellAccountId?: number,
inventoryAccountId?: number,
costMethod?: string,
};
export interface IItemCategoryOTD {
name: string,
parentCategoryId?: number,
description?: string,
userId: number,
costAccountId?: number,
sellAccountId?: number,
inventoryAccountId?: number,
costMethod?: string,
};

View File

@@ -0,0 +1,20 @@
export interface IPaymentModel {}
export interface IVoucherPaymentModel extends IPaymentModel {
voucherCode: string;
}
export interface IPaymentMethod {
makePayment(paymentModel: IPaymentModel): Promise<boolean>;
}
export interface IVoucherPaymentMethod {
makePayment(paymentModel: IVoucherPaymentModel): Promise<boolean>;
}
export interface IPaymentContext<PaymentModel> {
paymentMethod: IPaymentMethod;
makePayment(paymentModel: PaymentModel): Promise<boolean>;
}

View File

@@ -0,0 +1,17 @@
export interface IVoucher {
id?: number,
voucherCode: string,
voucherPeriod: number,
sent: boolean,
disabled: boolean,
used: boolean,
};
export interface IVouchersFilter {
active: boolean,
disabld: boolean,
used: boolean,
sent: boolean,
};

View File

@@ -1,8 +1,17 @@
import { IInventoryTransaction, IInventoryLotCost } from './InventoryTransaction';
import { IBillPaymentEntry, IBillPayment } from './BillPayment';
import { IInventoryCostMethod } from './IInventoryCostMethod';
import { IInventoryCostMethod } from './InventoryCostMethod';
import { IItemEntry } from './ItemEntry';
import { IItem } from './Item';
import { IVoucher, IVouchersFilter } from './Voucher';
import { IItemCategory, IItemCategoryOTD } from './ItemCategory';
import {
IPaymentModel,
IVoucherPaymentModel,
IPaymentMethod,
IVoucherPaymentMethod,
IPaymentContext,
} from './Payment';
export {
IBillPaymentEntry,
@@ -10,6 +19,16 @@ export {
IInventoryTransaction,
IInventoryLotCost,
IInventoryCostMethod,
IItemEntry
IItemEntry,
IItem,
IVoucher,
IVouchersFilter,
IItemCategory,
IItemCategoryOTD,
IPaymentModel,
IPaymentMethod,
IPaymentContext,
IVoucherPaymentModel,
IVoucherPaymentMethod,
};