law-common 11.1.1-beta.9 → 11.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/api/interface/vendor-invoice.entity.response.d.ts +3 -3
- package/dist/src/api/interface/vendor-invoice.entity.response.js +2 -2
- package/dist/src/api/interface/vendor_invoice.create.dto.interface.d.ts +1 -1
- package/dist/src/api/interface/vendor_invoice.update.dto.interface.d.ts +2 -2
- package/dist/src/entities/enums/vendor_invoice_action.enum.d.ts +2 -1
- package/dist/src/entities/enums/vendor_invoice_action.enum.js +1 -0
- package/dist/src/entities/enums/vendor_invoice_action_status_enum.autocode.js +1 -1
- package/dist/src/entities/enums/vendor_invoice_action_status_enum.d.ts +1 -1
- package/dist/src/entities/enums/vendor_invoice_action_status_enum.js +13 -13
- package/dist/src/entities/enums/vendor_invoice_status_enum.autocode.js +1 -1
- package/dist/src/entities/enums/vendor_invoice_status_enum.d.ts +1 -1
- package/dist/src/entities/enums/vendor_invoice_status_enum.js +6 -6
- package/dist/src/entities/flow-configs/vendor-invoice-flow.config.d.ts +2 -2
- package/dist/src/entities/flow-configs/vendor-invoice-flow.config.js +62 -48
- package/dist/src/entities/flow-configs/vendor_invoice_payment_flow.config.js +2 -2
- package/dist/src/entities/interface/vendor_invoice.entity.interface.autocode.js +4 -4
- package/dist/src/entities/interface/vendor_invoice.entity.interface.d.ts +3 -3
- package/dist/src/entities/model/vendor_invoice.entity.model.autocode.js +4 -4
- package/dist/src/entities/model/vendor_invoice.entity.model.d.ts +4 -4
- package/dist/src/entities/model/vendor_invoice.entity.model.js +6 -6
- package/dist/src/entities/model/vendor_invoice_item.entity.model.js +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { IVendorInvoiceEntity,
|
|
1
|
+
import { IVendorInvoiceEntity, VendorInvoiceStatusEnum, VendorInvoiceItemEntityModel } from "../../entities";
|
|
2
2
|
import { VendorInvoiceActionEnum } from "../../entities/enums/vendor_invoice_action.enum";
|
|
3
3
|
export interface IVendorInvoiceFlowContextData {
|
|
4
4
|
invoice: IVendorInvoiceEntity;
|
|
5
5
|
items: VendorInvoiceItemEntityModel[];
|
|
6
6
|
}
|
|
7
7
|
export type IVendorInvoiceFlowConfig = {
|
|
8
|
-
[key in
|
|
8
|
+
[key in VendorInvoiceStatusEnum]?: {
|
|
9
9
|
actions: {
|
|
10
10
|
[key in VendorInvoiceActionEnum]?: {
|
|
11
11
|
permissions: string[];
|
|
12
|
-
next: () =>
|
|
12
|
+
next: () => VendorInvoiceStatusEnum;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
};
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
// export type IVendorInvoiceFlowConfig = {
|
|
4
4
|
// parent: {
|
|
5
|
-
// [key in
|
|
5
|
+
// [key in VendorInvoiceStatusEnum]?: {
|
|
6
6
|
// actions: {
|
|
7
7
|
// [key in VendorInvoiceActionEnum]?: {
|
|
8
8
|
// permissions: string[];
|
|
9
|
-
// next?: (data: IVendorInvoiceFlowContextData) =>
|
|
9
|
+
// next?: (data: IVendorInvoiceFlowContextData) => VendorInvoiceStatusEnum;
|
|
10
10
|
// };
|
|
11
11
|
// };
|
|
12
12
|
// };
|
|
@@ -2,7 +2,7 @@ import { IEntityCreateDto, Nullable } from "../../entities";
|
|
|
2
2
|
import { IAppFileConfig, IFilePayload, MulterFileWithUrl } from "../../misc";
|
|
3
3
|
import { IVendorInvoiceEntity } from "../../entities/interface/vendor_invoice.entity.interface";
|
|
4
4
|
import { IVendorInvoiceItemCreateDto } from "./vendor_invoice_item.create.dto.interface";
|
|
5
|
-
export type IVendorInvoiceCreateExclude = "
|
|
5
|
+
export type IVendorInvoiceCreateExclude = "paidStatus" | "status" | "invoiceDocuments" | "remark" | "paidAmount" | "adjustedAmount";
|
|
6
6
|
export interface IVendorInvoiceCreateDto extends Omit<IEntityCreateDto<IVendorInvoiceEntity>, IVendorInvoiceCreateExclude> {
|
|
7
7
|
invoiceDocuments?: Nullable<MulterFileWithUrl[]>;
|
|
8
8
|
files: IFilePayload[];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { EntityEnum, EnumEntityType, VendorInvoiceActionEnum,
|
|
1
|
+
import { EntityEnum, EnumEntityType, VendorInvoiceActionEnum, VendorInvoiceStatusEnum, 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";
|
|
5
5
|
export type IVendorInvoiceUpdateDto = DeepPartialButRequired<IVendorInvoiceCreateDto, never> & {
|
|
6
6
|
deleteDocumentDetails?: IDeleteDocumentDetails<EnumEntityType<EntityEnum.VENDOR_INVOICE>>;
|
|
7
7
|
actionData: IVendorInvoiceActionDataDto;
|
|
8
|
-
actionStatus?:
|
|
8
|
+
actionStatus?: VendorInvoiceStatusEnum;
|
|
9
9
|
};
|
|
10
10
|
export interface IVendorInvoiceActionDataDto {
|
|
11
11
|
action: VendorInvoiceActionEnum;
|
|
@@ -11,6 +11,7 @@ var VendorInvoiceActionEnum;
|
|
|
11
11
|
VendorInvoiceActionEnum["REJECT"] = "reject";
|
|
12
12
|
VendorInvoiceActionEnum["PAYMENT"] = "payment";
|
|
13
13
|
VendorInvoiceActionEnum["UPDATE_PAYMENT"] = "update_payment";
|
|
14
|
+
VendorInvoiceActionEnum["DELETE_PAYMENT"] = "delete_payment";
|
|
14
15
|
// RECALL = "recall",
|
|
15
16
|
// VIEW = "view",
|
|
16
17
|
// EDIT = "edit",
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
exports.VendorInvoiceStatusEnum = void 0;
|
|
4
|
+
var VendorInvoiceStatusEnum;
|
|
5
|
+
(function (VendorInvoiceStatusEnum) {
|
|
6
|
+
VendorInvoiceStatusEnum["CREATE_APPROVAL"] = "create_approval";
|
|
7
|
+
VendorInvoiceStatusEnum["EDIT_APPROVAL"] = "edit_approval";
|
|
8
|
+
VendorInvoiceStatusEnum["DELETE_APPROVAL"] = "delete_approval";
|
|
9
|
+
VendorInvoiceStatusEnum["REJECTED"] = "rejected";
|
|
10
|
+
VendorInvoiceStatusEnum["APPROVED"] = "approved";
|
|
11
|
+
VendorInvoiceStatusEnum["DELETED"] = "deleted";
|
|
12
12
|
// RESOLVED_REJECTED = "resolved_rejected",
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
})(
|
|
16
|
-
// export enum
|
|
13
|
+
VendorInvoiceStatusEnum["PAYMENT_DISBURSE"] = "payment_disburse";
|
|
14
|
+
VendorInvoiceStatusEnum["REQUEST_CHANGES"] = "request_changes";
|
|
15
|
+
})(VendorInvoiceStatusEnum || (exports.VendorInvoiceStatusEnum = VendorInvoiceStatusEnum = {}));
|
|
16
|
+
// export enum VendorInvoiceStatusEnum {
|
|
17
17
|
// PENDING_APPROVAL = "PENDING_APPROVAL",
|
|
18
18
|
// APPROVED = "APPROVED",
|
|
19
19
|
// }
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
})(
|
|
3
|
+
exports.VendorInvoicePaidStatusEnum = void 0;
|
|
4
|
+
var VendorInvoicePaidStatusEnum;
|
|
5
|
+
(function (VendorInvoicePaidStatusEnum) {
|
|
6
|
+
VendorInvoicePaidStatusEnum["PENDING"] = "PENDING";
|
|
7
|
+
VendorInvoicePaidStatusEnum["SETTLED"] = "SETTLED";
|
|
8
|
+
})(VendorInvoicePaidStatusEnum || (exports.VendorInvoicePaidStatusEnum = VendorInvoicePaidStatusEnum = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FlowConfig } from "./flow-config.type";
|
|
2
2
|
import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action.enum";
|
|
3
|
-
import {
|
|
3
|
+
import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum";
|
|
4
4
|
import { VendorInvoicePaymentEntityModel } from "../model/vendor_invoice_payment.entity.model";
|
|
5
5
|
import { VendorInvoiceEntityModel } from "../model/vendor_invoice.entity.model";
|
|
6
6
|
export interface IVendorInvoiceFlowConfigContextData {
|
|
@@ -8,4 +8,4 @@ export interface IVendorInvoiceFlowConfigContextData {
|
|
|
8
8
|
existingVendorInvoice?: VendorInvoiceEntityModel;
|
|
9
9
|
vendorInvoicePayments?: VendorInvoicePaymentEntityModel[];
|
|
10
10
|
}
|
|
11
|
-
export declare const vendorInvoiceFlowConfig: FlowConfig<
|
|
11
|
+
export declare const vendorInvoiceFlowConfig: FlowConfig<VendorInvoiceStatusEnum, VendorInvoiceActionEnum, IVendorInvoiceFlowConfigContextData>;
|
|
@@ -11,51 +11,74 @@ const VENDOR_INVOICE_APPROVE_PERMISSION = ["VENDOR_INVOICE_APPROVE"];
|
|
|
11
11
|
const VENDOR_INVOICE_UPDATE_PERMISSION = ["VENDOR_INVOICE_UPDATE"];
|
|
12
12
|
const ACTION_MAP = {
|
|
13
13
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: {
|
|
14
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
14
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETED],
|
|
15
15
|
permissions: VENDOR_INVOICE_APPROVE_PERMISSION,
|
|
16
16
|
},
|
|
17
17
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: {
|
|
18
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
18
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.CREATE_APPROVAL, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.EDIT_APPROVAL],
|
|
19
19
|
permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
20
20
|
},
|
|
21
21
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: {
|
|
22
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
22
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REJECTED, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REQUEST_CHANGES],
|
|
23
23
|
permissions: VENDOR_INVOICE_APPROVE_PERMISSION,
|
|
24
24
|
},
|
|
25
25
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: {
|
|
26
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
26
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETED, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETE_APPROVAL],
|
|
27
27
|
permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
28
28
|
},
|
|
29
29
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: {
|
|
30
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
30
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED],
|
|
31
31
|
permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
32
32
|
},
|
|
33
33
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT]: {
|
|
34
|
-
reachableStatues: [vendor_invoice_action_status_enum_1.
|
|
34
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED],
|
|
35
|
+
permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
36
|
+
},
|
|
37
|
+
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE_PAYMENT]: {
|
|
38
|
+
reachableStatues: [vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED],
|
|
35
39
|
permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
36
40
|
},
|
|
37
41
|
};
|
|
38
42
|
const { createActionConfig, createTransition } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
43
|
+
const createTransitionAnyStatusUpdatePaymentAction = createTransition((context) => {
|
|
44
|
+
const { existingVendorInvoice, vendorInvoicePayments } = context;
|
|
45
|
+
if (existingVendorInvoice && vendorInvoicePayments) {
|
|
46
|
+
const amountPaidThroughPayments = vendor_invoice_payment_entity_model_1.VendorInvoicePaymentEntityModel.getTotalAmount(vendorInvoicePayments);
|
|
47
|
+
if (existingVendorInvoice.totalNetAmount === existingVendorInvoice.adjustedAmount + amountPaidThroughPayments) {
|
|
48
|
+
return vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new exceptions_1.AppBadRequestException({
|
|
56
|
+
key: enums_1.ErrorKeyEnum.VENDOR_INVOICE_FLOW_CONTEXT_DATA,
|
|
57
|
+
message: ["Both existingVendorInvoice and vendorInvoicePayments must be provided in the context data for processing update payment action."],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
// return existingVendorInvoice ? existingVendorInvoice.actionStatus : VendorInvoiceStatusEnum.APPROVED;
|
|
61
|
+
});
|
|
39
62
|
// CREATE_APPROVAL status transitions
|
|
40
|
-
const transitionCreateApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.
|
|
41
|
-
const transitionCreateApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.
|
|
42
|
-
const transitionCreateApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.
|
|
43
|
-
const transitionCreateApprovalStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.
|
|
63
|
+
const transitionCreateApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED);
|
|
64
|
+
const transitionCreateApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.CREATE_APPROVAL);
|
|
65
|
+
const transitionCreateApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REJECTED);
|
|
66
|
+
const transitionCreateApprovalStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETED);
|
|
44
67
|
// EDIT_APPROVAL status transitions
|
|
45
|
-
const transitionEditApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.
|
|
46
|
-
const transitionEditApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.
|
|
47
|
-
const transitionEditApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.
|
|
68
|
+
const transitionEditApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED);
|
|
69
|
+
const transitionEditApprovalStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.EDIT_APPROVAL);
|
|
70
|
+
const transitionEditApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REQUEST_CHANGES);
|
|
48
71
|
// DELETE_APPROVAL status transitions
|
|
49
|
-
const transitionDeleteApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.
|
|
50
|
-
const transitionDeleteApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.
|
|
72
|
+
const transitionDeleteApprovalStatusApproveAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETED);
|
|
73
|
+
const transitionDeleteApprovalStatusRejectAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REQUEST_CHANGES);
|
|
51
74
|
// APPROVED status transitions
|
|
52
|
-
const transitionApprovedStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.
|
|
53
|
-
const transitionApprovedStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.
|
|
75
|
+
const transitionApprovedStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.EDIT_APPROVAL);
|
|
76
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETE_APPROVAL);
|
|
54
77
|
const createTransitionApprovedStatusPaymentAction = createTransition((context) => {
|
|
55
78
|
const { vendorInvoicePayment, existingVendorInvoice } = context;
|
|
56
79
|
if (vendorInvoicePayment && existingVendorInvoice) {
|
|
57
80
|
if (existingVendorInvoice.totalInvoiceAmount === existingVendorInvoice.paidAmount + existingVendorInvoice.adjustedAmount + vendorInvoicePayment.amount) {
|
|
58
|
-
return vendor_invoice_action_status_enum_1.
|
|
81
|
+
return vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE;
|
|
59
82
|
}
|
|
60
83
|
}
|
|
61
84
|
else {
|
|
@@ -64,42 +87,31 @@ const createTransitionApprovedStatusPaymentAction = createTransition((context) =
|
|
|
64
87
|
message: ["Both vendorInvoicePayment and existingVendorInvoice must be provided in the context data for processing payment action."],
|
|
65
88
|
});
|
|
66
89
|
}
|
|
67
|
-
return vendor_invoice_action_status_enum_1.
|
|
90
|
+
return vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED;
|
|
68
91
|
});
|
|
69
92
|
const transitionApprovedStatusPaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT, createTransitionApprovedStatusPaymentAction);
|
|
70
|
-
const createTransitionAnyStatusUpdatePaymentAction = createTransition((context) => {
|
|
71
|
-
const { existingVendorInvoice, vendorInvoicePayments } = context;
|
|
72
|
-
if (existingVendorInvoice && vendorInvoicePayments) {
|
|
73
|
-
const amountPaidThroughPayments = vendor_invoice_payment_entity_model_1.VendorInvoicePaymentEntityModel.getTotalAmount(vendorInvoicePayments);
|
|
74
|
-
if (existingVendorInvoice.totalNetAmount === existingVendorInvoice.adjustedAmount + amountPaidThroughPayments) {
|
|
75
|
-
return vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.PAYMENT_DISBURSE;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return vendor_invoice_action_status_enum_1.VendorInvoiceActionStatusEnum.APPROVED;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
throw new exceptions_1.AppBadRequestException({
|
|
83
|
-
key: enums_1.ErrorKeyEnum.VENDOR_INVOICE_FLOW_CONTEXT_DATA,
|
|
84
|
-
message: ["Both existingVendorInvoice and vendorInvoicePayments must be provided in the context data for processing update payment action."],
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
// return existingVendorInvoice ? existingVendorInvoice.actionStatus : VendorInvoiceActionStatusEnum.APPROVED;
|
|
88
|
-
});
|
|
89
93
|
const createTransitionApprovedStatusUpdatePaymentAction = createTransition((context) => {
|
|
90
94
|
return createTransitionAnyStatusUpdatePaymentAction(context);
|
|
91
95
|
});
|
|
92
96
|
const transitionApprovedStatusUpdatePaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT, createTransitionApprovedStatusUpdatePaymentAction);
|
|
97
|
+
const createTransitionApprovedStatusDeleteAction = createTransition((context) => {
|
|
98
|
+
return createTransitionAnyStatusUpdatePaymentAction(context);
|
|
99
|
+
});
|
|
100
|
+
const transitionApprovedStatusDeletePaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE_PAYMENT, createTransitionApprovedStatusDeleteAction);
|
|
93
101
|
// REQUEST_CHANGES status transitions
|
|
94
|
-
const transitionRequestChangesStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.
|
|
95
|
-
const transitionRequestChangesStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.
|
|
102
|
+
const transitionRequestChangesStatusEditAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.EDIT_APPROVAL);
|
|
103
|
+
const transitionRequestChangesStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE, vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETE_APPROVAL);
|
|
96
104
|
// PAYMENT_DISBURSE status transitions
|
|
97
105
|
const createTransitionPaymentDisburseStatusUpdatePaymentAction = createTransition((context) => {
|
|
98
106
|
return createTransitionAnyStatusUpdatePaymentAction(context);
|
|
99
107
|
});
|
|
100
108
|
const transitionPaymentDisburseStatusUpdatePaymentAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT, createTransitionPaymentDisburseStatusUpdatePaymentAction);
|
|
109
|
+
const createTransitionPaymentDisburseStatusDeletePaymentAction = createTransition((context) => {
|
|
110
|
+
return createTransitionAnyStatusUpdatePaymentAction(context);
|
|
111
|
+
});
|
|
112
|
+
const transitionPaymentDisburseStatusDeleteAction = createActionConfig(vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE_PAYMENT, createTransitionPaymentDisburseStatusDeletePaymentAction);
|
|
101
113
|
exports.vendorInvoiceFlowConfig = {
|
|
102
|
-
[vendor_invoice_action_status_enum_1.
|
|
114
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.CREATE_APPROVAL]: {
|
|
103
115
|
actions: {
|
|
104
116
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionCreateApprovalStatusApproveAction,
|
|
105
117
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionCreateApprovalStatusEditAction,
|
|
@@ -107,44 +119,46 @@ exports.vendorInvoiceFlowConfig = {
|
|
|
107
119
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionCreateApprovalStatusDeleteAction,
|
|
108
120
|
},
|
|
109
121
|
},
|
|
110
|
-
[vendor_invoice_action_status_enum_1.
|
|
122
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.EDIT_APPROVAL]: {
|
|
111
123
|
actions: {
|
|
112
124
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionEditApprovalStatusApproveAction,
|
|
113
125
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionEditApprovalStatusEditAction,
|
|
114
126
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: transitionEditApprovalStatusRejectAction,
|
|
115
127
|
// [VendorInvoiceActionEnum.RECALL]: {
|
|
116
128
|
// permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
117
|
-
// next: () =>
|
|
129
|
+
// next: () => VendorInvoiceStatusEnum.DELETED,
|
|
118
130
|
// },
|
|
119
131
|
},
|
|
120
132
|
},
|
|
121
|
-
[vendor_invoice_action_status_enum_1.
|
|
133
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.DELETE_APPROVAL]: {
|
|
122
134
|
actions: {
|
|
123
135
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.APPROVE]: transitionDeleteApprovalStatusApproveAction,
|
|
124
136
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.REJECT]: transitionDeleteApprovalStatusRejectAction,
|
|
125
137
|
// [VendorInvoiceActionEnum.RECALL]: {
|
|
126
138
|
// permissions: VENDOR_INVOICE_UPDATE_PERMISSION,
|
|
127
|
-
// next: () =>
|
|
139
|
+
// next: () => VendorInvoiceStatusEnum.DELETED,
|
|
128
140
|
// },
|
|
129
141
|
},
|
|
130
142
|
},
|
|
131
|
-
[vendor_invoice_action_status_enum_1.
|
|
143
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.APPROVED]: {
|
|
132
144
|
actions: {
|
|
133
145
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionApprovedStatusEditAction,
|
|
134
146
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
135
147
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: transitionApprovedStatusUpdatePaymentAction,
|
|
136
148
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.PAYMENT]: transitionApprovedStatusPaymentAction,
|
|
149
|
+
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE_PAYMENT]: transitionApprovedStatusDeletePaymentAction,
|
|
137
150
|
},
|
|
138
151
|
},
|
|
139
|
-
[vendor_invoice_action_status_enum_1.
|
|
152
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.REQUEST_CHANGES]: {
|
|
140
153
|
actions: {
|
|
141
154
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.EDIT]: transitionRequestChangesStatusEditAction,
|
|
142
155
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE]: transitionRequestChangesStatusDeleteAction,
|
|
143
156
|
},
|
|
144
157
|
},
|
|
145
|
-
[vendor_invoice_action_status_enum_1.
|
|
158
|
+
[vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.PAYMENT_DISBURSE]: {
|
|
146
159
|
actions: {
|
|
147
160
|
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.UPDATE_PAYMENT]: transitionPaymentDisburseStatusUpdatePaymentAction,
|
|
161
|
+
[vendor_invoice_action_enum_1.VendorInvoiceActionEnum.DELETE_PAYMENT]: transitionPaymentDisburseStatusDeleteAction,
|
|
148
162
|
},
|
|
149
163
|
},
|
|
150
164
|
};
|
|
@@ -25,7 +25,7 @@ const ACTION_MAP = {
|
|
|
25
25
|
permissions: VENDOR_INVOICE_PAYMENT_UPDATE_PERMISSION,
|
|
26
26
|
},
|
|
27
27
|
[api_1.VendorInvoicePaymentActionEnum.DELETE]: {
|
|
28
|
-
reachableStatues: [vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.
|
|
28
|
+
reachableStatues: [vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.DELETED],
|
|
29
29
|
permissions: VENDOR_INVOICE_PAYMENT_DELETE_PERMISSION,
|
|
30
30
|
},
|
|
31
31
|
[api_1.VendorInvoicePaymentActionEnum.APPROVE]: {
|
|
@@ -75,7 +75,7 @@ const transitionDeletedStatusDeactivateAction = createActionConfig(api_1.VendorI
|
|
|
75
75
|
// APPROVED status transitions
|
|
76
76
|
const transitionApprovedStatusCreateAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.CREATE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.CREATE_APPROVAL_PENDING);
|
|
77
77
|
const transitionApprovedStatusUpdateAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.UPDATE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.APPROVED);
|
|
78
|
-
const transitionApprovedStatusDeleteAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.DELETE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.
|
|
78
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.DELETE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.DELETED);
|
|
79
79
|
const transitionApprovedStatusApproveAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.APPROVE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.APPROVED);
|
|
80
80
|
const transitionApprovedStatusRejectAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.REJECT, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.REJECTED);
|
|
81
81
|
const transitionApprovedStatusDeactivateAction = createActionConfig(api_1.VendorInvoicePaymentActionEnum.DEACTIVATE, vendor_invoice_payment_status_enum_1.VendorInvoicePaymentStatusEnum.DEACTIVATED);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// import { IEntityAuditColumn } from "./entity-audit-columns.interface";
|
|
3
3
|
// import { Nullable } from "./entity.utils.interface";
|
|
4
|
-
// import {
|
|
5
|
-
// import {
|
|
4
|
+
// import { VendorInvoicePaidStatusEnum } from "../enums/vendor_invoice_status_enum";
|
|
5
|
+
// import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum";
|
|
6
6
|
// export interface IVendorInvoiceEntity extends IEntityAuditColumn {
|
|
7
7
|
// id: number;
|
|
8
8
|
// vendorId: number;
|
|
9
|
-
// status:
|
|
10
|
-
// actionStatus:
|
|
9
|
+
// status: VendorInvoicePaidStatusEnum;
|
|
10
|
+
// actionStatus: VendorInvoiceStatusEnum;
|
|
11
11
|
// serviceLocationId: string;
|
|
12
12
|
// invoiceNo: string;
|
|
13
13
|
// invoiceDate: number;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum";
|
|
2
|
+
import { VendorInvoicePaidStatusEnum } from "../enums/vendor_invoice_status_enum";
|
|
3
3
|
import { IEntityAuditColumn } from "./entity-audit-columns.interface";
|
|
4
4
|
import { Nullable } from "./entity.utils.interface";
|
|
5
5
|
export interface IVendorInvoiceEntity extends IEntityAuditColumn {
|
|
6
6
|
id: number;
|
|
7
7
|
vendorId: number;
|
|
8
|
+
paidStatus: VendorInvoicePaidStatusEnum;
|
|
8
9
|
status: VendorInvoiceStatusEnum;
|
|
9
|
-
actionStatus: VendorInvoiceActionStatusEnum;
|
|
10
10
|
serviceLocationId: number;
|
|
11
11
|
invoiceNo: string;
|
|
12
12
|
invoiceDate: number;
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// import { RelationConfigs } from "../interface/relation-config.interface";
|
|
5
5
|
// import { RelationType } from "../enums/relation-type.enum";
|
|
6
6
|
// import { IVendorInvoiceEntity } from "../interface/vendor_invoice.entity.interface";
|
|
7
|
-
// import {
|
|
8
|
-
// import {
|
|
7
|
+
// import { VendorInvoicePaidStatusEnum } from "../enums/vendor_invoice_status_enum";
|
|
8
|
+
// import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum";
|
|
9
9
|
// import { VendorEntityModel } from "./vendor.entity.model";
|
|
10
10
|
// import { OfficeLocationEntityModel } from "./office_location.entity.model";
|
|
11
11
|
// export class VendorInvoiceEntityModel extends BaseEntityModel<EntityEnum.VENDOR_INVOICE> implements IVendorInvoiceEntity {
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
// voucherNo?: string;
|
|
19
19
|
// voucherDate?: number;
|
|
20
20
|
// invoiceDocuments: string = "";
|
|
21
|
-
// status:
|
|
22
|
-
// actionStatus:
|
|
21
|
+
// status: VendorInvoicePaidStatusEnum = VendorInvoicePaidStatusEnum.PENDING;
|
|
22
|
+
// actionStatus: VendorInvoiceStatusEnum = VendorInvoiceStatusEnum.PENDING_APPROVAL;
|
|
23
23
|
// createdOn: number = 0;
|
|
24
24
|
// updatedOn: number = 0;
|
|
25
25
|
// createdBy: number = 0;
|
|
@@ -2,8 +2,8 @@ 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
4
|
import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action.enum";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum";
|
|
6
|
+
import { VendorInvoicePaidStatusEnum } from "../enums/vendor_invoice_status_enum";
|
|
7
7
|
import { IVendorInvoiceFlowConfigContextData } from "../flow-configs/vendor-invoice-flow.config";
|
|
8
8
|
import { IUserEntity } from "../interface/user.entity.interface";
|
|
9
9
|
import { IVendorInvoiceEntity } from "../interface/vendor_invoice.entity.interface";
|
|
@@ -22,8 +22,8 @@ export declare class VendorInvoiceEntityModel extends BaseEntityModel<EntityEnum
|
|
|
22
22
|
voucherNo?: string;
|
|
23
23
|
voucherDate?: number;
|
|
24
24
|
invoiceDocuments: string;
|
|
25
|
+
paidStatus: VendorInvoicePaidStatusEnum;
|
|
25
26
|
status: VendorInvoiceStatusEnum;
|
|
26
|
-
actionStatus: VendorInvoiceActionStatusEnum;
|
|
27
27
|
remark: Nullable<string>;
|
|
28
28
|
createdOn: number;
|
|
29
29
|
updatedOn: number;
|
|
@@ -111,6 +111,6 @@ export declare class VendorInvoiceEntityModel extends BaseEntityModel<EntityEnum
|
|
|
111
111
|
* @returns The next voucher number string in format `<FY-1><FY><MM><DD><###>`
|
|
112
112
|
*/
|
|
113
113
|
static getNextVoucherNumber(existingVendorInvoices: VendorInvoiceEntityModel[]): string;
|
|
114
|
-
getNextStatus(currentUser: IUserEntity, action: VendorInvoiceActionEnum, vendorInvoiceFlowConfigContextData: IVendorInvoiceFlowConfigContextData):
|
|
114
|
+
getNextStatus(currentUser: IUserEntity, action: VendorInvoiceActionEnum, vendorInvoiceFlowConfigContextData: IVendorInvoiceFlowConfigContextData): VendorInvoiceStatusEnum;
|
|
115
115
|
getBalanceAmount(): number;
|
|
116
116
|
}
|
|
@@ -19,8 +19,8 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
19
19
|
this.invoiceNo = "";
|
|
20
20
|
this.invoiceDate = 0;
|
|
21
21
|
this.invoiceDocuments = "";
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
22
|
+
this.paidStatus = vendor_invoice_status_enum_1.VendorInvoicePaidStatusEnum.PENDING;
|
|
23
|
+
this.status = vendor_invoice_action_status_enum_1.VendorInvoiceStatusEnum.CREATE_APPROVAL;
|
|
24
24
|
this.remark = null;
|
|
25
25
|
this.createdOn = 0;
|
|
26
26
|
this.updatedOn = 0;
|
|
@@ -42,7 +42,7 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
42
42
|
getRelationConfigs() {
|
|
43
43
|
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
44
44
|
}
|
|
45
|
-
// getNextStatusForParent(currentUser: IUserEntity, dto: IVendorInvoiceUpdateDto):
|
|
45
|
+
// getNextStatusForParent(currentUser: IUserEntity, dto: IVendorInvoiceUpdateDto): VendorInvoiceStatusEnum {
|
|
46
46
|
// const flowForStatus = vendorInvoiceFlowConfig[this.actionStatus];
|
|
47
47
|
// if (!flowForStatus) {
|
|
48
48
|
// throw new AppBadRequestException({
|
|
@@ -83,7 +83,7 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
83
83
|
// // invoice: this,
|
|
84
84
|
// // items: this.vendorInvoiceItems,
|
|
85
85
|
// // };
|
|
86
|
-
// let nextStatus:
|
|
86
|
+
// let nextStatus: VendorInvoiceStatusEnum = VendorInvoiceStatusEnum.CREATE_APPROVAL;
|
|
87
87
|
// if (matchingPermissionConfig.next) {
|
|
88
88
|
// nextStatus = matchingPermissionConfig.next();
|
|
89
89
|
// }
|
|
@@ -93,7 +93,7 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
93
93
|
var _a;
|
|
94
94
|
const params = {
|
|
95
95
|
flowConfig: vendor_invoice_flow_config_1.vendorInvoiceFlowConfig,
|
|
96
|
-
currentStatus: this.
|
|
96
|
+
currentStatus: this.status,
|
|
97
97
|
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
98
98
|
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
99
99
|
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
@@ -196,7 +196,7 @@ class VendorInvoiceEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
196
196
|
return `${basePrefix}${String(maxSequence + 1).padStart(3, "0")}`;
|
|
197
197
|
}
|
|
198
198
|
getNextStatus(currentUser, action, vendorInvoiceFlowConfigContextData) {
|
|
199
|
-
const actionStatus = this.
|
|
199
|
+
const actionStatus = this.status;
|
|
200
200
|
if (!actionStatus) {
|
|
201
201
|
throw new exceptions_1.AppBadRequestException({
|
|
202
202
|
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
@@ -106,7 +106,7 @@ class VendorInvoiceItemEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
106
106
|
}
|
|
107
107
|
// getNextStatus(dto: IVendorInvoiceItemUpdateDto, currentUser: IUserEntity): VendorInvoiceItemStatus {
|
|
108
108
|
// // const flow = vendorInvoiceConfigFlow as FlowConfig<
|
|
109
|
-
// //
|
|
109
|
+
// // VendorInvoiceStatusEnum,
|
|
110
110
|
// // VendorInvoiceActionEnum,
|
|
111
111
|
// // VendorInvoiceItemStatus,
|
|
112
112
|
// // VendorInvoiceItemActionEnum
|