law-common 10.77.0 → 11.0.0
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/leave_approval.create.dto.interface.d.ts +5 -0
- package/dist/src/api/interface/leave_approval.create.dto.interface.js +2 -0
- package/dist/src/api/interface/leave_approval.update.dto.interface.d.ts +18 -0
- package/dist/src/api/interface/leave_approval.update.dto.interface.js +16 -0
- package/dist/src/entities/enums/configuration-key.enum.d.ts +2 -1
- package/dist/src/entities/enums/configuration-key.enum.js +2 -0
- package/dist/src/entities/enums/cron-jobs-name.enum.d.ts +2 -1
- package/dist/src/entities/enums/cron-jobs-name.enum.js +1 -0
- package/dist/src/entities/enums/leave.action.enum.d.ts +3 -2
- package/dist/src/entities/enums/leave.action.enum.js +6 -2
- package/dist/src/entities/enums/leave_approval_status_enum.d.ts +13 -0
- package/dist/src/entities/enums/leave_approval_status_enum.js +17 -0
- package/dist/src/entities/flow-configs/base-flow-config.enums.d.ts +74 -0
- package/dist/src/entities/flow-configs/base-flow-config.enums.js +79 -0
- package/dist/src/entities/flow-configs/base-flow-config.factory.d.ts +116 -0
- package/dist/src/entities/flow-configs/base-flow-config.factory.js +120 -0
- package/dist/src/entities/flow-configs/leave.flow.config.d.ts +5 -1
- package/dist/src/entities/flow-configs/leave.flow.config.js +41 -26
- package/dist/src/entities/flow-configs/leave_approval_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/leave_approval_flow.config.js +146 -0
- package/dist/src/entities/index.d.ts +4 -0
- package/dist/src/entities/index.js +4 -0
- package/dist/src/entities/interface/entity.utils.interface.d.ts +6 -3
- package/dist/src/entities/interface/entity.utils.interface.js +1 -0
- package/dist/src/entities/interface/leave_approval.entity.interface.d.ts +10 -0
- package/dist/src/entities/interface/leave_approval.entity.interface.js +2 -0
- package/dist/src/entities/model/entity.model.interface.js +2 -0
- package/dist/src/entities/model/entity_history.entity.model.js +1 -1
- package/dist/src/entities/model/leave.entity.model.d.ts +12 -2
- package/dist/src/entities/model/leave.entity.model.js +28 -3
- package/dist/src/entities/model/leave_approval.entity.model.d.ts +42 -0
- package/dist/src/entities/model/leave_approval.entity.model.js +123 -0
- package/dist/src/entities/model/state.entity.model.js +1 -1
- package/dist/src/entities/model/user.entity.model.d.ts +5 -1
- package/dist/src/entities/model/user.entity.model.js +17 -0
- package/dist/src/entities/model/vendor.entity.model.js +1 -1
- package/dist/src/entities/model/vendor_invoice.entity.model.js +1 -1
- package/dist/src/entities/model/work-from-home.entity.model.js +1 -1
- package/dist/src/utils/entity.flow.util.js +5 -0
- package/package.json +42 -41
|
@@ -11,11 +11,11 @@ exports.leaveFlowConfig = {
|
|
|
11
11
|
// permissions: ["LEAVE_READ_ORG"],
|
|
12
12
|
// next: () => LeaveStatusEnum.PENDING_APPROVAL,
|
|
13
13
|
// },
|
|
14
|
-
[
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
14
|
+
// [LeaveActionEnum.EDIT]: {
|
|
15
|
+
// permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
16
|
+
// next: () => LeaveStatusEnum.PENDING_APPROVAL,
|
|
17
|
+
// description: "Allows the employee to edit the leave request while it is still awaiting approval.",
|
|
18
|
+
// },
|
|
19
19
|
[leave_action_enum_1.LeaveActionEnum.APPROVE]: {
|
|
20
20
|
permissions: ["LEAVE_APPROVER_ORG"],
|
|
21
21
|
next: () => leave_status_enum_1.LeaveStatusEnum.APPROVED,
|
|
@@ -31,6 +31,16 @@ exports.leaveFlowConfig = {
|
|
|
31
31
|
next: () => leave_status_enum_1.LeaveStatusEnum.DELETED,
|
|
32
32
|
description: "Deletes the leave request entirely before it has been approved.",
|
|
33
33
|
},
|
|
34
|
+
[leave_action_enum_1.LeaveActionEnum.LEAVE_APPROVAL_APPROVE]: {
|
|
35
|
+
permissions: ["LEAVE_APPROVER_ORG"],
|
|
36
|
+
next: (context) => { var _a; return ((_a = context.leaveEntity) === null || _a === void 0 ? void 0 : _a.getOverallStatusByLeaveApprovals()) || context.leaveEntity.status; },
|
|
37
|
+
description: "Approves the leave request. The employee's leave will be marked as approved.",
|
|
38
|
+
},
|
|
39
|
+
[leave_action_enum_1.LeaveActionEnum.LEAVE_APPROVAL_REJECT]: {
|
|
40
|
+
permissions: ["LEAVE_APPROVER_ORG"],
|
|
41
|
+
next: (context) => { var _a; return ((_a = context.leaveEntity) === null || _a === void 0 ? void 0 : _a.getOverallStatusByLeaveApprovals()) || context.leaveEntity.status; },
|
|
42
|
+
description: "Rejects the leave request. The employee will be notified of the rejection.",
|
|
43
|
+
},
|
|
34
44
|
},
|
|
35
45
|
},
|
|
36
46
|
[leave_status_enum_1.LeaveStatusEnum.EDIT_APPROVAL]: {
|
|
@@ -40,11 +50,11 @@ exports.leaveFlowConfig = {
|
|
|
40
50
|
// permissions: ["LEAVE_CREATOR", "LEAVE_APPROVER_ORG"],
|
|
41
51
|
// next: () => LeaveStatusEnum.EDIT_APPROVAL,
|
|
42
52
|
// },
|
|
43
|
-
[
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
},
|
|
53
|
+
// [LeaveActionEnum.EDIT]: {
|
|
54
|
+
// permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
55
|
+
// next: () => LeaveStatusEnum.EDIT_APPROVAL,
|
|
56
|
+
// description: "Allows further edits to the leave request while the edit is pending approval.",
|
|
57
|
+
// },
|
|
48
58
|
[leave_action_enum_1.LeaveActionEnum.RECALL]: {
|
|
49
59
|
permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
50
60
|
next: () => leave_status_enum_1.LeaveStatusEnum.DELETE_APPROVAL, // Rolls back to previous state
|
|
@@ -69,11 +79,11 @@ exports.leaveFlowConfig = {
|
|
|
69
79
|
// permissions: ["LEAVE_CREATOR"],
|
|
70
80
|
// next: () => LeaveStatusEnum.DELETE_APPROVAL,
|
|
71
81
|
// },
|
|
72
|
-
[
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
},
|
|
82
|
+
// [LeaveActionEnum.EDIT]: {
|
|
83
|
+
// permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
84
|
+
// next: () => LeaveStatusEnum.DELETE_APPROVAL,
|
|
85
|
+
// description: "Allows editing the leave request while the deletion is pending approval.",
|
|
86
|
+
// },
|
|
77
87
|
[leave_action_enum_1.LeaveActionEnum.RECALL]: {
|
|
78
88
|
permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
79
89
|
next: () => leave_status_enum_1.LeaveStatusEnum.DELETED, // Rolls back to previous state
|
|
@@ -98,16 +108,21 @@ exports.leaveFlowConfig = {
|
|
|
98
108
|
// permissions: ["LEAVE_CREATOR", "LEAVE_APPROVER_ORG"],
|
|
99
109
|
// next: () => LeaveStatusEnum.APPROVED,
|
|
100
110
|
// },
|
|
101
|
-
[
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
},
|
|
111
|
+
// [LeaveActionEnum.EDIT]: {
|
|
112
|
+
// permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
113
|
+
// next: () => LeaveStatusEnum.EDIT_APPROVAL,
|
|
114
|
+
// description: "Requests an edit to an already approved leave. The change will require re-approval.",
|
|
115
|
+
// },
|
|
106
116
|
[leave_action_enum_1.LeaveActionEnum.DELETE]: {
|
|
107
117
|
permissions: ["LEAVE_DELETE_SELF"],
|
|
108
|
-
next: () => leave_status_enum_1.LeaveStatusEnum.
|
|
118
|
+
next: () => leave_status_enum_1.LeaveStatusEnum.DELETED,
|
|
109
119
|
description: "Requests deletion of an approved leave. The deletion will require approver confirmation.",
|
|
110
120
|
},
|
|
121
|
+
// [LeaveActionEnum.APPROVE]: {
|
|
122
|
+
// permissions: ["LEAVE_APPROVER_ORG"],
|
|
123
|
+
// next: () => LeaveStatusEnum.APPROVED,
|
|
124
|
+
// description: "Allows approver to reaffirm approval on an already approved leave.",
|
|
125
|
+
// },
|
|
111
126
|
},
|
|
112
127
|
},
|
|
113
128
|
// [LeaveStatusEnum.DELETED]: {
|
|
@@ -125,11 +140,11 @@ exports.leaveFlowConfig = {
|
|
|
125
140
|
// permissions: ["LEAVE_CREATOR", "LEAVE_APPROVER_ORG"],
|
|
126
141
|
// next: () => LeaveStatusEnum.RESOLVE_REJECTED,
|
|
127
142
|
// },
|
|
128
|
-
[
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
},
|
|
143
|
+
// [LeaveActionEnum.EDIT]: {
|
|
144
|
+
// permissions: ["LEAVE_UPDATE_SELF", "LEAVE_UPDATE_ORG"],
|
|
145
|
+
// next: () => LeaveStatusEnum.EDIT_APPROVAL,
|
|
146
|
+
// description: "Allows the employee to edit and resubmit the leave request after it was rejected.",
|
|
147
|
+
// },
|
|
133
148
|
[leave_action_enum_1.LeaveActionEnum.DELETE]: {
|
|
134
149
|
permissions: ["LEAVE_DELETE_SELF"],
|
|
135
150
|
next: () => leave_status_enum_1.LeaveStatusEnum.DELETE_APPROVAL,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { LeaveApprovalActionEnum } from "../../api";
|
|
3
|
+
import { LeaveApprovalStatusEnum } from "../enums/leave_approval_status_enum";
|
|
4
|
+
export interface ILeaveApprovalFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const leaveApprovalFlowConfig: FlowConfig<LeaveApprovalStatusEnum, LeaveApprovalActionEnum, ILeaveApprovalFlowConfigContextData>;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.leaveApprovalFlowConfig = void 0;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
const leave_approval_status_enum_1 = require("../enums/leave_approval_status_enum");
|
|
6
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
7
|
+
const LEAVE_APPROVAL_UPDATE_PERMISSION = ["LEAVE_APPROVAL_UPDATE"];
|
|
8
|
+
const LEAVE_APPROVAL_DELETE_PERMISSION = ["LEAVE_APPROVAL_DELETE"];
|
|
9
|
+
const LEAVE_APPROVAL_APPROVE_PERMISSION = ["LEAVE_APPROVER_ORG"];
|
|
10
|
+
const LEAVE_APPROVAL_REJECT_PERMISSION = ["LEAVE_APPROVER_ORG"];
|
|
11
|
+
const LEAVE_APPROVAL_RECALL_PERMISSION = ["LEAVE_APPROVAL_RECALL"];
|
|
12
|
+
const LEAVE_APPROVAL_ESCALATION_APPROVE_PERMISSION = ["LEAVE_ESCALATION"];
|
|
13
|
+
const LEAVE_APPROVAL_ESCALATION_REJECT_PERMISSION = ["LEAVE_ESCALATION"];
|
|
14
|
+
const LEAVE_APPROVAL_ESCALATE_PERMISSION = ["LEAVE_ESCALATION"];
|
|
15
|
+
const ACTION_MAP = {
|
|
16
|
+
// [LeaveApprovalActionEnum.UPDATE]: {
|
|
17
|
+
// reachableStatues: [
|
|
18
|
+
// LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING,
|
|
19
|
+
// LeaveApprovalStatusEnum.UPDATED,
|
|
20
|
+
// LeaveApprovalStatusEnum.CREATE_APPROVAL_PENDING,
|
|
21
|
+
// ] as const,
|
|
22
|
+
// permissions: LEAVE_APPROVAL_UPDATE_PERMISSION,
|
|
23
|
+
// },
|
|
24
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: {
|
|
25
|
+
reachableStatues: [leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETE_APPROVAL_PENDING, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED, leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED],
|
|
26
|
+
permissions: LEAVE_APPROVAL_DELETE_PERMISSION,
|
|
27
|
+
},
|
|
28
|
+
[api_1.LeaveApprovalActionEnum.APPROVE]: {
|
|
29
|
+
reachableStatues: [
|
|
30
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED,
|
|
31
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATED,
|
|
32
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.UPDATED,
|
|
33
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED,
|
|
34
|
+
],
|
|
35
|
+
permissions: LEAVE_APPROVAL_APPROVE_PERMISSION,
|
|
36
|
+
},
|
|
37
|
+
[api_1.LeaveApprovalActionEnum.REJECT]: {
|
|
38
|
+
reachableStatues: [
|
|
39
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED,
|
|
40
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATED,
|
|
41
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.UPDATED,
|
|
42
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED,
|
|
43
|
+
leave_approval_status_enum_1.LeaveApprovalStatusEnum.RESOLVED_REJECTED,
|
|
44
|
+
],
|
|
45
|
+
permissions: LEAVE_APPROVAL_REJECT_PERMISSION,
|
|
46
|
+
},
|
|
47
|
+
[api_1.LeaveApprovalActionEnum.RECALL]: {
|
|
48
|
+
reachableStatues: [leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATED, leave_approval_status_enum_1.LeaveApprovalStatusEnum.UPDATED, leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED],
|
|
49
|
+
permissions: LEAVE_APPROVAL_RECALL_PERMISSION,
|
|
50
|
+
},
|
|
51
|
+
[api_1.LeaveApprovalActionEnum.ESCALATION_APPROVE]: {
|
|
52
|
+
reachableStatues: [leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED],
|
|
53
|
+
permissions: LEAVE_APPROVAL_ESCALATION_APPROVE_PERMISSION,
|
|
54
|
+
},
|
|
55
|
+
[api_1.LeaveApprovalActionEnum.ESCALATION_REJECT]: {
|
|
56
|
+
reachableStatues: [leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED],
|
|
57
|
+
permissions: LEAVE_APPROVAL_ESCALATION_REJECT_PERMISSION,
|
|
58
|
+
},
|
|
59
|
+
[api_1.LeaveApprovalActionEnum.ESCALATE]: {
|
|
60
|
+
reachableStatues: [leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED],
|
|
61
|
+
permissions: LEAVE_APPROVAL_ESCALATE_PERMISSION,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
65
|
+
// APPROVED status transitions
|
|
66
|
+
// const transitionApprovedStatusUpdateAction = createActionConfig<LeaveApprovalActionEnum.UPDATE, LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING>(
|
|
67
|
+
// LeaveApprovalActionEnum.UPDATE,
|
|
68
|
+
// LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING,
|
|
69
|
+
// );
|
|
70
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(api_1.LeaveApprovalActionEnum.DELETE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED);
|
|
71
|
+
// REJECTED status transitions
|
|
72
|
+
// const transitionRejectedStatusUpdateAction = createActionConfig<LeaveApprovalActionEnum.UPDATE, LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING>(
|
|
73
|
+
// LeaveApprovalActionEnum.UPDATE,
|
|
74
|
+
// LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING,
|
|
75
|
+
// );
|
|
76
|
+
const transitionRejectedStatusDeleteAction = createActionConfig(api_1.LeaveApprovalActionEnum.DELETE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETE_APPROVAL_PENDING);
|
|
77
|
+
// CREATE_APPROVAL_PENDING status transitions
|
|
78
|
+
const transitionCreateApprovalPendingStatusDeleteAction = createActionConfig(api_1.LeaveApprovalActionEnum.DELETE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED);
|
|
79
|
+
const transitionCreateApprovalPendingStatusApproveAction = createActionConfig(api_1.LeaveApprovalActionEnum.APPROVE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED);
|
|
80
|
+
const transitionCreateApprovalPendingStatusRejectAction = createActionConfig(api_1.LeaveApprovalActionEnum.REJECT, leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED);
|
|
81
|
+
const transitionCreateApprovalPendingStatusEscalationApproveAction = createActionConfig(api_1.LeaveApprovalActionEnum.ESCALATION_APPROVE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED);
|
|
82
|
+
const transitionCreateApprovalPendingStatusEscalationRejectAction = createActionConfig(api_1.LeaveApprovalActionEnum.ESCALATION_REJECT, leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED);
|
|
83
|
+
// UPDATE_APPROVAL_PENDING status transitions
|
|
84
|
+
// const transitionUpdateApprovalPendingStatusUpdateAction = createActionConfig(LeaveApprovalActionEnum.UPDATE, LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING);
|
|
85
|
+
const transitionUpdateApprovalPendingStatusApproveAction = createActionConfig(api_1.LeaveApprovalActionEnum.APPROVE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED);
|
|
86
|
+
const transitionUpdateApprovalPendingStatusRejectAction = createActionConfig(api_1.LeaveApprovalActionEnum.REJECT, leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED);
|
|
87
|
+
const transitionUpdateApprovalPendingStatusRecallAction = createActionConfig(api_1.LeaveApprovalActionEnum.RECALL, leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATED);
|
|
88
|
+
// DELETE_APPROVAL_PENDING status transitions
|
|
89
|
+
const transitionDeleteApprovalPendingStatusApproveAction = createActionConfig(api_1.LeaveApprovalActionEnum.APPROVE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED);
|
|
90
|
+
const transitionDeleteApprovalPendingStatusRejectAction = createActionConfig(api_1.LeaveApprovalActionEnum.REJECT, leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED);
|
|
91
|
+
const transitionDeleteApprovalPendingStatusRecallAction = createActionConfig(api_1.LeaveApprovalActionEnum.RECALL, leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATED);
|
|
92
|
+
// RESOLVED_REJECTED status transitions
|
|
93
|
+
// const transitionResolvedRejectedStatusUpdateAction = createActionConfig(LeaveApprovalActionEnum.UPDATE, LeaveApprovalStatusEnum.UPDATED);
|
|
94
|
+
const transitionResolvedRejectedStatusDeleteAction = createActionConfig(api_1.LeaveApprovalActionEnum.DELETE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETED);
|
|
95
|
+
exports.leaveApprovalFlowConfig = {
|
|
96
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.APPROVED]: {
|
|
97
|
+
actions: {
|
|
98
|
+
// [LeaveApprovalActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
99
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.REJECTED]: {
|
|
103
|
+
actions: {
|
|
104
|
+
// [LeaveApprovalActionEnum.UPDATE]: transitionRejectedStatusUpdateAction,
|
|
105
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: transitionRejectedStatusDeleteAction,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.CREATE_APPROVAL_PENDING]: {
|
|
109
|
+
actions: {
|
|
110
|
+
[api_1.LeaveApprovalActionEnum.APPROVE]: transitionCreateApprovalPendingStatusApproveAction,
|
|
111
|
+
[api_1.LeaveApprovalActionEnum.REJECT]: transitionCreateApprovalPendingStatusRejectAction,
|
|
112
|
+
[api_1.LeaveApprovalActionEnum.ESCALATION_APPROVE]: transitionCreateApprovalPendingStatusEscalationApproveAction,
|
|
113
|
+
[api_1.LeaveApprovalActionEnum.ESCALATION_REJECT]: transitionCreateApprovalPendingStatusEscalationRejectAction,
|
|
114
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: transitionCreateApprovalPendingStatusDeleteAction,
|
|
115
|
+
[api_1.LeaveApprovalActionEnum.ESCALATE]: createActionConfig(api_1.LeaveApprovalActionEnum.ESCALATE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED),
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.UPDATE_APPROVAL_PENDING]: {
|
|
119
|
+
actions: {
|
|
120
|
+
// [LeaveApprovalActionEnum.UPDATE]: transitionUpdateApprovalPendingStatusUpdateAction,
|
|
121
|
+
[api_1.LeaveApprovalActionEnum.APPROVE]: transitionUpdateApprovalPendingStatusApproveAction,
|
|
122
|
+
[api_1.LeaveApprovalActionEnum.REJECT]: transitionUpdateApprovalPendingStatusRejectAction,
|
|
123
|
+
[api_1.LeaveApprovalActionEnum.RECALL]: transitionUpdateApprovalPendingStatusRecallAction,
|
|
124
|
+
[api_1.LeaveApprovalActionEnum.ESCALATE]: createActionConfig(api_1.LeaveApprovalActionEnum.ESCALATE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED),
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.DELETE_APPROVAL_PENDING]: {
|
|
128
|
+
actions: {
|
|
129
|
+
[api_1.LeaveApprovalActionEnum.APPROVE]: transitionDeleteApprovalPendingStatusApproveAction,
|
|
130
|
+
[api_1.LeaveApprovalActionEnum.REJECT]: transitionDeleteApprovalPendingStatusRejectAction,
|
|
131
|
+
[api_1.LeaveApprovalActionEnum.RECALL]: transitionDeleteApprovalPendingStatusRecallAction,
|
|
132
|
+
[api_1.LeaveApprovalActionEnum.ESCALATE]: createActionConfig(api_1.LeaveApprovalActionEnum.ESCALATE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED),
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.RESOLVED_REJECTED]: {
|
|
136
|
+
actions: {
|
|
137
|
+
// [LeaveApprovalActionEnum.UPDATE]: transitionResolvedRejectedStatusUpdateAction,
|
|
138
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: transitionResolvedRejectedStatusDeleteAction,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
[leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED]: {
|
|
142
|
+
actions: {
|
|
143
|
+
[api_1.LeaveApprovalActionEnum.DELETE]: createActionConfig(api_1.LeaveApprovalActionEnum.DELETE, leave_approval_status_enum_1.LeaveApprovalStatusEnum.ESCALATED),
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -221,3 +221,7 @@ export * from "./enums/entity_history_status_enum";
|
|
|
221
221
|
export * from "./flow-configs/entity_history_flow.config";
|
|
222
222
|
export * from "./interface/entity_history.entity.interface";
|
|
223
223
|
export * from "./model/entity_history.entity.model";
|
|
224
|
+
export * from "./enums/leave_approval_status_enum";
|
|
225
|
+
export * from "./flow-configs/leave_approval_flow.config";
|
|
226
|
+
export * from "./interface/leave_approval.entity.interface";
|
|
227
|
+
export * from "./model/leave_approval.entity.model";
|
|
@@ -237,3 +237,7 @@ __exportStar(require("./enums/entity_history_status_enum"), exports);
|
|
|
237
237
|
__exportStar(require("./flow-configs/entity_history_flow.config"), exports);
|
|
238
238
|
__exportStar(require("./interface/entity_history.entity.interface"), exports);
|
|
239
239
|
__exportStar(require("./model/entity_history.entity.model"), exports);
|
|
240
|
+
__exportStar(require("./enums/leave_approval_status_enum"), exports);
|
|
241
|
+
__exportStar(require("./flow-configs/leave_approval_flow.config"), exports);
|
|
242
|
+
__exportStar(require("./interface/leave_approval.entity.interface"), exports);
|
|
243
|
+
__exportStar(require("./model/leave_approval.entity.model"), exports);
|
|
@@ -36,6 +36,7 @@ import { HolidayListEntityModel } from "../model/holiday_list.entity.model";
|
|
|
36
36
|
import { IndustryEntityModel } from "../model/industry.entity.model";
|
|
37
37
|
import { IntermediaryBankEntityModel } from "../model/intermediary-bank.entity.model";
|
|
38
38
|
import { LeaveEntityModel } from "../model/leave.entity.model";
|
|
39
|
+
import { LeaveApprovalEntityModel } from "../model/leave_approval.entity.model";
|
|
39
40
|
import { LeaveCountVirtualEntityModel } from "../model/leave_count.entity.model";
|
|
40
41
|
import { LeaveHistoryEntityModel } from "../model/leave_history.entity.model";
|
|
41
42
|
import { MovingTimesheetEntityModel } from "../model/moving-timesheet.entity.model";
|
|
@@ -104,6 +105,7 @@ import { IHolidayEntity } from "./holiday.entity.interface";
|
|
|
104
105
|
import { IIndustryEntity } from "./industry.entity.interface";
|
|
105
106
|
import { IIntermediaryBankEntity } from "./intermediary_bank.entity.interface";
|
|
106
107
|
import { ILeaveCountVirtualEntity, ILeaveEntity } from "./leave.entity.interface";
|
|
108
|
+
import { ILeaveApprovalEntity } from "./leave_approval.entity.interface";
|
|
107
109
|
import { ILeaveHistoryEntity } from "./leave_history.entity.interface";
|
|
108
110
|
import { IMovingTimesheetEntity } from "./moving_timesheet.entity.interface";
|
|
109
111
|
import { IOfficeLocationEntity } from "./office.location.entity";
|
|
@@ -243,7 +245,8 @@ export declare enum EntityEnum {
|
|
|
243
245
|
VENDOR_HISTORY = "vendor_history",
|
|
244
246
|
CLIENT_QUOTE = "client_quote",
|
|
245
247
|
CLIENT_QUOTE_RATE = "client_quote_rate",
|
|
246
|
-
ENTITY_HISTORY = "entity_history"
|
|
248
|
+
ENTITY_HISTORY = "entity_history",
|
|
249
|
+
LEAVE_APPROVAL = "leave_approval"
|
|
247
250
|
}
|
|
248
251
|
export type EntityRelations = {
|
|
249
252
|
[K in EntityEnum | VirtualEntityEnum]: K;
|
|
@@ -268,7 +271,7 @@ export type IBaseEntityApiResponse<T> = {
|
|
|
268
271
|
[key in EntityEnum | VirtualEntityEnum]?: AggregationFields<EnumToModel<key>>[];
|
|
269
272
|
};
|
|
270
273
|
};
|
|
271
|
-
export type EnumEntityType<T extends EntityEnum | VirtualEntityEnum> = (T extends EntityEnum.BILLING ? IBillingEntity : T extends EntityEnum.BILLING_HISTORY ? IBillingHistoryEntity : T extends EntityEnum.MOVING_TIMESHEET ? IMovingTimesheetEntity : T extends EntityEnum.BILLING_TIMESHEET ? IBillingTimesheetEntity : T extends EntityEnum.BILLING_REIMBURSEMENT_EXPENSE ? IBillingReimbursementExpenseEntity : T extends EntityEnum.BILLING_TIMESHEET_HISTORY ? IBillingTimesheetHistoryEntity : T extends EntityEnum.BILLING_REIMBURESMENT_EXPENSE_HISTORY ? IBillingReimbursementExpenseHistoryEntity : T extends EntityEnum.TIMESHEET ? ITimesheetEntity : T extends EntityEnum.USER ? IUserEntity : T extends EntityEnum.PROJECT ? IProjectEntity : T extends EntityEnum.CLIENT ? IClientEntity : T extends EntityEnum.LEAVE ? ILeaveEntity : T extends EntityEnum.BANK ? IBankEntity : T extends EntityEnum.BILLING_TRANSACTION ? IBillingTransactionEntity : T extends EntityEnum.BILLING_TRANSACTION_HISTORY ? IBillingTransactionHistoryEntity : T extends EntityEnum.CLIENT_AFFILIATE ? IClientAffiliateEntity : T extends EntityEnum.CONFIGURATION ? IConfigurationEntity : T extends EntityEnum.HOLIDAY ? IHolidayEntity : T extends EntityEnum.HOLIDAY_LIST ? IHolidayListEntity : T extends EntityEnum.COUNTRY ? ICountryEntity : T extends EntityEnum.EXPENSE_TYPE ? IExpenseTypeEntity : T extends EntityEnum.INDUSTRY ? IIndustryEntity : T extends EntityEnum.INTERMEDIARY_BANK ? IIntermediaryBankEntity : T extends EntityEnum.OFFICE_LOCATION ? IOfficeLocationEntity : T extends EntityEnum.PERMISSION ? IPermissionEntity : T extends EntityEnum.ROLE ? IRoleEntity : T extends EntityEnum.TASK ? ITaskEntity : T extends EntityEnum.DESIGNATION ? IDesignationEntity : T extends EntityEnum.RATE ? IRateEntity : T extends EntityEnum.REIMBURSEMENT ? IReimbursementEntity : T extends EntityEnum.REIMBURSEMENT_EXPENSE ? IReimbursementExpenseEntity : T extends EntityEnum.REIMBURSEMENT_HISTORY ? IReimbursementHistoryEntity : T extends EntityEnum.WORK_FROM_HOME ? IWorkFromHomeEntity : T extends EntityEnum.ORGANIZATION ? IOrganizationEntity : T extends EntityEnum.PROJECT_USER_MAPPING ? IProjectUserMappingEntity : T extends EntityEnum.CLIENT_USER_MAPPING ? IClientUserMappingEntity : T extends EntityEnum.CLIENT_INTRODUCING_MAPPING ? IClientIntroducingMappingEntity : T extends EntityEnum.TO_DO_LIST ? IToDoListEntity : T extends EntityEnum.CRON_JOBS ? ICronJobsEntity : T extends EntityEnum.ROLE_PERMISSION_MAPPING ? IRolePermissionMappingEntity : T extends EntityEnum.BANK_HISTORY ? IBankHistoryEntity : T extends VirtualEntityEnum.LEAVE_COUNT ? ILeaveCountVirtualEntity : T extends EntityEnum.LEAVE_HISTORY ? ILeaveHistoryEntity : T extends EntityEnum.WORK_FROM_HOME_HISTORY ? IWorkFromHomeHistoryEntity : T extends EntityEnum.TIMESHEET_HISTORY ? ITimesheetHistoryEntity : T extends EntityEnum.ADDRESS_BOOK ? IAddressBookEntity : T extends EntityEnum.STATE ? IStateEntity : T extends EntityEnum.GST_RATE ? IGstRateEntity : T extends EntityEnum.ORGANIZATION_TYPE ? IOrganizationTypeEntity : T extends EntityEnum.TDS_RATE ? ITdsRateEntity : T extends EntityEnum.ORGANIZATION_TYPE_TDS_RATE_MAPPING ? IOrganizationTypeTdsRateMappingEntity : T extends EntityEnum.VOUCHER_TYPE ? IVoucherTypeEntity : T extends EntityEnum.TDS_RATE_VOUCHER_TYPE_MAPPING ? ITdsRateVoucherTypeMappingEntity : T extends EntityEnum.EXPENSE_HEAD ? IExpenseHeadEntity : T extends EntityEnum.DOCUMENT_UPLOAD ? IDocumentUploadEntity : T extends EntityEnum.VENDOR ? IVendorEntity : T extends EntityEnum.VENDOR_INVOICE ? IVendorInvoiceEntity : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? IVendorInvoiceHistoryEntity : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? IVendorInvoiceHistoryEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM ? IVendorInvoiceItemEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? IVendorInvoiceItemHistoryEntity : T extends EntityEnum.VENDOR_HISTORY ? IVendorHistoryEntity : T extends EntityEnum.WEBSITE_LEAD ? IWebsiteLeadEntity : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? IWebsiteNewsletterSubscriptionEntity : T extends EntityEnum.CLIENT_QUOTE ? IClientQuoteEntity : T extends EntityEnum.CLIENT_QUOTE_RATE ? IClientQuoteRateEntity : T extends EntityEnum.BILLING_PROFILE ? IBillingProfileEntity : T extends EntityEnum.PROJECT_REVENUE_SPLIT_MAPPING ? IProjectRevenueSplitMappingEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? IVendorInvoiceItemHistoryEntity : T extends EntityEnum.VENDOR_HISTORY ? IVendorHistoryEntity : T extends EntityEnum.WEBSITE_LEAD ? IWebsiteLeadEntity : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? IWebsiteNewsletterSubscriptionEntity : T extends EntityEnum.CLIENT_QUOTE ? IClientQuoteEntity : T extends EntityEnum.CLIENT_QUOTE_RATE ? IClientQuoteRateEntity : T extends EntityEnum.ENTITY_HISTORY ? IEntityHistoryEntity : never) & {
|
|
274
|
+
export type EnumEntityType<T extends EntityEnum | VirtualEntityEnum> = (T extends EntityEnum.BILLING ? IBillingEntity : T extends EntityEnum.BILLING_HISTORY ? IBillingHistoryEntity : T extends EntityEnum.MOVING_TIMESHEET ? IMovingTimesheetEntity : T extends EntityEnum.BILLING_TIMESHEET ? IBillingTimesheetEntity : T extends EntityEnum.BILLING_REIMBURSEMENT_EXPENSE ? IBillingReimbursementExpenseEntity : T extends EntityEnum.BILLING_TIMESHEET_HISTORY ? IBillingTimesheetHistoryEntity : T extends EntityEnum.BILLING_REIMBURESMENT_EXPENSE_HISTORY ? IBillingReimbursementExpenseHistoryEntity : T extends EntityEnum.TIMESHEET ? ITimesheetEntity : T extends EntityEnum.USER ? IUserEntity : T extends EntityEnum.PROJECT ? IProjectEntity : T extends EntityEnum.CLIENT ? IClientEntity : T extends EntityEnum.LEAVE ? ILeaveEntity : T extends EntityEnum.BANK ? IBankEntity : T extends EntityEnum.BILLING_TRANSACTION ? IBillingTransactionEntity : T extends EntityEnum.BILLING_TRANSACTION_HISTORY ? IBillingTransactionHistoryEntity : T extends EntityEnum.CLIENT_AFFILIATE ? IClientAffiliateEntity : T extends EntityEnum.CONFIGURATION ? IConfigurationEntity : T extends EntityEnum.HOLIDAY ? IHolidayEntity : T extends EntityEnum.HOLIDAY_LIST ? IHolidayListEntity : T extends EntityEnum.COUNTRY ? ICountryEntity : T extends EntityEnum.EXPENSE_TYPE ? IExpenseTypeEntity : T extends EntityEnum.INDUSTRY ? IIndustryEntity : T extends EntityEnum.INTERMEDIARY_BANK ? IIntermediaryBankEntity : T extends EntityEnum.OFFICE_LOCATION ? IOfficeLocationEntity : T extends EntityEnum.PERMISSION ? IPermissionEntity : T extends EntityEnum.ROLE ? IRoleEntity : T extends EntityEnum.TASK ? ITaskEntity : T extends EntityEnum.DESIGNATION ? IDesignationEntity : T extends EntityEnum.RATE ? IRateEntity : T extends EntityEnum.REIMBURSEMENT ? IReimbursementEntity : T extends EntityEnum.REIMBURSEMENT_EXPENSE ? IReimbursementExpenseEntity : T extends EntityEnum.REIMBURSEMENT_HISTORY ? IReimbursementHistoryEntity : T extends EntityEnum.WORK_FROM_HOME ? IWorkFromHomeEntity : T extends EntityEnum.ORGANIZATION ? IOrganizationEntity : T extends EntityEnum.PROJECT_USER_MAPPING ? IProjectUserMappingEntity : T extends EntityEnum.CLIENT_USER_MAPPING ? IClientUserMappingEntity : T extends EntityEnum.CLIENT_INTRODUCING_MAPPING ? IClientIntroducingMappingEntity : T extends EntityEnum.TO_DO_LIST ? IToDoListEntity : T extends EntityEnum.CRON_JOBS ? ICronJobsEntity : T extends EntityEnum.ROLE_PERMISSION_MAPPING ? IRolePermissionMappingEntity : T extends EntityEnum.BANK_HISTORY ? IBankHistoryEntity : T extends VirtualEntityEnum.LEAVE_COUNT ? ILeaveCountVirtualEntity : T extends EntityEnum.LEAVE_HISTORY ? ILeaveHistoryEntity : T extends EntityEnum.WORK_FROM_HOME_HISTORY ? IWorkFromHomeHistoryEntity : T extends EntityEnum.TIMESHEET_HISTORY ? ITimesheetHistoryEntity : T extends EntityEnum.ADDRESS_BOOK ? IAddressBookEntity : T extends EntityEnum.STATE ? IStateEntity : T extends EntityEnum.GST_RATE ? IGstRateEntity : T extends EntityEnum.ORGANIZATION_TYPE ? IOrganizationTypeEntity : T extends EntityEnum.TDS_RATE ? ITdsRateEntity : T extends EntityEnum.ORGANIZATION_TYPE_TDS_RATE_MAPPING ? IOrganizationTypeTdsRateMappingEntity : T extends EntityEnum.VOUCHER_TYPE ? IVoucherTypeEntity : T extends EntityEnum.TDS_RATE_VOUCHER_TYPE_MAPPING ? ITdsRateVoucherTypeMappingEntity : T extends EntityEnum.EXPENSE_HEAD ? IExpenseHeadEntity : T extends EntityEnum.DOCUMENT_UPLOAD ? IDocumentUploadEntity : T extends EntityEnum.VENDOR ? IVendorEntity : T extends EntityEnum.VENDOR_INVOICE ? IVendorInvoiceEntity : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? IVendorInvoiceHistoryEntity : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? IVendorInvoiceHistoryEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM ? IVendorInvoiceItemEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? IVendorInvoiceItemHistoryEntity : T extends EntityEnum.VENDOR_HISTORY ? IVendorHistoryEntity : T extends EntityEnum.WEBSITE_LEAD ? IWebsiteLeadEntity : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? IWebsiteNewsletterSubscriptionEntity : T extends EntityEnum.CLIENT_QUOTE ? IClientQuoteEntity : T extends EntityEnum.CLIENT_QUOTE_RATE ? IClientQuoteRateEntity : T extends EntityEnum.BILLING_PROFILE ? IBillingProfileEntity : T extends EntityEnum.PROJECT_REVENUE_SPLIT_MAPPING ? IProjectRevenueSplitMappingEntity : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? IVendorInvoiceItemHistoryEntity : T extends EntityEnum.VENDOR_HISTORY ? IVendorHistoryEntity : T extends EntityEnum.WEBSITE_LEAD ? IWebsiteLeadEntity : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? IWebsiteNewsletterSubscriptionEntity : T extends EntityEnum.CLIENT_QUOTE ? IClientQuoteEntity : T extends EntityEnum.CLIENT_QUOTE_RATE ? IClientQuoteRateEntity : T extends EntityEnum.ENTITY_HISTORY ? IEntityHistoryEntity : T extends EntityEnum.LEAVE_APPROVAL ? ILeaveApprovalEntity : never) & {
|
|
272
275
|
id: number;
|
|
273
276
|
};
|
|
274
277
|
export type EntityRelationConfig<T extends EntityEnum | VirtualEntityEnum> = {
|
|
@@ -394,7 +397,7 @@ export declare enum VirtualEntityEnum {
|
|
|
394
397
|
}
|
|
395
398
|
export type IHistoryConstraintSearchResponse<T> = IBaseResponse<IHistoryEntitySearchByConstraintResponse<T>[]>;
|
|
396
399
|
export type IHistoryConstraintSearchServiceResponse<T> = IHistoryEntitySearchByConstraintResponse<T>[];
|
|
397
|
-
export type EnumToModel<T extends EntityEnum | VirtualEntityEnum> = T extends EntityEnum.BILLING ? BillingEntityModel : T extends EntityEnum.BILLING_HISTORY ? BillingHistoryEntityModel : T extends EntityEnum.CLIENT ? ClientEntityModel : T extends EntityEnum.INTERMEDIARY_BANK ? IntermediaryBankEntityModel : T extends EntityEnum.PROJECT ? ProjectEntityModel : T extends EntityEnum.PROJECT_USER_MAPPING ? ProjectUserMappingEntityModel : T extends EntityEnum.REIMBURSEMENT ? ReimbursementEntityModel : T extends EntityEnum.REIMBURSEMENT_EXPENSE ? ReimbursementExpenseEntityModel : T extends EntityEnum.BILLING_REIMBURSEMENT_EXPENSE ? BillingReimbursementExpneseEntityModel : T extends EntityEnum.BILLING_REIMBURESMENT_EXPENSE_HISTORY ? BillingReimbursementExpenseHistoryEntityModel : T extends EntityEnum.LEAVE ? LeaveEntityModel : T extends EntityEnum.WORK_FROM_HOME ? WorkFromHomeEntityModel : T extends EntityEnum.HOLIDAY ? HolidayEntityModel : T extends VirtualEntityEnum.LEAVE_COUNT ? LeaveCountVirtualEntityModel : T extends EntityEnum.CLIENT_AFFILIATE ? ClientAffiliateEntityModel : T extends EntityEnum.BANK ? BankEntityModel : T extends EntityEnum.CONFIGURATION ? ConfigurationEntityModel : T extends EntityEnum.TASK ? TaskEntityModel : T extends EntityEnum.BILLING_TIMESHEET ? BillingTimesheetEntityModel : T extends EntityEnum.BILLING_TIMESHEET_HISTORY ? BillingTimesheetHistoryEntityModel : T extends EntityEnum.TIMESHEET ? TimesheetEntityModel : T extends EntityEnum.MOVING_TIMESHEET ? MovingTimesheetEntityModel : T extends EntityEnum.TIMESHEET_HISTORY ? TimesheetHistoryEntityModel : T extends EntityEnum.COUNTRY ? CountryEntityModel : T extends EntityEnum.BILLING_TRANSACTION ? BillingTransactionEntityModel : T extends EntityEnum.BILLING_TRANSACTION_HISTORY ? BillingTransactionHistoryEntityModel : T extends EntityEnum.ADDRESS_BOOK ? AddressBookEntityModel : T extends EntityEnum.STATE ? StateEntityModel : T extends EntityEnum.GST_RATE ? GstRateEntityModel : T extends EntityEnum.ORGANIZATION_TYPE ? OrganizationTypeEntityModel : T extends EntityEnum.TDS_RATE ? TdsRateEntityModel : T extends EntityEnum.ORGANIZATION_TYPE_TDS_RATE_MAPPING ? OrganizationTypeTdsRateMappingEntityModel : T extends EntityEnum.VOUCHER_TYPE ? VoucherTypeEntityModel : T extends EntityEnum.TDS_RATE_VOUCHER_TYPE_MAPPING ? TdsRateVoucherTypeMappingEntityModel : T extends EntityEnum.ORGANIZATION ? OrganizationEntityModel : T extends EntityEnum.INDUSTRY ? IndustryEntityModel : T extends EntityEnum.EXPENSE_TYPE ? ExpenseTypeEntityModel : T extends EntityEnum.DESIGNATION ? DesignationEntityModel : T extends EntityEnum.RATE ? RateEntityModel : T extends EntityEnum.ROLE ? RoleEntityModel : T extends EntityEnum.ROLE_PERMISSION_MAPPING ? RolePermissionMappingEntityModel : T extends EntityEnum.PERMISSION ? PermissionEntityModel : T extends EntityEnum.EXPENSE_HEAD ? ExpenseHeadEntityModel : T extends EntityEnum.DOCUMENT_UPLOAD ? DocumentUploadEntityModel : T extends EntityEnum.VENDOR ? VendorEntityModel : T extends EntityEnum.VENDOR_INVOICE ? VendorInvoiceEntityModel : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? VendorInvoiceHistoryEntityModel : T extends EntityEnum.OFFICE_LOCATION ? OfficeLocationEntityModel : T extends EntityEnum.VENDOR_INVOICE_ITEM ? VendorInvoiceItemEntityModel : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? VendorInvoiceItemHistoryEntityModel : T extends EntityEnum.VENDOR_HISTORY ? VendorHistoryEntityModel : T extends EntityEnum.WEBSITE_LEAD ? WebsiteLeadEntityModel : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? WebsiteNewsletterSubscriptionEntityModel : T extends EntityEnum.WORK_FROM_HOME_HISTORY ? WorkFromHomeHistoryEntityModel : T extends EntityEnum.LEAVE_HISTORY ? LeaveHistoryEntityModel : T extends EntityEnum.BANK_HISTORY ? BankHistoryEntityModel : T extends EntityEnum.REIMBURSEMENT_HISTORY ? ReimbursementHistoryEntityModel : T extends EntityEnum.CLIENT_USER_MAPPING ? ClientUserMappingEntityModel : T extends EntityEnum.CLIENT_INTRODUCING_MAPPING ? ClientIntroducingMappingEntityModel : T extends EntityEnum.HOLIDAY_LIST ? HolidayListEntityModel : T extends EntityEnum.CRON_JOBS ? CronJobsEntityModel : T extends EntityEnum.TO_DO_LIST ? ToDoListEntityModel : T extends EntityEnum.CLIENT_QUOTE ? ClientQuoteEntityModel : T extends EntityEnum.CLIENT_QUOTE_RATE ? ClientQuoteRateEntityModel : T extends EntityEnum.BILLING_PROFILE ? BillingProfileEntityModel : T extends EntityEnum.PROJECT_REVENUE_SPLIT_MAPPING ? ProjectRevenueSplitMappingEntityModel : T extends EntityEnum.WEBSITE_LEAD ? WebsiteLeadEntityModel : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? WebsiteNewsletterSubscriptionEntityModel : T extends EntityEnum.CLIENT_QUOTE ? ClientQuoteEntityModel : T extends EntityEnum.CLIENT_QUOTE_RATE ? ClientQuoteRateEntityModel : T extends EntityEnum.DESIGNATION ? DesignationEntityModel : T extends EntityEnum.RATE ? RateEntityModel : T extends EntityEnum.ENTITY_HISTORY ? EntityHistoryEntityModel : UserEntityModel;
|
|
400
|
+
export type EnumToModel<T extends EntityEnum | VirtualEntityEnum> = T extends EntityEnum.BILLING ? BillingEntityModel : T extends EntityEnum.BILLING_HISTORY ? BillingHistoryEntityModel : T extends EntityEnum.CLIENT ? ClientEntityModel : T extends EntityEnum.INTERMEDIARY_BANK ? IntermediaryBankEntityModel : T extends EntityEnum.PROJECT ? ProjectEntityModel : T extends EntityEnum.PROJECT_USER_MAPPING ? ProjectUserMappingEntityModel : T extends EntityEnum.REIMBURSEMENT ? ReimbursementEntityModel : T extends EntityEnum.REIMBURSEMENT_EXPENSE ? ReimbursementExpenseEntityModel : T extends EntityEnum.BILLING_REIMBURSEMENT_EXPENSE ? BillingReimbursementExpneseEntityModel : T extends EntityEnum.BILLING_REIMBURESMENT_EXPENSE_HISTORY ? BillingReimbursementExpenseHistoryEntityModel : T extends EntityEnum.LEAVE ? LeaveEntityModel : T extends EntityEnum.WORK_FROM_HOME ? WorkFromHomeEntityModel : T extends EntityEnum.HOLIDAY ? HolidayEntityModel : T extends VirtualEntityEnum.LEAVE_COUNT ? LeaveCountVirtualEntityModel : T extends EntityEnum.CLIENT_AFFILIATE ? ClientAffiliateEntityModel : T extends EntityEnum.BANK ? BankEntityModel : T extends EntityEnum.CONFIGURATION ? ConfigurationEntityModel : T extends EntityEnum.TASK ? TaskEntityModel : T extends EntityEnum.BILLING_TIMESHEET ? BillingTimesheetEntityModel : T extends EntityEnum.BILLING_TIMESHEET_HISTORY ? BillingTimesheetHistoryEntityModel : T extends EntityEnum.TIMESHEET ? TimesheetEntityModel : T extends EntityEnum.MOVING_TIMESHEET ? MovingTimesheetEntityModel : T extends EntityEnum.TIMESHEET_HISTORY ? TimesheetHistoryEntityModel : T extends EntityEnum.COUNTRY ? CountryEntityModel : T extends EntityEnum.BILLING_TRANSACTION ? BillingTransactionEntityModel : T extends EntityEnum.BILLING_TRANSACTION_HISTORY ? BillingTransactionHistoryEntityModel : T extends EntityEnum.ADDRESS_BOOK ? AddressBookEntityModel : T extends EntityEnum.STATE ? StateEntityModel : T extends EntityEnum.GST_RATE ? GstRateEntityModel : T extends EntityEnum.ORGANIZATION_TYPE ? OrganizationTypeEntityModel : T extends EntityEnum.TDS_RATE ? TdsRateEntityModel : T extends EntityEnum.ORGANIZATION_TYPE_TDS_RATE_MAPPING ? OrganizationTypeTdsRateMappingEntityModel : T extends EntityEnum.VOUCHER_TYPE ? VoucherTypeEntityModel : T extends EntityEnum.TDS_RATE_VOUCHER_TYPE_MAPPING ? TdsRateVoucherTypeMappingEntityModel : T extends EntityEnum.ORGANIZATION ? OrganizationEntityModel : T extends EntityEnum.INDUSTRY ? IndustryEntityModel : T extends EntityEnum.EXPENSE_TYPE ? ExpenseTypeEntityModel : T extends EntityEnum.DESIGNATION ? DesignationEntityModel : T extends EntityEnum.RATE ? RateEntityModel : T extends EntityEnum.ROLE ? RoleEntityModel : T extends EntityEnum.ROLE_PERMISSION_MAPPING ? RolePermissionMappingEntityModel : T extends EntityEnum.PERMISSION ? PermissionEntityModel : T extends EntityEnum.EXPENSE_HEAD ? ExpenseHeadEntityModel : T extends EntityEnum.DOCUMENT_UPLOAD ? DocumentUploadEntityModel : T extends EntityEnum.VENDOR ? VendorEntityModel : T extends EntityEnum.VENDOR_INVOICE ? VendorInvoiceEntityModel : T extends EntityEnum.VENDOR_INVOICE_HISTORY ? VendorInvoiceHistoryEntityModel : T extends EntityEnum.OFFICE_LOCATION ? OfficeLocationEntityModel : T extends EntityEnum.VENDOR_INVOICE_ITEM ? VendorInvoiceItemEntityModel : T extends EntityEnum.VENDOR_INVOICE_ITEM_HISTORY ? VendorInvoiceItemHistoryEntityModel : T extends EntityEnum.VENDOR_HISTORY ? VendorHistoryEntityModel : T extends EntityEnum.WEBSITE_LEAD ? WebsiteLeadEntityModel : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? WebsiteNewsletterSubscriptionEntityModel : T extends EntityEnum.WORK_FROM_HOME_HISTORY ? WorkFromHomeHistoryEntityModel : T extends EntityEnum.LEAVE_HISTORY ? LeaveHistoryEntityModel : T extends EntityEnum.BANK_HISTORY ? BankHistoryEntityModel : T extends EntityEnum.REIMBURSEMENT_HISTORY ? ReimbursementHistoryEntityModel : T extends EntityEnum.CLIENT_USER_MAPPING ? ClientUserMappingEntityModel : T extends EntityEnum.CLIENT_INTRODUCING_MAPPING ? ClientIntroducingMappingEntityModel : T extends EntityEnum.HOLIDAY_LIST ? HolidayListEntityModel : T extends EntityEnum.CRON_JOBS ? CronJobsEntityModel : T extends EntityEnum.TO_DO_LIST ? ToDoListEntityModel : T extends EntityEnum.CLIENT_QUOTE ? ClientQuoteEntityModel : T extends EntityEnum.CLIENT_QUOTE_RATE ? ClientQuoteRateEntityModel : T extends EntityEnum.BILLING_PROFILE ? BillingProfileEntityModel : T extends EntityEnum.PROJECT_REVENUE_SPLIT_MAPPING ? ProjectRevenueSplitMappingEntityModel : T extends EntityEnum.WEBSITE_LEAD ? WebsiteLeadEntityModel : T extends EntityEnum.WEBSITE_NEWSLETTER_SUBSCRIPTION ? WebsiteNewsletterSubscriptionEntityModel : T extends EntityEnum.CLIENT_QUOTE ? ClientQuoteEntityModel : T extends EntityEnum.CLIENT_QUOTE_RATE ? ClientQuoteRateEntityModel : T extends EntityEnum.DESIGNATION ? DesignationEntityModel : T extends EntityEnum.RATE ? RateEntityModel : T extends EntityEnum.ENTITY_HISTORY ? EntityHistoryEntityModel : T extends EntityEnum.LEAVE_APPROVAL ? LeaveApprovalEntityModel : UserEntityModel;
|
|
398
401
|
export type EntityMap = {
|
|
399
402
|
[key in EntityEnum | VirtualEntityEnum]: EnumToModel<key>[];
|
|
400
403
|
} & {
|
|
@@ -100,6 +100,7 @@ var EntityEnum;
|
|
|
100
100
|
EntityEnum["CLIENT_QUOTE"] = "client_quote";
|
|
101
101
|
EntityEnum["CLIENT_QUOTE_RATE"] = "client_quote_rate";
|
|
102
102
|
EntityEnum["ENTITY_HISTORY"] = "entity_history";
|
|
103
|
+
EntityEnum["LEAVE_APPROVAL"] = "leave_approval";
|
|
103
104
|
})(EntityEnum || (exports.EntityEnum = EntityEnum = {}));
|
|
104
105
|
var VirtualEntityEnum;
|
|
105
106
|
(function (VirtualEntityEnum) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IEntityAuditColumn } from "./entity-audit-columns.interface";
|
|
2
|
+
import { Nullable } from "./entity.utils.interface";
|
|
3
|
+
import { LeaveApprovalStatusEnum } from "../enums/leave_approval_status_enum";
|
|
4
|
+
export interface ILeaveApprovalEntity extends IEntityAuditColumn {
|
|
5
|
+
id: number;
|
|
6
|
+
leaveId: number;
|
|
7
|
+
approverId: number;
|
|
8
|
+
status: LeaveApprovalStatusEnum;
|
|
9
|
+
reason?: Nullable<string>;
|
|
10
|
+
}
|
|
@@ -43,6 +43,7 @@ const holiday_list_entity_model_1 = require("./holiday_list.entity.model");
|
|
|
43
43
|
const industry_entity_model_1 = require("./industry.entity.model");
|
|
44
44
|
const intermediary_bank_entity_model_1 = require("./intermediary-bank.entity.model");
|
|
45
45
|
const leave_entity_model_1 = require("./leave.entity.model");
|
|
46
|
+
const leave_approval_entity_model_1 = require("./leave_approval.entity.model");
|
|
46
47
|
const leave_count_entity_model_1 = require("./leave_count.entity.model");
|
|
47
48
|
const leave_history_entity_model_1 = require("./leave_history.entity.model");
|
|
48
49
|
const moving_timesheet_entity_model_1 = require("./moving-timesheet.entity.model");
|
|
@@ -176,6 +177,7 @@ exports.entityEnumToEntityModel = {
|
|
|
176
177
|
[entity_utils_interface_1.EntityEnum.PROJECT_REVENUE_SPLIT_MAPPING]: project_revenue_split_mapping_model_1.ProjectRevenueSplitMappingEntityModel.fromEntity,
|
|
177
178
|
[entity_utils_interface_1.EntityEnum.BILLING_PROFILE]: billing_profile_entity_model_1.BillingProfileEntityModel.fromEntity,
|
|
178
179
|
[entity_utils_interface_1.EntityEnum.ENTITY_HISTORY]: entity_history_entity_model_1.EntityHistoryEntityModel.fromEntity,
|
|
180
|
+
[entity_utils_interface_1.EntityEnum.LEAVE_APPROVAL]: leave_approval_entity_model_1.LeaveApprovalEntityModel.fromEntity,
|
|
179
181
|
};
|
|
180
182
|
function entityMapToModels(entityMap) {
|
|
181
183
|
for (const entityName in entityMap) {
|
|
@@ -55,7 +55,7 @@ class EntityHistoryEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
55
55
|
if (!matchingPermissionConfig) {
|
|
56
56
|
throw new exceptions_1.AppBadRequestException({
|
|
57
57
|
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
58
|
-
message: [`Action '${action}' is not valid for the current status.`],
|
|
58
|
+
message: [`Action '${action}' is not valid for the current status '${this.status}'.`],
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
@@ -4,11 +4,13 @@ import { DurationTypeEnum } from "../enums/duration-type.enum";
|
|
|
4
4
|
import { LeaveTypeEnum } from "../enums/leave-type.enum";
|
|
5
5
|
import { LeaveActionEnum } from "../enums/leave.action.enum";
|
|
6
6
|
import { LeaveStatusEnum } from "../enums/leave.status.enum";
|
|
7
|
+
import { ILeaveFlowConfigContextData } from "../flow-configs/leave.flow.config";
|
|
7
8
|
import { EntityEnum, VirtualEntityEnum } from "../interface/entity.utils.interface";
|
|
8
9
|
import { ILeaveEntity } from "../interface/leave.entity.interface";
|
|
9
10
|
import { RelationConfigs } from "../interface/relation-config.interface";
|
|
10
11
|
import { BaseEntityModel } from "./base.entity.model";
|
|
11
12
|
import { IRowActions } from "./interface/row-actions.interface";
|
|
13
|
+
import { LeaveApprovalEntityModel } from "./leave_approval.entity.model";
|
|
12
14
|
import { LeaveCountVirtualEntityModel } from "./leave_count.entity.model";
|
|
13
15
|
import { UserEntityModel } from "./user.entity.model";
|
|
14
16
|
export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE> implements ILeaveEntity {
|
|
@@ -29,6 +31,7 @@ export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE>
|
|
|
29
31
|
createdByUser?: UserEntityModel;
|
|
30
32
|
updatedByUser?: UserEntityModel;
|
|
31
33
|
user?: UserEntityModel;
|
|
34
|
+
leaveApprovals?: LeaveApprovalEntityModel[];
|
|
32
35
|
static fromEntity(data: ILeaveEntity): LeaveEntityModel;
|
|
33
36
|
getLeaveDuration(excludeWeekdays?: Weekday[], excludeDates?: DateCodeModel[]): number;
|
|
34
37
|
static getLeaveDuration(leaves: LeaveEntityModel[], excludeWeekdays?: Weekday[], excludeDates?: DateCodeModel[], leaveStatusEnum?: LeaveStatusEnum[]): number;
|
|
@@ -42,7 +45,13 @@ export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE>
|
|
|
42
45
|
isHolidaySucceeds(holidays: DateCodeModel[]): boolean;
|
|
43
46
|
isHolidayPrecedes(holidays: DateCodeModel[]): boolean;
|
|
44
47
|
getRelationConfigs(): any[];
|
|
45
|
-
static relationConfigs: RelationConfigs<[
|
|
48
|
+
static relationConfigs: RelationConfigs<[
|
|
49
|
+
VirtualEntityEnum.LEAVE_COUNT,
|
|
50
|
+
EntityEnum.USER,
|
|
51
|
+
EntityEnum.USER,
|
|
52
|
+
EntityEnum.USER,
|
|
53
|
+
EntityEnum.LEAVE_APPROVAL
|
|
54
|
+
], EntityEnum.LEAVE>;
|
|
46
55
|
static fromApiEntity(apiEntity: ILeaveEntity): LeaveEntityModel;
|
|
47
56
|
static getPendingApprovalStatuses(): LeaveStatusEnum[];
|
|
48
57
|
getStatusLabel(): string;
|
|
@@ -70,7 +79,8 @@ export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE>
|
|
|
70
79
|
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
71
80
|
[key: string]: () => boolean;
|
|
72
81
|
};
|
|
73
|
-
getNextStatus(currentUser: UserEntityModel, dto: ILeaveUpdateDto): LeaveStatusEnum;
|
|
82
|
+
getNextStatus(currentUser: UserEntityModel, dto: ILeaveUpdateDto, leaveFlowContext?: ILeaveFlowConfigContextData): LeaveStatusEnum;
|
|
74
83
|
mapStatusLabel(status: LeaveStatusEnum): string;
|
|
75
84
|
static getFormattedStatus(status: LeaveStatusEnum): string;
|
|
85
|
+
getOverallStatusByLeaveApprovals(): LeaveStatusEnum;
|
|
76
86
|
}
|
|
@@ -12,6 +12,7 @@ const relation_type_enum_1 = require("../enums/relation-type.enum");
|
|
|
12
12
|
const leave_flow_config_1 = require("../flow-configs/leave.flow.config");
|
|
13
13
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
14
14
|
const base_entity_model_1 = require("./base.entity.model");
|
|
15
|
+
const leave_approval_entity_model_1 = require("./leave_approval.entity.model");
|
|
15
16
|
class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
16
17
|
constructor() {
|
|
17
18
|
super(...arguments);
|
|
@@ -190,7 +191,7 @@ class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
190
191
|
LEAVE_DELETE_SELF: () => currentUser.id === this.createdBy,
|
|
191
192
|
};
|
|
192
193
|
}
|
|
193
|
-
getNextStatus(currentUser, dto) {
|
|
194
|
+
getNextStatus(currentUser, dto, leaveFlowContext = {}) {
|
|
194
195
|
if (!this.status) {
|
|
195
196
|
throw new exceptions_1.AppBadRequestException({
|
|
196
197
|
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
@@ -216,7 +217,7 @@ class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
216
217
|
if (!matchingPermissionConfig) {
|
|
217
218
|
throw new exceptions_1.AppBadRequestException({
|
|
218
219
|
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
219
|
-
message: [`Action '${dto.actionData.action}' is not valid for the current status.`],
|
|
220
|
+
message: [`Action '${dto.actionData.action}' is not valid for the current status '${this.status}'.`],
|
|
220
221
|
});
|
|
221
222
|
}
|
|
222
223
|
// Here we compare users permission & permissions from matchingPermissionConfig
|
|
@@ -233,7 +234,7 @@ class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
233
234
|
message: [`Current user does not have permission to ${dto.actionData.action} leave`],
|
|
234
235
|
});
|
|
235
236
|
}
|
|
236
|
-
const nextStatus = matchingPermissionConfig.next(
|
|
237
|
+
const nextStatus = matchingPermissionConfig.next(leaveFlowContext);
|
|
237
238
|
return nextStatus;
|
|
238
239
|
}
|
|
239
240
|
mapStatusLabel(status) {
|
|
@@ -262,6 +263,21 @@ class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
262
263
|
}
|
|
263
264
|
return (0, string_util_1.formatString)(statusToReturn);
|
|
264
265
|
}
|
|
266
|
+
getOverallStatusByLeaveApprovals() {
|
|
267
|
+
if (!this.leaveApprovals || this.leaveApprovals.length === 0) {
|
|
268
|
+
return this.status;
|
|
269
|
+
}
|
|
270
|
+
if (leave_approval_entity_model_1.LeaveApprovalEntityModel.areAllApproved(this.leaveApprovals)) {
|
|
271
|
+
return leave_status_enum_1.LeaveStatusEnum.APPROVED;
|
|
272
|
+
}
|
|
273
|
+
if (leave_approval_entity_model_1.LeaveApprovalEntityModel.isAnyRejected(this.leaveApprovals)) {
|
|
274
|
+
return leave_status_enum_1.LeaveStatusEnum.REJECTED;
|
|
275
|
+
}
|
|
276
|
+
if (leave_approval_entity_model_1.LeaveApprovalEntityModel.isAnyEscalated(this.leaveApprovals)) {
|
|
277
|
+
return leave_status_enum_1.LeaveStatusEnum.PENDING_APPROVAL;
|
|
278
|
+
}
|
|
279
|
+
return this.status;
|
|
280
|
+
}
|
|
265
281
|
}
|
|
266
282
|
exports.LeaveEntityModel = LeaveEntityModel;
|
|
267
283
|
LeaveEntityModel.relationConfigs = [
|
|
@@ -301,4 +317,13 @@ LeaveEntityModel.relationConfigs = [
|
|
|
301
317
|
key: "employeeId",
|
|
302
318
|
},
|
|
303
319
|
},
|
|
320
|
+
{
|
|
321
|
+
name: entity_utils_interface_1.EntityEnum.LEAVE_APPROVAL,
|
|
322
|
+
relation: relation_type_enum_1.RelationType.MANY,
|
|
323
|
+
key: "leaveApprovals",
|
|
324
|
+
mapKeyConfig: {
|
|
325
|
+
relationKey: "leaveId",
|
|
326
|
+
key: "id",
|
|
327
|
+
},
|
|
328
|
+
},
|
|
304
329
|
];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
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 { IRowActions } from "./interface/row-actions.interface";
|
|
6
|
+
import { ILeaveApprovalEntity } from "../interface/leave_approval.entity.interface";
|
|
7
|
+
import { LeaveApprovalStatusEnum } from "../enums/leave_approval_status_enum";
|
|
8
|
+
import { LeaveEntityModel } from "./leave.entity.model";
|
|
9
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
10
|
+
import { LeaveApprovalActionEnum } from "../../api";
|
|
11
|
+
import { ILeaveApprovalFlowConfigContextData } from "../flow-configs/leave_approval_flow.config";
|
|
12
|
+
export declare class LeaveApprovalEntityModel extends BaseEntityModel<EntityEnum.LEAVE_APPROVAL> implements ILeaveApprovalEntity {
|
|
13
|
+
id: number;
|
|
14
|
+
leaveId: number;
|
|
15
|
+
approverId: number;
|
|
16
|
+
reason?: string;
|
|
17
|
+
status: LeaveApprovalStatusEnum;
|
|
18
|
+
createdOn: number;
|
|
19
|
+
updatedOn: number;
|
|
20
|
+
createdBy: number;
|
|
21
|
+
updatedBy: number;
|
|
22
|
+
leave?: LeaveEntityModel;
|
|
23
|
+
user?: UserEntityModel;
|
|
24
|
+
static relationConfigs: RelationConfigs<[EntityEnum.LEAVE, EntityEnum.USER], EntityEnum.LEAVE_APPROVAL>;
|
|
25
|
+
static fromEntity(entity: ILeaveApprovalEntity): LeaveApprovalEntityModel;
|
|
26
|
+
getRelationConfigs(): any[];
|
|
27
|
+
getNextStatus(currentUser: IUserEntity, action: LeaveApprovalActionEnum, leaveApprovalFlowConfigContextData: ILeaveApprovalFlowConfigContextData): LeaveApprovalStatusEnum;
|
|
28
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
29
|
+
combinedActions?: Record<string, {
|
|
30
|
+
combineActions: LeaveApprovalActionEnum[];
|
|
31
|
+
label: string;
|
|
32
|
+
}>;
|
|
33
|
+
customLabels?: Partial<Record<LeaveApprovalActionEnum, string>>;
|
|
34
|
+
}): IRowActions<EntityEnum.LEAVE_APPROVAL>[];
|
|
35
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
36
|
+
[key: string]: () => boolean;
|
|
37
|
+
};
|
|
38
|
+
static areAllApproved(models: LeaveApprovalEntityModel[]): boolean;
|
|
39
|
+
static isAnyRejected(models: LeaveApprovalEntityModel[]): boolean;
|
|
40
|
+
static isAnyPending(models: LeaveApprovalEntityModel[]): boolean;
|
|
41
|
+
static isAnyEscalated(models: LeaveApprovalEntityModel[]): boolean;
|
|
42
|
+
}
|