law-common 13.0.1-beta.2 → 13.0.1-beta.21
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/api/interface/client_affiliate.create.dto.interface.d.ts +1 -1
- package/dist/src/api/interface/client_quote_rate.create.dto.interface.d.ts +2 -1
- package/dist/src/api/interface/document_upload.create.dto.interface.d.ts +2 -1
- package/dist/src/api/interface/intermediary_bank.create.dto.interface.d.ts +2 -1
- package/dist/src/api/interface/intermediary_bank.update.dto.interface.d.ts +1 -1
- package/dist/src/api/interface/office_location.create.dto.interface.d.ts +3 -1
- package/dist/src/api/interface/office_location.update.dto.interface.d.ts +2 -1
- package/dist/src/api/interface/timesheet.entity.response.interface.d.ts +7 -13
- package/dist/src/api/interface/to_do_list.create.dto.interface.d.ts +3 -1
- package/dist/src/api/interface/to_do_list.update.dto.interface.d.ts +2 -1
- package/dist/src/entities/enums/billing_profile_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/billing_profile_status_enum.js +9 -0
- package/dist/src/entities/enums/client_affiliate_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/client_affiliate_status_enum.js +9 -0
- package/dist/src/entities/enums/client_quote_rate_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/client_quote_rate_status_enum.js +9 -0
- package/dist/src/entities/enums/document_upload_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/document_upload_status_enum.js +9 -0
- package/dist/src/entities/enums/expense_type_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/expense_type_status_enum.js +9 -0
- package/dist/src/entities/enums/intermediary_bank_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/intermediary_bank_status_enum.js +9 -0
- package/dist/src/entities/enums/office_location_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/office_location_status_enum.js +9 -0
- package/dist/src/entities/enums/to_do_list_status_enum.d.ts +5 -0
- package/dist/src/entities/enums/to_do_list_status_enum.js +9 -0
- package/dist/src/entities/flow-configs/base-flow-config.factory.d.ts +20 -1
- package/dist/src/entities/flow-configs/base-flow-config.factory.js +1 -16
- package/dist/src/entities/flow-configs/{billing.flow.config.d.ts → billing_flow.config.d.ts} +1 -1
- package/dist/src/entities/flow-configs/billing_flow.config.js +305 -0
- package/dist/src/entities/flow-configs/billing_transaction_flow.config.d.ts +24 -0
- package/dist/src/entities/flow-configs/billing_transaction_flow.config.js +111 -0
- package/dist/src/entities/flow-configs/flow-config.type.d.ts +14 -0
- package/dist/src/entities/flow-configs/leave_flow.config.d.ts +7 -0
- package/dist/src/entities/flow-configs/leave_flow.config.js +117 -65
- package/dist/src/entities/flow-configs/moving_timesheet_flow.config.js +21 -8
- package/dist/src/entities/flow-configs/timesheet_flow.config.d.ts +5 -0
- package/dist/src/entities/flow-configs/timesheet_flow.config.js +420 -0
- package/dist/src/entities/flow-configs/vendor_flow.config.js +74 -60
- package/dist/src/entities/index.d.ts +11 -2
- package/dist/src/entities/index.js +11 -2
- package/dist/src/entities/interface/billing_profile.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/client_affiliate.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/client_quote_rate.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/document_upload.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/expense_type.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/field-constraint/billing_profile_field_constraints.interface.d.ts +2 -2
- package/dist/src/entities/interface/field-constraint/client_affiliate_field_constraints.interface.d.ts +1 -1
- package/dist/src/entities/interface/field-constraint/client_quote_rate_field_constraints.interface.d.ts +1 -1
- package/dist/src/entities/interface/field-constraint/document_upload_field_constraints.interface.d.ts +1 -1
- package/dist/src/entities/interface/field-constraint/expense_type_field_constraints.interface.d.ts +2 -2
- package/dist/src/entities/interface/field-constraint/office_location_field_constraints.interface.d.ts +3 -1
- package/dist/src/entities/interface/field-constraint/to_do_list_field_constraints.interface.d.ts +1 -1
- package/dist/src/entities/interface/intermediary_bank.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/office_location.entity.interface.d.ts +2 -0
- package/dist/src/entities/interface/to_do_list.entity.interface.d.ts +2 -0
- package/dist/src/entities/model/billing_profile.entity.model.d.ts +2 -0
- package/dist/src/entities/model/billing_profile.entity.model.js +2 -0
- package/dist/src/entities/model/client_affiliate.entity.model.d.ts +2 -1
- package/dist/src/entities/model/client_affiliate.entity.model.js +1 -0
- package/dist/src/entities/model/client_quote_rate.entity.model.d.ts +2 -0
- package/dist/src/entities/model/client_quote_rate.entity.model.js +2 -0
- package/dist/src/entities/model/document_upload.entity.model.d.ts +2 -0
- package/dist/src/entities/model/document_upload.entity.model.js +2 -0
- package/dist/src/entities/model/expense_type.entity.model.d.ts +2 -0
- package/dist/src/entities/model/expense_type.entity.model.js +2 -0
- package/dist/src/entities/model/intermediary_bank.entity.model.d.ts +2 -0
- package/dist/src/entities/model/intermediary_bank.entity.model.js +2 -0
- package/dist/src/entities/model/office_location.entity.model.d.ts +2 -0
- package/dist/src/entities/model/office_location.entity.model.js +2 -0
- package/dist/src/entities/model/to_do_list.entity.model.d.ts +2 -0
- package/dist/src/entities/model/to_do_list.entity.model.js +2 -0
- package/package.json +1 -1
- package/dist/src/entities/flow-configs/billing.flow.config.js +0 -209
- package/dist/src/entities/flow-configs/billing_transaction.flow.config.d.ts +0 -19
- package/dist/src/entities/flow-configs/billing_transaction.flow.config.js +0 -83
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.billingFlowConfig = void 0;
|
|
4
|
-
exports.getNextStatusTotalAmount = getNextStatusTotalAmount;
|
|
5
|
-
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
6
|
-
const exceptions_1 = require("../../exceptions");
|
|
7
|
-
const billing_action_enum_1 = require("../enums/billing_action_enum");
|
|
8
|
-
const billing_status_enum_1 = require("../enums/billing_status_enum");
|
|
9
|
-
exports.billingFlowConfig = {
|
|
10
|
-
[billing_status_enum_1.BillingStatusEnum.PENDING_APPROVAL]: {
|
|
11
|
-
description: "The Proforma Invoice has been created and is awaiting review and approval by internal stakeholders (org or project approvers).",
|
|
12
|
-
actions: {
|
|
13
|
-
[billing_action_enum_1.BillingActionsEnum.APPROVE]: {
|
|
14
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
15
|
-
next: () => billing_status_enum_1.BillingStatusEnum.INTERNAL_APPROVED,
|
|
16
|
-
description: "Internal Approved state signifies that the Proforma Invoice has been reviewed and verified by internal stakeholders.",
|
|
17
|
-
},
|
|
18
|
-
[billing_action_enum_1.BillingActionsEnum.REJECT]: {
|
|
19
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
20
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CANCELLED,
|
|
21
|
-
description: "Rejected state indicates that the Proforma Invoice was not approved and has been cancelled.",
|
|
22
|
-
},
|
|
23
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE]: {
|
|
24
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
25
|
-
next: () => billing_status_enum_1.BillingStatusEnum.PENDING_APPROVAL,
|
|
26
|
-
description: "Allows stakeholders to edit the Proforma Invoice while keeping it in Pending Approval status.",
|
|
27
|
-
},
|
|
28
|
-
[billing_action_enum_1.BillingActionsEnum.REQUEST_FOR_CHANGES]: {
|
|
29
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
30
|
-
next: () => billing_status_enum_1.BillingStatusEnum.REQUEST_CHANGES,
|
|
31
|
-
description: "Stakeholders have requested changes before approving the Proforma Invoice.",
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
[billing_status_enum_1.BillingStatusEnum.REQUEST_CHANGES]: {
|
|
36
|
-
description: "Stakeholders have reviewed the Proforma Invoice and requested modifications before it can be approved. The invoice is pending amendments by the billing team.",
|
|
37
|
-
actions: {
|
|
38
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE]: {
|
|
39
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
40
|
-
next: () => billing_status_enum_1.BillingStatusEnum.REQUEST_CHANGES,
|
|
41
|
-
description: "Allows modification of the Proforma Invoice based on stakeholder feedback.",
|
|
42
|
-
},
|
|
43
|
-
[billing_action_enum_1.BillingActionsEnum.SENT_FOR_APPROVAL]: {
|
|
44
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
45
|
-
next: () => billing_status_enum_1.BillingStatusEnum.PENDING_APPROVAL,
|
|
46
|
-
description: "Resubmits the updated Proforma Invoice for stakeholder approval.",
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
[billing_status_enum_1.BillingStatusEnum.INTERNAL_APPROVED]: {
|
|
51
|
-
description: "The Proforma Invoice has been reviewed and approved by internal stakeholders. It is now ready to be forwarded to the client for review.",
|
|
52
|
-
actions: {
|
|
53
|
-
[billing_action_enum_1.BillingActionsEnum.SEND_FOR_CLIENT_REVIEW]: {
|
|
54
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
55
|
-
next: () => billing_status_enum_1.BillingStatusEnum.PENDING_CLIENT_REVIEW,
|
|
56
|
-
description: "Invoice has been internally approved and is sent to the client for review.",
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
[billing_status_enum_1.BillingStatusEnum.PENDING_CLIENT_REVIEW]: {
|
|
61
|
-
description: "The Proforma Invoice has been shared with the client and is awaiting their response. The client may either accept the invoice or request revisions.",
|
|
62
|
-
actions: {
|
|
63
|
-
[billing_action_enum_1.BillingActionsEnum.CLIENT_REVISION]: {
|
|
64
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
65
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CLIENT_REVISION_APPROVAL,
|
|
66
|
-
description: "Client has requested revisions to the Proforma Invoice.",
|
|
67
|
-
},
|
|
68
|
-
[billing_action_enum_1.BillingActionsEnum.SEND_INVOICE]: {
|
|
69
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
70
|
-
next: () => billing_status_enum_1.BillingStatusEnum.PENDING_PAYMENT,
|
|
71
|
-
description: "Final invoice has been shared with the client and payment is awaited.",
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
[billing_status_enum_1.BillingStatusEnum.CLIENT_REVISION_APPROVAL]: {
|
|
76
|
-
description: "The client has requested revisions to the invoice. Internal stakeholders are reviewing whether to approve the revision request, reject it, or ask for further changes.",
|
|
77
|
-
actions: {
|
|
78
|
-
[billing_action_enum_1.BillingActionsEnum.APPROVAL]: {
|
|
79
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
80
|
-
next: () => billing_status_enum_1.BillingStatusEnum.REQUEST_CHANGES,
|
|
81
|
-
description: "Client revision has been reviewed and approved for further amendments.",
|
|
82
|
-
},
|
|
83
|
-
[billing_action_enum_1.BillingActionsEnum.REJECT]: {
|
|
84
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
85
|
-
next: () => billing_status_enum_1.BillingStatusEnum.REJECT_CLIENT_REVISION,
|
|
86
|
-
description: "Client revision request has been rejected by stakeholders.",
|
|
87
|
-
},
|
|
88
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE]: {
|
|
89
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
90
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CLIENT_REVISION_APPROVAL,
|
|
91
|
-
description: "Allows editing while client revision approval is in progress.",
|
|
92
|
-
},
|
|
93
|
-
[billing_action_enum_1.BillingActionsEnum.REQUEST_FOR_CHANGES]: {
|
|
94
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
95
|
-
next: () => billing_status_enum_1.BillingStatusEnum.REQUEST_CHANGES,
|
|
96
|
-
description: "Requests additional changes before approving the client revision.",
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
[billing_status_enum_1.BillingStatusEnum.REJECT_CLIENT_REVISION]: {
|
|
101
|
-
description: "The client's revision request has been rejected by internal stakeholders. The billing team can proceed to send the original invoice to the client.",
|
|
102
|
-
actions: {
|
|
103
|
-
[billing_action_enum_1.BillingActionsEnum.SEND_INVOICE]: {
|
|
104
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
105
|
-
next: () => billing_status_enum_1.BillingStatusEnum.INVOICE_SENT,
|
|
106
|
-
description: "Invoice has been sent despite client revision rejection.",
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
[billing_status_enum_1.BillingStatusEnum.INVOICE_SENT]: {
|
|
111
|
-
description: "The final invoice has been issued to the client following a rejected revision request. Payment is being tracked; partial payments may be recorded until the invoice is fully settled.",
|
|
112
|
-
actions: {
|
|
113
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE_PAYMENT]: {
|
|
114
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
115
|
-
next: (data) => {
|
|
116
|
-
return data ? getNextStatusTotalAmount(data) : billing_status_enum_1.BillingStatusEnum.INVOICE_SENT;
|
|
117
|
-
},
|
|
118
|
-
description: "Updates received payment details and recalculates outstanding amount.",
|
|
119
|
-
},
|
|
120
|
-
[billing_action_enum_1.BillingActionsEnum.REJECT]: {
|
|
121
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
122
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CANCELLED,
|
|
123
|
-
description: "Rejected state indicates that the Proforma Invoice was not approved and has been cancelled.",
|
|
124
|
-
},
|
|
125
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE]: {
|
|
126
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
127
|
-
next: () => billing_status_enum_1.BillingStatusEnum.INVOICE_SENT,
|
|
128
|
-
description: "Allows stakeholders to edit the invoice while keeping it in Invoice Sent status.",
|
|
129
|
-
},
|
|
130
|
-
[billing_action_enum_1.BillingActionsEnum.REGENERATE]: {
|
|
131
|
-
permissions: ["BILLING_UPDATE"],
|
|
132
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CANCELLED,
|
|
133
|
-
description: "Regenerates the billing by cancelling the current one and creating a replacement",
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
[billing_status_enum_1.BillingStatusEnum.PENDING_PAYMENT]: {
|
|
138
|
-
description: "The final invoice has been sent to the client and payment is awaited. Partial or full payments can be recorded; the invoice remains in this state until the total amount is fully settled.",
|
|
139
|
-
actions: {
|
|
140
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE_PAYMENT]: {
|
|
141
|
-
permissions: ["BILLING_AMENDMENT_ORG"],
|
|
142
|
-
next: (data) => {
|
|
143
|
-
return data ? getNextStatusTotalAmount(data) : billing_status_enum_1.BillingStatusEnum.PENDING_PAYMENT;
|
|
144
|
-
},
|
|
145
|
-
description: "Tracks partial or full payments until the invoice is completely settled.",
|
|
146
|
-
},
|
|
147
|
-
[billing_action_enum_1.BillingActionsEnum.REJECT]: {
|
|
148
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
149
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CANCELLED,
|
|
150
|
-
description: "Rejected state indicates that the Proforma Invoice was not approved and has been cancelled.",
|
|
151
|
-
},
|
|
152
|
-
[billing_action_enum_1.BillingActionsEnum.UPDATE]: {
|
|
153
|
-
permissions: ["BILLING_APPROVER_ORG", "BILLING_APPROVER_PROJECT"],
|
|
154
|
-
next: () => billing_status_enum_1.BillingStatusEnum.INVOICE_SENT,
|
|
155
|
-
description: "Allows stakeholders to edit the invoice while keeping it in Invoice Sent status.",
|
|
156
|
-
},
|
|
157
|
-
[billing_action_enum_1.BillingActionsEnum.REGENERATE]: {
|
|
158
|
-
permissions: ["BILLING_UPDATE"],
|
|
159
|
-
next: () => billing_status_enum_1.BillingStatusEnum.CANCELLED,
|
|
160
|
-
description: "Regenerates the billing by cancelling the current one and creating a replacement",
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
[billing_status_enum_1.BillingStatusEnum.SETTLED]: {
|
|
165
|
-
description: "The invoice has been fully settled. The total amount due has been accounted for through a combination of payments, credit notes, write-offs, TDS, and refunds. No further actions are required.",
|
|
166
|
-
actions: {},
|
|
167
|
-
},
|
|
168
|
-
};
|
|
169
|
-
function getNextStatusTotalAmount(data) {
|
|
170
|
-
var _a, _b, _c, _d, _e;
|
|
171
|
-
const { currentBilling, dto } = data;
|
|
172
|
-
if (!currentBilling) {
|
|
173
|
-
throw new exceptions_1.AppBadRequestException({
|
|
174
|
-
key: error_key_enum_1.ErrorKeyEnum.BILLING,
|
|
175
|
-
message: ["Current billing entity is required"],
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
if (!dto) {
|
|
179
|
-
throw new exceptions_1.AppBadRequestException({
|
|
180
|
-
key: error_key_enum_1.ErrorKeyEnum.BILLING,
|
|
181
|
-
message: ["Current billing entity is required"],
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
if (Number(currentBilling.totalAmount) ===
|
|
185
|
-
Number((_a = dto.totalAmountPaid) !== null && _a !== void 0 ? _a : currentBilling.totalAmountPaid) +
|
|
186
|
-
Number((_b = dto.creditNoteAmount) !== null && _b !== void 0 ? _b : currentBilling.creditNoteAmount) +
|
|
187
|
-
Number((_c = dto.writeoffAmount) !== null && _c !== void 0 ? _c : currentBilling.writeoffAmount) +
|
|
188
|
-
Number((_d = dto.tdsAmount) !== null && _d !== void 0 ? _d : currentBilling.tdsAmount) -
|
|
189
|
-
Number((_e = dto.refundAmount) !== null && _e !== void 0 ? _e : currentBilling.refundAmount)) {
|
|
190
|
-
return billing_status_enum_1.BillingStatusEnum.SETTLED;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
return billing_status_enum_1.BillingStatusEnum.PENDING_PAYMENT;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
exports.billingFlowConfig = addPdfViewToAllStatuses(exports.billingFlowConfig);
|
|
197
|
-
function addPdfViewToAllStatuses(config) {
|
|
198
|
-
const PDF_VIEW_ACTION = billing_action_enum_1.BillingActionsEnum.PDF_VIEW;
|
|
199
|
-
const pdfViewActionConfig = {
|
|
200
|
-
permissions: ["BILLING_VIEW_PDF"],
|
|
201
|
-
};
|
|
202
|
-
for (const [status, configEntry] of Object.entries(config)) {
|
|
203
|
-
const actions = configEntry.actions;
|
|
204
|
-
if (!actions[PDF_VIEW_ACTION]) {
|
|
205
|
-
actions[PDF_VIEW_ACTION] = Object.assign(Object.assign({}, pdfViewActionConfig), { next: (data) => status, description: "" });
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return config;
|
|
209
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { IBillingTransactionUpdateDto } from "../../api";
|
|
2
|
-
import { BillingTransactionActionEnum } from "../enums/billing_transaction_action_enum";
|
|
3
|
-
import { BillingTransactionStatusEnum } from "../enums/billing_transaction_status_enum";
|
|
4
|
-
import { IBillingTransactionEntity } from "../interface/billing_transaction.entity.interface";
|
|
5
|
-
export interface IBillingTransactionContextFlowData {
|
|
6
|
-
currentBillingTransactionEntity: IBillingTransactionEntity;
|
|
7
|
-
dto: IBillingTransactionUpdateDto;
|
|
8
|
-
}
|
|
9
|
-
export type IBillingTransactionFlowConfig = {
|
|
10
|
-
[key in BillingTransactionStatusEnum]?: {
|
|
11
|
-
actions: {
|
|
12
|
-
[key in BillingTransactionActionEnum]?: {
|
|
13
|
-
permissions: string[];
|
|
14
|
-
next: (data: IBillingTransactionContextFlowData) => BillingTransactionStatusEnum;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
export declare let billingTransactionFlowConfig: IBillingTransactionFlowConfig;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.billingTransactionFlowConfig = void 0;
|
|
4
|
-
const billing_transaction_action_enum_1 = require("../enums/billing_transaction_action_enum");
|
|
5
|
-
const billing_transaction_enum_1 = require("../enums/billing_transaction_enum");
|
|
6
|
-
const billing_transaction_status_enum_1 = require("../enums/billing_transaction_status_enum");
|
|
7
|
-
exports.billingTransactionFlowConfig = {
|
|
8
|
-
[billing_transaction_status_enum_1.BillingTransactionStatusEnum.APPROVED]: {
|
|
9
|
-
actions: {
|
|
10
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.UPDATE]: {
|
|
11
|
-
permissions: ["BILLING_TRANSACTION_UPDATE_SELF"],
|
|
12
|
-
next: (data) => decideNextStatus(data),
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
[billing_transaction_status_enum_1.BillingTransactionStatusEnum.WRITEOFF_APPROVAL_PENDING]: {
|
|
17
|
-
actions: {
|
|
18
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.APPROVE]: {
|
|
19
|
-
permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
20
|
-
next: () => billing_transaction_status_enum_1.BillingTransactionStatusEnum.APPROVED,
|
|
21
|
-
},
|
|
22
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.REJECT]: {
|
|
23
|
-
permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
24
|
-
next: () => billing_transaction_status_enum_1.BillingTransactionStatusEnum.REJECTED,
|
|
25
|
-
},
|
|
26
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.UPDATE]: {
|
|
27
|
-
permissions: ["BILLING_TRANSACTION_UPDATE_SELF"],
|
|
28
|
-
next: (data) => decideNextStatus(data),
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
[billing_transaction_status_enum_1.BillingTransactionStatusEnum.CREDITNOTE_APPROVAL_PENDING]: {
|
|
33
|
-
actions: {
|
|
34
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.APPROVE]: {
|
|
35
|
-
permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
36
|
-
next: () => billing_transaction_status_enum_1.BillingTransactionStatusEnum.APPROVED,
|
|
37
|
-
},
|
|
38
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.REJECT]: {
|
|
39
|
-
permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
40
|
-
next: () => billing_transaction_status_enum_1.BillingTransactionStatusEnum.REJECTED,
|
|
41
|
-
},
|
|
42
|
-
[billing_transaction_action_enum_1.BillingTransactionActionEnum.UPDATE]: {
|
|
43
|
-
permissions: ["BILLING_TRANSACTION_UPDATE_SELF"],
|
|
44
|
-
next: (data) => decideNextStatus(data),
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
// [BillingTransactionStatusEnum.ADJUST_AGAINST_CREDIT_NOTE_APPROVAL_PENDING]: {
|
|
49
|
-
// actions: {
|
|
50
|
-
// [BillingTransactionActionEnum.APPROVE]: {
|
|
51
|
-
// permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
52
|
-
// next: () => BillingTransactionStatusEnum.APPROVED,
|
|
53
|
-
// },
|
|
54
|
-
// [BillingTransactionActionEnum.REJECT]: {
|
|
55
|
-
// permissions: ["BILLING_TRANSACTION_APPROVER_PROJECT", "BILLING_TRANSACTION_APPROVER_ORG"],
|
|
56
|
-
// next: () => BillingTransactionStatusEnum.REJECTED,
|
|
57
|
-
// },
|
|
58
|
-
// [BillingTransactionActionEnum.UPDATE]: {
|
|
59
|
-
// permissions: ["BILLING_TRANSACTION_UPDATE_SELF"],
|
|
60
|
-
// next: (data: IBillingTransactionContextFlowData) => decideNextStatus(data),
|
|
61
|
-
// },
|
|
62
|
-
// },
|
|
63
|
-
// },
|
|
64
|
-
};
|
|
65
|
-
function decideNextStatus(data) {
|
|
66
|
-
var _a;
|
|
67
|
-
const { currentBillingTransactionEntity, dto } = data;
|
|
68
|
-
const typeStatusMapping = {
|
|
69
|
-
[billing_transaction_enum_1.BillingTransactionType.WRITE_OFF]: billing_transaction_status_enum_1.BillingTransactionStatusEnum.WRITEOFF_APPROVAL_PENDING,
|
|
70
|
-
[billing_transaction_enum_1.BillingTransactionType.CREDIT_NOTE]: billing_transaction_status_enum_1.BillingTransactionStatusEnum.CREDITNOTE_APPROVAL_PENDING,
|
|
71
|
-
// [BillingTransactionType.ADJUST_AGAINST_CREDIT_NOTE]: BillingTransactionStatusEnum.ADJUST_AGAINST_CREDIT_NOTE_APPROVAL_PENDING,
|
|
72
|
-
};
|
|
73
|
-
if (currentBillingTransactionEntity.type === dto.type) {
|
|
74
|
-
return currentBillingTransactionEntity.status;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
if (dto.type && dto.type in typeStatusMapping) {
|
|
78
|
-
return (_a = typeStatusMapping[dto.type]) !== null && _a !== void 0 ? _a : currentBillingTransactionEntity.status;
|
|
79
|
-
}
|
|
80
|
-
// otherwise → retain current status
|
|
81
|
-
return currentBillingTransactionEntity.status;
|
|
82
|
-
}
|
|
83
|
-
}
|