law-common 13.0.3-beta.4 → 13.0.3-beta.6
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/src/entities/enums/address_book_action_enum.d.ts +8 -0
- package/dist/src/entities/enums/address_book_action_enum.js +17 -0
- package/dist/src/entities/enums/address_book_status_enum.d.ts +3 -3
- package/dist/src/entities/enums/address_book_status_enum.js +3 -3
- package/dist/src/entities/enums/expense_head_action_enum.d.ts +8 -0
- package/dist/src/entities/enums/expense_head_action_enum.js +17 -0
- package/dist/src/entities/enums/expense_head_status_enum.d.ts +3 -3
- package/dist/src/entities/enums/expense_head_status_enum.js +3 -3
- package/dist/src/entities/flow-configs/address_book_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/address_book_flow.config.js +70 -0
- package/dist/src/entities/flow-configs/expense_head_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/expense_head_flow.config.js +70 -0
- package/dist/src/entities/index.d.ts +5 -0
- package/dist/src/entities/index.js +5 -0
- package/dist/src/entities/model/address_book.entity.model.d.ts +15 -0
- package/dist/src/entities/model/address_book.entity.model.js +63 -1
- package/dist/src/entities/model/expense_head.entity.model.d.ts +16 -0
- package/dist/src/entities/model/expense_head.entity.model.js +63 -1
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddressBookActionEnum = void 0;
|
|
4
|
+
var AddressBookActionEnum;
|
|
5
|
+
(function (AddressBookActionEnum) {
|
|
6
|
+
AddressBookActionEnum["CREATE"] = "CREATE";
|
|
7
|
+
AddressBookActionEnum["UPDATE"] = "UPDATE";
|
|
8
|
+
AddressBookActionEnum["DELETE"] = "DELETE";
|
|
9
|
+
AddressBookActionEnum["DEACTIVATE"] = "DEACTIVATE";
|
|
10
|
+
AddressBookActionEnum["ACTIVATE"] = "ACTIVATE";
|
|
11
|
+
AddressBookActionEnum["RESTORE"] = "RESTORE";
|
|
12
|
+
// APPROVE = "APPROVE",
|
|
13
|
+
// REJECT = "REJECT",
|
|
14
|
+
// RECALL = "RECALL",
|
|
15
|
+
// REQUEST_CHANGES = "REQUEST_CHANGES",
|
|
16
|
+
// CHANGES_DONE = "CHANGES_DONE",
|
|
17
|
+
})(AddressBookActionEnum || (exports.AddressBookActionEnum = AddressBookActionEnum = {}));
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AddressBookStatusEnum = void 0;
|
|
4
4
|
var AddressBookStatusEnum;
|
|
5
5
|
(function (AddressBookStatusEnum) {
|
|
6
|
-
AddressBookStatusEnum["
|
|
7
|
-
AddressBookStatusEnum["
|
|
8
|
-
AddressBookStatusEnum["
|
|
6
|
+
AddressBookStatusEnum["APPROVED"] = "APPROVED";
|
|
7
|
+
AddressBookStatusEnum["DEACTIVATED"] = "DEACTIVATED";
|
|
8
|
+
AddressBookStatusEnum["DELETED"] = "DELETED";
|
|
9
9
|
})(AddressBookStatusEnum || (exports.AddressBookStatusEnum = AddressBookStatusEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpenseHeadActionEnum = void 0;
|
|
4
|
+
var ExpenseHeadActionEnum;
|
|
5
|
+
(function (ExpenseHeadActionEnum) {
|
|
6
|
+
ExpenseHeadActionEnum["CREATE"] = "CREATE";
|
|
7
|
+
ExpenseHeadActionEnum["UPDATE"] = "UPDATE";
|
|
8
|
+
ExpenseHeadActionEnum["DELETE"] = "DELETE";
|
|
9
|
+
ExpenseHeadActionEnum["DEACTIVATE"] = "DEACTIVATE";
|
|
10
|
+
ExpenseHeadActionEnum["ACTIVATE"] = "ACTIVATE";
|
|
11
|
+
ExpenseHeadActionEnum["RESTORE"] = "RESTORE";
|
|
12
|
+
// APPROVE = "APPROVE",
|
|
13
|
+
// REJECT = "REJECT",
|
|
14
|
+
// RECALL = "RECALL",
|
|
15
|
+
// REQUEST_CHANGES = "REQUEST_CHANGES",
|
|
16
|
+
// CHANGES_DONE = "CHANGES_DONE",
|
|
17
|
+
})(ExpenseHeadActionEnum || (exports.ExpenseHeadActionEnum = ExpenseHeadActionEnum = {}));
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExpenseHeadStatusEnum = void 0;
|
|
4
4
|
var ExpenseHeadStatusEnum;
|
|
5
5
|
(function (ExpenseHeadStatusEnum) {
|
|
6
|
-
ExpenseHeadStatusEnum["
|
|
7
|
-
ExpenseHeadStatusEnum["
|
|
8
|
-
ExpenseHeadStatusEnum["
|
|
6
|
+
ExpenseHeadStatusEnum["APPROVED"] = "APPROVED";
|
|
7
|
+
ExpenseHeadStatusEnum["DEACTIVATED"] = "DEACTIVATED";
|
|
8
|
+
ExpenseHeadStatusEnum["DELETED"] = "DELETED";
|
|
9
9
|
})(ExpenseHeadStatusEnum || (exports.ExpenseHeadStatusEnum = ExpenseHeadStatusEnum = {}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { AddressBookActionEnum } from "../enums/address_book_action_enum";
|
|
3
|
+
import { AddressBookStatusEnum } from "../enums/address_book_status_enum";
|
|
4
|
+
export interface IAddressBookFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const addressBookFlowConfig: FlowConfig<AddressBookStatusEnum, AddressBookActionEnum, IAddressBookFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addressBookFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const address_book_action_enum_1 = require("../enums/address_book_action_enum");
|
|
6
|
+
const address_book_status_enum_1 = require("../enums/address_book_status_enum");
|
|
7
|
+
const ADDRESS_BOOK_CREATE_PERMISSION = ["ADDRESS_BOOK_CREATE"];
|
|
8
|
+
const ADDRESS_BOOK_UPDATE_PERMISSION = ["ADDRESS_BOOK_UPDATE"];
|
|
9
|
+
const ADDRESS_BOOK_DELETE_PERMISSION = ["ADDRESS_BOOK_DELETE"];
|
|
10
|
+
const ADDRESS_BOOK_DEACTIVATE_PERMISSION = ["ADDRESS_BOOK_DEACTIVATE"];
|
|
11
|
+
const ADDRESS_BOOK_ACTIVATE_PERMISSION = ["ADDRESS_BOOK_ACTIVATE"];
|
|
12
|
+
const ADDRESS_BOOK_RESTORE_PERMISSION = ["ADDRESS_BOOK_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[address_book_action_enum_1.AddressBookActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.APPROVED],
|
|
16
|
+
permissions: ADDRESS_BOOK_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[address_book_action_enum_1.AddressBookActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.APPROVED],
|
|
20
|
+
permissions: ADDRESS_BOOK_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[address_book_action_enum_1.AddressBookActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.DELETED],
|
|
24
|
+
permissions: ADDRESS_BOOK_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[address_book_action_enum_1.AddressBookActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: ADDRESS_BOOK_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[address_book_action_enum_1.AddressBookActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.APPROVED],
|
|
32
|
+
permissions: ADDRESS_BOOK_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[address_book_action_enum_1.AddressBookActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [address_book_status_enum_1.AddressBookStatusEnum.APPROVED],
|
|
36
|
+
permissions: ADDRESS_BOOK_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.UPDATE, address_book_status_enum_1.AddressBookStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.DELETE, address_book_status_enum_1.AddressBookStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.DEACTIVATE, address_book_status_enum_1.AddressBookStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.DELETE, address_book_status_enum_1.AddressBookStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.ACTIVATE, address_book_status_enum_1.AddressBookStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.UPDATE, address_book_status_enum_1.AddressBookStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(address_book_action_enum_1.AddressBookActionEnum.RESTORE, address_book_status_enum_1.AddressBookStatusEnum.APPROVED);
|
|
50
|
+
exports.addressBookFlowConfig = {
|
|
51
|
+
[address_book_status_enum_1.AddressBookStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[address_book_action_enum_1.AddressBookActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[address_book_action_enum_1.AddressBookActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[address_book_action_enum_1.AddressBookActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[address_book_status_enum_1.AddressBookStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[address_book_action_enum_1.AddressBookActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[address_book_action_enum_1.AddressBookActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[address_book_status_enum_1.AddressBookStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[address_book_action_enum_1.AddressBookActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[address_book_action_enum_1.AddressBookActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { ExpenseHeadActionEnum } from "../enums/expense_head_action_enum";
|
|
3
|
+
import { ExpenseHeadStatusEnum } from "../enums/expense_head_status_enum";
|
|
4
|
+
export interface IExpenseHeadFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const expenseHeadFlowConfig: FlowConfig<ExpenseHeadStatusEnum, ExpenseHeadActionEnum, IExpenseHeadFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expenseHeadFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const expense_head_action_enum_1 = require("../enums/expense_head_action_enum");
|
|
6
|
+
const expense_head_status_enum_1 = require("../enums/expense_head_status_enum");
|
|
7
|
+
const EXPENSE_HEAD_CREATE_PERMISSION = ["EXPENSE_HEAD_CREATE"];
|
|
8
|
+
const EXPENSE_HEAD_UPDATE_PERMISSION = ["EXPENSE_HEAD_UPDATE"];
|
|
9
|
+
const EXPENSE_HEAD_DELETE_PERMISSION = ["EXPENSE_HEAD_DELETE"];
|
|
10
|
+
const EXPENSE_HEAD_DEACTIVATE_PERMISSION = ["EXPENSE_HEAD_DEACTIVATE"];
|
|
11
|
+
const EXPENSE_HEAD_ACTIVATE_PERMISSION = ["EXPENSE_HEAD_ACTIVATE"];
|
|
12
|
+
const EXPENSE_HEAD_RESTORE_PERMISSION = ["EXPENSE_HEAD_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED],
|
|
16
|
+
permissions: EXPENSE_HEAD_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED],
|
|
20
|
+
permissions: EXPENSE_HEAD_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.DELETED],
|
|
24
|
+
permissions: EXPENSE_HEAD_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: EXPENSE_HEAD_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED],
|
|
32
|
+
permissions: EXPENSE_HEAD_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED],
|
|
36
|
+
permissions: EXPENSE_HEAD_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.UPDATE, expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.DELETE, expense_head_status_enum_1.ExpenseHeadStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.DEACTIVATE, expense_head_status_enum_1.ExpenseHeadStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.DELETE, expense_head_status_enum_1.ExpenseHeadStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.ACTIVATE, expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.UPDATE, expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(expense_head_action_enum_1.ExpenseHeadActionEnum.RESTORE, expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED);
|
|
50
|
+
exports.expenseHeadFlowConfig = {
|
|
51
|
+
[expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[expense_head_status_enum_1.ExpenseHeadStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[expense_head_status_enum_1.ExpenseHeadStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[expense_head_action_enum_1.ExpenseHeadActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -181,7 +181,10 @@ export * from "./enums/billing_transaction_action_enum";
|
|
|
181
181
|
export * from "./enums/billing_transaction_status_enum";
|
|
182
182
|
export * from "./interface/billing_transaction_history.entity.interface";
|
|
183
183
|
export * from "./model/billing_transaction.entity.model";
|
|
184
|
+
export * from "./enums/address_book_action_enum";
|
|
184
185
|
export * from "./enums/address_book_status_enum";
|
|
186
|
+
export * from "./flow-configs/address_book_flow.config";
|
|
187
|
+
export * from "./model/address_book.entity.model";
|
|
185
188
|
export * from "./interface/address_book.entity.interface";
|
|
186
189
|
export * from "./enums/state_action_enum";
|
|
187
190
|
export * from "./enums/state_status_enum";
|
|
@@ -218,7 +221,9 @@ export * from "./flow-configs/billing_flow.config";
|
|
|
218
221
|
export * from "./model/permission.entity.model";
|
|
219
222
|
export * from "./model/role.entity.model";
|
|
220
223
|
export * from "./model/role_permission_mapping.entity.model";
|
|
224
|
+
export * from "./enums/expense_head_action_enum";
|
|
221
225
|
export * from "./enums/expense_head_status_enum";
|
|
226
|
+
export * from "./flow-configs/expense_head_flow.config";
|
|
222
227
|
export * from "./enums/file_format_enum";
|
|
223
228
|
export * from "./interface/expense_head.entity.interface";
|
|
224
229
|
export * from "./interface/field-constraint/expense_head_field_constraints.interface";
|
|
@@ -197,7 +197,10 @@ __exportStar(require("./enums/billing_transaction_action_enum"), exports);
|
|
|
197
197
|
__exportStar(require("./enums/billing_transaction_status_enum"), exports);
|
|
198
198
|
__exportStar(require("./interface/billing_transaction_history.entity.interface"), exports);
|
|
199
199
|
__exportStar(require("./model/billing_transaction.entity.model"), exports);
|
|
200
|
+
__exportStar(require("./enums/address_book_action_enum"), exports);
|
|
200
201
|
__exportStar(require("./enums/address_book_status_enum"), exports);
|
|
202
|
+
__exportStar(require("./flow-configs/address_book_flow.config"), exports);
|
|
203
|
+
__exportStar(require("./model/address_book.entity.model"), exports);
|
|
201
204
|
__exportStar(require("./interface/address_book.entity.interface"), exports);
|
|
202
205
|
__exportStar(require("./enums/state_action_enum"), exports);
|
|
203
206
|
__exportStar(require("./enums/state_status_enum"), exports);
|
|
@@ -234,7 +237,9 @@ __exportStar(require("./flow-configs/billing_flow.config"), exports);
|
|
|
234
237
|
__exportStar(require("./model/permission.entity.model"), exports);
|
|
235
238
|
__exportStar(require("./model/role.entity.model"), exports);
|
|
236
239
|
__exportStar(require("./model/role_permission_mapping.entity.model"), exports);
|
|
240
|
+
__exportStar(require("./enums/expense_head_action_enum"), exports);
|
|
237
241
|
__exportStar(require("./enums/expense_head_status_enum"), exports);
|
|
242
|
+
__exportStar(require("./flow-configs/expense_head_flow.config"), exports);
|
|
238
243
|
__exportStar(require("./enums/file_format_enum"), exports);
|
|
239
244
|
__exportStar(require("./interface/expense_head.entity.interface"), exports);
|
|
240
245
|
__exportStar(require("./interface/field-constraint/expense_head_field_constraints.interface"), exports);
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { AddressBookActionEnum } from "../enums/address_book_action_enum";
|
|
2
|
+
import { IAddressBookFlowConfigContextData } from "../flow-configs/address_book_flow.config";
|
|
3
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
4
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
1
5
|
import { AddressBookStatusEnum } from "../enums/address_book_status_enum";
|
|
2
6
|
import { IAddressBookEntity } from "../interface/address_book.entity.interface";
|
|
3
7
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
@@ -22,4 +26,15 @@ export declare class AddressBookEntityModel extends BaseEntityModel<EntityEnum.A
|
|
|
22
26
|
static fromEntity(entity: IAddressBookEntity): AddressBookEntityModel;
|
|
23
27
|
static relationConfigs: RelationConfigs<[EntityEnum.USER], EntityEnum.ADDRESS_BOOK>;
|
|
24
28
|
getRelationConfigs(): any[];
|
|
29
|
+
getNextStatus(currentUser: IUserEntity, action: AddressBookActionEnum, addressBookFlowConfigContextData: IAddressBookFlowConfigContextData): AddressBookStatusEnum;
|
|
30
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
31
|
+
combinedActions?: Record<string, {
|
|
32
|
+
combineActions: AddressBookActionEnum[];
|
|
33
|
+
label: string;
|
|
34
|
+
}>;
|
|
35
|
+
customLabels?: Partial<Record<AddressBookActionEnum, string>>;
|
|
36
|
+
}): IRowActions<EntityEnum.ADDRESS_BOOK>[];
|
|
37
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
38
|
+
[key: string]: () => boolean;
|
|
39
|
+
};
|
|
25
40
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AddressBookEntityModel = void 0;
|
|
4
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const address_book_flow_config_1 = require("../flow-configs/address_book_flow.config");
|
|
4
8
|
const address_book_status_enum_1 = require("../enums/address_book_status_enum");
|
|
5
9
|
const relation_type_enum_1 = require("../enums/relation_type_enum");
|
|
6
10
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
@@ -20,7 +24,7 @@ class AddressBookEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
20
24
|
this.updatedOn = 0;
|
|
21
25
|
this.createdBy = 0;
|
|
22
26
|
this.updatedBy = 0;
|
|
23
|
-
this.status = address_book_status_enum_1.AddressBookStatusEnum.
|
|
27
|
+
this.status = address_book_status_enum_1.AddressBookStatusEnum.APPROVED;
|
|
24
28
|
}
|
|
25
29
|
static fromEntity(entity) {
|
|
26
30
|
const result = new AddressBookEntityModel(entity_utils_interface_1.EntityEnum.ADDRESS_BOOK);
|
|
@@ -30,6 +34,64 @@ class AddressBookEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
30
34
|
getRelationConfigs() {
|
|
31
35
|
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
32
36
|
}
|
|
37
|
+
getNextStatus(currentUser, action, addressBookFlowConfigContextData) {
|
|
38
|
+
if (!this.status) {
|
|
39
|
+
throw new exceptions_1.AppBadRequestException({
|
|
40
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
41
|
+
message: [`Status not found: ${this.status}`],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const flowForStatus = address_book_flow_config_1.addressBookFlowConfig[this.status];
|
|
45
|
+
if (!flowForStatus) {
|
|
46
|
+
throw new exceptions_1.AppBadRequestException({
|
|
47
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
48
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (!action) {
|
|
52
|
+
throw new exceptions_1.AppBadRequestException({
|
|
53
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
54
|
+
message: ["actionData is required"],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
58
|
+
if (!matchingPermissionConfig) {
|
|
59
|
+
throw new exceptions_1.AppBadRequestException({
|
|
60
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
61
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
65
|
+
throw new exceptions_1.AppBadRequestException({
|
|
66
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
67
|
+
message: ["Permission not available for currentUser"],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
71
|
+
if (!hasPermission) {
|
|
72
|
+
throw new exceptions_1.AppBadRequestException({
|
|
73
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
74
|
+
message: [`Current user does not have permission to ${action} address book`],
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const nextStatus = matchingPermissionConfig.next(addressBookFlowConfigContextData);
|
|
78
|
+
return nextStatus;
|
|
79
|
+
}
|
|
80
|
+
getAvailableActions(currentUser, config) {
|
|
81
|
+
var _a;
|
|
82
|
+
const params = {
|
|
83
|
+
flowConfig: address_book_flow_config_1.addressBookFlowConfig,
|
|
84
|
+
currentStatus: this.status,
|
|
85
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
86
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
87
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
88
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
89
|
+
};
|
|
90
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
91
|
+
}
|
|
92
|
+
getUpdateActionVisibility(currentUser) {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
33
95
|
}
|
|
34
96
|
exports.AddressBookEntityModel = AddressBookEntityModel;
|
|
35
97
|
AddressBookEntityModel.relationConfigs = [
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ExpenseHeadActionEnum } from "../enums/expense_head_action_enum";
|
|
2
|
+
import { IExpenseHeadFlowConfigContextData } from "../flow-configs/expense_head_flow.config";
|
|
3
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
4
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
5
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
1
6
|
import { ExpenseHeadStatusEnum } from "../enums/expense_head_status_enum";
|
|
2
7
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
3
8
|
import { IExpenseHeadEntity } from "../interface/expense_head.entity.interface";
|
|
@@ -17,4 +22,15 @@ export declare class ExpenseHeadEntityModel extends BaseEntityModel<EntityEnum.E
|
|
|
17
22
|
static relationConfigs: RelationConfigs<[EntityEnum.VOUCHER_TYPE], EntityEnum.EXPENSE_HEAD>;
|
|
18
23
|
static fromEntity(entity: IExpenseHeadEntity): ExpenseHeadEntityModel;
|
|
19
24
|
getRelationConfigs(): any[];
|
|
25
|
+
getNextStatus(currentUser: IUserEntity, action: ExpenseHeadActionEnum, expenseHeadFlowConfigContextData: IExpenseHeadFlowConfigContextData): ExpenseHeadStatusEnum;
|
|
26
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
27
|
+
combinedActions?: Record<string, {
|
|
28
|
+
combineActions: ExpenseHeadActionEnum[];
|
|
29
|
+
label: string;
|
|
30
|
+
}>;
|
|
31
|
+
customLabels?: Partial<Record<ExpenseHeadActionEnum, string>>;
|
|
32
|
+
}): IRowActions<EntityEnum.EXPENSE_HEAD>[];
|
|
33
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
34
|
+
[key: string]: () => boolean;
|
|
35
|
+
};
|
|
20
36
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExpenseHeadEntityModel = void 0;
|
|
4
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const expense_head_flow_config_1 = require("../flow-configs/expense_head_flow.config");
|
|
4
8
|
const expense_head_status_enum_1 = require("../enums/expense_head_status_enum");
|
|
5
9
|
const relation_type_enum_1 = require("../enums/relation_type_enum");
|
|
6
10
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
@@ -11,7 +15,7 @@ class ExpenseHeadEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
11
15
|
this.id = 0;
|
|
12
16
|
this.name = "";
|
|
13
17
|
this.voucherTypeId = 0;
|
|
14
|
-
this.status = expense_head_status_enum_1.ExpenseHeadStatusEnum.
|
|
18
|
+
this.status = expense_head_status_enum_1.ExpenseHeadStatusEnum.APPROVED;
|
|
15
19
|
this.createdOn = 0;
|
|
16
20
|
this.updatedOn = 0;
|
|
17
21
|
this.createdBy = 0;
|
|
@@ -25,6 +29,64 @@ class ExpenseHeadEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
25
29
|
getRelationConfigs() {
|
|
26
30
|
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
27
31
|
}
|
|
32
|
+
getNextStatus(currentUser, action, expenseHeadFlowConfigContextData) {
|
|
33
|
+
if (!this.status) {
|
|
34
|
+
throw new exceptions_1.AppBadRequestException({
|
|
35
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
36
|
+
message: [`Status not found: ${this.status}`],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const flowForStatus = expense_head_flow_config_1.expenseHeadFlowConfig[this.status];
|
|
40
|
+
if (!flowForStatus) {
|
|
41
|
+
throw new exceptions_1.AppBadRequestException({
|
|
42
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
43
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (!action) {
|
|
47
|
+
throw new exceptions_1.AppBadRequestException({
|
|
48
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
49
|
+
message: ["actionData is required"],
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
53
|
+
if (!matchingPermissionConfig) {
|
|
54
|
+
throw new exceptions_1.AppBadRequestException({
|
|
55
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
56
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
60
|
+
throw new exceptions_1.AppBadRequestException({
|
|
61
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
62
|
+
message: ["Permission not available for currentUser"],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
66
|
+
if (!hasPermission) {
|
|
67
|
+
throw new exceptions_1.AppBadRequestException({
|
|
68
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
69
|
+
message: [`Current user does not have permission to ${action} expense head`],
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const nextStatus = matchingPermissionConfig.next(expenseHeadFlowConfigContextData);
|
|
73
|
+
return nextStatus;
|
|
74
|
+
}
|
|
75
|
+
getAvailableActions(currentUser, config) {
|
|
76
|
+
var _a;
|
|
77
|
+
const params = {
|
|
78
|
+
flowConfig: expense_head_flow_config_1.expenseHeadFlowConfig,
|
|
79
|
+
currentStatus: this.status,
|
|
80
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
81
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
82
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
83
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
84
|
+
};
|
|
85
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
86
|
+
}
|
|
87
|
+
getUpdateActionVisibility(currentUser) {
|
|
88
|
+
return {};
|
|
89
|
+
}
|
|
28
90
|
}
|
|
29
91
|
exports.ExpenseHeadEntityModel = ExpenseHeadEntityModel;
|
|
30
92
|
ExpenseHeadEntityModel.relationConfigs = [
|