@zeniai/client-epic-state 5.1.29-beta0ND → 5.1.30
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/__testHelpers__/apiFailure.json +6 -0
- package/lib/entity/genericEntity/entity.d.ts +1 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +3 -2
- package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +1 -1
- package/lib/entity/jeSchedules/jeSchedulesSelector.js +4 -4
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +1 -1
- package/lib/entity/vendor/__mocks__/vendorMock.d.ts +7 -0
- package/lib/entity/vendor/__mocks__/vendorMock.js +311 -0
- package/lib/entity/vendor/__mocks__/vendorStateMocks.d.ts +8 -0
- package/lib/entity/vendor/__mocks__/vendorStateMocks.js +415 -0
- package/lib/entity/vendor/vendorPayload.d.ts +4 -2
- package/lib/entity/vendor/vendorPayload.js +3 -1
- package/lib/esm/__testHelpers__/apiFailure.json +6 -0
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +3 -2
- package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +4 -4
- package/lib/esm/entity/vendor/__mocks__/vendorMock.js +308 -0
- package/lib/esm/entity/vendor/__mocks__/vendorStateMocks.js +412 -0
- package/lib/esm/entity/vendor/vendorPayload.js +3 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/view/accountMappingView/__mocks__/accountMappingSelectorMock.js +4650 -0
- package/lib/esm/view/addressView/__mocks__/addressViewMocks.js +203 -0
- package/lib/esm/view/addressView/__mocks__/json/createAddressResponse.json +23 -0
- package/lib/esm/view/addressView/__mocks__/json/createCompanyAddressSuccess.json +258 -0
- package/lib/esm/view/addressView/__mocks__/json/createCompanyUserAddressSuccess.json +418 -0
- package/lib/esm/view/addressView/__mocks__/json/fetchAddressResponse.json +24 -0
- package/lib/esm/view/addressView/__mocks__/json/updateAddressResponse.json +24 -0
- package/lib/esm/view/commonVendorView/transactionVendorView/epics/saveTransactionVendorEpic.js +11 -6
- package/lib/esm/view/createTransferEntry/epics/createTransferEntryEpic.js +5 -1
- package/lib/esm/view/expenseAutomationView/payload/jeSchedulesPayload.js +4 -1
- package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +1 -1
- package/lib/esm/view/referralView/referralReducer.js +3 -2
- package/lib/esm/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.js +11 -5
- package/lib/esm/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.js +4 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/epics/createNewSchedulesEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/epics/deleteScheduleDetailEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/epics/markAsCompleteScheduleDetailEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/scheduleDetailPayload.js +12 -3
- package/lib/esm/view/scheduleView/scheduleListView/scheduleListSelector.js +8 -7
- package/lib/esm/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.js +8 -3
- package/lib/esm/view/transactionDetail/epics/markTransactionAsNotMiscategorizedEpic.js +2 -28
- package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +5 -1
- package/lib/esm/view/trendWithTransactions/fetchTrendForEntityEpic.js +3 -1
- package/lib/esm/view/vendorFiling1099/vendorFiling1099List/vendorFiling1099ListReducer.js +4 -1
- package/lib/esm/view/vendorList/vendorListReducer.js +4 -1
- package/lib/esm/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.js +9 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +7 -6
- package/lib/view/accountMappingView/__mocks__/accountMappingSelectorMock.d.ts +11 -0
- package/lib/view/accountMappingView/__mocks__/accountMappingSelectorMock.js +4659 -0
- package/lib/view/addressView/__mocks__/addressViewMocks.d.ts +35 -0
- package/lib/view/addressView/__mocks__/addressViewMocks.js +239 -0
- package/lib/view/addressView/__mocks__/json/createAddressResponse.json +23 -0
- package/lib/view/addressView/__mocks__/json/createCompanyAddressSuccess.json +258 -0
- package/lib/view/addressView/__mocks__/json/createCompanyUserAddressSuccess.json +418 -0
- package/lib/view/addressView/__mocks__/json/fetchAddressResponse.json +24 -0
- package/lib/view/addressView/__mocks__/json/updateAddressResponse.json +24 -0
- package/lib/view/commonVendorView/transactionVendorView/epics/saveTransactionVendorEpic.js +11 -6
- package/lib/view/createTransferEntry/epics/createTransferEntryEpic.js +5 -1
- package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.js +4 -1
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +1 -1
- package/lib/view/referralView/referralReducer.d.ts +1 -0
- package/lib/view/referralView/referralReducer.js +4 -3
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.js +1 -1
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.js +11 -5
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.js +4 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/createNewSchedulesEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/deleteScheduleDetailEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/markAsCompleteScheduleDetailEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailPayload.js +12 -3
- package/lib/view/scheduleView/scheduleListView/scheduleListSelector.js +8 -7
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.js +8 -3
- package/lib/view/transactionDetail/epics/markTransactionAsNotMiscategorizedEpic.js +2 -28
- package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +5 -1
- package/lib/view/trendWithTransactions/fetchTrendForEntityEpic.js +3 -1
- package/lib/view/vendorFiling1099/vendorFiling1099List/vendorFiling1099ListReducer.js +4 -1
- package/lib/view/vendorList/vendorListReducer.js +4 -1
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.js +9 -1
- package/package.json +1 -1
|
@@ -6,14 +6,13 @@ const operators_1 = require("rxjs/operators");
|
|
|
6
6
|
const formatZeniDateFY_1 = require("../../../../commonStateTypes/fiscalYearHelpers/formatZeniDateFY");
|
|
7
7
|
const jeSchedulesSelector_1 = require("../../../../entity/jeSchedules/jeSchedulesSelector");
|
|
8
8
|
const transactionReducer_1 = require("../../../../entity/transaction/transactionReducer");
|
|
9
|
-
const vendorSelector_1 = require("../../../../entity/vendor/vendorSelector");
|
|
10
9
|
const responsePayload_1 = require("../../../../responsePayload");
|
|
11
10
|
const zeniDayJS_1 = require("../../../../zeniDayJS");
|
|
12
11
|
const scheduleAccruedDetailReducer_1 = require("../scheduleAccruedDetailReducer");
|
|
13
12
|
const fetchRecommendedTransactionRowIndexEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(scheduleAccruedDetailReducer_1.fetchRecommendedTransactionRowIndex.match), (0, operators_1.mergeMap)((action) => {
|
|
14
13
|
const state = state$.value;
|
|
15
14
|
const { selectedJELinkRowIndex } = action.payload;
|
|
16
|
-
const { scheduleAccruedDetailState
|
|
15
|
+
const { scheduleAccruedDetailState } = state;
|
|
17
16
|
const actions = [];
|
|
18
17
|
const { selectedJEAccruedScheduleKey } = scheduleAccruedDetailState;
|
|
19
18
|
if (selectedJEAccruedScheduleKey == null ||
|
|
@@ -30,14 +29,21 @@ const fetchRecommendedTransactionRowIndexEpic = (actions$, state$, zeniAPI) => a
|
|
|
30
29
|
const { amount, runningBalance: accruedBalance, expectedPostDate, } = selectedJournalEntry;
|
|
31
30
|
const endDate = (0, zeniDayJS_1.dateNow)().endOf('month').format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT);
|
|
32
31
|
const { vendor } = jeScheduleState;
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
if (vendor?.id == null) {
|
|
33
|
+
return (0, rxjs_1.from)([
|
|
34
|
+
(0, scheduleAccruedDetailReducer_1.updateFetchedTransactionIds)([], (value) => value.transaction_id),
|
|
35
|
+
(0, scheduleAccruedDetailReducer_1.updatedFetchRecommendationBillExpenseSuccessOrFailure)({
|
|
36
|
+
fetchState: 'Completed',
|
|
37
|
+
error: undefined,
|
|
38
|
+
}),
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
35
41
|
const queryParam = {
|
|
36
42
|
start_date: expectedPostDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT),
|
|
37
43
|
end_date: endDate,
|
|
38
44
|
amount: amount?.amount ?? 0,
|
|
39
45
|
accrued_balance: accruedBalance?.amount ?? 0,
|
|
40
|
-
vendor_id:
|
|
46
|
+
vendor_id: vendor.id,
|
|
41
47
|
account_name: account?.accountName ?? '',
|
|
42
48
|
class_name: accountingClass?.className ?? '',
|
|
43
49
|
};
|
|
@@ -210,7 +210,10 @@ const mapAccruedExpenseJEScheduleTransactionToPayload = (jeScheduleAccruedExpens
|
|
|
210
210
|
const lastJEScheduleDate = scheduleLength > 0
|
|
211
211
|
? scheduleDetailsLocalDataAccruedExpenses.jeScheduleDetails[scheduleLength - 1].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
212
212
|
: null;
|
|
213
|
-
const vendorID = vendor
|
|
213
|
+
const vendorID = vendor?.id;
|
|
214
|
+
if (vendorID == null) {
|
|
215
|
+
throw new Error('Vendor is required to build accrued schedule detail payload');
|
|
216
|
+
}
|
|
214
217
|
const vendorDetails = vendorState.vendorByID[vendorID];
|
|
215
218
|
const payload = {
|
|
216
219
|
status: status,
|
|
@@ -15,7 +15,7 @@ const createNewSchedulesEpic = (actions$, state$) => actions$.pipe((0, operators
|
|
|
15
15
|
if (selectedJEScheduleKey != null) {
|
|
16
16
|
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(selectedJEScheduleKey, state);
|
|
17
17
|
const totalAmount = jeScheduleTransactionState.baseTransaction.amount;
|
|
18
|
-
const vendorName = jeScheduleTransactionState.vendor
|
|
18
|
+
const vendorName = jeScheduleTransactionState.vendor?.name ?? '';
|
|
19
19
|
const currentLocalData = jeScheduleTransactionState.jeScheduleId != null
|
|
20
20
|
? scheduleDetailState.editScheduleStateByDetailId[scheduleType][jeScheduleTransactionState.jeScheduleId]
|
|
21
21
|
: scheduleDetailState.newScheduleState[scheduleType];
|
|
@@ -19,7 +19,7 @@ const deleteScheduleDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0
|
|
|
19
19
|
return (0, rxjs_1.from)(actions);
|
|
20
20
|
}
|
|
21
21
|
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(selectedJEScheduleKey, state);
|
|
22
|
-
const vendorName = jeScheduleTransactionState.vendor
|
|
22
|
+
const vendorName = jeScheduleTransactionState.vendor?.name ?? '';
|
|
23
23
|
const scheduleDetailId = jeScheduleTransactionState.jeScheduleId ?? selectedJeScheduleDetailId;
|
|
24
24
|
if (scheduleDetailId == null) {
|
|
25
25
|
return (0, rxjs_1.from)(actions);
|
|
@@ -15,7 +15,7 @@ const markAsCompleteScheduleDetailEpic = (actions$, state$, zeniAPI) => actions$
|
|
|
15
15
|
const actions = [];
|
|
16
16
|
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(jeScheduleKey, state);
|
|
17
17
|
const scheduleDetailId = jeScheduleTransactionState.jeScheduleId;
|
|
18
|
-
const vendorName = jeScheduleTransactionState.vendor
|
|
18
|
+
const vendorName = jeScheduleTransactionState.vendor?.name ?? '';
|
|
19
19
|
const scheduleDetailsUpdated = scheduleDetailId != null
|
|
20
20
|
? state.scheduleDetailState.editScheduleStateByDetailId[scheduleType][scheduleDetailId]
|
|
21
21
|
: state.scheduleDetailState.newScheduleState[scheduleType];
|
|
@@ -19,7 +19,7 @@ const saveScheduleDetailsEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
|
|
|
19
19
|
return (0, rxjs_1.from)(actions);
|
|
20
20
|
}
|
|
21
21
|
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(selectedJEScheduleKey, state);
|
|
22
|
-
const vendorName = jeScheduleTransactionState.vendor
|
|
22
|
+
const vendorName = jeScheduleTransactionState.vendor?.name ?? '';
|
|
23
23
|
const scheduleDetailId = jeScheduleTransactionState.jeScheduleId ?? selectedJeScheduleDetailId;
|
|
24
24
|
const scheduleDetailsUpdated = scheduleDetailId != null
|
|
25
25
|
? state.scheduleDetailState.editScheduleStateByDetailId[scheduleType][scheduleDetailId]
|
|
@@ -125,7 +125,10 @@ const mapJEScheduleTransactionToPayload = (jeScheduleTransactionState, vendorSta
|
|
|
125
125
|
const lastJEScheduleDate = scheduleLength > 0
|
|
126
126
|
? scheduleDetailsLocalData.jeScheduleDetails[scheduleLength - 1].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
127
127
|
: null;
|
|
128
|
-
const vendorID = vendor
|
|
128
|
+
const vendorID = vendor?.id;
|
|
129
|
+
if (vendorID == null) {
|
|
130
|
+
throw new Error('Vendor is required to build schedule detail payload (mapJEScheduleTransactionToPayload)');
|
|
131
|
+
}
|
|
129
132
|
const vendorDetails = vendorState.vendorByID[vendorID];
|
|
130
133
|
const updatedVendor = {
|
|
131
134
|
vendor_id: selectedVendor?.id ?? '',
|
|
@@ -200,7 +203,10 @@ const mapFixedAssetJEScheduleTransactionToPayload = (jeScheduleTransactionState,
|
|
|
200
203
|
const lastJEScheduleDate = scheduleLength > 0
|
|
201
204
|
? scheduleDetailsLocalData.jeScheduleDetails[scheduleLength - 1].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
202
205
|
: null;
|
|
203
|
-
const vendorID = vendor
|
|
206
|
+
const vendorID = vendor?.id;
|
|
207
|
+
if (vendorID == null) {
|
|
208
|
+
throw new Error('Vendor is required to build schedule detail payload (mapFixedAssetJEScheduleTransactionToPayload)');
|
|
209
|
+
}
|
|
204
210
|
const vendorDetails = vendorState.vendorByID[vendorID];
|
|
205
211
|
const updatedVendor = {
|
|
206
212
|
vendor_id: selectedVendor?.id ?? '',
|
|
@@ -278,7 +284,10 @@ const mapAccruedExpenseJEScheduleTransactionToPayload = (jeScheduleTransactionSt
|
|
|
278
284
|
const lastJEScheduleDate = scheduleLength > 0
|
|
279
285
|
? scheduleDetailsLocalData.jeScheduleDetails[scheduleLength - 1].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
280
286
|
: null;
|
|
281
|
-
const vendorID = vendor
|
|
287
|
+
const vendorID = vendor?.id;
|
|
288
|
+
if (vendorID == null) {
|
|
289
|
+
throw new Error('Vendor is required to build schedule detail payload (mapAccruedExpenseJEScheduleTransactionToPayload)');
|
|
290
|
+
}
|
|
282
291
|
const vendorDetails = vendorState.vendorByID[vendorID];
|
|
283
292
|
const payload = {
|
|
284
293
|
status: updatedStatus,
|
|
@@ -18,9 +18,9 @@ const sortedJETransactionsView = (jeTransactions, sortKey, sortOrder) => {
|
|
|
18
18
|
case 'transactionDate':
|
|
19
19
|
return jeTransaction.baseTransaction.date.valueOf();
|
|
20
20
|
case 'vendor':
|
|
21
|
-
return jeTransaction.vendor
|
|
21
|
+
return jeTransaction.vendor?.name != null
|
|
22
22
|
? jeTransaction.vendor.name.toLowerCase()
|
|
23
|
-
: jeTransaction.vendor
|
|
23
|
+
: jeTransaction.vendor?.name;
|
|
24
24
|
case 'scheduleCategory':
|
|
25
25
|
return jeTransaction.baseTransaction.account.accountName.toLowerCase();
|
|
26
26
|
case 'expenseCategory':
|
|
@@ -81,9 +81,9 @@ const sortedJEAccruedSchedules = (jeAccruedSchedules, sortKey, sortOrder) => {
|
|
|
81
81
|
case 'createTime':
|
|
82
82
|
return jeAccruedSchedule.createTime.valueOf();
|
|
83
83
|
case 'vendor':
|
|
84
|
-
return jeAccruedSchedule.vendor
|
|
84
|
+
return jeAccruedSchedule.vendor?.name != null
|
|
85
85
|
? jeAccruedSchedule.vendor.name.toLowerCase()
|
|
86
|
-
: jeAccruedSchedule.vendor
|
|
86
|
+
: jeAccruedSchedule.vendor?.name;
|
|
87
87
|
case 'expenseCategory':
|
|
88
88
|
return jeAccruedSchedule.jeDebit.account != null
|
|
89
89
|
? jeAccruedSchedule.jeDebit.account.accountName.toLowerCase()
|
|
@@ -208,7 +208,7 @@ const getScheduleListReport = (state, scheduleType) => {
|
|
|
208
208
|
.trim()
|
|
209
209
|
.toLowerCase();
|
|
210
210
|
const sortedJETransactionView = sortedJETransactionsView(jeTransactionsView.filter((jeTransaction) => {
|
|
211
|
-
return ((jeTransaction.vendor
|
|
211
|
+
return ((jeTransaction.vendor?.name != null &&
|
|
212
212
|
jeTransaction.vendor.name
|
|
213
213
|
.toLowerCase()
|
|
214
214
|
.includes(loweredSearchText) === true) ||
|
|
@@ -329,8 +329,9 @@ const getAccruedScheduleListReport = (state, scheduleType) => {
|
|
|
329
329
|
.trim()
|
|
330
330
|
.toLocaleLowerCase();
|
|
331
331
|
const sortedJESchedules = sortedJEAccruedSchedules(jeScheduleAccrued.filter((jeSchedule) => {
|
|
332
|
-
return (jeSchedule.vendor
|
|
333
|
-
|
|
332
|
+
return (jeSchedule.vendor?.name
|
|
333
|
+
?.toLowerCase()
|
|
334
|
+
?.includes(loweredSearchText) === true ||
|
|
334
335
|
jeSchedule.memo.toLowerCase().includes(loweredSearchText) === true);
|
|
335
336
|
}), sortKey, sortOrder);
|
|
336
337
|
const totalBalances = (0, scheduleListHelper_1.getCalculatedAccruedScheduleTotal)(sortedJESchedules);
|
|
@@ -20,6 +20,7 @@ const entityApprovalStatusReducer_1 = require("../../../../../entity/entityAppro
|
|
|
20
20
|
const paymentAccountReducer_1 = require("../../../../../entity/paymentAccount/paymentAccountReducer");
|
|
21
21
|
const paymentInstrumentReducer_1 = require("../../../../../entity/paymentInstrument/paymentInstrumentReducer");
|
|
22
22
|
const userReducer_1 = require("../../../../../entity/user/userReducer");
|
|
23
|
+
const vendorPayload_1 = require("../../../../../entity/vendor/vendorPayload");
|
|
23
24
|
const vendorReducer_1 = require("../../../../../entity/vendor/vendorReducer");
|
|
24
25
|
const responsePayload_1 = require("../../../../../responsePayload");
|
|
25
26
|
const commonVendorViewHelper_1 = require("../../../../commonVendorView/commonVendorViewHelper");
|
|
@@ -104,12 +105,16 @@ const fetchBillDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
|
|
|
104
105
|
}
|
|
105
106
|
else {
|
|
106
107
|
fetchActions.push((0, billDetailViewReducer_1.updateBillDetail)({ billId, billDetail: response.data }));
|
|
107
|
-
fetchActions.push((0, billDetailViewReducer_1.updateBillDetailFetchState)(transcationId, 'Completed', undefined, vendorInResponse?.vendor_id));
|
|
108
108
|
const transactionInResponse = response.data?.transaction;
|
|
109
|
+
const resolvedVendorId = vendorInResponse != null
|
|
110
|
+
? (0, vendorPayload_1.getVendorPayloadIdentifier)(vendorInResponse)
|
|
111
|
+
: null;
|
|
112
|
+
fetchActions.push((0, billDetailViewReducer_1.updateBillDetailFetchState)(transcationId, 'Completed', undefined, resolvedVendorId ?? undefined));
|
|
109
113
|
if (transactionInResponse != null &&
|
|
110
114
|
transactionInResponse.total_amount != null &&
|
|
115
|
+
resolvedVendorId != null &&
|
|
111
116
|
vendorInResponse != null) {
|
|
112
|
-
fetchActions.push((0, billPayReviewReducer_1.fetchDuplicateBill)(vendorInResponse.vendor_name,
|
|
117
|
+
fetchActions.push((0, billPayReviewReducer_1.fetchDuplicateBill)(vendorInResponse.vendor_name, resolvedVendorId, transactionInResponse.total_amount, transactionInResponse.recipient_total_amount, transactionInResponse.document_id, billId));
|
|
113
118
|
}
|
|
114
119
|
const billHasPaymentError = [
|
|
115
120
|
'failed',
|
|
@@ -165,7 +170,7 @@ function removeCompleteTransaction(billId, transaction) {
|
|
|
165
170
|
function getVendorPreviousBillsActions(billTransactionPayload) {
|
|
166
171
|
const fetchPreviousBillsActions = [];
|
|
167
172
|
const vendorId = billTransactionPayload.vendor_id;
|
|
168
|
-
if (
|
|
173
|
+
if (vendorId != null && vendorId !== '') {
|
|
169
174
|
fetchPreviousBillsActions.push((0, previousBillsReducer_1.fetchPreviousBills)(vendorId, false));
|
|
170
175
|
}
|
|
171
176
|
return fetchPreviousBillsActions;
|
|
@@ -12,36 +12,10 @@ const transactionsViewReducer_1 = require("../../expenseAutomationView/reducers/
|
|
|
12
12
|
const transactionDetailReducer_1 = require("../transactionDetailReducer");
|
|
13
13
|
const transactionDetailState_1 = require("../transactionDetailState");
|
|
14
14
|
const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.markTransactionAsNotMiscategorized.match), (0, operators_1.mergeMap)((action) => {
|
|
15
|
-
// Expense-automation customers must be marked review-complete through the
|
|
16
|
-
// same endpoint the categorization list uses; mark-miscategorized-as-correct
|
|
17
|
-
// does not move their lines out of review. Mirror the list flow by reviewing
|
|
18
|
-
// the transaction's categorizable line ids (updatesByLineId).
|
|
19
|
-
const { url, body } = action.payload.isExpenseAutomationEnabled === true
|
|
20
|
-
? {
|
|
21
|
-
url: `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/expense-automation/mark-as-reviewed`,
|
|
22
|
-
body: {
|
|
23
|
-
transactions_reviewed: [
|
|
24
|
-
{
|
|
25
|
-
transaction_id: action.payload.transactionId.id,
|
|
26
|
-
line_ids: Object.keys(action.payload.transactionSaveUpdates.updates
|
|
27
|
-
?.updatesByLineId ?? {}),
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
},
|
|
31
|
-
}
|
|
32
|
-
: {
|
|
33
|
-
url: `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/transactions/${action.payload.transactionId.id}/mark-miscategorized-as-correct`,
|
|
34
|
-
body: preparePayload(action.payload.transactionId),
|
|
35
|
-
};
|
|
36
15
|
return zeniAPI
|
|
37
|
-
.putAndGetJSON(
|
|
16
|
+
.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/transactions/${action.payload.transactionId.id}/mark-miscategorized-as-correct`, preparePayload(action.payload.transactionId))
|
|
38
17
|
.pipe((0, operators_1.mergeMap)((response) => {
|
|
39
|
-
|
|
40
|
-
// transaction under transactions_reviewed_failed; don't clear it then.
|
|
41
|
-
const reviewedFailedForExpenseAutomation = action.payload.isExpenseAutomationEnabled === true &&
|
|
42
|
-
(response.data?.transactions_reviewed_failed ?? []).some((reviewed) => reviewed.transaction_id === action.payload.transactionId.id);
|
|
43
|
-
if ((0, responsePayload_1.isSuccessStatus)(response) &&
|
|
44
|
-
!reviewedFailedForExpenseAutomation) {
|
|
18
|
+
if ((0, responsePayload_1.isSuccessStatus)(response)) {
|
|
45
19
|
const actions = [];
|
|
46
20
|
actions.push((0, transactionDetailReducer_1.updateStatusForTransactionNotMiscategorizedUpdate)(action.payload.transactionId, 'Completed', undefined));
|
|
47
21
|
const transactionKey = (0, transactionDetailState_1.getTransactionDetailKey)(action.payload.transactionId);
|
|
@@ -23,6 +23,7 @@ const transactionHelper_1 = require("../../../entity/transaction/transactionHelp
|
|
|
23
23
|
const transactionReducer_1 = require("../../../entity/transaction/transactionReducer");
|
|
24
24
|
const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
|
|
25
25
|
const vendorReducer_1 = require("../../../entity/vendor/vendorReducer");
|
|
26
|
+
const vendorPayload_1 = require("../../../entity/vendor/vendorPayload");
|
|
26
27
|
const vendorSelector_1 = require("../../../entity/vendor/vendorSelector");
|
|
27
28
|
const responsePayload_1 = require("../../../responsePayload");
|
|
28
29
|
const tenantSelector_1 = require("../../../entity/tenant/tenantSelector");
|
|
@@ -65,9 +66,12 @@ const updateTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe
|
|
|
65
66
|
actions.push((0, vendorReducer_1.updateVendors)(response.data.vendors, 'merge'));
|
|
66
67
|
}
|
|
67
68
|
actions.push((0, transactionReducer_1.updateTransaction)(transactionDetailKeyForResponse, response.data.transaction));
|
|
69
|
+
const updatedVendor = response.data.vendors?.[0];
|
|
68
70
|
actions.push((0, transactionDetailReducer_1.initializeTransactionDetailLocalData)({
|
|
69
71
|
transactionId: transactionIdResp,
|
|
70
|
-
vendorId:
|
|
72
|
+
vendorId: updatedVendor != null
|
|
73
|
+
? (0, vendorPayload_1.getVendorPayloadIdentifier)(updatedVendor) ?? undefined
|
|
74
|
+
: undefined,
|
|
71
75
|
}));
|
|
72
76
|
actions.push((0, transactionDetailReducer_1.updateTransactionDetailSaveStatus)(transactionIdResp, 'Completed'));
|
|
73
77
|
let callMarkTransactionAsNotMiscategorized = true;
|
|
@@ -13,7 +13,9 @@ _state$) => actions$.pipe((0, operators_1.filter)(trendWithTransactionsReducer_1
|
|
|
13
13
|
return (0, rxjs_1.of)((0, trendReducer_1.fetchIncomeTrend)(entity.id, entity.name));
|
|
14
14
|
}
|
|
15
15
|
if (entity.type === 'vendor') {
|
|
16
|
-
|
|
16
|
+
// QBO-only vendors may lack zeniId; fall back to entity.id so spend
|
|
17
|
+
// trend state still keys off the resolved vendor identifier.
|
|
18
|
+
return (0, rxjs_1.of)((0, trendReducer_1.fetchExpenseTrend)(entity.id, entity.name, entity.zeniId ?? entity.id));
|
|
17
19
|
}
|
|
18
20
|
return (0, rxjs_1.from)([]);
|
|
19
21
|
}));
|
|
@@ -3,6 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.updateVendorFiling1099DownloadData = exports.fetchVendorsFiling1099Download = exports.updateFiling1099SearchUIState = exports.updateFiling1099SortUIState = exports.updateFiling1099ScrollYOffset = exports.clearVendorsFiling1099List = exports.updateVendorFiling1099ListFailure = exports.updateVendorsFiling1099List = exports.fetchVendorsFiling1099List = exports.fetchVendorsFiling1099All = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
+
const vendorPayload_1 = require("../../../entity/vendor/vendorPayload");
|
|
6
7
|
const zeniDayJS_1 = require("../../../zeniDayJS");
|
|
7
8
|
exports.initialState = {
|
|
8
9
|
fetchState: 'Not-Started',
|
|
@@ -79,7 +80,9 @@ const vendorFiling1099List = (0, toolkit_1.createSlice)({
|
|
|
79
80
|
},
|
|
80
81
|
updateVendorsFiling1099List(draft, action) {
|
|
81
82
|
const { response } = action.payload;
|
|
82
|
-
const newVendorIds = response.data?.report.vendors
|
|
83
|
+
const newVendorIds = (response.data?.report.vendors
|
|
84
|
+
?.map((vendor) => (0, vendorPayload_1.getVendorPayloadIdentifier)(vendor))
|
|
85
|
+
.filter((vendorId) => vendorId != null)) ?? [];
|
|
83
86
|
draft.vendorIds = [...new Set([...draft.vendorIds, ...newVendorIds])];
|
|
84
87
|
draft.isVendor1099Populated =
|
|
85
88
|
response.data?.report.is_vendor_1099_populated ?? true;
|
|
@@ -3,6 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.updateYTDSelectionUIState = exports.updatePageToken = exports.updateSortUiState = exports.updateScrollYOffset = exports.clearVendorsList = exports.updateVendorListFailure = exports.updateVendorsList = exports.fetchVendorsList = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
+
const vendorPayload_1 = require("../../entity/vendor/vendorPayload");
|
|
6
7
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
7
8
|
exports.initialState = {
|
|
8
9
|
fetchState: 'Not-Started',
|
|
@@ -88,7 +89,9 @@ const vendorList = (0, toolkit_1.createSlice)({
|
|
|
88
89
|
},
|
|
89
90
|
updateVendorsList(draft, action) {
|
|
90
91
|
const { response, searchString, view } = action.payload;
|
|
91
|
-
const newVendorIds = response.data?.vendors
|
|
92
|
+
const newVendorIds = (response.data?.vendors
|
|
93
|
+
?.map((vendor) => (0, vendorPayload_1.getVendorPayloadIdentifier)(vendor))
|
|
94
|
+
.filter((vendorId) => vendorId != null)) ?? [];
|
|
92
95
|
if (searchString.length > 0) {
|
|
93
96
|
if (action.payload.keepExistingListItems === false) {
|
|
94
97
|
draft.searchResults = newVendorIds;
|
|
@@ -5,6 +5,7 @@ exports.updateVendorDetailsViewFailureOrSuccess = exports.saveVendorDetailsView
|
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const attachmentPayload_1 = require("../../../entity/transaction/payloadTypes/attachmentPayload");
|
|
7
7
|
const commonTypes_1 = require("../common/state/commonTypes");
|
|
8
|
+
const vendorPayload_1 = require("../../../entity/vendor/vendorPayload");
|
|
8
9
|
exports.initialState = {
|
|
9
10
|
vendorFirstReviewViewLocalDataById: {},
|
|
10
11
|
fetchState: 'Not-Started',
|
|
@@ -303,7 +304,14 @@ const toVendorReviewViewUpdatedVendorLocalData = (vendorId, vendorPayload) => {
|
|
|
303
304
|
const toVendorReviewViewLocalDataById = (vendorsPayload) => {
|
|
304
305
|
const vendorById = {};
|
|
305
306
|
vendorsPayload.forEach((vendor) => {
|
|
306
|
-
const
|
|
307
|
+
const resolvedVendorId = (0, vendorPayload_1.getVendorPayloadIdentifier)(vendor);
|
|
308
|
+
if (resolvedVendorId == null) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const vendorView = mapPayloadToVendorFirstReviewView({
|
|
312
|
+
...vendor,
|
|
313
|
+
vendor_id: resolvedVendorId,
|
|
314
|
+
});
|
|
307
315
|
vendorById[vendorView.selectedVendorId] = {
|
|
308
316
|
vendorFirstReviewViewLocalData: vendorView,
|
|
309
317
|
saveStatus: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.30",
|
|
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",
|