@tomei/finance 0.3.0 → 0.3.2
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 +22 -27
- package/dist/account/account.js +89 -77
- 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 +2 -1
- package/dist/document/document-item.js +2 -2
- package/dist/document/document-item.js.map +1 -1
- package/dist/document/document-item.repository.d.ts +3 -15
- package/dist/document/document-item.repository.js +4 -43
- package/dist/document/document-item.repository.js.map +1 -1
- package/dist/document/document.d.ts +20 -23
- package/dist/document/document.js +85 -54
- 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/enum/transaction-type.enum.d.ts +2 -2
- package/dist/enum/transaction-type.enum.js +2 -2
- package/dist/enum/transaction-type.enum.js.map +1 -1
- package/dist/finance-company/finance-company.d.ts +15 -10
- package/dist/finance-company/finance-company.js +473 -30
- 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 +13 -17
- package/dist/journal-entry/journal-entry.js +83 -35
- 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/interfaces/ledger-transaction-attr.interface.d.ts +0 -4
- package/dist/ledger-transaction/ledger-transaction.d.ts +6 -5
- package/dist/ledger-transaction/ledger-transaction.js +6 -9
- package/dist/ledger-transaction/ledger-transaction.js.map +1 -1
- package/dist/ledger-transaction/ledger-transaction.repository.d.ts +3 -8
- package/dist/ledger-transaction/ledger-transaction.repository.js +5 -32
- package/dist/ledger-transaction/ledger-transaction.repository.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 +44 -48
- package/dist/payment/payment.js +122 -133
- 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 +19 -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 +17 -0
- package/dist/payment-method/payment-method.js +83 -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 +15 -0
- package/dist/payment-method-type/payment-method-type.js +55 -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 +115 -98
- 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 +5 -43
- package/src/document/document-item.ts +5 -1
- package/src/document/document.repository.ts +5 -35
- package/src/document/document.ts +127 -74
- 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/enum/transaction-type.enum.ts +2 -2
- package/src/finance-company/finance-company.repository.ts +3 -3
- package/src/finance-company/finance-company.ts +685 -48
- 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 +163 -63
- package/src/ledger-transaction/interfaces/ledger-transaction-attr.interface.ts +0 -5
- package/src/ledger-transaction/ledger-transaction.repository.ts +5 -24
- package/src/ledger-transaction/ledger-transaction.ts +8 -12
- 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 +183 -181
- 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 +54 -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 +95 -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 +58 -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
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
2
|
import FinancePostHistoryModel from '../models/post-history.entity';
|
|
3
3
|
|
|
4
4
|
export class PostHistoryRepository
|
|
5
|
-
extends
|
|
6
|
-
implements
|
|
5
|
+
extends RepositoryBase<FinancePostHistoryModel>
|
|
6
|
+
implements IRepositoryBase<FinancePostHistoryModel>
|
|
7
7
|
{
|
|
8
8
|
constructor() {
|
|
9
9
|
super(FinancePostHistoryModel);
|
package/src/customer/customer.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IAddress,
|
|
3
|
-
|
|
3
|
+
IRepositoryBase,
|
|
4
4
|
IPerson,
|
|
5
5
|
LoginUserBase,
|
|
6
6
|
RecordNotFoundError,
|
|
@@ -10,7 +10,7 @@ import { IFinanceCustomerRepository } from './interfaces/finance-customer.reposi
|
|
|
10
10
|
import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
|
|
11
11
|
|
|
12
12
|
// const AccountSystemEntity = import('../account-system-entity').then(({AccountSystemEntity}) => AccountSystemEntity);
|
|
13
|
-
export abstract class FinanceCustomerBase
|
|
13
|
+
export default abstract class FinanceCustomerBase
|
|
14
14
|
extends AccountSystemEntity
|
|
15
15
|
implements IPerson
|
|
16
16
|
{
|
|
@@ -43,7 +43,7 @@ export abstract class FinanceCustomerBase
|
|
|
43
43
|
CustomerId: string;
|
|
44
44
|
CustSystemCode: string;
|
|
45
45
|
CustSystemRefId: string;
|
|
46
|
-
|
|
46
|
+
RepositoryBase: IRepositoryBase<any>;
|
|
47
47
|
|
|
48
48
|
constructor(
|
|
49
49
|
custSystemRefId: string,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common/decorators';
|
|
2
2
|
import { InjectModel } from '@nestjs/sequelize';
|
|
3
|
-
import {
|
|
3
|
+
import { RepositoryBase } from '@tomei/general';
|
|
4
4
|
import FinanceCustomerModel from '../models/customer.entity';
|
|
5
5
|
import { IFinanceCustomerAttr } from './interfaces/finance-customer-attr.interface';
|
|
6
6
|
import { IFinanceCustomerRepository } from './interfaces/finance-customer.repository.interface';
|
|
7
7
|
|
|
8
8
|
@Injectable()
|
|
9
9
|
export class FinanceCustomerRepository
|
|
10
|
-
extends
|
|
10
|
+
extends RepositoryBase<FinanceCustomerModel>
|
|
11
11
|
implements IFinanceCustomerRepository
|
|
12
12
|
{
|
|
13
13
|
constructor(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRepositoryBase } from '@tomei/general';
|
|
2
2
|
import FinanceCustomerModel from '../../models/customer.entity';
|
|
3
3
|
|
|
4
|
-
export type IFinanceCustomerRepository =
|
|
4
|
+
export type IFinanceCustomerRepository = IRepositoryBase<FinanceCustomerModel>;
|
|
@@ -1,49 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InjectModel } from '@nestjs/sequelize';
|
|
3
|
-
import { BaseRepository } from '@tomei/general';
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
4
2
|
import DocumentItemModel from '../models/document-item.entity';
|
|
5
|
-
import { IDocumentItemAttr } from './interfaces/document-item-attr.interface';
|
|
6
|
-
import { IDocumentItemRepository } from './interfaces/document-item.repository.interface';
|
|
7
3
|
|
|
8
|
-
@Injectable()
|
|
9
4
|
export class DocumentItemRepository
|
|
10
|
-
extends
|
|
11
|
-
implements
|
|
5
|
+
extends RepositoryBase<DocumentItemModel>
|
|
6
|
+
implements IRepositoryBase<DocumentItemModel>
|
|
12
7
|
{
|
|
13
|
-
constructor(
|
|
14
|
-
|
|
15
|
-
private readonly documentItemModel: typeof DocumentItemModel,
|
|
16
|
-
) {
|
|
17
|
-
super(documentItemModel);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
create(
|
|
21
|
-
data: IDocumentItemAttr,
|
|
22
|
-
options?: any,
|
|
23
|
-
): Promise<DocumentItemModel> | any {
|
|
24
|
-
return this.documentItemModel.create({ ...data }, options);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
bulkCreate(data: IDocumentItemAttr[], options?: any): any {
|
|
28
|
-
const payload: any = [...data];
|
|
29
|
-
return this.documentItemModel.bulkCreate(payload, options);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
findAll(options: any): Promise<DocumentItemModel[]> {
|
|
33
|
-
return this.documentItemModel.findAll(options);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
findAllWithPagination(
|
|
37
|
-
options: any,
|
|
38
|
-
): Promise<{ count: number; rows: DocumentItemModel[] }> {
|
|
39
|
-
return this.documentItemModel.findAndCountAll(options);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
findOne(options: any): Promise<DocumentItemModel> {
|
|
43
|
-
return this.documentItemModel.findOne(options);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
update(data: IDocumentItemAttr, options?: any): any {
|
|
47
|
-
return this.documentItemModel.update({ ...data }, options);
|
|
8
|
+
constructor() {
|
|
9
|
+
super(DocumentItemModel);
|
|
48
10
|
}
|
|
49
11
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { DocumentItemRepository } from './document-item.repository';
|
|
2
|
+
|
|
3
|
+
export default class DocumentItem {
|
|
2
4
|
DocumentItemId: string;
|
|
3
5
|
DocNo: string;
|
|
4
6
|
Name: string;
|
|
@@ -19,4 +21,6 @@ export class DocumentItem {
|
|
|
19
21
|
TaxInclusiveYN?: string;
|
|
20
22
|
DtAccountNo?: string;
|
|
21
23
|
CtAccountNo?: string;
|
|
24
|
+
|
|
25
|
+
constructor(dbTransaction?: any, documentItemId?: string) {}
|
|
22
26
|
}
|
|
@@ -1,41 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InjectModel } from '@nestjs/sequelize';
|
|
3
|
-
import { BaseRepository } from '@tomei/general';
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
4
2
|
import DocumentModel from '../models/document.entity';
|
|
5
|
-
import { IDocumentAttr } from './interfaces/document-attr.interface';
|
|
6
|
-
import { IDocumentRepository } from './interfaces/document.repository.interface';
|
|
7
3
|
|
|
8
|
-
@Injectable()
|
|
9
4
|
export class DocumentRepository
|
|
10
|
-
extends
|
|
11
|
-
implements
|
|
5
|
+
extends RepositoryBase<DocumentModel>
|
|
6
|
+
implements IRepositoryBase<DocumentModel>
|
|
12
7
|
{
|
|
13
|
-
constructor(
|
|
14
|
-
|
|
15
|
-
private readonly documentModel: typeof DocumentModel,
|
|
16
|
-
) {
|
|
17
|
-
super(documentModel);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
create(data: IDocumentAttr, options?: any): Promise<DocumentModel> | any {
|
|
21
|
-
return this.documentModel.create({ ...data }, options);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
findAll(options: any): Promise<DocumentModel[]> {
|
|
25
|
-
return this.documentModel.findAll(options);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
findAllWithPagination(
|
|
29
|
-
options: any,
|
|
30
|
-
): Promise<{ count: number; rows: DocumentModel[] }> {
|
|
31
|
-
return this.documentModel.findAndCountAll(options);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
findOne(options: any): Promise<DocumentModel> {
|
|
35
|
-
return this.documentModel.findOne(options);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
update(data: IDocumentAttr, options?: any): any {
|
|
39
|
-
return this.documentModel.update({ ...data }, options);
|
|
8
|
+
constructor() {
|
|
9
|
+
super(DocumentModel);
|
|
40
10
|
}
|
|
41
11
|
}
|
package/src/document/document.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as util from 'util';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import puppeteer from 'puppeteer';
|
|
4
|
-
import {
|
|
4
|
+
import { RecordNotFoundError } from '@tomei/general';
|
|
5
5
|
import {
|
|
6
6
|
Medias,
|
|
7
7
|
InternalMediaDto,
|
|
@@ -13,52 +13,55 @@ import {
|
|
|
13
13
|
import { DocumentStatus, DocType } from '../enum';
|
|
14
14
|
import { IDocumentAttr } from './interfaces/document-attr.interface';
|
|
15
15
|
import { DocumentItemRepository } from './document-item.repository';
|
|
16
|
-
import
|
|
17
|
-
import { IDocumentRepository } from './interfaces/document.repository.interface';
|
|
16
|
+
import DocumentItem from './document-item';
|
|
18
17
|
import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
|
|
19
|
-
import
|
|
18
|
+
import { DocumentRepository } from './document.repository';
|
|
19
|
+
import FinanceCompany from '../finance-company/finance-company';
|
|
20
|
+
import FinanceCustomerBase from '../customer/customer';
|
|
20
21
|
|
|
21
|
-
export class Document extends AccountSystemEntity {
|
|
22
|
+
export default class Document extends AccountSystemEntity {
|
|
22
23
|
DocNo: string;
|
|
23
24
|
private _DocType: DocType;
|
|
24
|
-
private _DocDate
|
|
25
|
+
private _DocDate = new Date();
|
|
25
26
|
Currency: string;
|
|
26
27
|
Amount: number;
|
|
27
28
|
Description: string;
|
|
29
|
+
private _Status = DocumentStatus.UNPAID;
|
|
28
30
|
IssuedById: string;
|
|
29
31
|
IssuedToId: string;
|
|
30
32
|
IssuedToType: string;
|
|
31
33
|
CreatedById: string;
|
|
32
34
|
CreatedAt: Date;
|
|
33
|
-
UpdatedById
|
|
34
|
-
UpdatedAt
|
|
35
|
+
UpdatedById: string;
|
|
36
|
+
UpdatedAt: Date;
|
|
35
37
|
UseAccSystemDocYN: string;
|
|
36
38
|
|
|
37
|
-
private _documentRepository: IBaseRepository<DocumentModel> =
|
|
38
|
-
new DocumentModel();
|
|
39
|
-
protected _BaseRepository: IBaseRepository;
|
|
40
|
-
|
|
41
|
-
_ObjectId: string;
|
|
42
|
-
_ObjectName: string;
|
|
43
|
-
_TableName: string;
|
|
44
|
-
|
|
45
39
|
private _DocHTMLFileMediaId: string;
|
|
46
40
|
private _DocPDFFileMediaId: string;
|
|
47
|
-
private _Status: DocumentStatus = DocumentStatus.UNPAID;
|
|
48
41
|
|
|
49
|
-
private
|
|
50
|
-
private
|
|
42
|
+
private static _RepositoryBase = new DocumentRepository();
|
|
43
|
+
private static _DocumentItemRepository = new DocumentItemRepository();
|
|
44
|
+
|
|
45
|
+
private _DbTransaction: any;
|
|
46
|
+
private _IsNewRecord = true;
|
|
47
|
+
private _DocumentItems = null;
|
|
51
48
|
|
|
52
|
-
documentRepository: IDocumentRepository;
|
|
53
|
-
documentItemRepository: DocumentItemRepository;
|
|
54
49
|
mediaRepository: IMediasRepository;
|
|
55
50
|
mediaCommonService: MediaCommonService;
|
|
56
51
|
|
|
52
|
+
private get IsNewRecord() {
|
|
53
|
+
return this._IsNewRecord;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private set IsNewRecord(record: boolean) {
|
|
57
|
+
this._IsNewRecord = record;
|
|
58
|
+
}
|
|
59
|
+
|
|
57
60
|
public get DocType() {
|
|
58
61
|
return this._DocType;
|
|
59
62
|
}
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
public set DocType(docType: DocType) {
|
|
62
65
|
this._DocType = docType;
|
|
63
66
|
}
|
|
64
67
|
|
|
@@ -95,80 +98,121 @@ export class Document extends AccountSystemEntity {
|
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
/* AccountSystemEntity Implementation */
|
|
98
|
-
|
|
99
|
-
return
|
|
101
|
+
get RepositoryBase() {
|
|
102
|
+
return Document._RepositoryBase;
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
/* ObjectBase Implementation */
|
|
103
|
-
|
|
106
|
+
get ObjectId() {
|
|
104
107
|
return this.DocNo;
|
|
105
108
|
}
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
get ObjectName() {
|
|
108
111
|
return this.DocNo;
|
|
109
112
|
}
|
|
110
113
|
|
|
111
|
-
|
|
114
|
+
get TableName() {
|
|
112
115
|
return 'finance_Document';
|
|
113
116
|
}
|
|
114
117
|
|
|
115
|
-
constructor(dbTransaction
|
|
116
|
-
constructor(dbTransaction: any, docNo?: string) {
|
|
118
|
+
constructor(dbTransaction?: any, docNo?: string) {
|
|
117
119
|
super();
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
120
|
+
if (dbTransaction) {
|
|
121
|
+
this._DbTransaction = dbTransaction;
|
|
122
|
+
}
|
|
123
|
+
if (docNo) {
|
|
124
|
+
this.RepositoryBase.findOne({
|
|
125
|
+
where: {
|
|
126
|
+
DocNo: docNo,
|
|
127
|
+
},
|
|
128
|
+
transaction: dbTransaction,
|
|
129
|
+
})
|
|
130
|
+
.then((documentData) => {
|
|
131
|
+
if (documentData) {
|
|
132
|
+
this.IsNewRecord = false;
|
|
133
|
+
this.DocType = documentData.DocType;
|
|
134
|
+
this.DocDate = documentData.DocDate;
|
|
135
|
+
this.CompanyId = documentData.CompanyId;
|
|
136
|
+
this.Currency = documentData.Currency;
|
|
137
|
+
this.Amount = documentData.Amount;
|
|
138
|
+
this.Description = documentData.Description;
|
|
139
|
+
this.Status = documentData.Status;
|
|
140
|
+
this.IssuedById = documentData.IssuedById;
|
|
141
|
+
this.IssuedToId = documentData.IssuedToId;
|
|
142
|
+
this.IssuedToType = documentData.IssuedToType;
|
|
143
|
+
this.CreatedById = documentData.CreatedById;
|
|
144
|
+
this.CreatedAt = documentData.CreatedAt;
|
|
145
|
+
this.UpdatedById = documentData.UpdatedById;
|
|
146
|
+
this.UpdatedAt = documentData.UpdatedAt;
|
|
147
|
+
this.DocPDFFileMediaId = documentData.DocPDFFileMediaId;
|
|
148
|
+
this.DocHTMLFileMediaId = documentData.DocHTMLFileMediaId;
|
|
149
|
+
this.AccSystemRefId = documentData.AccSystemRefId;
|
|
150
|
+
this.PostedToAccSystemYN = documentData.PostedToAccSystemYN;
|
|
151
|
+
this.PostedById = documentData.PostedById;
|
|
152
|
+
this.PostedDateTime = documentData.PostedDateTime;
|
|
153
|
+
this.UseAccSystemDocYN = documentData.UseAccSystemDocYN;
|
|
154
|
+
} else {
|
|
155
|
+
const notFoundError = new RecordNotFoundError('No Record Found.');
|
|
156
|
+
throw notFoundError;
|
|
157
|
+
}
|
|
158
|
+
})
|
|
159
|
+
.catch((err) => {
|
|
160
|
+
// tslint:disable-next-line:no-console
|
|
161
|
+
console.log('Document Class constructor err: ', err);
|
|
162
|
+
});
|
|
150
163
|
}
|
|
151
164
|
}
|
|
152
165
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (this._DocumentItems === null) {
|
|
166
|
+
get DocumentItems(): Promise<DocumentItem[]> {
|
|
167
|
+
return new Promise((resolve, reject) => {
|
|
156
168
|
if (!this.IsNewRecord) {
|
|
157
|
-
|
|
169
|
+
Document._DocumentItemRepository
|
|
158
170
|
.findAll({
|
|
159
171
|
where: {
|
|
160
172
|
DocNo: this.DocNo,
|
|
161
173
|
},
|
|
174
|
+
transaction: this._DbTransaction,
|
|
175
|
+
})
|
|
176
|
+
.then((documentItems) => {
|
|
177
|
+
const documentItemObjects = documentItems.map((documentItem) => {
|
|
178
|
+
new DocumentItem(
|
|
179
|
+
this._DbTransaction,
|
|
180
|
+
documentItem.DocumentItemId,
|
|
181
|
+
);
|
|
182
|
+
});
|
|
183
|
+
return Promise.all(documentItemObjects);
|
|
162
184
|
})
|
|
163
|
-
.then((
|
|
164
|
-
this._DocumentItems =
|
|
185
|
+
.then((documentItemObjects) => {
|
|
186
|
+
this._DocumentItems = documentItemObjects;
|
|
187
|
+
resolve(this._DocumentItems);
|
|
188
|
+
})
|
|
189
|
+
.catch((err) => {
|
|
190
|
+
reject(err);
|
|
165
191
|
});
|
|
166
192
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return this._DocumentItems;
|
|
193
|
+
resolve(this._DocumentItems);
|
|
194
|
+
});
|
|
170
195
|
}
|
|
171
196
|
|
|
197
|
+
// public get DocumentItems() {
|
|
198
|
+
// // this._DocumentItems = new DocumentItem();
|
|
199
|
+
// if (this._DocumentItems === null) {
|
|
200
|
+
// if (!this.IsNewRecord) {
|
|
201
|
+
// Document._DocumentItemRepository
|
|
202
|
+
// .findAll({
|
|
203
|
+
// where: {
|
|
204
|
+
// DocNo: this.DocNo,
|
|
205
|
+
// },
|
|
206
|
+
// })
|
|
207
|
+
// .then((allDocumentItems) => {
|
|
208
|
+
// this._DocumentItems = allDocumentItems;
|
|
209
|
+
// });
|
|
210
|
+
// }
|
|
211
|
+
// }
|
|
212
|
+
|
|
213
|
+
// return this._DocumentItems;
|
|
214
|
+
// }
|
|
215
|
+
|
|
172
216
|
/**
|
|
173
217
|
* Returns HTML template file for invoice generation
|
|
174
218
|
*
|
|
@@ -315,10 +359,16 @@ export class Document extends AccountSystemEntity {
|
|
|
315
359
|
* @see DocumentFileInHTML - for implementation
|
|
316
360
|
* @see DocumentFileInPDF - for implementation
|
|
317
361
|
*
|
|
362
|
+
* @see {@link FinanceCompany.issueInvoice} - for implementation
|
|
363
|
+
*
|
|
318
364
|
* @param userId - userId that trigger this function
|
|
365
|
+
*
|
|
319
366
|
* @returns {MediasModel} - HTML & PDF Media
|
|
320
367
|
*/
|
|
321
|
-
async generateInvoice(
|
|
368
|
+
async generateInvoice(
|
|
369
|
+
userId?: string,
|
|
370
|
+
customer?: FinanceCustomerBase,
|
|
371
|
+
): Promise<{
|
|
322
372
|
HTMLMedia: MediasModel;
|
|
323
373
|
PDFMedia: MediasModel;
|
|
324
374
|
}> {
|
|
@@ -328,6 +378,7 @@ export class Document extends AccountSystemEntity {
|
|
|
328
378
|
);
|
|
329
379
|
|
|
330
380
|
/* todo: needs to manipulate HTML DOM before uploading to media*/
|
|
381
|
+
console.log(customer || 'no customer provided', '<< customer');
|
|
331
382
|
|
|
332
383
|
/* insert FileStream on htmlPayload */
|
|
333
384
|
const htmlPayload: InternalMediaDto = {
|
|
@@ -370,7 +421,7 @@ export class Document extends AccountSystemEntity {
|
|
|
370
421
|
);
|
|
371
422
|
|
|
372
423
|
try {
|
|
373
|
-
const document = await this.
|
|
424
|
+
const document = await this.RepositoryBase.findOne({
|
|
374
425
|
where: {
|
|
375
426
|
DocNo: this.DocNo,
|
|
376
427
|
},
|
|
@@ -391,15 +442,17 @@ export class Document extends AccountSystemEntity {
|
|
|
391
442
|
};
|
|
392
443
|
}
|
|
393
444
|
|
|
445
|
+
async generateCreditNote(userId?: string, customer?: FinanceCustomerBase) {}
|
|
446
|
+
|
|
394
447
|
/**
|
|
395
448
|
* Create a new Document Item which is automatically added to the DocumentItems list
|
|
396
449
|
*
|
|
397
450
|
* @returns {DocumentItem}
|
|
398
451
|
*/
|
|
399
|
-
|
|
452
|
+
get NewDocumentItem(): DocumentItem {
|
|
400
453
|
const documentItem = new DocumentItem();
|
|
401
454
|
documentItem.DocNo = this.DocNo;
|
|
402
|
-
this.
|
|
455
|
+
this._DocumentItems.push(documentItem);
|
|
403
456
|
return documentItem;
|
|
404
457
|
}
|
|
405
458
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRepositoryBase } from '@tomei/general';
|
|
2
2
|
import DocumentItemModel from '../../models/document-item.entity';
|
|
3
3
|
|
|
4
|
-
export type IDocumentItemRepository =
|
|
4
|
+
export type IDocumentItemRepository = IRepositoryBase<DocumentItemModel>;
|
package/src/enum/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PaymentMethod } from './payment-method.enum';
|
|
|
4
4
|
import { TransactionTypeOptions } from './transaction-type.enum';
|
|
5
5
|
import { DocType } from './doc-type.enum';
|
|
6
6
|
import { DocumentStatus } from './document-status.enum';
|
|
7
|
+
import { PaymentStatus } from './payment-status.enum';
|
|
7
8
|
|
|
8
9
|
export {
|
|
9
10
|
ClientScopes,
|
|
@@ -12,4 +13,5 @@ export {
|
|
|
12
13
|
TransactionTypeOptions,
|
|
13
14
|
DocType,
|
|
14
15
|
DocumentStatus,
|
|
16
|
+
PaymentStatus,
|
|
15
17
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
2
|
import FinanceCompanyModel from '../models/finance-company.entity';
|
|
3
3
|
|
|
4
4
|
export class FinanceCompanyRepository
|
|
5
|
-
extends
|
|
6
|
-
implements
|
|
5
|
+
extends RepositoryBase<FinanceCompanyModel>
|
|
6
|
+
implements IRepositoryBase<FinanceCompanyModel>
|
|
7
7
|
{
|
|
8
8
|
constructor() {
|
|
9
9
|
super(FinanceCompanyModel);
|