law-common 11.1.1-beta.0 → 11.1.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { EntityEnum, EnumEntityType, VendorInvoiceActionEnum, VendorInvoiceActionStatusEnum } from "../../entities";
1
+ import { EntityEnum, EnumEntityType, VendorInvoiceActionEnum, VendorInvoiceActionStatusEnum, VendorInvoicePaymentEntityModel } from "../../entities";
2
2
  import { IDeleteDocumentDetails } from "../../misc";
3
3
  import { DeepPartialButRequired } from "./api.utils.interface";
4
4
  import { IVendorInvoiceCreateDto } from "./vendor_invoice.create.dto.interface";
@@ -10,4 +10,5 @@ export type IVendorInvoiceUpdateDto = DeepPartialButRequired<IVendorInvoiceCreat
10
10
  export interface IVendorInvoiceActionDataDto {
11
11
  action: VendorInvoiceActionEnum;
12
12
  remark?: string;
13
+ vendorInvoicePayment?: VendorInvoicePaymentEntityModel;
13
14
  }
@@ -1,2 +1,10 @@
1
- import { IVendorInvoiceFlowConfig } from "../../api";
2
- export declare const vendorInvoiceFlowConfig: IVendorInvoiceFlowConfig;
1
+ import { FlowConfig } from "./flow-config.type";
2
+ import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action.enum";
3
+ import { VendorInvoiceActionStatusEnum } from "../enums/vendor_invoice_action_status_enum";
4
+ import { VendorInvoicePaymentEntityModel } from "../model/vendor_invoice_payment.entity.model";
5
+ import { VendorInvoiceEntityModel } from "../model/vendor_invoice.entity.model";
6
+ export interface IVendorInvoiceFlowConfigContextData {
7
+ vendorInvoicePayment?: VendorInvoicePaymentEntityModel;
8
+ existingVendorInvoice?: VendorInvoiceEntityModel;
9
+ }
10
+ export declare const vendorInvoiceFlowConfig: FlowConfig<VendorInvoiceActionStatusEnum, VendorInvoiceActionEnum, IVendorInvoiceFlowConfigContextData>;
@@ -3,221 +3,107 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.vendorInvoiceFlowConfig = void 0;
4
4
  const vendor_invoice_action_enum_1 = require("../enums/vendor_invoice_action.enum");
5
5
  const vendor_invoice_action_status_enum_1 = require("../enums/vendor_invoice_action_status_enum");
6
+ const base_flow_config_factory_1 = require("./base-flow-config.factory");
7
+ const VENDOR_INVOICE_APPROVE_PERMISSION = ["VENDOR_INVOICE_APPROVE"];
8
+ const VENDOR_INVOICE_UPDATE_PERMISSION = ["VENDOR_INVOICE_UPDATE"];
9
+ const ACTION_MAP = {
10
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: {
11
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED],
12
+ permissions: VENDOR_INVOICE_APPROVE_PERMISSION,
13
+ },
14
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
15
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.CREATE_APPROVAL, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL],
16
+ permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
17
+ },
18
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: {
19
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REJECTED, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES],
20
+ permissions: VENDOR_INVOICE_APPROVE_PERMISSION,
21
+ },
22
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: {
23
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL],
24
+ permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
25
+ },
26
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: {
27
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE],
28
+ permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
29
+ },
30
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT]: {
31
+ reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED],
32
+ permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
33
+ },
34
+ };
35
+ const { createActionConfig, createTransition } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
36
+ // CREATE_APPROVAL status transitions
37
+ const transitionCreateApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED);
38
+ const transitionCreateApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.CREATE_APPROVAL);
39
+ const transitionCreateApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REJECTED);
40
+ const transitionCreateApprovalStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED);
41
+ // EDIT_APPROVAL status transitions
42
+ const transitionEditApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED);
43
+ const transitionEditApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL);
44
+ const transitionEditApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES);
45
+ // DELETE_APPROVAL status transitions
46
+ const transitionDeleteApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED);
47
+ const transitionDeleteApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES);
48
+ // APPROVED status transitions
49
+ const transitionApprovedStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL);
50
+ const transitionApprovedStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL);
51
+ const transitionApprovedStatusUpdatePaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE);
52
+ const createTransitionApprovedStatusPaymentAction = createTransition((context) => {
53
+ const { vendorInvoicePayment, existingVendorInvoice } = context;
54
+ if (vendorInvoicePayment && existingVendorInvoice) {
55
+ if (existingVendorInvoice.totalInvoiceAmount === existingVendorInvoice.paidAmount + existingVendorInvoice.adjustedAmount + vendorInvoicePayment.amount) {
56
+ return vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE;
57
+ }
58
+ }
59
+ return vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED;
60
+ });
61
+ const transitionApprovedStatusPaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT, createTransitionApprovedStatusPaymentAction);
62
+ // REQUEST_CHANGES status transitions
63
+ const transitionRequestChangesStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL);
64
+ const transitionRequestChangesStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL);
6
65
  exports.vendorInvoiceFlowConfig = {
7
66
  [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.CREATE_APPROVAL]: {
8
67
  actions: {
9
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: {
10
- permissions: ["VENDOR_INVOICE_APPROVE"],
11
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED,
12
- },
13
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
14
- permissions: ["VENDOR_INVOICE_UPDATE"],
15
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.CREATE_APPROVAL,
16
- },
17
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: {
18
- permissions: ["VENDOR_INVOICE_APPROVE"],
19
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REJECTED,
20
- },
21
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: {
22
- permissions: ["VENDOR_INVOICE_UPDATE"],
23
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED,
24
- },
68
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionCreateApprovalStatusApproveAction,
69
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionCreateApprovalStatusEditAction,
70
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: transitionCreateApprovalStatusRejectAction,
71
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionCreateApprovalStatusDeleteAction,
25
72
  },
26
73
  },
27
74
  [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL]: {
28
75
  actions: {
29
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: {
30
- permissions: ["VENDOR_INVOICE_APPROVE"],
31
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED,
32
- },
33
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
34
- permissions: ["VENDOR_INVOICE_UPDATE"],
35
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL,
36
- },
37
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: {
38
- permissions: ["VENDOR_INVOICE_APPROVE"],
39
- // next: () => VendorInvoiceActionStatusEnum.RESOLVED_REJECTED,
40
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES,
41
- },
76
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionEditApprovalStatusApproveAction,
77
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionEditApprovalStatusEditAction,
78
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: transitionEditApprovalStatusRejectAction,
42
79
  // [VendorInvoiceActionEnum.RECALL]: {
43
- // permissions: ["VENDOR_INVOICE_UPDATE"],
80
+ // permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
44
81
  // next: () => VendorInvoiceActionStatusEnum.DELETED,
45
82
  // },
46
83
  },
47
84
  },
48
85
  [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL]: {
49
86
  actions: {
50
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: {
51
- permissions: ["VENDOR_INVOICE_APPROVE"],
52
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETED,
53
- },
54
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: {
55
- permissions: ["VENDOR_INVOICE_APPROVE"],
56
- // next: () => VendorInvoiceActionStatusEnum.RESOLVED_REJECTED,
57
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES,
58
- },
87
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionDeleteApprovalStatusApproveAction,
88
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: transitionDeleteApprovalStatusRejectAction,
59
89
  // [VendorInvoiceActionEnum.RECALL]: {
60
- // permissions: ["VENDOR_INVOICE_UPDATE"],
90
+ // permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
61
91
  // next: () => VendorInvoiceActionStatusEnum.DELETED,
62
92
  // },
63
93
  },
64
94
  },
65
95
  [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED]: {
66
96
  actions: {
67
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
68
- permissions: ["VENDOR_INVOICE_UPDATE"],
69
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL,
70
- },
71
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: {
72
- permissions: ["VENDOR_INVOICE_UPDATE"],
73
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL,
74
- },
75
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: {
76
- permissions: ["VENDOR_INVOICE_UPDATE"],
77
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE,
78
- },
97
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionApprovedStatusEditAction,
98
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
99
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: transitionApprovedStatusUpdatePaymentAction,
100
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT]: transitionApprovedStatusPaymentAction,
79
101
  },
80
102
  },
81
103
  [vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.REQUEST_CHANGES]: {
82
104
  actions: {
83
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
84
- permissions: ["VENDOR_INVOICE_UPDATE"],
85
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.EDIT_APPROVAL,
86
- },
87
- [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: {
88
- permissions: ["VENDOR_INVOICE_UPDATE"],
89
- next: () => vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.DELETE_APPROVAL,
90
- },
105
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionRequestChangesStatusEditAction,
106
+ [vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionRequestChangesStatusDeleteAction,
91
107
  },
92
108
  },
93
- // [VendorInvoiceActionStatusEnum.RESOLVED_REJECTED]: {
94
- // actions: {
95
- // [VendorInvoiceActionEnum.EDIT]: {
96
- // permissions: ["VENDOR_INVOICE_UPDATE"],
97
- // next: () => VendorInvoiceActionStatusEnum.EDIT_APPROVAL,
98
- // },
99
- // [VendorInvoiceActionEnum.DELETE]: {
100
- // permissions: ["VENDOR_INVOICE_UPDATE"],
101
- // next: () => VendorInvoiceActionStatusEnum.DELETE_APPROVAL,
102
- // },
103
- // },
104
- // },
105
109
  };
106
- // import { IVendorInvoiceFlowContextData } from "../../api";
107
- // import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action.enum";
108
- // import { VendorInvoiceActionStatusEnum } from "../enums/vendor_invoice_action_status_enum";
109
- // import { VendorInvoiceItemActionEnum } from "../enums/vendor_invoice_item_action.enum";
110
- // import { VendorInvoiceItemStatus } from "../enums/vendor_invoice_item_status.enum";
111
- // import { IVendorInvoiceItemEntity } from "../interface/vendor_invoice_item.entity.interface";
112
- // import { FlowConfig, ParentChildFlowConfig } from "./flow-config.type";
113
- // export type VendorInvoiceFlowConfig<S extends string, A extends string, CS extends string = never, CA extends string = never> = {
114
- // parent?: FlowConfig<S, A>;
115
- // child?: FlowConfig<CS, CA>;
116
- // };
117
- // export const vendorInvoiceConfigFlow: ParentChildFlowConfig<
118
- // VendorInvoiceActionStatusEnum,
119
- // VendorInvoiceActionEnum,
120
- // VendorInvoiceItemStatus,
121
- // VendorInvoiceItemActionEnum,
122
- // IVendorInvoiceFlowContextData
123
- // > = {
124
- // parent: {
125
- // [VendorInvoiceActionStatusEnum.PENDING_APPROVAL]: {
126
- // actions: {
127
- // [VendorInvoiceActionEnum.EDIT]: {
128
- // permissions: ["VENDOR_INVOICE_UPDATE"],
129
- // next: (data?: IVendorInvoiceFlowContextData) => {
130
- // if (data && areAllVendorItemsInFinalState(data)) {
131
- // if (areAllVendorItemsApproved(data)) {
132
- // return VendorInvoiceActionStatusEnum.APPROVED;
133
- // }
134
- // if (areAllVendorItemsRejected(data)) {
135
- // return VendorInvoiceActionStatusEnum.REJECTED;
136
- // }
137
- // // approved + deleted
138
- // if (areAllVendorItemsInStates(data.items, [VendorInvoiceItemStatus.APPROVED, VendorInvoiceItemStatus.DELETED])) {
139
- // return VendorInvoiceActionStatusEnum.APPROVED;
140
- // }
141
- // // rejected + deleted
142
- // if (areAllVendorItemsInStates(data.items, [VendorInvoiceItemStatus.REJECTED, VendorInvoiceItemStatus.DELETED])) {
143
- // return VendorInvoiceActionStatusEnum.REJECTED;
144
- // }
145
- // return VendorInvoiceActionStatusEnum.PARTIALLY_APPROVED;
146
- // }
147
- // return VendorInvoiceActionStatusEnum.PENDING_APPROVAL;
148
- // },
149
- // },
150
- // [VendorInvoiceActionEnum.DELETE]: {
151
- // permissions: ["VENDOR_INVOICE_UPDATE"],
152
- // next: () => VendorInvoiceActionStatusEnum.DELETED,
153
- // },
154
- // },
155
- // },
156
- // [VendorInvoiceActionStatusEnum.APPROVED]: {
157
- // actions: {
158
- // [VendorInvoiceActionEnum.UPDATE_PAYMENT]: {
159
- // permissions: ["VENDOR_INVOICE_PAYMENT_PROCESSOR"],
160
- // next: () => VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE,
161
- // },
162
- // },
163
- // },
164
- // [VendorInvoiceActionStatusEnum.PARTIALLY_APPROVED]: {
165
- // actions: {
166
- // [VendorInvoiceActionEnum.UPDATE_PAYMENT]: {
167
- // permissions: ["VENDOR_INVOICE_PAYMENT_PROCESSOR"],
168
- // next: () => VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE,
169
- // },
170
- // },
171
- // },
172
- // },
173
- // child: {
174
- // [VendorInvoiceItemStatus.PENDING]: {
175
- // actions: {
176
- // [VendorInvoiceItemActionEnum.APPROVE]: {
177
- // permissions: ["VENDOR_INVOICE_APPROVE"],
178
- // next: () => VendorInvoiceItemStatus.APPROVED,
179
- // },
180
- // [VendorInvoiceItemActionEnum.PENDING]: {
181
- // permissions: ["VENDOR_INVOICE_UPDATE"],
182
- // next: () => VendorInvoiceItemStatus.PENDING,
183
- // },
184
- // [VendorInvoiceItemActionEnum.REJECT]: {
185
- // permissions: ["VENDOR_INVOICE_APPROVE"],
186
- // next: () => VendorInvoiceItemStatus.REJECTED,
187
- // },
188
- // [VendorInvoiceItemActionEnum.DELETE]: {
189
- // permissions: ["VENDOR_INVOICE_UPDATE"],
190
- // next: () => VendorInvoiceItemStatus.DELETED,
191
- // },
192
- // },
193
- // },
194
- // [VendorInvoiceItemStatus.DELETED]: {
195
- // actions: {
196
- // [VendorInvoiceItemActionEnum.PENDING]: {
197
- // permissions: ["VENDOR_INVOICE_UPDATE"],
198
- // next: () => VendorInvoiceItemStatus.PENDING,
199
- // },
200
- // },
201
- // },
202
- // },
203
- // };
204
- // function areAllVendorItemsApproved(data: IVendorInvoiceFlowContextData): boolean {
205
- // const { items } = data;
206
- // return items.length > 0 ? items.every((row) => row.status === VendorInvoiceItemStatus.APPROVED) : false;
207
- // }
208
- // function areAllVendorItemsRejected(data: IVendorInvoiceFlowContextData): boolean {
209
- // const { items } = data;
210
- // return items.length > 0 ? items.every((row) => row.status === VendorInvoiceItemStatus.REJECTED) : false;
211
- // }
212
- // function areAllVendorItemsInFinalState(data: IVendorInvoiceFlowContextData): boolean {
213
- // const { items } = data;
214
- // return items.length > 0
215
- // ? items.every(
216
- // (row) =>
217
- // row.status === VendorInvoiceItemStatus.APPROVED || row.status === VendorInvoiceItemStatus.REJECTED || row.status === VendorInvoiceItemStatus.DELETED,
218
- // )
219
- // : false;
220
- // }
221
- // function areAllVendorItemsInStates(items: IVendorInvoiceItemEntity[], states: VendorInvoiceItemStatus[]): boolean {
222
- // return items.every((row) => states.includes(row.status));
223
- // }
@@ -1,11 +1,9 @@
1
1
  import { EntityEnum, Nullable } from "../interface/entity.utils.interface";
2
2
  import { RelationConfigs } from "../interface/relation-config.interface";
3
3
  import { BaseEntityModel } from "./base.entity.model";
4
- import { IVendorInvoiceUpdateDto } from "../../api";
5
4
  import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action.enum";
6
5
  import { VendorInvoiceActionStatusEnum } from "../enums/vendor_invoice_action_status_enum";
7
6
  import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_status_enum";
8
- import { IUserEntity } from "../interface/user.entity.interface";
9
7
  import { IVendorInvoiceEntity } from "../interface/vendor_invoice.entity.interface";
10
8
  import { IRowActions } from "./interface/row-actions.interface";
11
9
  import { OfficeLocationEntityModel } from "./office_location.entity.model";
@@ -42,7 +40,6 @@ export declare class VendorInvoiceEntityModel extends BaseEntityModel<EntityEnum
42
40
  static relationConfigs: RelationConfigs<[EntityEnum.VENDOR, EntityEnum.OFFICE_LOCATION, EntityEnum.VENDOR_INVOICE_ITEM], EntityEnum.VENDOR_INVOICE>;
43
41
  static fromEntity(entity: IVendorInvoiceEntity): VendorInvoiceEntityModel;
44
42
  getRelationConfigs(): any[];
45
- getNextStatusForParent(currentUser: IUserEntity, dto: IVendorInvoiceUpdateDto): VendorInvoiceActionStatusEnum;
46
43
  getAvailableActions(currentUser: UserEntityModel, config?: {
47
44
  combinedActions?: Record<string, {
48
45
  combineActions: VendorInvoiceActionEnum[];
@@ -3,11 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VendorInvoiceEntityModel = 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 error_key_enum_1 = require("../../enums/error.key.enum");
7
- const exceptions_1 = require("../../exceptions");
8
6
  const utils_1 = require("../../utils");
9
7
  const relation_type_enum_1 = require("../enums/relation-type.enum");
10
- const vendor_invoice_action_enum_1 = require("../enums/vendor_invoice_action.enum");
11
8
  const vendor_invoice_action_status_enum_1 = require("../enums/vendor_invoice_action_status_enum");
12
9
  const vendor_invoice_status_enum_1 = require("../enums/vendor_invoice_status_enum");
13
10
  const vendor_invoice_flow_config_1 = require("../flow-configs/vendor-invoice-flow.config");
@@ -43,53 +40,53 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
43
40
  getRelationConfigs() {
44
41
  return this.constructor.prototype.constructor.relationConfigs || [];
45
42
  }
46
- getNextStatusForParent(currentUser, dto) {
47
- const flowForStatus = vendor_invoice_flow_config_1.vendorInvoiceFlowConfig[this.actionStatus];
48
- if (!flowForStatus) {
49
- throw new exceptions_1.AppBadRequestException({
50
- key: error_key_enum_1.ErrorKeyEnum.STATUS,
51
- message: [`Status not found: ${this.status}`],
52
- });
53
- }
54
- if (!dto.actionData) {
55
- dto.actionData = { action: vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT };
56
- }
57
- const matchingPermissionConfig = flowForStatus.actions[dto.actionData.action];
58
- if (!matchingPermissionConfig) {
59
- throw new exceptions_1.AppBadRequestException({
60
- key: error_key_enum_1.ErrorKeyEnum.ACTION,
61
- message: [`Action '${dto.actionData.action}' is not valid for the current status '${this.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) => { var _a; return (_a = currentUser.permissions) === null || _a === void 0 ? void 0 : _a.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 ${dto.actionData.action} vendor`],
75
- });
76
- }
77
- if (!this.vendorInvoiceItems) {
78
- throw new exceptions_1.AppBadRequestException({
79
- key: error_key_enum_1.ErrorKeyEnum.VENDOR_INVOICE_ITEMS,
80
- message: [`Vendor invoice items are required for getting next status of Vendor Invoice.`],
81
- });
82
- }
83
- // const contextFlowData: IVendorInvoiceFlowContextData = {
84
- // invoice: this,
85
- // items: this.vendorInvoiceItems,
86
- // };
87
- let nextStatus = vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.CREATE_APPROVAL;
88
- if (matchingPermissionConfig.next) {
89
- nextStatus = matchingPermissionConfig.next();
90
- }
91
- return nextStatus;
92
- }
43
+ // getNextStatusForParent(currentUser: IUserEntity, dto: IVendorInvoiceUpdateDto): VendorInvoiceActionStatusEnum {
44
+ // const flowForStatus = vendorInvoiceFlowConfig[this.actionStatus];
45
+ // if (!flowForStatus) {
46
+ // throw new AppBadRequestException({
47
+ // key: ErrorKeyEnum.STATUS,
48
+ // message: [`Status not found: ${this.status}`],
49
+ // });
50
+ // }
51
+ // if (!dto.actionData) {
52
+ // dto.actionData = { action: VendorInvoiceActionEnum.EDIT };
53
+ // }
54
+ // const matchingPermissionConfig = flowForStatus.actions[dto.actionData.action];
55
+ // if (!matchingPermissionConfig) {
56
+ // throw new AppBadRequestException({
57
+ // key: ErrorKeyEnum.ACTION,
58
+ // message: [`Action '${dto.actionData.action}' is not valid for the current status '${this.status}'.`],
59
+ // });
60
+ // }
61
+ // if (!currentUser.permissions || currentUser.permissions.length === 0) {
62
+ // throw new AppBadRequestException({
63
+ // key: ErrorKeyEnum.PERMISSIONS,
64
+ // message: ["Permission not available for currentUser"],
65
+ // });
66
+ // }
67
+ // const hasPermission = matchingPermissionConfig.permissions.some((permission: string) => currentUser.permissions?.includes(permission));
68
+ // if (!hasPermission) {
69
+ // throw new AppBadRequestException({
70
+ // key: ErrorKeyEnum.PERMISSION,
71
+ // message: [`Current user does not have permission to ${dto.actionData.action} vendor`],
72
+ // });
73
+ // }
74
+ // if (!this.vendorInvoiceItems) {
75
+ // throw new AppBadRequestException({
76
+ // key: ErrorKeyEnum.VENDOR_INVOICE_ITEMS,
77
+ // message: [`Vendor invoice items are required for getting next status of Vendor Invoice.`],
78
+ // });
79
+ // }
80
+ // // const contextFlowData: IVendorInvoiceFlowContextData = {
81
+ // // invoice: this,
82
+ // // items: this.vendorInvoiceItems,
83
+ // // };
84
+ // let nextStatus: VendorInvoiceActionStatusEnum = VendorInvoiceActionStatusEnum.CREATE_APPROVAL;
85
+ // if (matchingPermissionConfig.next) {
86
+ // nextStatus = matchingPermissionConfig.next();
87
+ // }
88
+ // return nextStatus;
89
+ // }
93
90
  getAvailableActions(currentUser, config) {
94
91
  var _a;
95
92
  const params = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "law-common",
3
- "version": "11.1.1-beta.0",
3
+ "version": "11.1.1-beta.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [