law-common 12.6.2 → 12.6.3-beta.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/README.md +1 -1
- package/dist/src/api/index.d.ts +2 -0
- package/dist/src/api/index.js +2 -0
- package/dist/src/api/interface/client_debit_note_particulars.create.dto.interface.d.ts +1 -1
- package/dist/src/api/interface/industry.create.dto.interface.d.ts +5 -0
- package/dist/src/api/interface/industry.create.dto.interface.js +2 -0
- package/dist/src/api/interface/industry.update.dto.interface.d.ts +17 -0
- package/dist/src/api/interface/industry.update.dto.interface.js +17 -0
- package/dist/src/entities/enums/client_debit_note_gst_visible_enum.d.ts +4 -0
- package/dist/src/entities/enums/client_debit_note_gst_visible_enum.js +8 -0
- package/dist/src/entities/enums/client_debit_note_pan_visible_enum.d.ts +4 -0
- package/dist/src/entities/enums/client_debit_note_pan_visible_enum.js +8 -0
- package/dist/src/entities/enums/industry_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/industry_status_enum.js +9 -0
- package/dist/src/entities/flow-configs/industry_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/industry_flow.config.js +70 -0
- package/dist/src/entities/index.d.ts +6 -0
- package/dist/src/entities/index.js +6 -0
- package/dist/src/entities/interface/client_debit_note.entity.interface.d.ts +7 -0
- package/dist/src/entities/interface/client_debit_note_particulars.entity.interface.d.ts +1 -0
- package/dist/src/entities/interface/industry.entity.interface.d.ts +4 -2
- package/dist/src/entities/model/client.entity.model.d.ts +3 -1
- package/dist/src/entities/model/client.entity.model.js +10 -0
- package/dist/src/entities/model/client_debit_note.entity.model.d.ts +13 -0
- package/dist/src/entities/model/client_debit_note.entity.model.js +16 -0
- package/dist/src/entities/model/client_debit_note_particulars.entity.model.d.ts +1 -0
- package/dist/src/entities/model/client_debit_note_particulars.entity.model.js +1 -0
- package/dist/src/entities/model/industry.entity.model.d.ts +21 -3
- package/dist/src/entities/model/industry.entity.model.js +65 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# law-common
|
|
1
|
+
# law-common
|
package/dist/src/api/index.d.ts
CHANGED
|
@@ -117,3 +117,5 @@ export * from "./interface/client_debit_note.create.dto.interface";
|
|
|
117
117
|
export * from "./interface/client_debit_note.update.dto.interface";
|
|
118
118
|
export * from "./interface/client_debit_note_particulars.create.dto.interface";
|
|
119
119
|
export * from "./interface/client_debit_note_particulars.update.dto.interface";
|
|
120
|
+
export * from "./interface/industry.create.dto.interface";
|
|
121
|
+
export * from "./interface/industry.update.dto.interface";
|
package/dist/src/api/index.js
CHANGED
|
@@ -137,3 +137,5 @@ __exportStar(require("./interface/client_debit_note.create.dto.interface"), expo
|
|
|
137
137
|
__exportStar(require("./interface/client_debit_note.update.dto.interface"), exports);
|
|
138
138
|
__exportStar(require("./interface/client_debit_note_particulars.create.dto.interface"), exports);
|
|
139
139
|
__exportStar(require("./interface/client_debit_note_particulars.update.dto.interface"), exports);
|
|
140
|
+
__exportStar(require("./interface/industry.create.dto.interface"), exports);
|
|
141
|
+
__exportStar(require("./interface/industry.update.dto.interface"), exports);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IEntityCreateDto } from "../../entities";
|
|
2
2
|
import { IClientDebitNoteParticularsEntity } from "../../entities/interface/client_debit_note_particulars.entity.interface";
|
|
3
|
-
export type IClientDebitNoteParticularsCreateExclude = "status";
|
|
3
|
+
export type IClientDebitNoteParticularsCreateExclude = "status" | "clientDebitNoteId";
|
|
4
4
|
export interface IClientDebitNoteParticularsCreateDto extends Omit<IEntityCreateDto<IClientDebitNoteParticularsEntity>, IClientDebitNoteParticularsCreateExclude> {
|
|
5
5
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IEntityCreateDto } from "../../entities";
|
|
2
|
+
import { IIndustryEntity } from "../../entities/interface/industry.entity.interface";
|
|
3
|
+
export type IIndustryCreateExclude = "status";
|
|
4
|
+
export interface IIndustryCreateDto extends Omit<IEntityCreateDto<IIndustryEntity>, IIndustryCreateExclude> {
|
|
5
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DeepPartialButRequired } from "./api.utils.interface";
|
|
2
|
+
import { IIndustryCreateDto } from "./industry.create.dto.interface";
|
|
3
|
+
export type IIndustryUpdateDto = DeepPartialButRequired<IIndustryCreateDto, never> & {
|
|
4
|
+
actionData: IIndustryActionDataDto;
|
|
5
|
+
};
|
|
6
|
+
export interface IIndustryActionDataDto {
|
|
7
|
+
action: IndustryActionEnum;
|
|
8
|
+
remark?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare enum IndustryActionEnum {
|
|
11
|
+
CREATE = "create",
|
|
12
|
+
UPDATE = "update",
|
|
13
|
+
DELETE = "delete",
|
|
14
|
+
DEACTIVATE = "deactivate",
|
|
15
|
+
ACTIVATE = "activate",
|
|
16
|
+
RESTORE = "restore"
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndustryActionEnum = void 0;
|
|
4
|
+
var IndustryActionEnum;
|
|
5
|
+
(function (IndustryActionEnum) {
|
|
6
|
+
IndustryActionEnum["CREATE"] = "create";
|
|
7
|
+
IndustryActionEnum["UPDATE"] = "update";
|
|
8
|
+
IndustryActionEnum["DELETE"] = "delete";
|
|
9
|
+
IndustryActionEnum["DEACTIVATE"] = "deactivate";
|
|
10
|
+
IndustryActionEnum["ACTIVATE"] = "activate";
|
|
11
|
+
IndustryActionEnum["RESTORE"] = "restore";
|
|
12
|
+
// APPROVE = "approve",
|
|
13
|
+
// REJECT = "reject",
|
|
14
|
+
// RECALL = "recall",
|
|
15
|
+
// REQUEST_CHANGES = "request_changes",
|
|
16
|
+
// CHANGES_DONE = "changes_done",
|
|
17
|
+
})(IndustryActionEnum || (exports.IndustryActionEnum = IndustryActionEnum = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientDebitNoteGstVisibleEnum = void 0;
|
|
4
|
+
var ClientDebitNoteGstVisibleEnum;
|
|
5
|
+
(function (ClientDebitNoteGstVisibleEnum) {
|
|
6
|
+
ClientDebitNoteGstVisibleEnum["YES"] = "YES";
|
|
7
|
+
ClientDebitNoteGstVisibleEnum["NO"] = "NO";
|
|
8
|
+
})(ClientDebitNoteGstVisibleEnum || (exports.ClientDebitNoteGstVisibleEnum = ClientDebitNoteGstVisibleEnum = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientDebitNotePanVisibleEnum = void 0;
|
|
4
|
+
var ClientDebitNotePanVisibleEnum;
|
|
5
|
+
(function (ClientDebitNotePanVisibleEnum) {
|
|
6
|
+
ClientDebitNotePanVisibleEnum["YES"] = "YES";
|
|
7
|
+
ClientDebitNotePanVisibleEnum["NO"] = "NO";
|
|
8
|
+
})(ClientDebitNotePanVisibleEnum || (exports.ClientDebitNotePanVisibleEnum = ClientDebitNotePanVisibleEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndustryStatusEnum = void 0;
|
|
4
|
+
var IndustryStatusEnum;
|
|
5
|
+
(function (IndustryStatusEnum) {
|
|
6
|
+
IndustryStatusEnum["APPROVED"] = "APPROVED";
|
|
7
|
+
IndustryStatusEnum["DEACTIVATED"] = "DEACTIVATED";
|
|
8
|
+
IndustryStatusEnum["DELETED"] = "DELETED";
|
|
9
|
+
})(IndustryStatusEnum || (exports.IndustryStatusEnum = IndustryStatusEnum = {}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { IndustryActionEnum } from "../../api";
|
|
3
|
+
import { IndustryStatusEnum } from "../enums/industry_status_enum";
|
|
4
|
+
export interface IIndustryFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const industryFlowConfig: FlowConfig<IndustryStatusEnum, IndustryActionEnum, IIndustryFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.industryFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
const industry_status_enum_1 = require("../enums/industry_status_enum");
|
|
7
|
+
const INDUSTRY_CREATE_PERMISSION = ["INDUSTRY_CREATE"];
|
|
8
|
+
const INDUSTRY_UPDATE_PERMISSION = ["INDUSTRY_UPDATE"];
|
|
9
|
+
const INDUSTRY_DELETE_PERMISSION = ["INDUSTRY_DELETE"];
|
|
10
|
+
const INDUSTRY_DEACTIVATE_PERMISSION = ["INDUSTRY_DEACTIVATE"];
|
|
11
|
+
const INDUSTRY_ACTIVATE_PERMISSION = ["INDUSTRY_ACTIVATE"];
|
|
12
|
+
const INDUSTRY_RESTORE_PERMISSION = ["INDUSTRY_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[api_1.IndustryActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.APPROVED],
|
|
16
|
+
permissions: INDUSTRY_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[api_1.IndustryActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.APPROVED],
|
|
20
|
+
permissions: INDUSTRY_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[api_1.IndustryActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.DELETED],
|
|
24
|
+
permissions: INDUSTRY_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[api_1.IndustryActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: INDUSTRY_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[api_1.IndustryActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.APPROVED],
|
|
32
|
+
permissions: INDUSTRY_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[api_1.IndustryActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [industry_status_enum_1.IndustryStatusEnum.APPROVED],
|
|
36
|
+
permissions: INDUSTRY_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(api_1.IndustryActionEnum.UPDATE, industry_status_enum_1.IndustryStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(api_1.IndustryActionEnum.DELETE, industry_status_enum_1.IndustryStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(api_1.IndustryActionEnum.DEACTIVATE, industry_status_enum_1.IndustryStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(api_1.IndustryActionEnum.DELETE, industry_status_enum_1.IndustryStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(api_1.IndustryActionEnum.ACTIVATE, industry_status_enum_1.IndustryStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(api_1.IndustryActionEnum.UPDATE, industry_status_enum_1.IndustryStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(api_1.IndustryActionEnum.RESTORE, industry_status_enum_1.IndustryStatusEnum.APPROVED);
|
|
50
|
+
exports.industryFlowConfig = {
|
|
51
|
+
[industry_status_enum_1.IndustryStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[api_1.IndustryActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[api_1.IndustryActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[api_1.IndustryActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[industry_status_enum_1.IndustryStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[api_1.IndustryActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[api_1.IndustryActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[industry_status_enum_1.IndustryStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[api_1.IndustryActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[api_1.IndustryActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -263,3 +263,9 @@ export * from "./interface/client_debit_note_particulars.entity.interface";
|
|
|
263
263
|
export * from "./model/client_debit_note_particulars.entity.model";
|
|
264
264
|
export * from "./interface/debit_note_sequence_generator.entity.interface";
|
|
265
265
|
export * from "./model/debit_note_sequence_generator.entity.model";
|
|
266
|
+
export * from "./enums/client_debit_note_gst_visible_enum";
|
|
267
|
+
export * from "./enums/client_debit_note_pan_visible_enum";
|
|
268
|
+
export * from "./enums/industry_status_enum";
|
|
269
|
+
export * from "./flow-configs/industry_flow.config";
|
|
270
|
+
export * from "./interface/industry.entity.interface";
|
|
271
|
+
export * from "./model/industry.entity.model";
|
|
@@ -280,3 +280,9 @@ __exportStar(require("./interface/client_debit_note_particulars.entity.interface
|
|
|
280
280
|
__exportStar(require("./model/client_debit_note_particulars.entity.model"), exports);
|
|
281
281
|
__exportStar(require("./interface/debit_note_sequence_generator.entity.interface"), exports);
|
|
282
282
|
__exportStar(require("./model/debit_note_sequence_generator.entity.model"), exports);
|
|
283
|
+
__exportStar(require("./enums/client_debit_note_gst_visible_enum"), exports);
|
|
284
|
+
__exportStar(require("./enums/client_debit_note_pan_visible_enum"), exports);
|
|
285
|
+
__exportStar(require("./enums/industry_status_enum"), exports);
|
|
286
|
+
__exportStar(require("./flow-configs/industry_flow.config"), exports);
|
|
287
|
+
__exportStar(require("./interface/industry.entity.interface"), exports);
|
|
288
|
+
__exportStar(require("./model/industry.entity.model"), exports);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { IEntityAuditColumn } from "./entity-audit-columns.interface";
|
|
2
2
|
import { Nullable } from "./entity.utils.interface";
|
|
3
3
|
import { ClientDebitNoteStatusEnum } from "../enums/client_debit_note_status_enum";
|
|
4
|
+
import { CurrencyEnum } from "../../enums";
|
|
5
|
+
import { ClientDebitNoteGstVisibleEnum } from "../enums/client_debit_note_gst_visible_enum";
|
|
6
|
+
import { ClientDebitNotePanVisibleEnum } from "../enums/client_debit_note_pan_visible_enum";
|
|
4
7
|
export interface IClientDebitNoteEntity extends IEntityAuditColumn {
|
|
5
8
|
id: number;
|
|
6
9
|
no: string;
|
|
@@ -15,4 +18,8 @@ export interface IClientDebitNoteEntity extends IEntityAuditColumn {
|
|
|
15
18
|
totalAmount: number;
|
|
16
19
|
attachmentDocuments?: Nullable<string>;
|
|
17
20
|
status: ClientDebitNoteStatusEnum;
|
|
21
|
+
currency: CurrencyEnum;
|
|
22
|
+
conversionRate: number;
|
|
23
|
+
gstVisible: ClientDebitNoteGstVisibleEnum;
|
|
24
|
+
panVisible: ClientDebitNotePanVisibleEnum;
|
|
18
25
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IEntityAuditColumn } from "./entity-audit-columns.interface";
|
|
2
|
-
import { IEntityCreateDto, IEntityFilterData, IEntityUpdateDto } from "./entity.utils.interface";
|
|
2
|
+
import { IEntityCreateDto, IEntityFilterData, IEntityUpdateDto, Nullable } from "./entity.utils.interface";
|
|
3
|
+
import { IndustryStatusEnum } from "../enums/industry_status_enum";
|
|
3
4
|
export interface IIndustryEntity extends IEntityAuditColumn {
|
|
4
5
|
id: number;
|
|
5
6
|
name: string;
|
|
6
|
-
description?: string
|
|
7
|
+
description?: Nullable<string>;
|
|
8
|
+
status: IndustryStatusEnum;
|
|
7
9
|
}
|
|
8
10
|
export interface IIndustryEntityCreateDto extends IEntityCreateDto<IIndustryEntity> {
|
|
9
11
|
}
|
|
@@ -5,6 +5,7 @@ import { EntityEnum, Nullable } from "../interface/entity.utils.interface";
|
|
|
5
5
|
import { RelationConfigs } from "../interface/relation-config.interface";
|
|
6
6
|
import { BaseEntityModel } from "./base.entity.model";
|
|
7
7
|
import { ClientAffiliateEntityModel } from "./client-affiliate.entity.model";
|
|
8
|
+
import { ClientIntroducingMappingEntityModel } from "./client-introducing-mapping.entity.model";
|
|
8
9
|
import { ProjectEntityModel } from "./project.entity.model";
|
|
9
10
|
export declare class ClientEntityModel extends BaseEntityModel<EntityEnum.CLIENT> implements IClientEntity {
|
|
10
11
|
createdOn: number;
|
|
@@ -37,9 +38,10 @@ export declare class ClientEntityModel extends BaseEntityModel<EntityEnum.CLIENT
|
|
|
37
38
|
projectIds?: number[];
|
|
38
39
|
projects: ProjectEntityModel[];
|
|
39
40
|
clientAffiliates: ClientAffiliateEntityModel[];
|
|
41
|
+
clientIntroducingMappings: ClientIntroducingMappingEntityModel[];
|
|
40
42
|
static readonly CLIENT_ENTITY_DOCUMENT_TYPES: readonly ["pan", "tan", "gst"];
|
|
41
43
|
getRelationConfigs(): any;
|
|
42
|
-
static relationConfigs: RelationConfigs<[EntityEnum.PROJECT, EntityEnum.CLIENT_AFFILIATE], EntityEnum.CLIENT>;
|
|
44
|
+
static relationConfigs: RelationConfigs<[EntityEnum.PROJECT, EntityEnum.CLIENT_AFFILIATE, EntityEnum.CLIENT_INTRODUCING_MAPPING], EntityEnum.CLIENT>;
|
|
43
45
|
static fromEntity(apiEntity: IClientEntity): ClientEntityModel;
|
|
44
46
|
populateProjectIds(projects: ProjectEntityModel[]): ClientEntityModel;
|
|
45
47
|
static isValidGST(gstNumber: string | null): boolean;
|
|
@@ -24,6 +24,7 @@ class ClientEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
24
24
|
this.secondaryContact = null;
|
|
25
25
|
this.projects = [];
|
|
26
26
|
this.clientAffiliates = [];
|
|
27
|
+
this.clientIntroducingMappings = [];
|
|
27
28
|
// getAdjustedCreditNoteTransactions(billingProfileCode?: string) {
|
|
28
29
|
// return this.getBillingsFromProfileCode(billingProfileCode).flatMap((billing) => billing.adjustedCreditNoteTransactions ?? []);
|
|
29
30
|
// }
|
|
@@ -159,4 +160,13 @@ ClientEntityModel.relationConfigs = [
|
|
|
159
160
|
key: "id",
|
|
160
161
|
},
|
|
161
162
|
},
|
|
163
|
+
{
|
|
164
|
+
name: entity_utils_interface_1.EntityEnum.CLIENT_INTRODUCING_MAPPING,
|
|
165
|
+
relation: relation_type_enum_1.RelationType.MANY,
|
|
166
|
+
key: "clientIntroducingMappings",
|
|
167
|
+
mapKeyConfig: {
|
|
168
|
+
relationKey: "clientId",
|
|
169
|
+
key: "id",
|
|
170
|
+
},
|
|
171
|
+
},
|
|
162
172
|
];
|
|
@@ -6,6 +6,9 @@ import { UserEntityModel } from "./user.entity.model";
|
|
|
6
6
|
import { IRowActions } from "./interface/row-actions.interface";
|
|
7
7
|
import { IClientDebitNoteEntity } from "../interface/client_debit_note.entity.interface";
|
|
8
8
|
import { ClientDebitNoteStatusEnum } from "../enums/client_debit_note_status_enum";
|
|
9
|
+
import { CurrencyEnum } from "../../enums";
|
|
10
|
+
import { ClientDebitNoteGstVisibleEnum } from "../enums/client_debit_note_gst_visible_enum";
|
|
11
|
+
import { ClientDebitNotePanVisibleEnum } from "../enums/client_debit_note_pan_visible_enum";
|
|
9
12
|
import { BankEntityModel } from "./bank.entity.model";
|
|
10
13
|
import { ClientEntityModel } from "./client.entity.model";
|
|
11
14
|
import { ClientAffiliateEntityModel } from "./client-affiliate.entity.model";
|
|
@@ -25,6 +28,10 @@ export declare class ClientDebitNoteEntityModel extends BaseEntityModel<EntityEn
|
|
|
25
28
|
bankId: number;
|
|
26
29
|
totalAmount: number;
|
|
27
30
|
attachmentDocuments?: string;
|
|
31
|
+
currency: CurrencyEnum;
|
|
32
|
+
conversionRate: number;
|
|
33
|
+
gstVisible: ClientDebitNoteGstVisibleEnum;
|
|
34
|
+
panVisible: ClientDebitNotePanVisibleEnum;
|
|
28
35
|
status: ClientDebitNoteStatusEnum;
|
|
29
36
|
createdOn: number;
|
|
30
37
|
updatedOn: number;
|
|
@@ -54,4 +61,10 @@ export declare class ClientDebitNoteEntityModel extends BaseEntityModel<EntityEn
|
|
|
54
61
|
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
55
62
|
[key: string]: () => boolean;
|
|
56
63
|
};
|
|
64
|
+
deriveAmountInCurrency(): number;
|
|
65
|
+
static deriveAmountInCurrency(data: {
|
|
66
|
+
currency?: CurrencyEnum;
|
|
67
|
+
totalAmount?: number;
|
|
68
|
+
conversionRate?: number;
|
|
69
|
+
}): number;
|
|
57
70
|
}
|
|
@@ -8,6 +8,9 @@ const exceptions_1 = require("../../exceptions");
|
|
|
8
8
|
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const client_debit_note_status_enum_1 = require("../enums/client_debit_note_status_enum");
|
|
11
|
+
const enums_1 = require("../../enums");
|
|
12
|
+
const client_debit_note_gst_visible_enum_1 = require("../enums/client_debit_note_gst_visible_enum");
|
|
13
|
+
const client_debit_note_pan_visible_enum_1 = require("../enums/client_debit_note_pan_visible_enum");
|
|
11
14
|
const client_debit_note_flow_config_1 = require("../flow-configs/client_debit_note_flow.config");
|
|
12
15
|
class ClientDebitNoteEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
13
16
|
constructor() {
|
|
@@ -21,6 +24,10 @@ class ClientDebitNoteEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
21
24
|
this.description = "";
|
|
22
25
|
this.bankId = 0;
|
|
23
26
|
this.totalAmount = 0;
|
|
27
|
+
this.currency = enums_1.CurrencyEnum.INR;
|
|
28
|
+
this.conversionRate = 0;
|
|
29
|
+
this.gstVisible = client_debit_note_gst_visible_enum_1.ClientDebitNoteGstVisibleEnum.YES;
|
|
30
|
+
this.panVisible = client_debit_note_pan_visible_enum_1.ClientDebitNotePanVisibleEnum.YES;
|
|
24
31
|
this.status = client_debit_note_status_enum_1.ClientDebitNoteStatusEnum.CREATE_APPROVAL_PENDING;
|
|
25
32
|
this.createdOn = 0;
|
|
26
33
|
this.updatedOn = 0;
|
|
@@ -285,6 +292,15 @@ class ClientDebitNoteEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
285
292
|
getUpdateActionVisibility(currentUser) {
|
|
286
293
|
return {};
|
|
287
294
|
}
|
|
295
|
+
deriveAmountInCurrency() {
|
|
296
|
+
return ClientDebitNoteEntityModel.deriveAmountInCurrency({ currency: this.currency, totalAmount: this.totalAmount, conversionRate: this.conversionRate });
|
|
297
|
+
}
|
|
298
|
+
static deriveAmountInCurrency(data) {
|
|
299
|
+
var _a, _b, _c;
|
|
300
|
+
const currency = (_a = data.currency) !== null && _a !== void 0 ? _a : enums_1.CurrencyEnum.INR;
|
|
301
|
+
const totalAmount = (_b = data.totalAmount) !== null && _b !== void 0 ? _b : 0;
|
|
302
|
+
return currency === enums_1.CurrencyEnum.INR ? totalAmount : totalAmount / ((_c = data.conversionRate) !== null && _c !== void 0 ? _c : 1);
|
|
303
|
+
}
|
|
288
304
|
}
|
|
289
305
|
exports.ClientDebitNoteEntityModel = ClientDebitNoteEntityModel;
|
|
290
306
|
// clientDebitNoteParticularss?: ClientDebitNoteParticularsEntityModel[];
|
|
@@ -17,6 +17,7 @@ export declare class ClientDebitNoteParticularsEntityModel extends BaseEntityMod
|
|
|
17
17
|
description: string;
|
|
18
18
|
amount: number;
|
|
19
19
|
clientDebitNoteId: number;
|
|
20
|
+
amountInCurrency: number;
|
|
20
21
|
status: ClientDebitNoteParticularsStatusEnum;
|
|
21
22
|
createdOn: number;
|
|
22
23
|
updatedOn: number;
|
|
@@ -16,6 +16,7 @@ class ClientDebitNoteParticularsEntityModel extends base_entity_model_1.BaseEnti
|
|
|
16
16
|
this.description = "";
|
|
17
17
|
this.amount = 0;
|
|
18
18
|
this.clientDebitNoteId = 0;
|
|
19
|
+
this.amountInCurrency = 0;
|
|
19
20
|
this.status = client_debit_note_particulars_status_enum_1.ClientDebitNoteParticularsStatusEnum.CREATE_APPROVAL_PENDING;
|
|
20
21
|
this.createdOn = 0;
|
|
21
22
|
this.updatedOn = 0;
|
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
2
|
-
import { IIndustryEntity } from "../interface/industry.entity.interface";
|
|
3
|
-
import { RelationConfigs } from "../interface/relation-config.interface";
|
|
4
2
|
import { BaseEntityModel } from "./base.entity.model";
|
|
3
|
+
import { RelationConfigs } from "../interface/relation-config.interface";
|
|
4
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
5
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
6
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
7
|
+
import { IIndustryEntity } from "../interface/industry.entity.interface";
|
|
8
|
+
import { IndustryStatusEnum } from "../enums/industry_status_enum";
|
|
9
|
+
import { IndustryActionEnum } from "../../api";
|
|
10
|
+
import { IIndustryFlowConfigContextData } from "../flow-configs/industry_flow.config";
|
|
5
11
|
export declare class IndustryEntityModel extends BaseEntityModel<EntityEnum.INDUSTRY> implements IIndustryEntity {
|
|
6
12
|
id: number;
|
|
7
13
|
name: string;
|
|
8
14
|
description?: string;
|
|
15
|
+
status: IndustryStatusEnum;
|
|
9
16
|
createdOn: number;
|
|
10
17
|
updatedOn: number;
|
|
11
18
|
createdBy: number;
|
|
12
19
|
updatedBy: number;
|
|
13
20
|
static relationConfigs: RelationConfigs<[], EntityEnum.INDUSTRY>;
|
|
14
21
|
static fromEntity(entity: IIndustryEntity): IndustryEntityModel;
|
|
15
|
-
getRelationConfigs(): [];
|
|
22
|
+
getRelationConfigs(): any[];
|
|
23
|
+
getNextStatus(currentUser: IUserEntity, action: IndustryActionEnum, industryFlowConfigContextData: IIndustryFlowConfigContextData): IndustryStatusEnum;
|
|
24
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
25
|
+
combinedActions?: Record<string, {
|
|
26
|
+
combineActions: IndustryActionEnum[];
|
|
27
|
+
label: string;
|
|
28
|
+
}>;
|
|
29
|
+
customLabels?: Partial<Record<IndustryActionEnum, string>>;
|
|
30
|
+
}): IRowActions<EntityEnum.INDUSTRY>[];
|
|
31
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
32
|
+
[key: string]: () => boolean;
|
|
33
|
+
};
|
|
16
34
|
}
|
|
@@ -3,11 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IndustryEntityModel = void 0;
|
|
4
4
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
5
5
|
const base_entity_model_1 = require("./base.entity.model");
|
|
6
|
+
const exceptions_1 = require("../../exceptions");
|
|
7
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const industry_status_enum_1 = require("../enums/industry_status_enum");
|
|
10
|
+
const industry_flow_config_1 = require("../flow-configs/industry_flow.config");
|
|
6
11
|
class IndustryEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
7
12
|
constructor() {
|
|
8
13
|
super(...arguments);
|
|
9
14
|
this.id = 0;
|
|
10
15
|
this.name = "";
|
|
16
|
+
this.status = industry_status_enum_1.IndustryStatusEnum.APPROVED;
|
|
11
17
|
this.createdOn = 0;
|
|
12
18
|
this.updatedOn = 0;
|
|
13
19
|
this.createdBy = 0;
|
|
@@ -19,7 +25,65 @@ class IndustryEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
19
25
|
return result;
|
|
20
26
|
}
|
|
21
27
|
getRelationConfigs() {
|
|
22
|
-
return
|
|
28
|
+
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
29
|
+
}
|
|
30
|
+
getNextStatus(currentUser, action, industryFlowConfigContextData) {
|
|
31
|
+
if (!this.status) {
|
|
32
|
+
throw new exceptions_1.AppBadRequestException({
|
|
33
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
34
|
+
message: [`Status not found: ${this.status}`],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const flowForStatus = industry_flow_config_1.industryFlowConfig[this.status];
|
|
38
|
+
if (!flowForStatus) {
|
|
39
|
+
throw new exceptions_1.AppBadRequestException({
|
|
40
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
41
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (!action) {
|
|
45
|
+
throw new exceptions_1.AppBadRequestException({
|
|
46
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
47
|
+
message: ["actionData is required"],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
51
|
+
if (!matchingPermissionConfig) {
|
|
52
|
+
throw new exceptions_1.AppBadRequestException({
|
|
53
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
54
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
58
|
+
throw new exceptions_1.AppBadRequestException({
|
|
59
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
60
|
+
message: ["Permission not available for currentUser"],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
64
|
+
if (!hasPermission) {
|
|
65
|
+
throw new exceptions_1.AppBadRequestException({
|
|
66
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
67
|
+
message: [`Current user does not have permission to ${action} industry`],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const nextStatus = matchingPermissionConfig.next(industryFlowConfigContextData);
|
|
71
|
+
return nextStatus;
|
|
72
|
+
}
|
|
73
|
+
getAvailableActions(currentUser, config) {
|
|
74
|
+
var _a;
|
|
75
|
+
const params = {
|
|
76
|
+
flowConfig: industry_flow_config_1.industryFlowConfig,
|
|
77
|
+
currentStatus: this.status,
|
|
78
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
79
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
80
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
81
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
82
|
+
};
|
|
83
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
84
|
+
}
|
|
85
|
+
getUpdateActionVisibility(currentUser) {
|
|
86
|
+
return {};
|
|
23
87
|
}
|
|
24
88
|
}
|
|
25
89
|
exports.IndustryEntityModel = IndustryEntityModel;
|