@tomei/finance 0.6.48 → 0.6.49
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/.commitlintrc.json +22 -22
- package/.eslintrc.js +72 -72
- package/.husky/commit-msg +4 -4
- package/.husky/pre-commit +4 -4
- package/.prettierrc +4 -4
- package/CONTRIBUTING.md +30 -30
- package/LICENSE +21 -21
- package/README.md +13 -13
- package/configs/config.js +348 -348
- package/dist/document/document.js +9 -9
- package/dist/document/document.js.map +1 -1
- package/dist/payment-item/payment-item.js +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/invoice-template/assets/css/style.css.map +12 -12
- package/invoice-template/assets/css/style.min.css +1 -1
- package/invoice-template/assets/img/arrow_bg.svg +11 -11
- package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
- package/invoice-template/assets/img/logo_accent.svg +3 -3
- package/invoice-template/assets/img/logo_white.svg +4 -4
- package/invoice-template/assets/img/sign.svg +12 -12
- package/invoice-template/assets/img/tomei-logo.svg +9 -9
- package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
- package/invoice-template/assets/js/jquery.min.js +1 -1
- package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
- package/invoice-template/assets/sass/common/_typography.scss +178 -178
- package/invoice-template/assets/sass/style.scss +12 -12
- package/migrations/finance-account-migration.js +97 -97
- package/migrations/finance-company-migration.js +29 -29
- package/migrations/finance-customer-migration.js +51 -51
- package/migrations/finance-document-item-migration.js +111 -111
- package/migrations/finance-document-migration.js +122 -122
- package/migrations/finance-journal-entry-migration.js +59 -59
- package/migrations/finance-ledger-transaction-migration.js +89 -89
- package/migrations/finance-payment-item-migration.js +52 -52
- package/migrations/finance-payment-method-migration.js +31 -31
- package/migrations/finance-payment-method-type-migration.js +55 -55
- package/migrations/finance-payment-migration.js +96 -96
- package/migrations/finance-post-history-migration.js +45 -45
- package/migrations/finance-tax-migration.js +52 -52
- package/nest-cli.json +19 -19
- package/package.json +82 -82
- package/src/account/account.repository.ts +11 -11
- package/src/account/account.ts +276 -276
- package/src/account/interfaces/account-attr.interface.ts +31 -31
- package/src/account-system-entity/account-system-entity.ts +66 -66
- package/src/account-system-entity/post-history.repository.ts +11 -11
- package/src/config.ts +382 -382
- package/src/customer/customer.ts +300 -300
- package/src/customer/finance-customer.repository.ts +13 -13
- package/src/customer/interfaces/customer.repository.interface.ts +3 -3
- package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
- package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
- package/src/database.ts +48 -48
- package/src/document/document-item.repository.ts +11 -11
- package/src/document/document.repository.ts +11 -11
- package/src/document/document.ts +11 -10
- package/src/document/interfaces/document-attr.interface.ts +28 -28
- package/src/document/interfaces/document-item-attr.interface.ts +22 -22
- package/src/document/interfaces/document-item.repository.interface.ts +4 -4
- package/src/enum/doc-type.enum.ts +8 -8
- package/src/enum/index.ts +17 -17
- package/src/enum/payment-method.enum.ts +3 -3
- package/src/enum/payment-type.enum.ts +4 -4
- package/src/finance-company/finance-company.repository.ts +11 -11
- package/src/finance-company/finance-company.ts +2066 -2066
- package/src/helpers/login-user.ts +38 -38
- package/src/helpers/typeof.ts +35 -35
- package/src/index.ts +32 -32
- package/src/interfaces/account-system.interface.ts +20 -20
- package/src/interfaces/index.ts +3 -3
- package/src/models/account.entity.ts +206 -206
- package/src/models/customer.entity.ts +93 -93
- package/src/models/document-item.entity.ts +143 -143
- package/src/models/document.entity.ts +211 -211
- package/src/models/finance-company.entity.ts +29 -29
- package/src/models/journal-entry.entity.ts +110 -110
- package/src/models/ledger-transaction.entity.ts +148 -148
- package/src/models/payment-item.entity.ts +60 -60
- package/src/models/payment-method-type.entity.ts +70 -70
- package/src/models/payment-method.entity.ts +51 -51
- package/src/models/payment.entity.ts +165 -165
- package/src/models/post-history.entity.ts +41 -41
- package/src/models/tax.entity.ts +75 -75
- package/src/payment/interfaces/payment-attr.interface.ts +23 -23
- package/src/payment/interfaces/payment-params.interface.ts +8 -8
- package/src/payment/payment.repository.ts +11 -11
- package/src/payment/payment.ts +236 -236
- package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
- package/src/payment-item/payment-item.repository.ts +11 -11
- package/src/payment-item/payment-item.ts +133 -133
- package/src/payment-method/payment-method.repository.ts +11 -11
- package/src/payment-method-type/payment-method-type.repository.ts +11 -11
- package/src/tax/interfaces/tax-attr.interface.ts +10 -10
- package/src/tax/tax.repository.ts +11 -11
- package/src/tax/tax.ts +61 -61
- package/src/test-document.ts +25 -25
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +22 -22
- package/tslint.json +18 -18
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
import { ObjectBase } from '@tomei/general';
|
|
2
|
-
import Payment from '../payment/payment';
|
|
3
|
-
import { type } from '../helpers/typeof';
|
|
4
|
-
import { QueryTypes } from 'sequelize';
|
|
5
|
-
import { FinanceDb } from '../';
|
|
6
|
-
import { Next } from '@nestjs/common/decorators';
|
|
7
|
-
|
|
8
|
-
export default class PaymentItem extends ObjectBase {
|
|
9
|
-
private _PaymentId = '';
|
|
10
|
-
private _PayForObjectId = '';
|
|
11
|
-
private _PayForObjectType = '';
|
|
12
|
-
Currency = 'MYR';
|
|
13
|
-
Amount = 0;
|
|
14
|
-
Name = '';
|
|
15
|
-
Description = '';
|
|
16
|
-
Remarks = '';
|
|
17
|
-
private _ObjectType = 'PaymentItem';
|
|
18
|
-
|
|
19
|
-
get PaymentId() {
|
|
20
|
-
return this._PaymentId;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private set PaymentId(id: string) {
|
|
24
|
-
this._PaymentId = id;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get ObjectType() {
|
|
28
|
-
return this._ObjectType;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
get PayForObjectId() {
|
|
32
|
-
return this._PayForObjectId;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
set PayForObjectId(id: string) {
|
|
36
|
-
this._PayForObjectId = id;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
get PayForObjectType(): string {
|
|
40
|
-
return this._PayForObjectType;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
set PayForObjectType(type: string) {
|
|
44
|
-
this._PayForObjectType = type;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* ObjectBase Implementation */
|
|
48
|
-
get ObjectId() {
|
|
49
|
-
return '';
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
get ObjectName() {
|
|
53
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
get TableName() {
|
|
57
|
-
return 'finance_PaymentItem';
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
constructor(payment: Payment, objectBeingPaidFor: ObjectBase) {
|
|
61
|
-
super();
|
|
62
|
-
this.PaymentId = payment.PaymentId;
|
|
63
|
-
this.PayForObjectId = objectBeingPaidFor.ObjectId;
|
|
64
|
-
this.PayForObjectType = type(objectBeingPaidFor);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async paid(dbTransaction: any) {
|
|
68
|
-
const sequelize = FinanceDb.getConnection();
|
|
69
|
-
if (
|
|
70
|
-
this.PayForObjectType === 'Document' ||
|
|
71
|
-
this.PayForObjectType === 'FinanceDocument'
|
|
72
|
-
) {
|
|
73
|
-
const selectQuery = `SELECT Amount FROM finance_Document WHERE DocNo = '${this.PayForObjectId}'`;
|
|
74
|
-
const invoice: any[] = await sequelize.query(selectQuery, {
|
|
75
|
-
type: QueryTypes.SELECT,
|
|
76
|
-
raw: true,
|
|
77
|
-
transaction: dbTransaction,
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
let paidStatus = '';
|
|
81
|
-
if (invoice[0].Amount > this.Amount) {
|
|
82
|
-
const selectPaymentItem = `SELECT * FROM finance_PaymentItem WHERE PayForObjectId = '${this.PayForObjectId}' AND PayForObjectType = 'Document'`;
|
|
83
|
-
const documentPaymentItems: any[] = await sequelize.query(
|
|
84
|
-
selectPaymentItem,
|
|
85
|
-
{
|
|
86
|
-
type: QueryTypes.SELECT,
|
|
87
|
-
raw: true,
|
|
88
|
-
transaction: dbTransaction,
|
|
89
|
-
},
|
|
90
|
-
);
|
|
91
|
-
let amountPreviouslyPaid = 0;
|
|
92
|
-
documentPaymentItems.forEach((paymentItem) => {
|
|
93
|
-
const amount =
|
|
94
|
-
typeof paymentItem.Amount === 'string'
|
|
95
|
-
? parseFloat(paymentItem.Amount).toFixed(2)
|
|
96
|
-
: paymentItem.Amount;
|
|
97
|
-
amountPreviouslyPaid += amount;
|
|
98
|
-
});
|
|
99
|
-
if (invoice[0].Amount === amountPreviouslyPaid) {
|
|
100
|
-
paidStatus = 'Paid';
|
|
101
|
-
} else {
|
|
102
|
-
paidStatus = 'Partial Paid';
|
|
103
|
-
}
|
|
104
|
-
} else if (invoice[0].Amount === this.Amount) {
|
|
105
|
-
paidStatus = 'Paid';
|
|
106
|
-
} else {
|
|
107
|
-
throw new Error(
|
|
108
|
-
'Payment Item amount cannot be greater than its PayForObject amount.',
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const updateQuery = `
|
|
113
|
-
UPDATE finance_Document
|
|
114
|
-
SET Status = '${paidStatus}'
|
|
115
|
-
WHERE DocNo = '${this.PayForObjectId}'
|
|
116
|
-
`;
|
|
117
|
-
// const replacements = { docNo: this.PayForObjectId };
|
|
118
|
-
await sequelize.query(updateQuery, {
|
|
119
|
-
type: QueryTypes.UPDATE,
|
|
120
|
-
raw: true,
|
|
121
|
-
transaction: dbTransaction,
|
|
122
|
-
});
|
|
123
|
-
} else if (
|
|
124
|
-
this.PayForObjectType === 'LoanSchedule' ||
|
|
125
|
-
this.PayForObjectType === 'SimpleLoans' ||
|
|
126
|
-
this.PayForObjectType === 'Loans'
|
|
127
|
-
) {
|
|
128
|
-
Next();
|
|
129
|
-
} else {
|
|
130
|
-
throw new Error('Unknown type');
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
1
|
+
import { ObjectBase } from '@tomei/general';
|
|
2
|
+
import Payment from '../payment/payment';
|
|
3
|
+
import { type } from '../helpers/typeof';
|
|
4
|
+
import { QueryTypes } from 'sequelize';
|
|
5
|
+
import { FinanceDb } from '../';
|
|
6
|
+
import { Next } from '@nestjs/common/decorators';
|
|
7
|
+
|
|
8
|
+
export default class PaymentItem extends ObjectBase {
|
|
9
|
+
private _PaymentId = '';
|
|
10
|
+
private _PayForObjectId = '';
|
|
11
|
+
private _PayForObjectType = '';
|
|
12
|
+
Currency = 'MYR';
|
|
13
|
+
Amount = 0;
|
|
14
|
+
Name = '';
|
|
15
|
+
Description = '';
|
|
16
|
+
Remarks = '';
|
|
17
|
+
private _ObjectType = 'PaymentItem';
|
|
18
|
+
|
|
19
|
+
get PaymentId() {
|
|
20
|
+
return this._PaymentId;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
private set PaymentId(id: string) {
|
|
24
|
+
this._PaymentId = id;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
get ObjectType() {
|
|
28
|
+
return this._ObjectType;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get PayForObjectId() {
|
|
32
|
+
return this._PayForObjectId;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
set PayForObjectId(id: string) {
|
|
36
|
+
this._PayForObjectId = id;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get PayForObjectType(): string {
|
|
40
|
+
return this._PayForObjectType;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
set PayForObjectType(type: string) {
|
|
44
|
+
this._PayForObjectType = type;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ObjectBase Implementation */
|
|
48
|
+
get ObjectId() {
|
|
49
|
+
return '';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
get ObjectName() {
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
get TableName() {
|
|
57
|
+
return 'finance_PaymentItem';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
constructor(payment: Payment, objectBeingPaidFor: ObjectBase) {
|
|
61
|
+
super();
|
|
62
|
+
this.PaymentId = payment.PaymentId;
|
|
63
|
+
this.PayForObjectId = objectBeingPaidFor.ObjectId;
|
|
64
|
+
this.PayForObjectType = type(objectBeingPaidFor);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async paid(dbTransaction: any) {
|
|
68
|
+
const sequelize = FinanceDb.getConnection();
|
|
69
|
+
if (
|
|
70
|
+
this.PayForObjectType === 'Document' ||
|
|
71
|
+
this.PayForObjectType === 'FinanceDocument'
|
|
72
|
+
) {
|
|
73
|
+
const selectQuery = `SELECT Amount FROM finance_Document WHERE DocNo = '${this.PayForObjectId}'`;
|
|
74
|
+
const invoice: any[] = await sequelize.query(selectQuery, {
|
|
75
|
+
type: QueryTypes.SELECT,
|
|
76
|
+
raw: true,
|
|
77
|
+
transaction: dbTransaction,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
let paidStatus = '';
|
|
81
|
+
if (invoice[0].Amount > this.Amount) {
|
|
82
|
+
const selectPaymentItem = `SELECT * FROM finance_PaymentItem WHERE PayForObjectId = '${this.PayForObjectId}' AND PayForObjectType = 'Document'`;
|
|
83
|
+
const documentPaymentItems: any[] = await sequelize.query(
|
|
84
|
+
selectPaymentItem,
|
|
85
|
+
{
|
|
86
|
+
type: QueryTypes.SELECT,
|
|
87
|
+
raw: true,
|
|
88
|
+
transaction: dbTransaction,
|
|
89
|
+
},
|
|
90
|
+
);
|
|
91
|
+
let amountPreviouslyPaid = 0;
|
|
92
|
+
documentPaymentItems.forEach((paymentItem) => {
|
|
93
|
+
const amount =
|
|
94
|
+
typeof paymentItem.Amount === 'string'
|
|
95
|
+
? parseFloat(paymentItem.Amount).toFixed(2)
|
|
96
|
+
: paymentItem.Amount;
|
|
97
|
+
amountPreviouslyPaid += amount;
|
|
98
|
+
});
|
|
99
|
+
if (invoice[0].Amount === amountPreviouslyPaid) {
|
|
100
|
+
paidStatus = 'Paid';
|
|
101
|
+
} else {
|
|
102
|
+
paidStatus = 'Partial Paid';
|
|
103
|
+
}
|
|
104
|
+
} else if (invoice[0].Amount === this.Amount) {
|
|
105
|
+
paidStatus = 'Paid';
|
|
106
|
+
} else {
|
|
107
|
+
throw new Error(
|
|
108
|
+
'Payment Item amount cannot be greater than its PayForObject amount.',
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const updateQuery = `
|
|
113
|
+
UPDATE finance_Document
|
|
114
|
+
SET Status = '${paidStatus}'
|
|
115
|
+
WHERE DocNo = '${this.PayForObjectId}'
|
|
116
|
+
`;
|
|
117
|
+
// const replacements = { docNo: this.PayForObjectId };
|
|
118
|
+
await sequelize.query(updateQuery, {
|
|
119
|
+
type: QueryTypes.UPDATE,
|
|
120
|
+
raw: true,
|
|
121
|
+
transaction: dbTransaction,
|
|
122
|
+
});
|
|
123
|
+
} else if (
|
|
124
|
+
this.PayForObjectType === 'LoanSchedule' ||
|
|
125
|
+
this.PayForObjectType === 'SimpleLoans' ||
|
|
126
|
+
this.PayForObjectType === 'Loans'
|
|
127
|
+
) {
|
|
128
|
+
Next();
|
|
129
|
+
} else {
|
|
130
|
+
throw new Error('Unknown type');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import PaymentMethodModel from '../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
|
-
}
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import PaymentMethodModel from '../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
|
+
}
|
|
@@ -1,11 +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
|
-
}
|
|
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
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export interface ITaxAttr {
|
|
2
|
-
TaxCode: string;
|
|
3
|
-
TaxRate: number;
|
|
4
|
-
Description: string;
|
|
5
|
-
CompanyId: string;
|
|
6
|
-
CreatedById: string;
|
|
7
|
-
CreatedAt: Date;
|
|
8
|
-
UpdatedById: string;
|
|
9
|
-
UpdatedAt: Date;
|
|
10
|
-
}
|
|
1
|
+
export interface ITaxAttr {
|
|
2
|
+
TaxCode: string;
|
|
3
|
+
TaxRate: number;
|
|
4
|
+
Description: string;
|
|
5
|
+
CompanyId: string;
|
|
6
|
+
CreatedById: string;
|
|
7
|
+
CreatedAt: Date;
|
|
8
|
+
UpdatedById: string;
|
|
9
|
+
UpdatedAt: Date;
|
|
10
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import FinanceTaxModel from '../models/tax.entity';
|
|
3
|
-
|
|
4
|
-
export class TaxRepository
|
|
5
|
-
extends RepositoryBase<FinanceTaxModel>
|
|
6
|
-
implements IRepositoryBase<FinanceTaxModel>
|
|
7
|
-
{
|
|
8
|
-
constructor() {
|
|
9
|
-
super(FinanceTaxModel);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import FinanceTaxModel from '../models/tax.entity';
|
|
3
|
+
|
|
4
|
+
export class TaxRepository
|
|
5
|
+
extends RepositoryBase<FinanceTaxModel>
|
|
6
|
+
implements IRepositoryBase<FinanceTaxModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(FinanceTaxModel);
|
|
10
|
+
}
|
|
11
|
+
}
|
package/src/tax/tax.ts
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import { ITaxAttr } from './interfaces/tax-attr.interface';
|
|
2
|
-
|
|
3
|
-
export class Tax {
|
|
4
|
-
private _TaxCode = 'New';
|
|
5
|
-
private _Description: string;
|
|
6
|
-
private _CompanyId: string;
|
|
7
|
-
private _TaxRate = 0;
|
|
8
|
-
private _CreatedById: string;
|
|
9
|
-
private _CreatedAt: Date;
|
|
10
|
-
private _UpdatedById: string;
|
|
11
|
-
private _UpdatedAt: Date;
|
|
12
|
-
private _ObjectType = 'Tax';
|
|
13
|
-
get ObjectType() {
|
|
14
|
-
return this._ObjectType;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
constructor(taxAttr?: ITaxAttr) {
|
|
18
|
-
if (taxAttr) {
|
|
19
|
-
this._TaxCode = taxAttr.TaxCode;
|
|
20
|
-
this._Description = taxAttr.Description;
|
|
21
|
-
this._CompanyId = taxAttr.CompanyId;
|
|
22
|
-
this._TaxRate = taxAttr.TaxRate;
|
|
23
|
-
this._CreatedById = taxAttr.CreatedById;
|
|
24
|
-
this._CreatedAt = taxAttr.CreatedAt;
|
|
25
|
-
this._UpdatedById = taxAttr.UpdatedById;
|
|
26
|
-
this._UpdatedAt = taxAttr.UpdatedAt;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get TaxCode(): string {
|
|
31
|
-
return this._TaxCode;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
get Description(): string {
|
|
35
|
-
return this._Description;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get CompanyId(): string {
|
|
39
|
-
return this._CompanyId;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
get TaxRate(): number {
|
|
43
|
-
return this._TaxRate;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
get CreatedById(): string {
|
|
47
|
-
return this._CreatedById;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
get CreatedAt(): Date {
|
|
51
|
-
return this._CreatedAt;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
get UpdatedById(): string {
|
|
55
|
-
return this._UpdatedById;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
get UpdatedAt(): Date {
|
|
59
|
-
return this._UpdatedAt;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
1
|
+
import { ITaxAttr } from './interfaces/tax-attr.interface';
|
|
2
|
+
|
|
3
|
+
export class Tax {
|
|
4
|
+
private _TaxCode = 'New';
|
|
5
|
+
private _Description: string;
|
|
6
|
+
private _CompanyId: string;
|
|
7
|
+
private _TaxRate = 0;
|
|
8
|
+
private _CreatedById: string;
|
|
9
|
+
private _CreatedAt: Date;
|
|
10
|
+
private _UpdatedById: string;
|
|
11
|
+
private _UpdatedAt: Date;
|
|
12
|
+
private _ObjectType = 'Tax';
|
|
13
|
+
get ObjectType() {
|
|
14
|
+
return this._ObjectType;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
constructor(taxAttr?: ITaxAttr) {
|
|
18
|
+
if (taxAttr) {
|
|
19
|
+
this._TaxCode = taxAttr.TaxCode;
|
|
20
|
+
this._Description = taxAttr.Description;
|
|
21
|
+
this._CompanyId = taxAttr.CompanyId;
|
|
22
|
+
this._TaxRate = taxAttr.TaxRate;
|
|
23
|
+
this._CreatedById = taxAttr.CreatedById;
|
|
24
|
+
this._CreatedAt = taxAttr.CreatedAt;
|
|
25
|
+
this._UpdatedById = taxAttr.UpdatedById;
|
|
26
|
+
this._UpdatedAt = taxAttr.UpdatedAt;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get TaxCode(): string {
|
|
31
|
+
return this._TaxCode;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get Description(): string {
|
|
35
|
+
return this._Description;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get CompanyId(): string {
|
|
39
|
+
return this._CompanyId;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get TaxRate(): number {
|
|
43
|
+
return this._TaxRate;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get CreatedById(): string {
|
|
47
|
+
return this._CreatedById;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get CreatedAt(): Date {
|
|
51
|
+
return this._CreatedAt;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get UpdatedById(): string {
|
|
55
|
+
return this._UpdatedById;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get UpdatedAt(): Date {
|
|
59
|
+
return this._UpdatedAt;
|
|
60
|
+
}
|
|
61
|
+
}
|
package/src/test-document.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
export class TestDocument {
|
|
2
|
-
static test(classPath, className) {
|
|
3
|
-
// tslint:disable-next-line:no-console
|
|
4
|
-
console.log('inside test() #1');
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unused-vars,
|
|
8
|
-
const module = require(classPath);
|
|
9
|
-
// tslint:disable-next-line:no-console
|
|
10
|
-
console.log('inside test() #1: %o', module);
|
|
11
|
-
console.log(`module.${className}`);
|
|
12
|
-
// tslint:disable-next-line:no-eval
|
|
13
|
-
const classConstructor = eval(`module.${className}`);
|
|
14
|
-
// tslint:disable-next-line:no-console
|
|
15
|
-
console.log('inside test() #2: %o', classConstructor);
|
|
16
|
-
|
|
17
|
-
const docGen = new classConstructor('RECEIPT001');
|
|
18
|
-
// tslint:disable-next-line:no-console
|
|
19
|
-
console.log('inside test() #3');
|
|
20
|
-
|
|
21
|
-
docGen.generateReceipt();
|
|
22
|
-
// tslint:disable-next-line:no-console
|
|
23
|
-
console.log('inside test() #4');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
export class TestDocument {
|
|
2
|
+
static test(classPath, className) {
|
|
3
|
+
// tslint:disable-next-line:no-console
|
|
4
|
+
console.log('inside test() #1');
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unused-vars,
|
|
8
|
+
const module = require(classPath);
|
|
9
|
+
// tslint:disable-next-line:no-console
|
|
10
|
+
console.log('inside test() #1: %o', module);
|
|
11
|
+
console.log(`module.${className}`);
|
|
12
|
+
// tslint:disable-next-line:no-eval
|
|
13
|
+
const classConstructor = eval(`module.${className}`);
|
|
14
|
+
// tslint:disable-next-line:no-console
|
|
15
|
+
console.log('inside test() #2: %o', classConstructor);
|
|
16
|
+
|
|
17
|
+
const docGen = new classConstructor('RECEIPT001');
|
|
18
|
+
// tslint:disable-next-line:no-console
|
|
19
|
+
console.log('inside test() #3');
|
|
20
|
+
|
|
21
|
+
docGen.generateReceipt();
|
|
22
|
+
// tslint:disable-next-line:no-console
|
|
23
|
+
console.log('inside test() #4');
|
|
24
|
+
}
|
|
25
|
+
}
|
package/tsconfig.build.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
|
|
4
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
|
|
4
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "commonjs",
|
|
4
|
-
"declaration": true,
|
|
5
|
-
"removeComments": true,
|
|
6
|
-
"emitDecoratorMetadata": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"allowSyntheticDefaultImports": true,
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"target": "es6",
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"outDir": "./dist",
|
|
13
|
-
"baseUrl": "./",
|
|
14
|
-
"incremental": true,
|
|
15
|
-
"skipLibCheck": true,
|
|
16
|
-
"strictNullChecks": false,
|
|
17
|
-
"noImplicitAny": false,
|
|
18
|
-
"strictBindCallApply": false,
|
|
19
|
-
"forceConsistentCasingInFileNames": false,
|
|
20
|
-
"noFallthroughCasesInSwitch": false,
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "commonjs",
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"removeComments": true,
|
|
6
|
+
"emitDecoratorMetadata": true,
|
|
7
|
+
"experimentalDecorators": true,
|
|
8
|
+
"allowSyntheticDefaultImports": true,
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"target": "es6",
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"baseUrl": "./",
|
|
14
|
+
"incremental": true,
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"strictNullChecks": false,
|
|
17
|
+
"noImplicitAny": false,
|
|
18
|
+
"strictBindCallApply": false,
|
|
19
|
+
"forceConsistentCasingInFileNames": false,
|
|
20
|
+
"noFallthroughCasesInSwitch": false,
|
|
21
|
+
}
|
|
22
|
+
}
|
package/tslint.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
{
|
|
2
|
-
"defaultSeverity": "error",
|
|
3
|
-
"extends": ["tslint:recommended"],
|
|
4
|
-
"jsRules": {
|
|
5
|
-
"no-unused-expression": true
|
|
6
|
-
},
|
|
7
|
-
"rules": {
|
|
8
|
-
"quotemark": [true, "single"],
|
|
9
|
-
"member-access": [false],
|
|
10
|
-
"ordered-imports": [false],
|
|
11
|
-
"max-line-length": [true, 150],
|
|
12
|
-
"member-ordering": [false],
|
|
13
|
-
"interface-name": [false],
|
|
14
|
-
"arrow-parens": false,
|
|
15
|
-
"object-literal-sort-keys": false
|
|
16
|
-
},
|
|
17
|
-
"rulesDirectory": []
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"defaultSeverity": "error",
|
|
3
|
+
"extends": ["tslint:recommended"],
|
|
4
|
+
"jsRules": {
|
|
5
|
+
"no-unused-expression": true
|
|
6
|
+
},
|
|
7
|
+
"rules": {
|
|
8
|
+
"quotemark": [true, "single"],
|
|
9
|
+
"member-access": [false],
|
|
10
|
+
"ordered-imports": [false],
|
|
11
|
+
"max-line-length": [true, 150],
|
|
12
|
+
"member-ordering": [false],
|
|
13
|
+
"interface-name": [false],
|
|
14
|
+
"arrow-parens": false,
|
|
15
|
+
"object-literal-sort-keys": false
|
|
16
|
+
},
|
|
17
|
+
"rulesDirectory": []
|
|
18
|
+
}
|