@zeniai/client-epic-state 4.19.24-betaRR4 → 4.19.24-betaRR5
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/entity/chargeCardRepayment/chargeCardRepayment.d.ts +1 -0
- package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.d.ts +1 -0
- package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.js +5 -4
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.d.ts +1 -7
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.js +14 -20
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.d.ts +9 -0
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.js +60 -0
- package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.js +2 -52
- package/package.json +1 -1
|
@@ -22,6 +22,7 @@ export interface ChargeCardRepayment {
|
|
|
22
22
|
updateTime: ZeniDate;
|
|
23
23
|
zeniCreditAccountId: ID;
|
|
24
24
|
isAutoPayEnabled?: boolean;
|
|
25
|
+
paymentAccountName?: string;
|
|
25
26
|
providerCounterpartyAccountId?: ID;
|
|
26
27
|
providerCounterpartyId?: ID;
|
|
27
28
|
thirdPartyTransactionId?: string;
|
|
@@ -25,6 +25,7 @@ export interface ChargeCardRepaymentPayload {
|
|
|
25
25
|
is_auto_pay_enabled?: boolean;
|
|
26
26
|
is_deleted?: boolean;
|
|
27
27
|
paid_by_user?: UserPayload | null;
|
|
28
|
+
payment_account_name?: string | null;
|
|
28
29
|
provider_counterparty_account_id?: string | null;
|
|
29
30
|
provider_counterparty_id?: string;
|
|
30
31
|
}
|
|
@@ -5,7 +5,7 @@ const amount_1 = require("../../commonStateTypes/amount");
|
|
|
5
5
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
6
6
|
const chargeCardRepayment_1 = require("./chargeCardRepayment");
|
|
7
7
|
const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
|
|
8
|
-
var _a, _b, _c, _d;
|
|
8
|
+
var _a, _b, _c, _d, _e;
|
|
9
9
|
return ({
|
|
10
10
|
amount: (0, amount_1.toAmount)(payload.amount, payload.currency_code, payload.currency_symbol),
|
|
11
11
|
cardRepaymentId: payload.card_repayment_id,
|
|
@@ -16,7 +16,8 @@ const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
|
|
|
16
16
|
isAutoPayEnabled: payload.is_auto_pay_enabled,
|
|
17
17
|
paidById: payload.paid_by_user_id,
|
|
18
18
|
paymentMethod: payload.payment_method,
|
|
19
|
-
|
|
19
|
+
paymentAccountName: (_b = payload.payment_account_name) !== null && _b !== void 0 ? _b : undefined,
|
|
20
|
+
providerCounterpartyId: (_c = payload.provider_counterparty_id) !== null && _c !== void 0 ? _c : undefined,
|
|
20
21
|
providerCreditAccountId: payload.provider_credit_account_id,
|
|
21
22
|
providerDepositAccountId: payload.provider_deposit_account_id,
|
|
22
23
|
providerId: payload.provider_id,
|
|
@@ -28,8 +29,8 @@ const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
|
|
|
28
29
|
updateTime: (0, zeniDayJS_1.date)(payload.update_time),
|
|
29
30
|
zeniCreditAccountId: payload.zeni_credit_account_id,
|
|
30
31
|
repaymentType: (0, chargeCardRepayment_1.toChargeCardRepaymentType)(payload.repayment_type),
|
|
31
|
-
providerCounterpartyAccountId: (
|
|
32
|
-
thirdPartyTransactionId: (
|
|
32
|
+
providerCounterpartyAccountId: (_d = payload.provider_counterparty_account_id) !== null && _d !== void 0 ? _d : undefined,
|
|
33
|
+
thirdPartyTransactionId: (_e = payload.third_party_transaction_id) !== null && _e !== void 0 ? _e : undefined,
|
|
33
34
|
});
|
|
34
35
|
};
|
|
35
36
|
exports.mapChargeCardRepaymentPayloadToChargeCardRepayment = mapChargeCardRepaymentPayloadToChargeCardRepayment;
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import { ID } from '../../../../commonStateTypes/common';
|
|
2
1
|
import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
3
2
|
import { RootState } from '../../../../reducer';
|
|
4
3
|
import { ChargeCardRepaymentWithUser } from './chargeCardPaymentHistorySelector';
|
|
5
4
|
export interface ChargeCardPaymentHistoryDownloadReport extends SelectorView {
|
|
6
|
-
accountInfoMap: Map<ID, {
|
|
7
|
-
depositAccountName?: string;
|
|
8
|
-
}>;
|
|
9
5
|
reportTitle: string;
|
|
10
6
|
transactions: ChargeCardRepaymentWithUser[];
|
|
11
7
|
}
|
|
12
|
-
export declare const getChargeCardPaymentHistoryDownloadReport: (state: RootState
|
|
13
|
-
depositAccountName?: string;
|
|
14
|
-
}>) => ChargeCardPaymentHistoryDownloadReport;
|
|
8
|
+
export declare const getChargeCardPaymentHistoryDownloadReport: (state: RootState) => ChargeCardPaymentHistoryDownloadReport;
|
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getChargeCardPaymentHistoryDownloadReport = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
depositAccountName: account.label,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
4
|
+
const chargeCardRepaymentSelector_1 = require("../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector");
|
|
5
|
+
const userSelector_1 = require("../../../../entity/user/userSelector");
|
|
6
|
+
const chargeCardPaymentHistoryHelpers_1 = require("./chargeCardPaymentHistoryHelpers");
|
|
7
|
+
const getChargeCardPaymentHistoryDownloadReport = (state) => {
|
|
8
|
+
const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, } = state;
|
|
9
|
+
const { filters, repaymentHistoryIds, repaymentHistoryUserIds, searchText, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
|
|
10
|
+
const repaymentHistory = (0, chargeCardRepaymentSelector_1.getChargeCardRepaymentByIds)(chargeCardRepaymentState, repaymentHistoryIds);
|
|
11
|
+
const repaymentHistoryUsers = (0, userSelector_1.getUsersByUserIds)(userState, repaymentHistoryUserIds);
|
|
12
|
+
const userMap = new Map(repaymentHistoryUsers.map((user) => [user.userId, user]));
|
|
13
|
+
const repaymentHistoryWithUsers = repaymentHistory.map((repayment) => (Object.assign(Object.assign({}, repayment), { paidByUser: userMap.get(repayment.paidById) })));
|
|
14
|
+
const transactions = (0, chargeCardPaymentHistoryHelpers_1.applyPaymentHistoryFiltersSearchAndSort)(repaymentHistoryWithUsers, filters, searchText, uiState);
|
|
20
15
|
return {
|
|
21
16
|
reportTitle: 'Card Payment History',
|
|
22
|
-
fetchState
|
|
23
|
-
error
|
|
24
|
-
transactions
|
|
25
|
-
accountInfoMap: reportAccountInfoMap,
|
|
17
|
+
fetchState,
|
|
18
|
+
error,
|
|
19
|
+
transactions,
|
|
26
20
|
};
|
|
27
21
|
};
|
|
28
22
|
exports.getChargeCardPaymentHistoryDownloadReport = getChargeCardPaymentHistoryDownloadReport;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ID } from '../../../../commonStateTypes/common';
|
|
2
|
+
import type { ChargeCardRepaymentWithUser } from './chargeCardPaymentHistorySelector';
|
|
3
|
+
import { PaymentHistoryFilters, PaymentHistoryUIState } from './chargeCardPaymentHistory';
|
|
4
|
+
export declare function getPaymentHistorySourceAccountName(repayment: ChargeCardRepaymentWithUser, accountInfoMap?: Map<ID, {
|
|
5
|
+
depositAccountName?: string;
|
|
6
|
+
}>): string;
|
|
7
|
+
export declare function applyPaymentHistoryFiltersSearchAndSort(repayments: ChargeCardRepaymentWithUser[], filters: PaymentHistoryFilters, searchText: string, uiState: PaymentHistoryUIState, accountInfoMap?: Map<ID, {
|
|
8
|
+
depositAccountName?: string;
|
|
9
|
+
}>): ChargeCardRepaymentWithUser[];
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPaymentHistorySourceAccountName = getPaymentHistorySourceAccountName;
|
|
7
|
+
exports.applyPaymentHistoryFiltersSearchAndSort = applyPaymentHistoryFiltersSearchAndSort;
|
|
8
|
+
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
9
|
+
const userSelector_1 = require("../../../../entity/user/userSelector");
|
|
10
|
+
const spendManagementFilterHelpers_1 = require("../../spendManagementFilterHelpers");
|
|
11
|
+
function getPaymentHistorySourceAccountName(repayment, accountInfoMap) {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
return ((_c = (_b = (_a = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId)) === null || _a === void 0 ? void 0 : _a.depositAccountName) !== null && _b !== void 0 ? _b : repayment.paymentAccountName) !== null && _c !== void 0 ? _c : '');
|
|
14
|
+
}
|
|
15
|
+
function getPaymentHistorySortValue(repayment, sortKey, accountInfoMap) {
|
|
16
|
+
switch (sortKey) {
|
|
17
|
+
case 'paymentDate':
|
|
18
|
+
return repayment.repaymentDate.valueOf();
|
|
19
|
+
case 'amount':
|
|
20
|
+
return repayment.amount.amount;
|
|
21
|
+
case 'paymentStatus':
|
|
22
|
+
return repayment.status;
|
|
23
|
+
case 'initiatedBy':
|
|
24
|
+
return repayment.repaymentType === 'scheduled'
|
|
25
|
+
? 'autopay'
|
|
26
|
+
: (0, userSelector_1.getUserName)(repayment.paidByUser);
|
|
27
|
+
case 'sourceAccount':
|
|
28
|
+
return getPaymentHistorySourceAccountName(repayment, accountInfoMap);
|
|
29
|
+
default:
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function sortPaymentHistory(repayments, sortKey, sortOrder, accountInfoMap) {
|
|
34
|
+
const order = sortOrder === 'ascending' ? 'asc' : 'desc';
|
|
35
|
+
return (0, orderBy_1.default)(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoMap), [order]);
|
|
36
|
+
}
|
|
37
|
+
function filterPaymentHistoryBySearchText(repayments, searchText, accountInfoMap) {
|
|
38
|
+
const loweredSearchText = searchText.trim().toLowerCase();
|
|
39
|
+
if (loweredSearchText.length === 0) {
|
|
40
|
+
return repayments;
|
|
41
|
+
}
|
|
42
|
+
return repayments.filter((repayment) => {
|
|
43
|
+
const amountString = repayment.amount.amount.toString();
|
|
44
|
+
const statusString = repayment.status.toLowerCase();
|
|
45
|
+
const initiatedByString = repayment.repaymentType === 'scheduled'
|
|
46
|
+
? 'autopay'
|
|
47
|
+
: (0, userSelector_1.getUserName)(repayment.paidByUser);
|
|
48
|
+
const accountNameString = getPaymentHistorySourceAccountName(repayment, accountInfoMap).toLowerCase();
|
|
49
|
+
return (amountString.includes(loweredSearchText) ||
|
|
50
|
+
statusString.includes(loweredSearchText) ||
|
|
51
|
+
initiatedByString.toLowerCase().includes(loweredSearchText) ||
|
|
52
|
+
accountNameString.includes(loweredSearchText));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function applyPaymentHistoryFiltersSearchAndSort(repayments, filters, searchText, uiState, accountInfoMap) {
|
|
56
|
+
let result = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('charge_card_payment_history', repayments, filters);
|
|
57
|
+
result = filterPaymentHistoryBySearchText(result, searchText, accountInfoMap);
|
|
58
|
+
result = sortPaymentHistory(result, uiState.sortKey, uiState.sortOrder, accountInfoMap);
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
@@ -1,42 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getChargeCardPaymentHistoryView = void 0;
|
|
7
|
-
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
8
4
|
const reduceFetchState_1 = require("../../../../commonStateTypes/reduceFetchState");
|
|
9
5
|
const chargeCardRepaymentSelector_1 = require("../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector");
|
|
10
6
|
const userSelector_1 = require("../../../../entity/user/userSelector");
|
|
11
7
|
const setupViewSelector_1 = require("../../commonSetup/setupViewSelector");
|
|
12
|
-
const spendManagementFilterHelpers_1 = require("../../spendManagementFilterHelpers");
|
|
13
8
|
const depositAccountListSelector_1 = require("../../zeniAccounts/depositAccountList/depositAccountListSelector");
|
|
14
9
|
const paymentAccountListSelector_1 = require("../../zeniAccounts/paymentAccountList/paymentAccountListSelector");
|
|
15
|
-
const
|
|
16
|
-
var _a;
|
|
17
|
-
switch (sortKey) {
|
|
18
|
-
case 'paymentDate':
|
|
19
|
-
return repayment.repaymentDate.valueOf();
|
|
20
|
-
case 'amount':
|
|
21
|
-
return repayment.amount.amount;
|
|
22
|
-
case 'paymentStatus':
|
|
23
|
-
return repayment.status;
|
|
24
|
-
case 'initiatedBy':
|
|
25
|
-
return repayment.repaymentType === 'scheduled'
|
|
26
|
-
? 'autopay'
|
|
27
|
-
: (0, userSelector_1.getUserName)(repayment.paidByUser);
|
|
28
|
-
case 'sourceAccount': {
|
|
29
|
-
const accountInfo = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId);
|
|
30
|
-
return (_a = accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.depositAccountName) !== null && _a !== void 0 ? _a : '';
|
|
31
|
-
}
|
|
32
|
-
default:
|
|
33
|
-
return '';
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const sortPaymentHistory = (repayments, sortKey, sortOrder, accountInfoMap) => {
|
|
37
|
-
const order = sortOrder === 'ascending' ? 'asc' : 'desc';
|
|
38
|
-
return (0, orderBy_1.default)(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoMap), [order]);
|
|
39
|
-
};
|
|
10
|
+
const chargeCardPaymentHistoryHelpers_1 = require("./chargeCardPaymentHistoryHelpers");
|
|
40
11
|
const getChargeCardPaymentHistoryView = (state, accountInfoMap) => {
|
|
41
12
|
const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, } = state;
|
|
42
13
|
const { creditAccountId, currencyCode, currencySymbol, filters, isAutoPayEnabled, repaymentHistoryIds, repaymentHistoryUserIds, searchText, totalRepayments, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
|
|
@@ -51,28 +22,7 @@ const getChargeCardPaymentHistoryView = (state, accountInfoMap) => {
|
|
|
51
22
|
});
|
|
52
23
|
// Enrich repayments with paidByUser details
|
|
53
24
|
let repaymentHistoryWithUsers = repaymentHistory.map((repayment) => (Object.assign(Object.assign({}, repayment), { paidByUser: userMap.get(repayment.paidById) })));
|
|
54
|
-
|
|
55
|
-
repaymentHistoryWithUsers = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('charge_card_payment_history', repaymentHistoryWithUsers, filters);
|
|
56
|
-
// Apply search text filtering
|
|
57
|
-
const loweredSearchText = searchText.trim().toLowerCase();
|
|
58
|
-
if (loweredSearchText.length > 0) {
|
|
59
|
-
repaymentHistoryWithUsers = repaymentHistoryWithUsers.filter((repayment) => {
|
|
60
|
-
var _a, _b;
|
|
61
|
-
const amountString = repayment.amount.amount.toString();
|
|
62
|
-
const statusString = repayment.status.toLowerCase();
|
|
63
|
-
const initiatedByString = repayment.repaymentType === 'scheduled'
|
|
64
|
-
? 'autopay'
|
|
65
|
-
: (0, userSelector_1.getUserName)(repayment.paidByUser);
|
|
66
|
-
const accountInfo = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId);
|
|
67
|
-
const accountNameString = (_b = (_a = accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.depositAccountName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
|
|
68
|
-
return (amountString.includes(loweredSearchText) ||
|
|
69
|
-
statusString.includes(loweredSearchText) ||
|
|
70
|
-
initiatedByString.toLowerCase().includes(loweredSearchText) ||
|
|
71
|
-
accountNameString.includes(loweredSearchText));
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
// Apply sorting
|
|
75
|
-
repaymentHistoryWithUsers = sortPaymentHistory(repaymentHistoryWithUsers, uiState.sortKey, uiState.sortOrder, accountInfoMap);
|
|
25
|
+
repaymentHistoryWithUsers = (0, chargeCardPaymentHistoryHelpers_1.applyPaymentHistoryFiltersSearchAndSort)(repaymentHistoryWithUsers, filters, searchText, uiState, accountInfoMap);
|
|
76
26
|
// Extract unique funding account IDs from repayment history
|
|
77
27
|
const repaymentHistoryFundingAccountIds = Array.from(new Set(repaymentHistoryWithUsers
|
|
78
28
|
.map((repayment) => repayment.providerDepositAccountId)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "4.19.24-
|
|
3
|
+
"version": "4.19.24-betaRR5",
|
|
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
|
"types": "lib/index.d.ts",
|