@tomei/finance 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/account.d.ts +24 -27
- package/dist/account/account.js +47 -67
- package/dist/account/account.js.map +1 -1
- package/dist/account/account.repository.d.ts +3 -14
- package/dist/account/account.repository.js +4 -39
- package/dist/account/account.repository.js.map +1 -1
- package/dist/account/interfaces/account-attr.interface.d.ts +15 -7
- package/dist/account-system-entity/account-system-entity.d.ts +2 -2
- package/dist/account-system-entity/account-system-entity.js +1 -1
- package/dist/account-system-entity/post-history.repository.d.ts +2 -2
- package/dist/account-system-entity/post-history.repository.js +1 -1
- package/dist/customer/customer.d.ts +3 -3
- package/dist/customer/customer.js +1 -2
- package/dist/customer/customer.js.map +1 -1
- package/dist/customer/finance-customer.repository.d.ts +2 -2
- package/dist/customer/finance-customer.repository.js +1 -1
- package/dist/customer/interfaces/finance-customer.repository.interface.d.ts +2 -2
- package/dist/document/document-item.d.ts +1 -1
- package/dist/document/document-item.js +1 -2
- package/dist/document/document-item.js.map +1 -1
- package/dist/document/document-item.repository.d.ts +2 -2
- package/dist/document/document-item.repository.js +1 -1
- package/dist/document/document.d.ts +14 -16
- package/dist/document/document.js +50 -38
- package/dist/document/document.js.map +1 -1
- package/dist/document/document.repository.d.ts +3 -14
- package/dist/document/document.repository.js +4 -39
- package/dist/document/document.repository.js.map +1 -1
- package/dist/document/interfaces/document-item.repository.interface.d.ts +2 -2
- package/dist/enum/index.d.ts +2 -1
- package/dist/enum/index.js +3 -1
- package/dist/enum/index.js.map +1 -1
- package/dist/enum/payment-status.enum.d.ts +4 -0
- package/dist/enum/payment-status.enum.js +9 -0
- package/dist/enum/payment-status.enum.js.map +1 -0
- package/dist/finance-company/finance-company.d.ts +5 -8
- package/dist/finance-company/finance-company.js +10 -15
- package/dist/finance-company/finance-company.js.map +1 -1
- package/dist/finance-company/finance-company.repository.d.ts +2 -2
- package/dist/finance-company/finance-company.repository.js +1 -1
- package/dist/index.d.ts +11 -8
- package/dist/index.js +14 -8
- package/dist/index.js.map +1 -1
- package/dist/interfaces/account-system.interface.d.ts +2 -2
- package/dist/journal-entry/journal-entry.d.ts +5 -7
- package/dist/journal-entry/journal-entry.js +8 -9
- package/dist/journal-entry/journal-entry.js.map +1 -1
- package/dist/journal-entry/journal-entry.repository.d.ts +3 -13
- package/dist/journal-entry/journal-entry.repository.js +5 -38
- package/dist/journal-entry/journal-entry.repository.js.map +1 -1
- package/dist/ledger-transaction/ledger-transaction.d.ts +1 -1
- package/dist/ledger-transaction/ledger-transaction.js +1 -2
- package/dist/ledger-transaction/ledger-transaction.js.map +1 -1
- package/dist/models/account.entity.d.ts +7 -3
- package/dist/models/account.entity.js +69 -34
- package/dist/models/account.entity.js.map +1 -1
- package/dist/models/finance-company.entity.d.ts +0 -4
- package/dist/models/finance-company.entity.js +0 -20
- package/dist/models/finance-company.entity.js.map +1 -1
- package/dist/models/payment-item.entity.d.ts +1 -0
- package/dist/models/payment-item.entity.js +7 -0
- package/dist/models/payment-item.entity.js.map +1 -1
- package/dist/models/payment-method-type.entity.d.ts +13 -0
- package/dist/models/payment-method-type.entity.js +86 -0
- package/dist/models/payment-method-type.entity.js.map +1 -0
- package/dist/models/payment-method.entity.d.ts +7 -0
- package/dist/models/payment-method.entity.js +46 -0
- package/dist/models/payment-method.entity.js.map +1 -0
- package/dist/models/payment.entity.d.ts +15 -10
- package/dist/models/payment.entity.js +92 -34
- package/dist/models/payment.entity.js.map +1 -1
- package/dist/payment/interfaces/payment-attr.interface.d.ts +11 -8
- package/dist/payment/interfaces/payment-attr.interface.js.map +1 -1
- package/dist/payment/interfaces/payment-item-attr.interface.d.ts +1 -0
- package/dist/payment/interfaces/payment-item-attr.interface.js.map +1 -1
- package/dist/payment/payment-item.repository.d.ts +3 -15
- package/dist/payment/payment-item.repository.js +4 -43
- package/dist/payment/payment-item.repository.js.map +1 -1
- package/dist/payment/payment.d.ts +46 -48
- package/dist/payment/payment.js +105 -126
- package/dist/payment/payment.js.map +1 -1
- package/dist/payment/payment.repository.d.ts +3 -14
- package/dist/payment/payment.repository.js +4 -39
- package/dist/payment/payment.repository.js.map +1 -1
- package/dist/payment-item/interfaces/payment-item-attr.interface.d.ts +8 -0
- package/dist/payment-item/interfaces/payment-item-attr.interface.js +7 -0
- package/dist/payment-item/interfaces/payment-item-attr.interface.js.map +1 -0
- package/{src/payment/interfaces/payment-item.repository.interface.ts → dist/payment-item/interfaces/payment-item.repository.interface.d.ts} +0 -1
- package/dist/payment-item/interfaces/payment-item.repository.interface.js +3 -0
- package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +1 -0
- package/dist/payment-item/payment-item.d.ts +22 -0
- package/dist/payment-item/payment-item.js +42 -0
- package/dist/payment-item/payment-item.js.map +1 -0
- package/dist/payment-item/payment-item.repository.d.ts +5 -0
- package/dist/payment-item/payment-item.repository.js +12 -0
- package/dist/payment-item/payment-item.repository.js.map +1 -0
- package/dist/payment-method/interfaces/payment-method-attr.interface.d.ts +4 -0
- package/dist/payment-method/interfaces/payment-method-attr.interface.js +3 -0
- package/dist/payment-method/interfaces/payment-method-attr.interface.js.map +1 -0
- package/dist/payment-method/payment-method.d.ts +10 -0
- package/dist/payment-method/payment-method.js +15 -0
- package/dist/payment-method/payment-method.js.map +1 -0
- package/dist/payment-method/payment-method.repository.d.ts +5 -0
- package/dist/payment-method/payment-method.repository.js +12 -0
- package/dist/payment-method/payment-method.repository.js.map +1 -0
- package/dist/payment-method-type/interfaces/payment-method-type-attr.interface.d.ts +8 -0
- package/dist/payment-method-type/interfaces/payment-method-type-attr.interface.js +3 -0
- package/dist/payment-method-type/interfaces/payment-method-type-attr.interface.js.map +1 -0
- package/dist/payment-method-type/payment-method-type.d.ts +14 -0
- package/dist/payment-method-type/payment-method-type.js +15 -0
- package/dist/payment-method-type/payment-method-type.js.map +1 -0
- package/dist/payment-method-type/payment-method-type.repository.d.ts +5 -0
- package/dist/payment-method-type/payment-method-type.repository.js +12 -0
- package/dist/payment-method-type/payment-method-type.repository.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migrations/finance-account-migration.js +30 -16
- package/migrations/finance-company-migration.js +0 -14
- package/migrations/finance-payment-item-migration.js +4 -0
- package/migrations/finance-payment-method-migration.js +21 -0
- package/migrations/finance-payment-method-type-migration.js +55 -0
- package/migrations/finance-payment-migration.js +42 -25
- package/package.json +4 -4
- package/src/account/account.repository.ts +5 -38
- package/src/account/account.ts +79 -100
- package/src/account/interfaces/account-attr.interface.ts +15 -7
- package/src/account-system-entity/account-system-entity.ts +4 -4
- package/src/account-system-entity/post-history.repository.ts +3 -3
- package/src/customer/customer.ts +3 -3
- package/src/customer/finance-customer.repository.ts +2 -2
- package/src/customer/interfaces/finance-customer.repository.interface.ts +2 -2
- package/src/document/document-item.repository.ts +2 -2
- package/src/document/document-item.ts +1 -1
- package/src/document/document.repository.ts +5 -35
- package/src/document/document.ts +66 -55
- package/src/document/interfaces/document-item.repository.interface.ts +2 -2
- package/src/enum/index.ts +2 -0
- package/src/enum/payment-status.enum.ts +4 -0
- package/src/finance-company/finance-company.repository.ts +3 -3
- package/src/finance-company/finance-company.ts +14 -26
- package/src/index.ts +13 -7
- package/src/interfaces/account-system.interface.ts +2 -2
- package/src/journal-entry/journal-entry.repository.ts +5 -34
- package/src/journal-entry/journal-entry.ts +13 -16
- package/src/ledger-transaction/ledger-transaction.ts +1 -1
- package/src/models/account.entity.ts +67 -32
- package/src/models/finance-company.entity.ts +0 -16
- package/src/models/payment-item.entity.ts +6 -0
- package/src/models/payment-method-type.entity.ts +70 -0
- package/src/models/payment-method.entity.ts +28 -0
- package/src/models/payment.entity.ts +86 -31
- package/src/payment/interfaces/payment-attr.interface.ts +11 -8
- package/src/payment/payment.repository.ts +5 -35
- package/src/payment/payment.ts +150 -179
- package/src/{payment → payment-item}/interfaces/payment-item-attr.interface.ts +1 -0
- package/src/payment-item/payment-item.repository.ts +11 -0
- package/src/payment-item/payment-item.ts +58 -0
- package/src/payment-method/interfaces/payment-method-attr.interface.ts +4 -0
- package/src/payment-method/payment-method.repository.ts +11 -0
- package/src/payment-method/payment-method.ts +20 -0
- package/src/payment-method-type/interfaces/payment-method-type-attr.interface.ts +8 -0
- package/src/payment-method-type/payment-method-type.repository.ts +11 -0
- package/src/payment-method-type/payment-method-type.ts +24 -0
- package/src/account/interfaces/account.repository.interface.ts +0 -4
- package/src/document/interfaces/document.repository.interface.ts +0 -4
- package/src/journal-entry/interfaces/journal-entry.repository.interface.ts +0 -11
- package/src/payment/interfaces/payment.repository.interface.ts +0 -4
- package/src/payment/payment-item.repository.ts +0 -49
package/src/payment/payment.ts
CHANGED
|
@@ -1,204 +1,175 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { IAccountSystem } from '../interfaces';
|
|
4
|
-
import { IPaymentRepository } from './interfaces/payment.repository.interface';
|
|
5
|
-
import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
|
|
6
|
-
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
-
import { IPaymentAttr } from './interfaces/payment-attr.interface';
|
|
8
|
-
import PaymentModel from '../models/payment.entity';
|
|
9
|
-
import axios from 'axios';
|
|
1
|
+
import { ObjectBase, RecordNotFoundError } from '@tomei/general';
|
|
2
|
+
import { PaymentType } from '../enum';
|
|
10
3
|
import { IPaymentParams } from './interfaces/payment-params.interface';
|
|
11
4
|
import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
private
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
private
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
AccSystemCode: string;
|
|
48
|
-
|
|
49
|
-
constructor(
|
|
50
|
-
AccountingSystem: IAccountSystem,
|
|
51
|
-
PaymentRepository: IPaymentRepository,
|
|
52
|
-
PaymentItemRepository: IPaymentItemRepository,
|
|
53
|
-
Customer: FinanceCustomerBase,
|
|
54
|
-
ReceivableAccount: Account,
|
|
55
|
-
DepositAccount: Account,
|
|
56
|
-
PaymentItems: PaymentItemBase[],
|
|
57
|
-
Params?: IPaymentParams,
|
|
58
|
-
sequelize?: Sequelize,
|
|
59
|
-
) {
|
|
60
|
-
super();
|
|
61
|
-
this.AccountingSystem = AccountingSystem;
|
|
62
|
-
this.PaymentRepository = PaymentRepository;
|
|
63
|
-
this.PaymentItemRepository = PaymentItemRepository;
|
|
64
|
-
this.Customer = Customer;
|
|
65
|
-
this.ReceivableAccount = ReceivableAccount;
|
|
66
|
-
this.DepositAccount = DepositAccount;
|
|
67
|
-
this.PaymentItems = PaymentItems;
|
|
68
|
-
if (Params) {
|
|
69
|
-
this.init(Params);
|
|
70
|
-
}
|
|
71
|
-
if (sequelize) {
|
|
72
|
-
this.sequelize = sequelize;
|
|
73
|
-
}
|
|
5
|
+
import { PaymentStatus } from '../enum/payment-status.enum';
|
|
6
|
+
import { PaymentRepository } from './payment.repository';
|
|
7
|
+
import { PaymentItemRepository } from '../payment-item/payment-item.repository';
|
|
8
|
+
import PaymentItemModel from '../models/payment-item.entity';
|
|
9
|
+
import PaymentItem from '../payment-item/payment-item';
|
|
10
|
+
|
|
11
|
+
export default class Payment extends AccountSystemEntity {
|
|
12
|
+
private _PaymentId = 'New';
|
|
13
|
+
PaymentType: PaymentType;
|
|
14
|
+
PaymentDate: Date;
|
|
15
|
+
MethodTypeId: string;
|
|
16
|
+
Currency: string;
|
|
17
|
+
Amount: number;
|
|
18
|
+
private _Status: PaymentStatus;
|
|
19
|
+
TransactionId: string;
|
|
20
|
+
TransactionApprovalCode: string;
|
|
21
|
+
TransactionAccountName: string;
|
|
22
|
+
TransactionAccountNo: string;
|
|
23
|
+
private _ReceivedBy: string;
|
|
24
|
+
private _UpdatedBy: string;
|
|
25
|
+
private _UpdatedAt: Date;
|
|
26
|
+
Remarks: string;
|
|
27
|
+
|
|
28
|
+
private static _RepositoryBase = new PaymentRepository();
|
|
29
|
+
|
|
30
|
+
_TableName: string;
|
|
31
|
+
_ObjectId: string;
|
|
32
|
+
_ObjectName: string;
|
|
33
|
+
|
|
34
|
+
private _PaymentItems = null;
|
|
35
|
+
|
|
36
|
+
paymentItemRepository: PaymentItemRepository;
|
|
37
|
+
|
|
38
|
+
public get PaymentId() {
|
|
39
|
+
return this._PaymentId;
|
|
74
40
|
}
|
|
75
41
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (Params.Method) this.Method = Params.Method;
|
|
79
|
-
if (Params.MethodParty) this.MethodParty = Params.MethodParty;
|
|
80
|
-
if (Params.PaymentType) this.PaymentType = Params.PaymentType;
|
|
42
|
+
private set PaymentId(id: string) {
|
|
43
|
+
this._PaymentId = id;
|
|
81
44
|
}
|
|
82
45
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (this.PaymentItems.length === 0) {
|
|
86
|
-
throw new Error('Payment must have at least one payment item');
|
|
87
|
-
}
|
|
88
|
-
this.PaymentItems.forEach((paymentItem) => {
|
|
89
|
-
this.Amount += paymentItem.Amount;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return this.Amount;
|
|
46
|
+
public get Status() {
|
|
47
|
+
return this._Status;
|
|
93
48
|
}
|
|
94
49
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
throw new Error('Currency is missing.');
|
|
98
|
-
}
|
|
99
|
-
return this.Currency;
|
|
50
|
+
private set Status(status: PaymentStatus) {
|
|
51
|
+
this._Status = status;
|
|
100
52
|
}
|
|
101
53
|
|
|
102
|
-
|
|
103
|
-
this.
|
|
54
|
+
public get ReceivedBy() {
|
|
55
|
+
return this._ReceivedBy;
|
|
104
56
|
}
|
|
105
57
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
this.DepositAccountNo = await this.DepositAccount.getAccountNo();
|
|
109
|
-
}
|
|
110
|
-
return this.DepositAccountNo;
|
|
58
|
+
private set ReceivedBy(id: string) {
|
|
59
|
+
this._ReceivedBy = id;
|
|
111
60
|
}
|
|
112
61
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
|
|
116
|
-
}
|
|
117
|
-
return this.ReceivableAccountNo;
|
|
62
|
+
public get UpdatedBy() {
|
|
63
|
+
return this._UpdatedBy;
|
|
118
64
|
}
|
|
119
65
|
|
|
120
|
-
|
|
121
|
-
|
|
66
|
+
private set UpdatedBy(id: string) {
|
|
67
|
+
this._UpdatedBy = id;
|
|
122
68
|
}
|
|
123
69
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (!this.sequelize) {
|
|
128
|
-
throw new Error('sequelize instance used for transaction is required.');
|
|
129
|
-
}
|
|
130
|
-
if (!this.PaymentType) {
|
|
131
|
-
throw new Error('Payment Type is required.');
|
|
132
|
-
}
|
|
133
|
-
if (!this.Method) {
|
|
134
|
-
throw new Error('Method is required.');
|
|
135
|
-
}
|
|
136
|
-
if (this.PaymentItems.length === 0) {
|
|
137
|
-
throw new Error('Payment must have at least one payment item');
|
|
138
|
-
}
|
|
70
|
+
public get UpdatedAt() {
|
|
71
|
+
return this._UpdatedAt;
|
|
72
|
+
}
|
|
139
73
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this.ObjectId = await this.AccountingSystem.makePayment(
|
|
144
|
-
this.Customer,
|
|
145
|
-
this,
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
this.Status = 'Successfull';
|
|
149
|
-
const paymentAttribute: IPaymentAttr = {
|
|
150
|
-
PaymentId: this.ObjectId,
|
|
151
|
-
AccountNo: this.DepositAccountNo,
|
|
152
|
-
PaymentType: this.PaymentType,
|
|
153
|
-
PaymentDate: new Date(),
|
|
154
|
-
Currency: this.Currency,
|
|
155
|
-
Amount: this.Amount,
|
|
156
|
-
Status: this.Status,
|
|
157
|
-
Method: this.Method,
|
|
158
|
-
MethodParty: this.MethodParty,
|
|
159
|
-
ReceivedBy: this.ReceivableAccountNo,
|
|
160
|
-
UpdatedAt: new Date(),
|
|
161
|
-
UpdatedBy: 'System', //still ambigous
|
|
162
|
-
};
|
|
163
|
-
const payment = await this.PaymentRepository.create(paymentAttribute, {
|
|
164
|
-
transaction,
|
|
165
|
-
});
|
|
166
|
-
const paymentItemsData = [];
|
|
167
|
-
this.PaymentItems.forEach(async (paymentItem) => {
|
|
168
|
-
paymentItemsData.push({
|
|
169
|
-
PaymentId: this.ObjectId,
|
|
170
|
-
PayForObjectId: paymentItem.ObjectId,
|
|
171
|
-
PayForObjectType: paymentItem.Type,
|
|
172
|
-
Amount: paymentItem.Amount,
|
|
173
|
-
Currency: paymentItem.Currency,
|
|
174
|
-
});
|
|
175
|
-
});
|
|
74
|
+
private set UpdatedAt(date: Date) {
|
|
75
|
+
this._UpdatedAt = date;
|
|
76
|
+
}
|
|
176
77
|
|
|
177
|
-
|
|
178
|
-
|
|
78
|
+
/* AccountSystemEntity Implementation */
|
|
79
|
+
get RepositoryBase() {
|
|
80
|
+
return Payment._RepositoryBase;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* ObjectBase Implementation */
|
|
84
|
+
get ObjectId() {
|
|
85
|
+
return this.PaymentId;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get ObjectName() {
|
|
89
|
+
return this.PaymentId;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get TableName() {
|
|
93
|
+
return 'finance_Payment';
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
constructor(dbTransaction: any);
|
|
97
|
+
constructor(dbTransaction: any, paymentId: string);
|
|
98
|
+
constructor(dbTransaction: any, paymentId?: string) {
|
|
99
|
+
super();
|
|
100
|
+
this.RepositoryBase.findOne({
|
|
101
|
+
where: {
|
|
102
|
+
PaymentId: paymentId,
|
|
103
|
+
},
|
|
104
|
+
transaction: dbTransaction,
|
|
105
|
+
})
|
|
106
|
+
.then((paymentData) => {
|
|
107
|
+
if (paymentData) {
|
|
108
|
+
this.PaymentType = paymentData.PaymentType;
|
|
109
|
+
this.PaymentDate = paymentData.PaymentDate;
|
|
110
|
+
this.CompanyId = paymentData.CompanyId;
|
|
111
|
+
this.MethodTypeId = paymentData.MethodTypeId;
|
|
112
|
+
this.Currency = paymentData.Currency;
|
|
113
|
+
this.Amount = paymentData.Amount;
|
|
114
|
+
this.Status = paymentData.Status;
|
|
115
|
+
this.TransactionId = paymentData.TransactionId;
|
|
116
|
+
this.TransactionApprovalCode = paymentData.TransactionApprovalCode;
|
|
117
|
+
this.TransactionAccountName = paymentData.TransactionAccountName;
|
|
118
|
+
this.TransactionAccountNo = paymentData.TransactionAccountNo;
|
|
119
|
+
this.ReceivedBy = paymentData.ReceivedBy;
|
|
120
|
+
this.UpdatedAt = paymentData.UpdatedAt;
|
|
121
|
+
this.UpdatedBy = paymentData.UpdatedBy;
|
|
122
|
+
this.Remarks = paymentData.Remarks;
|
|
123
|
+
this.AccSystemRefId = paymentData.AccSystemRefId;
|
|
124
|
+
this.PostedToAccSystemYN = paymentData.PostedToAccSystemYN;
|
|
125
|
+
this.PostedById = paymentData.PostedById;
|
|
126
|
+
this.PostedDateTime = paymentData.PostedDateTime;
|
|
127
|
+
} else {
|
|
128
|
+
const notFoundError = new RecordNotFoundError('No Record Found.');
|
|
129
|
+
throw notFoundError;
|
|
130
|
+
}
|
|
131
|
+
})
|
|
132
|
+
.catch((err) => {
|
|
133
|
+
// tslint:disable-next-line:no-console
|
|
134
|
+
console.log('Payment Class constructor err: ', err);
|
|
179
135
|
});
|
|
136
|
+
}
|
|
180
137
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
payload,
|
|
196
|
-
);
|
|
197
|
-
|
|
198
|
-
await transaction.commit();
|
|
199
|
-
} catch (error) {
|
|
200
|
-
await transaction.rollback();
|
|
201
|
-
throw error;
|
|
138
|
+
public get PaymentItems() {
|
|
139
|
+
if (this._PaymentItems === null) {
|
|
140
|
+
this._PaymentItems = new Array<PaymentItemModel>();
|
|
141
|
+
if (this.PaymentId !== 'New') {
|
|
142
|
+
this.paymentItemRepository
|
|
143
|
+
.findAll({
|
|
144
|
+
where: {
|
|
145
|
+
PaymentId: this.PaymentId,
|
|
146
|
+
},
|
|
147
|
+
})
|
|
148
|
+
.then((allPaymentItems) => {
|
|
149
|
+
this._PaymentItems = allPaymentItems;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
202
152
|
}
|
|
153
|
+
|
|
154
|
+
return this._PaymentItems;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Create a new Payment Item which is automatically added to the PaymentItems list
|
|
159
|
+
*
|
|
160
|
+
* @returns {PaymentItem}
|
|
161
|
+
*/
|
|
162
|
+
async newPaymentItem(objectBeingPaidFor: ObjectBase): Promise<PaymentItem> {
|
|
163
|
+
const paymentItem = new PaymentItem(
|
|
164
|
+
new Payment(null, this.PaymentId),
|
|
165
|
+
objectBeingPaidFor,
|
|
166
|
+
);
|
|
167
|
+
this.PaymentItems.push(paymentItem);
|
|
168
|
+
return paymentItem;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
init(Params: IPaymentParams): void {
|
|
172
|
+
if (Params.Currency) this.Currency = Params.Currency;
|
|
173
|
+
if (Params.PaymentType) this.PaymentType = Params.PaymentType;
|
|
203
174
|
}
|
|
204
175
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import PaymentItemModel from '../models/payment-item.entity';
|
|
3
|
+
|
|
4
|
+
export class PaymentItemRepository
|
|
5
|
+
extends RepositoryBase<PaymentItemModel>
|
|
6
|
+
implements IRepositoryBase<PaymentItemModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(PaymentItemModel);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ObjectBase } from '@tomei/general';
|
|
2
|
+
import Payment from '../payment/payment';
|
|
3
|
+
|
|
4
|
+
export default class PaymentItem extends ObjectBase {
|
|
5
|
+
private _PaymentId: string;
|
|
6
|
+
private _PayForObjectId: string;
|
|
7
|
+
private _PayForObjectType: string;
|
|
8
|
+
Currency = 'MYR';
|
|
9
|
+
Amount = 0;
|
|
10
|
+
|
|
11
|
+
_TableName: string;
|
|
12
|
+
_ObjectId: string;
|
|
13
|
+
_ObjectName: string;
|
|
14
|
+
|
|
15
|
+
get PaymentId() {
|
|
16
|
+
return this._PaymentId;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
private set PaymentId(id: string) {
|
|
20
|
+
this._PaymentId = id;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get PayForObjectId() {
|
|
24
|
+
return this._PayForObjectId;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private set PayForObjectId(id: string) {
|
|
28
|
+
this._PayForObjectId = id;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get PayForObjectType(): string {
|
|
32
|
+
return this._PayForObjectType;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private set PayForObjectType(type: string) {
|
|
36
|
+
this._PayForObjectType = type;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ObjectBase Implementation */
|
|
40
|
+
get ObjectId() {
|
|
41
|
+
return '';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get ObjectName() {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get TableName() {
|
|
49
|
+
return 'finance_PaymentItem';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
constructor(payment: Payment, objectBeingPaidFor: ObjectBase) {
|
|
53
|
+
super();
|
|
54
|
+
this.PaymentId = payment.PaymentId;
|
|
55
|
+
this.PayForObjectId = objectBeingPaidFor.ObjectId;
|
|
56
|
+
this.PayForObjectType = typeof objectBeingPaidFor;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import PaymentMethodModel from 'src/models/payment-method.entity';
|
|
3
|
+
|
|
4
|
+
export class PaymentMethodRepository
|
|
5
|
+
extends RepositoryBase<PaymentMethodModel>
|
|
6
|
+
implements IRepositoryBase<PaymentMethodModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(PaymentMethodModel);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default class PaymentMethod {
|
|
2
|
+
MethodId: string;
|
|
3
|
+
Name: string;
|
|
4
|
+
|
|
5
|
+
_TableName: string;
|
|
6
|
+
_ObjectId: string;
|
|
7
|
+
_ObjectName: string;
|
|
8
|
+
|
|
9
|
+
get ObjectId() {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get ObjectName() {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get TableName() {
|
|
18
|
+
return 'finance_PaymentMethod';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import PaymentMethodType from '../models/payment-method-type.entity';
|
|
3
|
+
|
|
4
|
+
export class PaymentMethodTypeRepository
|
|
5
|
+
extends RepositoryBase<PaymentMethodType>
|
|
6
|
+
implements IRepositoryBase<PaymentMethodType>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(PaymentMethodType);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export default class PaymentMethodType {
|
|
2
|
+
MethodTypeId: string;
|
|
3
|
+
MethodId: string;
|
|
4
|
+
Name: string;
|
|
5
|
+
AccountNo: string;
|
|
6
|
+
ProcessingFeeRate: number;
|
|
7
|
+
ProcessingFeeAccountNo: string;
|
|
8
|
+
|
|
9
|
+
_TableName: string;
|
|
10
|
+
_ObjectId: string;
|
|
11
|
+
_ObjectName: string;
|
|
12
|
+
|
|
13
|
+
get ObjectId() {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get ObjectName() {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get TableName() {
|
|
22
|
+
return 'finance_PaymentMethodType';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface IJournalEntryRepository<T> {
|
|
2
|
-
create?(data: T | any, options?: any): Promise<T> | any;
|
|
3
|
-
|
|
4
|
-
findAll?(options?: any): Promise<T[]>;
|
|
5
|
-
|
|
6
|
-
findAllWithPagination(options: any): Promise<{ count: number; rows: T[] }>;
|
|
7
|
-
|
|
8
|
-
findOne?(options: any): Promise<T>;
|
|
9
|
-
|
|
10
|
-
update?(data: any, options?: any): Promise<any>;
|
|
11
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { InjectModel } from '@nestjs/sequelize';
|
|
3
|
-
import { BaseRepository } from '@tomei/general';
|
|
4
|
-
import PaymentItemModel from '../models/payment-item.entity';
|
|
5
|
-
import { IPaymentItemAttr } from './interfaces/payment-item-attr.interface';
|
|
6
|
-
import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
|
|
7
|
-
|
|
8
|
-
@Injectable()
|
|
9
|
-
export class PaymentItemRepository
|
|
10
|
-
extends BaseRepository<PaymentItemModel>
|
|
11
|
-
implements IPaymentItemRepository
|
|
12
|
-
{
|
|
13
|
-
constructor(
|
|
14
|
-
@InjectModel(PaymentItemModel)
|
|
15
|
-
private readonly paymentItemModel: typeof PaymentItemModel,
|
|
16
|
-
) {
|
|
17
|
-
super(paymentItemModel);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
create(
|
|
21
|
-
data: IPaymentItemAttr,
|
|
22
|
-
options?: any,
|
|
23
|
-
): Promise<PaymentItemModel> | any {
|
|
24
|
-
return this.paymentItemModel.create({ ...data }, options);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
bulkCreate(data: IPaymentItemAttr[], options?: any): any {
|
|
28
|
-
const payload: any = [...data];
|
|
29
|
-
return this.paymentItemModel.bulkCreate(payload, options);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
findAll(options: any): Promise<PaymentItemModel[]> {
|
|
33
|
-
return this.paymentItemModel.findAll(options);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
findAllWithPagination(
|
|
37
|
-
options: any,
|
|
38
|
-
): Promise<{ count: number; rows: PaymentItemModel[] }> {
|
|
39
|
-
return this.paymentItemModel.findAndCountAll(options);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
findOne(options: any): Promise<PaymentItemModel> {
|
|
43
|
-
return this.paymentItemModel.findOne(options);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
update(data: IPaymentItemAttr, options?: any): any {
|
|
47
|
-
return this.paymentItemModel.update({ ...data }, options);
|
|
48
|
-
}
|
|
49
|
-
}
|