@zeniai/client-epic-state 4.19.59 → 4.19.60
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/lib/commonStateTypes/fileType.d.ts +1 -1
- package/lib/entity/chargeCardRepayment/chargeCardRepayment.d.ts +1 -6
- package/lib/entity/chargeCardRepayment/chargeCardRepayment.js +1 -4
- package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.d.ts +3 -8
- package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.js +2 -5
- package/lib/entity/chargeCardTransaction/chargeCardTransaction.d.ts +2 -1
- package/lib/entity/chargeCardTransaction/chargeCardTransactionPayload.d.ts +1 -3
- package/lib/entity/chargeCardTransaction/chargeCardTransactionPayload.js +3 -26
- package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.js +7 -11
- package/lib/entity/company/companyPayload.d.ts +0 -12
- package/lib/entity/company/companyPayload.js +0 -20
- package/lib/entity/company/companyStateTypes.d.ts +0 -12
- package/lib/epic.d.ts +1 -3
- package/lib/epic.js +1 -3
- package/lib/esm/entity/chargeCardRepayment/chargeCardRepayment.js +0 -2
- package/lib/esm/entity/chargeCardRepayment/chargeCardRepaymentPayload.js +3 -6
- package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionPayload.js +3 -25
- package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionReducer.js +7 -11
- package/lib/esm/entity/company/companyPayload.js +0 -20
- package/lib/esm/epic.js +1 -3
- package/lib/esm/index.js +5 -11
- package/lib/esm/reducer.js +0 -3
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +1 -1
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +0 -1
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +1 -1
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +1 -3
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +3 -2
- package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
- package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +2 -20
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +1 -11
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +2 -4
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +2 -5
- package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailSelector.js +6 -15
- package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/fetchChargeCardRepaymentDetailEpic.js +2 -3
- package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.js +0 -5
- package/lib/esm/view/spendManagement/chargeCards/chargeCardSetUp/epic/fetchChargeCardSetupViewEpic.js +1 -1
- package/lib/esm/view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic.js +1 -64
- package/lib/esm/view/spendManagement/commonSetup/epic/setup/updateSetupViewLocalStoreDataEpic.js +1 -14
- package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +1 -29
- package/lib/esm/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +1 -0
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +1 -10
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelector.js +2 -4
- package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +2 -29
- package/lib/esm/view/spendManagement/zeniAccounts/depositAccountList/fetchDepositAccountListEpic.js +3 -5
- package/lib/index.d.ts +6 -12
- package/lib/index.js +13 -34
- package/lib/reducer.d.ts +0 -3
- package/lib/reducer.js +0 -3
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +0 -1
- package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +1 -1
- package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +1 -3
- package/lib/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +3 -2
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
- package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +2 -20
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +1 -1
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +2 -12
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +2 -4
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelectorTypes.d.ts +0 -2
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +0 -1
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +0 -1
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +2 -5
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +0 -2
- package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailSelector.js +4 -13
- package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/fetchChargeCardRepaymentDetailEpic.js +2 -3
- package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.d.ts +1 -2
- package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.js +0 -5
- package/lib/view/spendManagement/chargeCards/chargeCardSetUp/epic/fetchChargeCardSetupViewEpic.js +1 -1
- package/lib/view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic.js +1 -64
- package/lib/view/spendManagement/commonSetup/epic/setup/updateSetupViewLocalStoreDataEpic.js +1 -14
- package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +1 -15
- package/lib/view/spendManagement/commonSetup/setupViewSelector.js +2 -31
- package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +0 -13
- package/lib/view/spendManagement/commonSetup/types/businessVerification.d.ts +0 -13
- package/lib/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +1 -0
- package/lib/view/spendManagement/reimbursement/remiDetailView/remiDetailViewPayload.d.ts +1 -0
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +1 -1
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +2 -11
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelector.js +2 -4
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelectorTypes.d.ts +0 -2
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +0 -1
- package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +4 -6
- package/lib/view/spendManagement/spendManagementFilterHelpers.js +2 -29
- package/lib/view/spendManagement/zeniAccounts/depositAccountList/fetchDepositAccountListEpic.js +3 -5
- package/package.json +1 -1
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.js +0 -32
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.js +0 -22
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.js +0 -79
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +0 -83
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.js +0 -104
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.js +0 -31
- package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +0 -31
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.d.ts +0 -50
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.js +0 -35
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.js +0 -26
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.js +0 -87
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.d.ts +0 -13
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.js +0 -2
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.d.ts +0 -19
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +0 -87
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.d.ts +0 -24
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.js +0 -108
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.d.ts +0 -9
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.js +0 -35
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +0 -35
|
@@ -63,19 +63,6 @@ export interface CompanyDetailsVerificationPayload {
|
|
|
63
63
|
source_of_funds: string;
|
|
64
64
|
sync_token: string;
|
|
65
65
|
tax_id: string;
|
|
66
|
-
company_countries_of_operations?: string[];
|
|
67
|
-
company_inc_state?: string | null;
|
|
68
|
-
company_industry_sub_type?: string;
|
|
69
|
-
company_purpose_of_account?: string;
|
|
70
|
-
company_purpose_of_account_desc?: string;
|
|
71
|
-
company_regulated_states?: boolean;
|
|
72
|
-
company_regulated_states_desc?: string;
|
|
73
|
-
company_source_of_funds?: string;
|
|
74
|
-
company_source_of_funds_desc?: string;
|
|
75
|
-
company_transaction_vol_expectations?: string;
|
|
76
|
-
company_transaction_vol_expectations_desc?: string;
|
|
77
|
-
company_us_nexus?: boolean;
|
|
78
|
-
company_us_nexus_desc?: string[];
|
|
79
66
|
subscription_billing_address?: AddressUpdatableInfoPayload;
|
|
80
67
|
}
|
|
81
68
|
export interface BusinessVerificationDataPayload {
|
|
@@ -44,6 +44,7 @@ const fetchRemiDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
|
|
|
44
44
|
const query = {
|
|
45
45
|
transaction_type: 'reimbursement',
|
|
46
46
|
reimbursement_provider: 'zeni',
|
|
47
|
+
is_include_payment_accounts_info: true,
|
|
47
48
|
is_include_approval_info: true,
|
|
48
49
|
is_include_deleted: isShowDeletedReimbursementEnabled,
|
|
49
50
|
};
|
|
@@ -40,6 +40,6 @@ export declare const fetchRemiSetupApproverView: import("@reduxjs/toolkit").Acti
|
|
|
40
40
|
approvalRuleId: string | undefined;
|
|
41
41
|
}, "remiSetupApproverView/initializeRemiSetupApproverViewUpdateData", never, never>, saveRemiSetupApproverViewUpdateData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[remiSetupApproverViewUpdateData: Partial<ApprovalRuleUpdateData | ApprovalRuleCreateData>], {
|
|
42
42
|
remiSetupApproverViewUpdateData: Partial<ApprovalRuleUpdateData | ApprovalRuleCreateData>;
|
|
43
|
-
}, "remiSetupApproverView/saveRemiSetupApproverViewUpdateData", never, never>,
|
|
43
|
+
}, "remiSetupApproverView/saveRemiSetupApproverViewUpdateData", never, never>, clearRemiSetupApproverViewUpdateData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverViewUpdateData">, clearRemiSetupApproverView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverView">;
|
|
44
44
|
declare const _default: import("redux").Reducer<RemiSetupApproverViewState>;
|
|
45
45
|
export default _default;
|
package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.
|
|
4
|
+
exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdateData = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdatesFailure = exports.saveRemiSetupApproverViewUpdatesSuccess = exports.saveRemiSetupApproverViewUpdates = exports.deleteRemiApprovalRuleFailure = exports.deleteRemiApprovalRuleSuccess = exports.deleteRemiApprovalRule = exports.fetchRemiApproversListFailure = exports.fetchRemiApproversListSuccess = exports.fetchRemiApproversList = exports.fetchRemiApproversDetails = exports.fetchRemiSetupApproverViewFailure = exports.fetchRemiSetupApproverViewSuccess = exports.fetchRemiSetupApproverView = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
exports.initialState = {
|
|
7
7
|
fetchState: 'Not-Started',
|
|
8
8
|
error: undefined,
|
|
9
|
-
listeningToPusherEvent: false,
|
|
10
9
|
approverListState: {
|
|
11
10
|
approverIds: [],
|
|
12
11
|
attributes: [],
|
|
@@ -181,11 +180,6 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
|
|
|
181
180
|
reducer(draft, action) {
|
|
182
181
|
const { approvalRuleIds } = action.payload;
|
|
183
182
|
if (draft.remiSetupApproverViewUpdateData != null) {
|
|
184
|
-
if (draft.remiSetupApproverViewUpdateData.type === 'approval_update' &&
|
|
185
|
-
draft.remiSetupApproverViewUpdateData.data
|
|
186
|
-
?.isApplicableOnPendingApprovalEntity === true) {
|
|
187
|
-
draft.listeningToPusherEvent = true;
|
|
188
|
-
}
|
|
189
183
|
draft.remiSetupApproverViewUpdateData.updateStatus = {
|
|
190
184
|
fetchState: 'Completed',
|
|
191
185
|
error: undefined,
|
|
@@ -246,9 +240,6 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
|
|
|
246
240
|
return { payload: { remiSetupApproverViewUpdateData } };
|
|
247
241
|
},
|
|
248
242
|
},
|
|
249
|
-
setListeningToPusherEvent(draft, action) {
|
|
250
|
-
draft.listeningToPusherEvent = action.payload;
|
|
251
|
-
},
|
|
252
243
|
clearRemiSetupApproverViewUpdateData(draft) {
|
|
253
244
|
if (draft.remiSetupApproverViewUpdateData != null) {
|
|
254
245
|
draft.remiSetupApproverViewUpdateData.data = undefined;
|
|
@@ -259,5 +250,5 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
|
|
|
259
250
|
},
|
|
260
251
|
},
|
|
261
252
|
});
|
|
262
|
-
_a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.
|
|
253
|
+
_a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverViewUpdateData = _a.clearRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverView = _a.clearRemiSetupApproverView;
|
|
263
254
|
exports.default = remiSetupApproverView.reducer;
|
|
@@ -13,7 +13,7 @@ const userSelector_1 = require("../../../../entity/user/userSelector");
|
|
|
13
13
|
const userRoleSelector_1 = require("../../../../entity/userRole/userRoleSelector");
|
|
14
14
|
const getRemiSetupApproverView = (state, filterAdmins = true) => {
|
|
15
15
|
const { remiSetupApproverViewState, approvalRuleState, userState } = state;
|
|
16
|
-
const { approvalRulesDeleteStatusById, approvalRuleIds, fetchState, error
|
|
16
|
+
const { approvalRulesDeleteStatusById, approvalRuleIds, fetchState, error } = remiSetupApproverViewState;
|
|
17
17
|
const deleteStateList = Object.values(approvalRulesDeleteStatusById);
|
|
18
18
|
const approvalRules = (0, approvalRuleSelector_1.getApprovalRulesByIds)(approvalRuleState, approvalRuleIds);
|
|
19
19
|
const allApprovalRules = approvalRules.map((approvalRule) => {
|
|
@@ -48,12 +48,11 @@ const getRemiSetupApproverView = (state, filterAdmins = true) => {
|
|
|
48
48
|
approvalRulesStatus,
|
|
49
49
|
fetchState,
|
|
50
50
|
error,
|
|
51
|
-
listeningToPusherEvent,
|
|
52
51
|
};
|
|
53
52
|
};
|
|
54
53
|
exports.getRemiSetupApproverView = getRemiSetupApproverView;
|
|
55
54
|
exports.getRemiSetupApproverUpdateDataView = (0, toolkit_1.createSelector)((state) => state.remiSetupApproverViewState, (state) => state.approvalRuleState, (state) => state.classState, (state) => state.classListState, (state) => state.userState, (state) => state.userRoleState, (remiSetupApproverViewState, approvalRuleState, classState, classListState, userState, userRoleState) => {
|
|
56
|
-
const { approvalRuleIds, approverListState, remiSetupApproverViewUpdateData, fetchState, error,
|
|
55
|
+
const { approvalRuleIds, approverListState, remiSetupApproverViewUpdateData, fetchState, error, } = remiSetupApproverViewState;
|
|
57
56
|
const { approverIds, attributes, fetchStatus } = approverListState;
|
|
58
57
|
const { fetchState: classListFetchState, error: classListFetchStateError, classIds, } = classListState;
|
|
59
58
|
const allApprovalRules = (0, approvalRuleSelector_1.getApprovalRulesByIds)(approvalRuleState, approvalRuleIds).map((approvalRule) => {
|
|
@@ -121,6 +120,5 @@ exports.getRemiSetupApproverUpdateDataView = (0, toolkit_1.createSelector)((stat
|
|
|
121
120
|
]),
|
|
122
121
|
fetchState,
|
|
123
122
|
error,
|
|
124
|
-
listeningToPusherEvent,
|
|
125
123
|
};
|
|
126
124
|
});
|
|
@@ -17,7 +17,6 @@ export interface RemiSetupApproverView extends SelectorView {
|
|
|
17
17
|
allApprovalRules: ApprovalRuleWithUser[];
|
|
18
18
|
approvalRulesStatus: AllowedValueWithCode;
|
|
19
19
|
deleteStatus: FetchStateAndError;
|
|
20
|
-
listeningToPusherEvent?: boolean;
|
|
21
20
|
}
|
|
22
21
|
export interface RemiSetupApproverUpdateDataView extends SelectorView {
|
|
23
22
|
allAccountingClasses: Class[];
|
|
@@ -27,6 +26,5 @@ export interface RemiSetupApproverUpdateDataView extends SelectorView {
|
|
|
27
26
|
approversDetailsFetchStatus: FetchStateAndError;
|
|
28
27
|
filteredApprovers: UserAndRole[];
|
|
29
28
|
filteredAttributes: AttributeType[];
|
|
30
|
-
listeningToPusherEvent?: boolean;
|
|
31
29
|
remiSetupApproverViewUpdateData?: ApproverViewUpdateData;
|
|
32
30
|
}
|
package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts
CHANGED
|
@@ -10,6 +10,5 @@ export interface RemiSetupApproverViewState extends FetchedState {
|
|
|
10
10
|
fetchStatus: FetchStateAndError;
|
|
11
11
|
attributeSubTypeToUserIdMapping?: Record<AttributeType, ID>;
|
|
12
12
|
};
|
|
13
|
-
listeningToPusherEvent?: boolean;
|
|
14
13
|
remiSetupApproverViewUpdateData?: ApproverViewUpdateData;
|
|
15
14
|
}
|
|
@@ -6,12 +6,10 @@ import { TaskListFilterCategoryField, TaskListFilters } from '../taskManager/tas
|
|
|
6
6
|
import { TaskWithUserDetails } from '../taskManager/taskListView/taskListSelector';
|
|
7
7
|
import { BillTransactionView } from './billPay/billList/billListSelector';
|
|
8
8
|
import { BillListViewFilterCategoryField, BillPayFilters } from './billPay/billList/billListState';
|
|
9
|
-
import { PaymentHistoryFilterCategoryDropdownOption, PaymentHistoryFilters } from './chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory';
|
|
10
|
-
import { ChargeCardRepaymentWithUser } from './chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector';
|
|
11
9
|
import { ReimbursementView } from './reimbursement/remiListView/remiListSelector';
|
|
12
10
|
import { ReimbursementFilters, RemiListViewFilterCategoryField } from './reimbursement/remiListView/remiListState';
|
|
13
|
-
export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters
|
|
14
|
-
export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management'
|
|
11
|
+
export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters;
|
|
12
|
+
export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management';
|
|
15
13
|
export type FilterCategoryType = 'searchAutocomplete' | 'user' | 'dateRange' | 'numberRange' | 'dropdown';
|
|
16
14
|
export interface MatchingOperatorDropdownOption {
|
|
17
15
|
label: 'is' | 'is not';
|
|
@@ -33,9 +31,9 @@ export interface TaskFilterCategoryDropdownOption {
|
|
|
33
31
|
multiple?: boolean;
|
|
34
32
|
type?: FilterCategoryType;
|
|
35
33
|
}
|
|
36
|
-
export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption
|
|
34
|
+
export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption;
|
|
37
35
|
export type FilterCategoryValueType = string | number | ZeniDate;
|
|
38
|
-
export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[]
|
|
36
|
+
export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[], filters?: BillPayFilters | ReimbursementFilters | TaskListFilters, filteredItems?: (BillTransactionView | ReimbursementView | TaskWithUserDetails)[], index?: number) => (BillTransactionView | ReimbursementView | TaskWithUserDetails)[];
|
|
39
37
|
export declare const isBillListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
|
|
40
38
|
export declare const isRemiListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
|
|
41
39
|
export declare const hideCreatedByFilter: (userRole: UserRoleType[]) => boolean;
|
|
@@ -72,17 +72,10 @@ const filterItemOnCategoriesWithMultipleValues = (categoryValue, currentFilter)
|
|
|
72
72
|
return true;
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
const getItemId = (item) => {
|
|
76
|
-
if ('cardRepaymentId' in item) {
|
|
77
|
-
return item.cardRepaymentId;
|
|
78
|
-
}
|
|
79
|
-
return item
|
|
80
|
-
.id;
|
|
81
|
-
};
|
|
82
75
|
const removeDuplicatesFromList = (list) => {
|
|
83
76
|
const foundIds = [];
|
|
84
77
|
return list.filter((item) => {
|
|
85
|
-
const itemId =
|
|
78
|
+
const itemId = item.id;
|
|
86
79
|
if (foundIds.indexOf(itemId) === -1) {
|
|
87
80
|
foundIds.push(itemId);
|
|
88
81
|
return true;
|
|
@@ -117,9 +110,7 @@ const applyAdvancedFiltersOnList = (entity, allItems, filters, filteredItems = [
|
|
|
117
110
|
? getCategoryValueForBill(key, item)
|
|
118
111
|
: entity === 'reimbursement'
|
|
119
112
|
? getCategoryValueForReimbursement(key, item)
|
|
120
|
-
:
|
|
121
|
-
? getCategoryValueForTaskList(key, item)
|
|
122
|
-
: getCategoryValueForPaymentHistory(key, item);
|
|
113
|
+
: getCategoryValueForTaskList(key, item);
|
|
123
114
|
if (categoryValue == null) {
|
|
124
115
|
if (currentFilter.matchingOperator === 'not-equal') {
|
|
125
116
|
return true;
|
|
@@ -139,7 +130,6 @@ const applyAdvancedFiltersOnList = (entity, allItems, filters, filteredItems = [
|
|
|
139
130
|
'dueDate',
|
|
140
131
|
'creationDate',
|
|
141
132
|
'receiptDate',
|
|
142
|
-
'repaymentDate',
|
|
143
133
|
]);
|
|
144
134
|
}
|
|
145
135
|
});
|
|
@@ -241,23 +231,6 @@ const getCategoryValueForReimbursement = (key, reimbursement) => {
|
|
|
241
231
|
return undefined;
|
|
242
232
|
}
|
|
243
233
|
};
|
|
244
|
-
const getCategoryValueForPaymentHistory = (key, repayment) => {
|
|
245
|
-
switch (key) {
|
|
246
|
-
case 'repaymentDate':
|
|
247
|
-
return repayment.repaymentDate;
|
|
248
|
-
case 'sourceAccount': {
|
|
249
|
-
return repayment.paymentAccountId;
|
|
250
|
-
}
|
|
251
|
-
case 'status':
|
|
252
|
-
return repayment.status;
|
|
253
|
-
case 'initiatedBy':
|
|
254
|
-
return repayment.repaymentType === 'scheduled'
|
|
255
|
-
? 'autopay'
|
|
256
|
-
: repayment.paidById;
|
|
257
|
-
default:
|
|
258
|
-
return undefined;
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
234
|
const isBillListDownloadable = (state, currentTimePeriod) => {
|
|
262
235
|
const { billListState, billTransactionState, entityApprovalStatusState, userState, } = state;
|
|
263
236
|
const keys = billListState_1.ALL_BILL_TABS.filter((tab) => tab !== 'draft').map((tab) => (0, billListState_1.getBillListKey)(currentTimePeriod, tab));
|
package/lib/view/spendManagement/zeniAccounts/depositAccountList/fetchDepositAccountListEpic.js
CHANGED
|
@@ -11,13 +11,11 @@ const fetchDepositAccountListEpic = (actions$, _state$, zeniAPI) => actions$.pip
|
|
|
11
11
|
return zeniAPI
|
|
12
12
|
.getJSON(`${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/deposit-accounts?query=${encodeURIComponent(`{"is_include_deposit_accounts_summary":true}`)}`)
|
|
13
13
|
.pipe((0, operators_1.mergeMap)((response) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const depositAccounts = response.data?.deposit_accounts ?? [];
|
|
17
|
-
return (0, rxjs_1.of)((0, depositAccountReducer_1.updateDepositAccounts)(depositAccounts), (0, zeniAccountListReducer_1.updateZeniAccountsSummary)({
|
|
14
|
+
if ((0, responsePayload_1.isSuccessResponse)(response)) {
|
|
15
|
+
return (0, rxjs_1.of)((0, depositAccountReducer_1.updateDepositAccounts)(response.data?.deposit_accounts ?? []), (0, zeniAccountListReducer_1.updateZeniAccountsSummary)({
|
|
18
16
|
summaryPayload: response.data?.all_deposit_accounts_summary,
|
|
19
17
|
}), (0, depositAccountListReducer_1.updateDepositAccountList)({
|
|
20
|
-
data:
|
|
18
|
+
data: response.data?.deposit_accounts ?? [],
|
|
21
19
|
updateType: 'replace',
|
|
22
20
|
}));
|
|
23
21
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.60",
|
|
4
4
|
"description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export const PAYMENT_HISTORY_FILTER_CATEGORIES = [
|
|
2
|
-
{ value: 'repaymentDate', type: 'dateRange', multiple: true },
|
|
3
|
-
{ value: 'sourceAccount', multiple: true, type: 'dropdown' },
|
|
4
|
-
{ value: 'status', multiple: true, type: 'dropdown' },
|
|
5
|
-
{ value: 'initiatedBy', multiple: true, type: 'dropdown' },
|
|
6
|
-
];
|
|
7
|
-
export const initialChargeCardPaymentHistoryState = {
|
|
8
|
-
fetchState: 'Not-Started',
|
|
9
|
-
error: undefined,
|
|
10
|
-
creditAccountId: '',
|
|
11
|
-
currencyCode: 'USD',
|
|
12
|
-
currencySymbol: '$',
|
|
13
|
-
downloadUIState: {
|
|
14
|
-
downloadState: 'Not-Started',
|
|
15
|
-
},
|
|
16
|
-
filters: {
|
|
17
|
-
categories: [],
|
|
18
|
-
categoryCombinationOperator: 'AND',
|
|
19
|
-
},
|
|
20
|
-
isAutoPayEnabled: false,
|
|
21
|
-
repaymentHistoryIds: [],
|
|
22
|
-
searchText: '',
|
|
23
|
-
totalRepayments: 0,
|
|
24
|
-
repaymentHistoryXlsDownloadUrl: '',
|
|
25
|
-
uiState: {
|
|
26
|
-
sortKey: 'paymentDate',
|
|
27
|
-
sortOrder: 'ascending',
|
|
28
|
-
},
|
|
29
|
-
hasValidState() {
|
|
30
|
-
return this.fetchState === 'Completed';
|
|
31
|
-
},
|
|
32
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { getChargeCardRepaymentByIds } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector';
|
|
2
|
-
import { getUsersByUserIds } from '../../../../entity/user/userSelector';
|
|
3
|
-
import { applyPaymentHistoryFiltersSearchAndSort } from './chargeCardPaymentHistoryHelpers';
|
|
4
|
-
export const getChargeCardPaymentHistoryDownloadReport = (state) => {
|
|
5
|
-
const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState } = state;
|
|
6
|
-
const { filters, repaymentHistoryIds, searchText, uiState, fetchState, error } = chargeCardPaymentHistoryState;
|
|
7
|
-
const repaymentHistory = getChargeCardRepaymentByIds(chargeCardRepaymentState, repaymentHistoryIds);
|
|
8
|
-
const repaymentHistoryUserIds = Array.from(new Set(repaymentHistory.map((r) => r.paidById)));
|
|
9
|
-
const repaymentHistoryUsers = getUsersByUserIds(userState, repaymentHistoryUserIds);
|
|
10
|
-
const userMap = new Map(repaymentHistoryUsers.map((user) => [user.userId, user]));
|
|
11
|
-
const repaymentHistoryWithUsers = repaymentHistory.map((repayment) => ({
|
|
12
|
-
...repayment,
|
|
13
|
-
paidByUser: userMap.get(repayment.paidById),
|
|
14
|
-
}));
|
|
15
|
-
const transactions = applyPaymentHistoryFiltersSearchAndSort(repaymentHistoryWithUsers, filters, searchText, uiState);
|
|
16
|
-
return {
|
|
17
|
-
reportTitle: 'Card Payment History',
|
|
18
|
-
fetchState,
|
|
19
|
-
error,
|
|
20
|
-
transactions,
|
|
21
|
-
};
|
|
22
|
-
};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import orderBy from 'lodash/orderBy';
|
|
2
|
-
import { getUserName } from '../../../../entity/user/userSelector';
|
|
3
|
-
import { applyAdvancedFiltersOnList } from '../../spendManagementFilterHelpers';
|
|
4
|
-
export function getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId) {
|
|
5
|
-
const fromMap = repayment.paymentAccountId != null
|
|
6
|
-
? accountInfoByAccountId?.[repayment.paymentAccountId]?.depositAccountName
|
|
7
|
-
: undefined;
|
|
8
|
-
return fromMap ?? repayment.paymentAccountName ?? '';
|
|
9
|
-
}
|
|
10
|
-
export function getPaymentStatusDisplayText(status) {
|
|
11
|
-
const statusMap = {
|
|
12
|
-
PendingReview: 'In Progress',
|
|
13
|
-
Pending: 'In Progress',
|
|
14
|
-
Sent: 'Complete',
|
|
15
|
-
Clear: 'Complete',
|
|
16
|
-
Rejected: 'Failed',
|
|
17
|
-
Returned: 'Failed',
|
|
18
|
-
};
|
|
19
|
-
return statusMap[status] ?? status;
|
|
20
|
-
}
|
|
21
|
-
function getPaymentHistorySortValue(repayment, sortKey, accountInfoByAccountId) {
|
|
22
|
-
switch (sortKey) {
|
|
23
|
-
case 'paymentDate':
|
|
24
|
-
return repayment.repaymentDate.valueOf();
|
|
25
|
-
case 'amount':
|
|
26
|
-
return repayment.amount.amount;
|
|
27
|
-
case 'paymentStatus':
|
|
28
|
-
return getPaymentStatusDisplayText(repayment.status);
|
|
29
|
-
case 'initiatedBy':
|
|
30
|
-
return repayment.repaymentType === 'scheduled'
|
|
31
|
-
? 'autopay'
|
|
32
|
-
: getUserName(repayment.paidByUser);
|
|
33
|
-
case 'sourceAccount':
|
|
34
|
-
return getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId);
|
|
35
|
-
default:
|
|
36
|
-
return '';
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function sortPaymentHistory(repayments, sortKey, sortOrder, accountInfoByAccountId) {
|
|
40
|
-
const getColumnWiseSortOrder = (sortOrder) => {
|
|
41
|
-
// Note: For date and amount fields, the sort order is intentionally inverted.
|
|
42
|
-
// This allows the UI to request 'ascending' sort to get the most recent dates
|
|
43
|
-
// or largest amounts first, which is a more intuitive default for users.
|
|
44
|
-
switch (sortKey) {
|
|
45
|
-
case 'sourceAccount':
|
|
46
|
-
case 'paymentStatus':
|
|
47
|
-
case 'initiatedBy':
|
|
48
|
-
return sortOrder === 'ascending' ? 'asc' : 'desc';
|
|
49
|
-
default:
|
|
50
|
-
return sortOrder === 'ascending' ? 'desc' : 'asc';
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const order = getColumnWiseSortOrder(sortOrder);
|
|
54
|
-
return orderBy(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoByAccountId), [order]);
|
|
55
|
-
}
|
|
56
|
-
function filterPaymentHistoryBySearchText(repayments, searchText, accountInfoByAccountId) {
|
|
57
|
-
const loweredSearchText = searchText.trim().toLowerCase();
|
|
58
|
-
if (loweredSearchText.length === 0) {
|
|
59
|
-
return repayments;
|
|
60
|
-
}
|
|
61
|
-
return repayments.filter((repayment) => {
|
|
62
|
-
const amountString = repayment.amount.amount.toString();
|
|
63
|
-
const statusString = getPaymentStatusDisplayText(repayment.status).toLowerCase();
|
|
64
|
-
const initiatedByString = repayment.repaymentType === 'scheduled'
|
|
65
|
-
? 'autopay'
|
|
66
|
-
: getUserName(repayment.paidByUser);
|
|
67
|
-
const accountNameString = getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId).toLowerCase();
|
|
68
|
-
return (amountString.includes(loweredSearchText) ||
|
|
69
|
-
statusString.includes(loweredSearchText) ||
|
|
70
|
-
initiatedByString.toLowerCase().includes(loweredSearchText) ||
|
|
71
|
-
accountNameString.includes(loweredSearchText));
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
export function applyPaymentHistoryFiltersSearchAndSort(repayments, filters, searchText, uiState, accountInfoByAccountId) {
|
|
75
|
-
let result = applyAdvancedFiltersOnList('charge_card_payment_history', repayments, filters);
|
|
76
|
-
result = filterPaymentHistoryBySearchText(result, searchText, accountInfoByAccountId);
|
|
77
|
-
result = sortPaymentHistory(result, uiState.sortKey, uiState.sortOrder, accountInfoByAccountId);
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
-
import { initialChargeCardPaymentHistoryState, } from './chargeCardPaymentHistory';
|
|
3
|
-
export const initialState = initialChargeCardPaymentHistoryState;
|
|
4
|
-
const chargeCardPaymentHistory = createSlice({
|
|
5
|
-
name: 'chargeCardPaymentHistory',
|
|
6
|
-
initialState,
|
|
7
|
-
reducers: {
|
|
8
|
-
fetchChargeCardPaymentPage: {
|
|
9
|
-
reducer() {
|
|
10
|
-
// do nothing
|
|
11
|
-
},
|
|
12
|
-
prepare(cacheOverride = false) {
|
|
13
|
-
return {
|
|
14
|
-
payload: {
|
|
15
|
-
cacheOverride,
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
fetchChargeCardPaymentHistory(draft) {
|
|
21
|
-
draft.fetchState = 'In-Progress';
|
|
22
|
-
draft.error = undefined;
|
|
23
|
-
},
|
|
24
|
-
updateChargeCardPaymentHistory(draft, action) {
|
|
25
|
-
const payload = action.payload;
|
|
26
|
-
draft.creditAccountId = payload.credit_account_id;
|
|
27
|
-
draft.currencyCode = payload.currency_code;
|
|
28
|
-
draft.currencySymbol = payload.currency_symbol;
|
|
29
|
-
draft.isAutoPayEnabled = payload.is_auto_pay_enabled;
|
|
30
|
-
draft.repaymentHistoryIds = payload.repayment_history.map((repayment) => repayment.card_repayment_id);
|
|
31
|
-
draft.totalRepayments = payload.total_repayments;
|
|
32
|
-
draft.fetchState = 'Completed';
|
|
33
|
-
draft.error = undefined;
|
|
34
|
-
},
|
|
35
|
-
updateChargeCardPaymentHistoryFailure(draft, action) {
|
|
36
|
-
draft.fetchState = 'Error';
|
|
37
|
-
draft.error = action.payload;
|
|
38
|
-
},
|
|
39
|
-
addRepaymentToChargeCardPaymentHistory(draft, action) {
|
|
40
|
-
const { cardRepaymentId, zeniCreditAccountId } = action.payload;
|
|
41
|
-
if (draft.creditAccountId !== zeniCreditAccountId) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (draft.repaymentHistoryIds.includes(cardRepaymentId)) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
draft.repaymentHistoryIds.unshift(cardRepaymentId);
|
|
48
|
-
draft.totalRepayments += 1;
|
|
49
|
-
},
|
|
50
|
-
clearChargeCardPaymentHistory(draft) {
|
|
51
|
-
Object.assign(draft, initialState);
|
|
52
|
-
},
|
|
53
|
-
updatePaymentHistoryFilters(draft, action) {
|
|
54
|
-
if (action.payload.filters != null) {
|
|
55
|
-
draft.filters = action.payload.filters;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
updatePaymentHistorySearchText(draft, action) {
|
|
59
|
-
if (action.payload != null) {
|
|
60
|
-
draft.searchText = action.payload;
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
updatePaymentHistoryUIState(draft, action) {
|
|
64
|
-
if (action.payload.uiState.sortKey != null) {
|
|
65
|
-
draft.uiState.sortKey = action.payload.uiState.sortKey;
|
|
66
|
-
}
|
|
67
|
-
if (action.payload.uiState.sortOrder != null) {
|
|
68
|
-
draft.uiState.sortOrder = action.payload.uiState.sortOrder;
|
|
69
|
-
}
|
|
70
|
-
if (action.payload.uiState.scrollYOffset != null) {
|
|
71
|
-
draft.uiState.scrollYOffset = action.payload.uiState.scrollYOffset;
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
updatePaymentHistoryDownloadUIState(draft, action) {
|
|
75
|
-
if (action.payload.uiState.downloadState != null) {
|
|
76
|
-
draft.downloadUIState.downloadState =
|
|
77
|
-
action.payload.uiState.downloadState;
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
export const { addRepaymentToChargeCardPaymentHistory, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updateChargeCardPaymentHistory, updateChargeCardPaymentHistoryFailure, clearChargeCardPaymentHistory, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryDownloadUIState, updatePaymentHistoryUIState, } = chargeCardPaymentHistory.actions;
|
|
83
|
-
export default chargeCardPaymentHistory.reducer;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { reduceAllFetchState } from '../../../../commonStateTypes/reduceFetchState';
|
|
2
|
-
import { getChargeCardRepaymentByIds } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector';
|
|
3
|
-
import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
|
|
4
|
-
import { getPaymentAccountByPaymentAccountId } from '../../../../entity/paymentAccount/paymentAccountSelector';
|
|
5
|
-
import { getUsersByUserIds } from '../../../../entity/user/userSelector';
|
|
6
|
-
import { getAllFundingAccounts, mapDepositAccToFundingAccount, mapPaymentAccToFundingAccount, } from '../../commonSetup/setupViewSelector';
|
|
7
|
-
import { getAllDepositAccounts } from '../../zeniAccounts/depositAccountList/depositAccountListSelector';
|
|
8
|
-
import { getAllPaymentAccounts } from '../../zeniAccounts/paymentAccountList/paymentAccountListSelector';
|
|
9
|
-
import { applyPaymentHistoryFiltersSearchAndSort } from './chargeCardPaymentHistoryHelpers';
|
|
10
|
-
export const getChargeCardPaymentHistoryView = (state) => {
|
|
11
|
-
const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, } = state;
|
|
12
|
-
const { creditAccountId, currencyCode, currencySymbol, filters, isAutoPayEnabled, repaymentHistoryIds, searchText, totalRepayments, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
|
|
13
|
-
// Get the full repayment details from the entity state
|
|
14
|
-
const repaymentHistory = getChargeCardRepaymentByIds(chargeCardRepaymentState, repaymentHistoryIds);
|
|
15
|
-
const repaymentHistoryUserIds = Array.from(new Set(repaymentHistory.map((r) => r.paidById)));
|
|
16
|
-
// Get users first to enrich repayments
|
|
17
|
-
const repaymentHistoryUsers = getUsersByUserIds(userState, repaymentHistoryUserIds);
|
|
18
|
-
// Create a map of userId -> User for quick lookup
|
|
19
|
-
const userMap = new Map();
|
|
20
|
-
repaymentHistoryUsers.forEach((user) => {
|
|
21
|
-
userMap.set(user.userId, user);
|
|
22
|
-
});
|
|
23
|
-
// Enrich repayments with paidByUser details
|
|
24
|
-
let repaymentHistoryWithUsers = repaymentHistory.map((repayment) => ({
|
|
25
|
-
...repayment,
|
|
26
|
-
paidByUser: userMap.get(repayment.paidById),
|
|
27
|
-
}));
|
|
28
|
-
// Get deposit and payment accounts views (used for funding accounts and fetch state)
|
|
29
|
-
const depositAccountsView = getAllDepositAccounts(depositAccountState, depositAccountListState);
|
|
30
|
-
const paymentAccountsView = getAllPaymentAccounts(paymentAccountState, paymentAccountListState);
|
|
31
|
-
// Extract unique funding account IDs from unfiltered repayment history (for accountInfoMap used in filter/sort)
|
|
32
|
-
const repaymentHistoryFundingAccountIdsForMap = Array.from(new Set(repaymentHistory
|
|
33
|
-
.map((repayment) => repayment.paymentAccountId)
|
|
34
|
-
.filter((id) => id !== undefined && id !== null)));
|
|
35
|
-
let fundingAccountsForMap = [];
|
|
36
|
-
if (repaymentHistoryFundingAccountIdsForMap.length > 0) {
|
|
37
|
-
const hasDepositData = depositAccountsView.fetchState === 'Completed';
|
|
38
|
-
const hasPaymentData = paymentAccountsView.fetchState === 'Completed';
|
|
39
|
-
if (hasDepositData || hasPaymentData) {
|
|
40
|
-
const matchingDepositAccountsForMap = hasDepositData
|
|
41
|
-
? depositAccountsView.depositAccounts.filter((depositAccount) => repaymentHistoryFundingAccountIdsForMap.includes(depositAccount.id))
|
|
42
|
-
: [];
|
|
43
|
-
const matchingPaymentAccountsForMap = hasPaymentData
|
|
44
|
-
? paymentAccountsView.paymentAccounts.filter((paymentAccount) => repaymentHistoryFundingAccountIdsForMap.includes(paymentAccount.paymentAccountId))
|
|
45
|
-
: [];
|
|
46
|
-
fundingAccountsForMap = getAllFundingAccounts(matchingDepositAccountsForMap, matchingPaymentAccountsForMap, paymentAccountListState.paymentAccountBalanceFetchStatus, false);
|
|
47
|
-
// Fallback: look up repayment-referenced accounts directly from entity stores
|
|
48
|
-
// in case they're not in the list state (e.g. race condition, stale list)
|
|
49
|
-
const existingIds = new Set(fundingAccountsForMap.map((fa) => fa.id).filter(Boolean));
|
|
50
|
-
for (const accountId of repaymentHistoryFundingAccountIdsForMap) {
|
|
51
|
-
if (existingIds.has(accountId)) {
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
const depositAccount = getDepositAccountByDepositAccountId(depositAccountState, accountId);
|
|
55
|
-
if (depositAccount != null) {
|
|
56
|
-
fundingAccountsForMap.push(mapDepositAccToFundingAccount(depositAccount));
|
|
57
|
-
existingIds.add(accountId);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
const paymentAccount = getPaymentAccountByPaymentAccountId(paymentAccountState, accountId);
|
|
61
|
-
if (paymentAccount != null) {
|
|
62
|
-
fundingAccountsForMap.push(mapPaymentAccToFundingAccount(paymentAccount, paymentAccountListState.paymentAccountBalanceFetchStatus));
|
|
63
|
-
existingIds.add(accountId);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const accountInfoByAccountId = {};
|
|
69
|
-
fundingAccountsForMap.forEach((fa) => {
|
|
70
|
-
if (fa.id != null) {
|
|
71
|
-
accountInfoByAccountId[fa.id] = {
|
|
72
|
-
accountId: fa.id,
|
|
73
|
-
accountLogo: fa.logo,
|
|
74
|
-
accountType: fa.accType === 'depositAccount' ? 'depositAccount' : 'paymentAccount',
|
|
75
|
-
depositAccountLast4: fa.accountLast4,
|
|
76
|
-
depositAccountName: fa.label,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
repaymentHistoryWithUsers = applyPaymentHistoryFiltersSearchAndSort(repaymentHistoryWithUsers, filters, searchText, uiState, accountInfoByAccountId);
|
|
81
|
-
const reducedFetchState = reduceAllFetchState([
|
|
82
|
-
{ fetchState, error },
|
|
83
|
-
depositAccountsView,
|
|
84
|
-
paymentAccountsView,
|
|
85
|
-
...Object.values(paymentAccountListState.paymentAccountBalanceFetchStatus),
|
|
86
|
-
]);
|
|
87
|
-
return {
|
|
88
|
-
accountInfoByAccountId,
|
|
89
|
-
creditAccountId,
|
|
90
|
-
currencyCode,
|
|
91
|
-
currencySymbol,
|
|
92
|
-
filters,
|
|
93
|
-
isAutoPayEnabled,
|
|
94
|
-
repaymentHistory: repaymentHistoryWithUsers,
|
|
95
|
-
repaymentHistoryIds,
|
|
96
|
-
repaymentHistoryUsers,
|
|
97
|
-
searchText,
|
|
98
|
-
totalRepayments,
|
|
99
|
-
uiState,
|
|
100
|
-
fetchState: reducedFetchState.fetchState,
|
|
101
|
-
error: reducedFetchState.error,
|
|
102
|
-
version: 0,
|
|
103
|
-
};
|
|
104
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
|
|
3
|
-
import { updateChargeCardRepayments } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentReducer';
|
|
4
|
-
import { updateAllUsers } from '../../../../entity/user/userReducer';
|
|
5
|
-
import { createZeniAPIStatus, isSuccessStatus, } from '../../../../responsePayload';
|
|
6
|
-
import { fetchChargeCardPaymentHistory, updateChargeCardPaymentHistory, updateChargeCardPaymentHistoryFailure, } from './chargeCardPaymentHistoryReducer';
|
|
7
|
-
export const fetchChargeCardPaymentHistoryEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchChargeCardPaymentHistory.match), switchMap(() => {
|
|
8
|
-
const queryParams = { include_history: true };
|
|
9
|
-
const queryString = encodeURIComponent(JSON.stringify(queryParams));
|
|
10
|
-
return zeniAPI
|
|
11
|
-
.getJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cards/repayments?query=${queryString}`)
|
|
12
|
-
.pipe(mergeMap((response) => {
|
|
13
|
-
if (isSuccessStatus(response) && response.data != null) {
|
|
14
|
-
return of(
|
|
15
|
-
// Store repayments FIRST before marking as completed
|
|
16
|
-
updateChargeCardRepayments(response.data.repayment_history), updateAllUsers({
|
|
17
|
-
users: response.data.repayment_history
|
|
18
|
-
.map((repayment) => repayment.paid_by_user)
|
|
19
|
-
.filter((user) => user != null),
|
|
20
|
-
}),
|
|
21
|
-
// Mark as completed LAST, after all data is stored
|
|
22
|
-
updateChargeCardPaymentHistory(response.data));
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return of(updateChargeCardPaymentHistoryFailure(response.status));
|
|
26
|
-
}
|
|
27
|
-
}), catchError((error) => {
|
|
28
|
-
return of(updateChargeCardPaymentHistoryFailure(createZeniAPIStatus('Unexpected Error', 'Fetch charge card payment history REST API call errored out' +
|
|
29
|
-
JSON.stringify(error))));
|
|
30
|
-
}));
|
|
31
|
-
}));
|