@zeniai/client-epic-state 4.11.16 → 4.11.18
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/billPay/billTransaction/billTransactionPayload.d.ts +9 -0
- package/lib/entity/billPay/billTransaction/billTransactionPayload.js +15 -2
- package/lib/entity/billPay/billTransaction/billTransactionReducer.d.ts +2 -1
- package/lib/entity/billPay/billTransaction/billTransactionReducer.js +25 -2
- package/lib/entity/billPay/billTransaction/billTransactionState.d.ts +11 -1
- package/lib/entity/billPay/billTransaction/billTransactionState.js +9 -1
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +6 -0
- package/lib/entity/task/taskPayload.d.ts +2 -2
- package/lib/entity/task/taskPayload.js +1 -0
- package/lib/entity/task/taskState.d.ts +3 -2
- package/lib/entity/taskGroup/taskGroupPayload.d.ts +9 -0
- package/lib/entity/taskGroup/taskGroupPayload.js +14 -0
- package/lib/entity/taskGroup/taskGroupReducer.d.ts +6 -0
- package/lib/entity/taskGroup/taskGroupReducer.js +33 -0
- package/lib/entity/taskGroup/taskGroupSelector.d.ts +4 -0
- package/lib/entity/taskGroup/taskGroupSelector.js +18 -0
- package/lib/entity/taskGroup/taskGroupState.d.ts +12 -0
- package/lib/entity/taskGroup/taskGroupState.js +2 -0
- package/lib/entity/tenant/clearAllEpic.d.ts +5 -2
- package/lib/entity/tenant/clearAllEpic.js +8 -0
- package/lib/entity/toastNotification/epic/pushToastNotificationEpic.d.ts +1 -1
- package/lib/entity/transaction/stateTypes/attachment.d.ts +6 -0
- package/lib/entity/transaction/stateTypes/transactionType.d.ts +3 -0
- package/lib/entity/transaction/stateTypes/transactionType.js +7 -3
- package/lib/entity/vendor/vendorPayload.d.ts +2 -0
- package/lib/entity/vendor/vendorPayload.js +5 -1
- package/lib/entity/vendor/vendorState.d.ts +2 -0
- package/lib/epic.d.ts +12 -1
- package/lib/epic.js +12 -1
- package/lib/index.d.ts +18 -12
- package/lib/index.js +37 -10
- package/lib/reducer.d.ts +9 -0
- package/lib/reducer.js +9 -0
- package/lib/view/companyView/selector/companyManagementViewSelector.js +13 -7
- package/lib/view/companyView/selector/companyPortfolioViewSelector.js +1 -6
- package/lib/view/fileView/fileUploadHelpers.d.ts +5 -0
- package/lib/view/people/changeZeniPersonRolesEpic.d.ts +1 -1
- package/lib/view/people/deletePersonEpic.d.ts +1 -1
- package/lib/view/people/invitePeopleEpic.d.ts +1 -1
- package/lib/view/people/inviteZeniPeopleEpic.d.ts +1 -1
- package/lib/view/people/resendInviteEpic.d.ts +1 -1
- package/lib/view/reviewCompanyView/reviewCompanyViewSelector.js +26 -9
- package/lib/view/scheduleView/scheduleListView/scheduleListSelector.js +1 -1
- package/lib/view/settingsView/epic/saveNotificationSettingsEpic.d.ts +1 -1
- package/lib/view/spendManagement/billPay/billList/billListReducer.d.ts +3 -2
- package/lib/view/spendManagement/billPay/billList/billListReducer.js +9 -3
- package/lib/view/spendManagement/billPay/billList/billListSelector.d.ts +19 -2
- package/lib/view/spendManagement/billPay/billList/billListSelector.js +150 -3
- package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
- package/lib/view/spendManagement/billPay/billPayConfig/billPayConfigPayload.d.ts +1 -0
- package/lib/view/spendManagement/billPay/billPayConfig/billPayConfigReducer.js +2 -0
- package/lib/view/spendManagement/billPay/billPayConfig/billPayConfigState.d.ts +1 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewPayload.d.ts +32 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewPayload.js +2 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewReducer.d.ts +17 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewReducer.js +166 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewSelector.d.ts +24 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewSelector.js +45 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewState.d.ts +28 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewState.js +7 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/approveOrRejectBillsBulkActionEpic.d.ts +9 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/approveOrRejectBillsBulkActionEpic.js +73 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/cancelOrDeleteBillsBulkActionEpic.d.ts +8 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/cancelOrDeleteBillsBulkActionEpic.js +74 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/reviewDraftBillsBulkActionEpic.ts.d.ts +7 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/reviewDraftBillsBulkActionEpic.ts.js +29 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/submitDraftBillsBulkActionEpic.d.ts +8 -0
- package/lib/view/spendManagement/billPay/billsBulkActionView/epics/submitDraftBillsBulkActionEpic.js +62 -0
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +9 -8
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +6 -4
- package/lib/view/spendManagement/commonHistoryView/commonHistory.d.ts +1 -1
- package/lib/view/spendManagement/helpers.d.ts +3 -0
- package/lib/view/spendManagement/helpers.js +17 -1
- package/lib/view/spendManagement/reimbursement/remiListView/remiListReducer.d.ts +1 -1
- package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +3 -3
- package/lib/view/subscriptionView/subscriptionViewSelector.js +5 -1
- package/lib/view/tagView/epics/createTagEpic.d.ts +1 -1
- package/lib/view/tagView/epics/deleteTagEpic.d.ts +1 -1
- package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.d.ts +2 -1
- package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +11 -4
- package/lib/view/taskManager/taskDetailView/taskDetailReducer.d.ts +2 -1
- package/lib/view/taskManager/taskDetailView/taskDetailReducer.js +2 -1
- package/lib/view/taskManager/taskGroupView/epics/createNewTaskGroupEpic.d.ts +10 -0
- package/lib/view/taskManager/taskGroupView/epics/createNewTaskGroupEpic.js +57 -0
- package/lib/view/taskManager/taskGroupView/epics/deleteTaskGroupEpic.d.ts +10 -0
- package/lib/view/taskManager/taskGroupView/epics/deleteTaskGroupEpic.js +41 -0
- package/lib/view/taskManager/taskGroupView/epics/fetchAllTaskGroupsEpic.d.ts +8 -0
- package/lib/view/taskManager/taskGroupView/epics/fetchAllTaskGroupsEpic.js +33 -0
- package/lib/view/taskManager/taskGroupView/epics/updateTaskGroupNameEpic.d.ts +10 -0
- package/lib/view/taskManager/taskGroupView/epics/updateTaskGroupNameEpic.js +51 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewPayload.d.ts +6 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewPayload.js +2 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewReducer.d.ts +34 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewReducer.js +123 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewState.d.ts +7 -0
- package/lib/view/taskManager/taskGroupView/taskGroupViewState.js +2 -0
- package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.d.ts +8 -0
- package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.js +88 -0
- package/lib/view/taskManager/taskListView/dragNDropTasksEpic.d.ts +6 -0
- package/lib/view/taskManager/taskListView/dragNDropTasksEpic.js +20 -0
- package/lib/view/taskManager/taskListView/fetchTaskListPageEpic.d.ts +3 -1
- package/lib/view/taskManager/taskListView/fetchTaskListPageEpic.js +12 -0
- package/lib/view/taskManager/taskListView/taskList.d.ts +14 -1
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +31 -2
- package/lib/view/taskManager/taskListView/taskListReducer.js +136 -9
- package/lib/view/taskManager/taskListView/taskListSelector.d.ts +12 -2
- package/lib/view/taskManager/taskListView/taskListSelector.js +59 -23
- package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +22 -5
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/fetchVendorFirstReviewAttachmentsEpic.d.ts +10 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/fetchVendorFirstReviewAttachmentsEpic.js +37 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/fetchVendorFirstReviewViewEpic.js +1 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorFirstReviewViewEpic.js +15 -9
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.d.ts +15 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.d.ts +15 -4
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.js +50 -5
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.d.ts +8 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.js +17 -2
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewState.d.ts +6 -2
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewState.js +2 -1
- package/package.json +1 -1
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { FetchState, UpdateType } from '../../../commonStateTypes/common';
|
|
1
|
+
import { FetchState, ID, UpdateType } from '../../../commonStateTypes/common';
|
|
2
2
|
import { TaskPayload } from '../../../entity/task/taskPayload';
|
|
3
3
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
4
|
-
import { TaskListFilters, TaskListState, TaskListUIState } from './taskList';
|
|
4
|
+
import { TaskListFilters, TaskListLocalData, TaskListState, TaskListUIState } from './taskList';
|
|
5
|
+
import { TaskGroup } from '../../../entity/taskGroup/taskGroupState';
|
|
6
|
+
import { Task } from '../../../entity/task/taskState';
|
|
7
|
+
import { TaskGroupPayload } from '../../../entity/taskGroup/taskGroupPayload';
|
|
8
|
+
export declare const initialLocalData: TaskListLocalData;
|
|
5
9
|
export declare const initialState: TaskListState;
|
|
6
10
|
export declare const fetchTaskListPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride: boolean], {
|
|
7
11
|
cacheOverride: boolean;
|
|
@@ -17,6 +21,31 @@ export declare const fetchTaskListPage: import("@reduxjs/toolkit").ActionCreator
|
|
|
17
21
|
uiState: Partial<TaskListUIState>;
|
|
18
22
|
}, string>, updateTaskFilters: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
19
23
|
filters: TaskListFilters;
|
|
24
|
+
}, string>, updateTaskListOnNewGroupCreationSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
25
|
+
newTaskGroup: TaskGroupPayload;
|
|
26
|
+
}, string>, bulkUpdateTaskList: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[taskIds: string[], updates: Partial<Task>], {
|
|
27
|
+
taskIds: string[];
|
|
28
|
+
updates: Partial<Task>;
|
|
29
|
+
}, string, never, never>, updateTasksListOnBulkUpdateTasksSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
30
|
+
taskIds: ID[];
|
|
31
|
+
groupId: ID | null;
|
|
32
|
+
}, string>, updateTasksListOnBulkUpdateTasksFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
33
|
+
error: ZeniAPIStatus;
|
|
34
|
+
}, string>, initiateTaskListLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
35
|
+
taskGroupById: Record<ID, TaskGroup>;
|
|
36
|
+
}, string>, updateTaskListLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
37
|
+
localData: TaskListLocalData;
|
|
38
|
+
}, string>, updateTaskListOnTaskGroupDeletion: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
39
|
+
taskGroupId: ID;
|
|
40
|
+
}, string>, dragNDropTasks: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[taskIds: string[], groupId: any], {
|
|
41
|
+
taskIds: string[];
|
|
42
|
+
groupId: any;
|
|
43
|
+
}, string, never, never>, updateTaskListOnNewTaskCreationSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
44
|
+
taskId: ID;
|
|
45
|
+
taskGroupId: ID;
|
|
46
|
+
}, string>, updateTaskListOnTaskGroupNameUpdate: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
47
|
+
taskGroupName: ID;
|
|
48
|
+
taskGroupId: ID;
|
|
20
49
|
}, string>, clearTaskList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
|
|
21
50
|
declare const _default: import("@reduxjs/toolkit").Reducer<TaskListState, import("@reduxjs/toolkit").AnyAction>;
|
|
22
51
|
export default _default;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.clearTaskList = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = void 0;
|
|
4
|
+
exports.clearTaskList = exports.updateTaskListOnTaskGroupNameUpdate = exports.updateTaskListOnNewTaskCreationSuccess = exports.dragNDropTasks = exports.updateTaskListOnTaskGroupDeletion = exports.updateTaskListLocalData = exports.initiateTaskListLocalData = exports.updateTasksListOnBulkUpdateTasksFailure = exports.updateTasksListOnBulkUpdateTasksSuccess = exports.bulkUpdateTaskList = exports.updateTaskListOnNewGroupCreationSuccess = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = exports.initialLocalData = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
+
exports.initialLocalData = {
|
|
7
|
+
newTaskGroupName: '',
|
|
8
|
+
existingTaskGroupNamesByGroupId: {},
|
|
9
|
+
selectedTaskIds: [],
|
|
10
|
+
defaultTaskGroupId: null,
|
|
11
|
+
};
|
|
6
12
|
exports.initialState = {
|
|
7
13
|
taskIds: [],
|
|
14
|
+
taskIdsByGroupsIds: {},
|
|
8
15
|
fetchState: 'Not-Started',
|
|
9
16
|
searchText: '',
|
|
10
17
|
error: undefined,
|
|
@@ -26,6 +33,11 @@ exports.initialState = {
|
|
|
26
33
|
hasValidState() {
|
|
27
34
|
return this.fetchState == 'Completed';
|
|
28
35
|
},
|
|
36
|
+
localData: Object.assign({}, exports.initialLocalData),
|
|
37
|
+
updateTasksFetchState: {
|
|
38
|
+
fetchState: 'Not-Started',
|
|
39
|
+
error: undefined,
|
|
40
|
+
},
|
|
29
41
|
};
|
|
30
42
|
const taskList = (0, toolkit_1.createSlice)({
|
|
31
43
|
name: 'taskList',
|
|
@@ -46,15 +58,40 @@ const taskList = (0, toolkit_1.createSlice)({
|
|
|
46
58
|
draft.error = undefined;
|
|
47
59
|
},
|
|
48
60
|
updateTaskList(draft, action) {
|
|
49
|
-
|
|
50
|
-
const { data, updateType } = action.payload;
|
|
61
|
+
const { data } = action.payload;
|
|
51
62
|
draft.fetchState = 'Completed';
|
|
52
63
|
draft.error = undefined;
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
64
|
+
const taskIdsByGroupsIds = {};
|
|
65
|
+
data.forEach((task) => {
|
|
66
|
+
draft.taskIds.push(task.task_id);
|
|
67
|
+
if (task.task_group_ids != null) {
|
|
68
|
+
task.task_group_ids.forEach((groupId) => {
|
|
69
|
+
if (taskIdsByGroupsIds[groupId] != null) {
|
|
70
|
+
taskIdsByGroupsIds[groupId].push(task.task_id);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
taskIdsByGroupsIds[groupId] = [task.task_id];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
draft.taskIdsByGroupsIds = taskIdsByGroupsIds;
|
|
79
|
+
},
|
|
80
|
+
initiateTaskListLocalData(draft, action) {
|
|
81
|
+
const { taskGroupById } = action.payload;
|
|
82
|
+
const existingTaskGroupNamesByGroupId = {};
|
|
83
|
+
let defaultTaskGroupId = null;
|
|
84
|
+
Object.keys(taskGroupById).forEach((groupId) => {
|
|
85
|
+
existingTaskGroupNamesByGroupId[groupId] = taskGroupById[groupId].name;
|
|
86
|
+
if (taskGroupById[groupId].isDefault === true) {
|
|
87
|
+
defaultTaskGroupId = groupId;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
draft.localData = Object.assign(Object.assign({}, exports.initialLocalData), { defaultTaskGroupId,
|
|
91
|
+
existingTaskGroupNamesByGroupId });
|
|
92
|
+
},
|
|
93
|
+
updateTaskListLocalData(draft, action) {
|
|
94
|
+
draft.localData = action.payload.localData;
|
|
58
95
|
},
|
|
59
96
|
updateTaskListFetchStatus(draft, action) {
|
|
60
97
|
draft.fetchState = action.payload.fetchState;
|
|
@@ -79,10 +116,100 @@ const taskList = (0, toolkit_1.createSlice)({
|
|
|
79
116
|
draft.filters = action.payload.filters;
|
|
80
117
|
}
|
|
81
118
|
},
|
|
119
|
+
updateTaskListOnNewGroupCreationSuccess(draft, action) {
|
|
120
|
+
const { newTaskGroup } = action.payload;
|
|
121
|
+
draft.localData = Object.assign(Object.assign({}, draft.localData), { existingTaskGroupNamesByGroupId: Object.assign(Object.assign({}, draft.localData.existingTaskGroupNamesByGroupId), { [newTaskGroup.task_group_id]: newTaskGroup.name }) });
|
|
122
|
+
},
|
|
123
|
+
bulkUpdateTaskList: {
|
|
124
|
+
reducer(draft) {
|
|
125
|
+
draft.updateTasksFetchState = {
|
|
126
|
+
fetchState: 'In-Progress',
|
|
127
|
+
error: undefined,
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
prepare(taskIds, updates) {
|
|
131
|
+
return {
|
|
132
|
+
payload: {
|
|
133
|
+
taskIds,
|
|
134
|
+
updates,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
dragNDropTasks: {
|
|
140
|
+
reducer() {
|
|
141
|
+
//do nothing
|
|
142
|
+
},
|
|
143
|
+
prepare(taskIds, groupId) {
|
|
144
|
+
return {
|
|
145
|
+
payload: {
|
|
146
|
+
taskIds,
|
|
147
|
+
groupId,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
updateTasksListOnBulkUpdateTasksSuccess(draft, action) {
|
|
153
|
+
const { taskIds, groupId } = action.payload;
|
|
154
|
+
draft.updateTasksFetchState.fetchState = 'Completed';
|
|
155
|
+
draft.updateTasksFetchState.error = undefined;
|
|
156
|
+
Object.keys(draft.taskIdsByGroupsIds).forEach((groupId) => {
|
|
157
|
+
draft.taskIdsByGroupsIds[groupId] = draft.taskIdsByGroupsIds[groupId].filter((taskId) => taskIds.includes(taskId) === false);
|
|
158
|
+
});
|
|
159
|
+
if (groupId != null) {
|
|
160
|
+
if (draft.taskIdsByGroupsIds[groupId] != null) {
|
|
161
|
+
draft.taskIdsByGroupsIds[groupId] = [
|
|
162
|
+
...draft.taskIdsByGroupsIds[groupId],
|
|
163
|
+
...taskIds,
|
|
164
|
+
];
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
draft.taskIdsByGroupsIds = Object.assign(Object.assign({}, draft.taskIdsByGroupsIds), { [groupId]: taskIds });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
draft.localData = Object.assign(Object.assign({}, draft.localData), { newTaskGroupName: '', selectedTaskIds: [] });
|
|
171
|
+
},
|
|
172
|
+
updateTasksListOnBulkUpdateTasksFailure(draft, action) {
|
|
173
|
+
draft.updateTasksFetchState.fetchState = 'Error';
|
|
174
|
+
draft.updateTasksFetchState.error = action.payload.error;
|
|
175
|
+
},
|
|
176
|
+
updateTaskListOnTaskGroupDeletion(draft, action) {
|
|
177
|
+
var _a;
|
|
178
|
+
const { taskGroupId } = action.payload;
|
|
179
|
+
const { defaultTaskGroupId } = draft.localData;
|
|
180
|
+
if (((_a = draft.taskIdsByGroupsIds[taskGroupId]) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
181
|
+
const tasks = draft.taskIdsByGroupsIds[taskGroupId];
|
|
182
|
+
if (defaultTaskGroupId != null) {
|
|
183
|
+
draft.taskIdsByGroupsIds[defaultTaskGroupId] = [
|
|
184
|
+
...draft.taskIdsByGroupsIds[defaultTaskGroupId],
|
|
185
|
+
...tasks,
|
|
186
|
+
];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
delete draft.taskIdsByGroupsIds[taskGroupId];
|
|
190
|
+
delete draft.localData.existingTaskGroupNamesByGroupId[taskGroupId];
|
|
191
|
+
},
|
|
192
|
+
updateTaskListOnNewTaskCreationSuccess(draft, action) {
|
|
193
|
+
const { taskId, taskGroupId } = action.payload;
|
|
194
|
+
draft.taskIds.push(taskId);
|
|
195
|
+
if (draft.taskIdsByGroupsIds[taskGroupId] != null) {
|
|
196
|
+
draft.taskIdsByGroupsIds[taskGroupId] = [
|
|
197
|
+
taskId,
|
|
198
|
+
...draft.taskIdsByGroupsIds[taskGroupId],
|
|
199
|
+
];
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
draft.taskIdsByGroupsIds[taskGroupId] = [taskId];
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
updateTaskListOnTaskGroupNameUpdate(draft, action) {
|
|
206
|
+
const { taskGroupName, taskGroupId } = action.payload;
|
|
207
|
+
draft.localData.existingTaskGroupNamesByGroupId = Object.assign(Object.assign({}, draft.localData.existingTaskGroupNamesByGroupId), { [taskGroupId]: taskGroupName });
|
|
208
|
+
},
|
|
82
209
|
clearTaskList(draft) {
|
|
83
210
|
Object.assign(draft, exports.initialState);
|
|
84
211
|
},
|
|
85
212
|
},
|
|
86
213
|
});
|
|
87
|
-
_a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.clearTaskList = _a.clearTaskList;
|
|
214
|
+
_a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.updateTaskListOnNewGroupCreationSuccess = _a.updateTaskListOnNewGroupCreationSuccess, exports.bulkUpdateTaskList = _a.bulkUpdateTaskList, exports.updateTasksListOnBulkUpdateTasksSuccess = _a.updateTasksListOnBulkUpdateTasksSuccess, exports.updateTasksListOnBulkUpdateTasksFailure = _a.updateTasksListOnBulkUpdateTasksFailure, exports.initiateTaskListLocalData = _a.initiateTaskListLocalData, exports.updateTaskListLocalData = _a.updateTaskListLocalData, exports.updateTaskListOnTaskGroupDeletion = _a.updateTaskListOnTaskGroupDeletion, exports.dragNDropTasks = _a.dragNDropTasks, exports.updateTaskListOnNewTaskCreationSuccess = _a.updateTaskListOnNewTaskCreationSuccess, exports.updateTaskListOnTaskGroupNameUpdate = _a.updateTaskListOnTaskGroupNameUpdate, exports.clearTaskList = _a.clearTaskList;
|
|
88
215
|
exports.default = taskList.reducer;
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
+
import { FetchStateAndError } from '../../../commonStateTypes/common';
|
|
1
2
|
import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
2
3
|
import { Task } from '../../../entity/task/taskState';
|
|
3
4
|
import { RootState } from '../../../reducer';
|
|
4
5
|
import { UserAndRole } from '../../companyView/types/userAndRole';
|
|
5
|
-
import { TaskListFilters, TaskListUIState } from './taskList';
|
|
6
|
+
import { TaskListFilters, TaskListUIState, TaskListLocalData } from './taskList';
|
|
6
7
|
import { UserListSelectorView } from '../../userListView/userListViewSelector';
|
|
8
|
+
import { TaskGroup } from '../../../entity/taskGroup/taskGroupState';
|
|
7
9
|
export interface TaskWithUserDetails extends Task {
|
|
8
10
|
assigneeUsers: UserAndRole[];
|
|
9
11
|
}
|
|
12
|
+
export interface TaskGroupWithTasksList extends TaskGroup {
|
|
13
|
+
tasks: TaskWithUserDetails[];
|
|
14
|
+
}
|
|
10
15
|
export interface TaskListSelectorView extends SelectorView {
|
|
11
|
-
|
|
16
|
+
taskGroupsWithTasksList: TaskGroupWithTasksList[];
|
|
12
17
|
searchText: string;
|
|
13
18
|
uiState: TaskListUIState;
|
|
14
19
|
filters: TaskListFilters;
|
|
15
20
|
userList: UserListSelectorView;
|
|
21
|
+
localData: TaskListLocalData;
|
|
22
|
+
updateTasksFetchState: FetchStateAndError;
|
|
23
|
+
taskGroupDeleteStatus: FetchStateAndError;
|
|
24
|
+
taskGroupUpdateStatus: FetchStateAndError;
|
|
25
|
+
taskGroupCreationStatus: FetchStateAndError;
|
|
16
26
|
}
|
|
17
27
|
export declare const getAllTasks: (state: RootState) => TaskListSelectorView;
|
|
@@ -12,26 +12,10 @@ const userAndRole_1 = require("../../companyView/types/userAndRole");
|
|
|
12
12
|
const userListViewSelector_1 = require("../../userListView/userListViewSelector");
|
|
13
13
|
const spendManagementFilterHelpers_1 = require("../../spendManagement/spendManagementFilterHelpers");
|
|
14
14
|
const tagSelector_1 = require("../../../entity/tag/tagSelector");
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
.map((taskId) => {
|
|
20
|
-
const task = (0, taskSelector_1.getTaskById)(taskState, taskId);
|
|
21
|
-
if (task != null) {
|
|
22
|
-
const assigneeUsers = task.assignees
|
|
23
|
-
.map((userId) => (0, userAndRole_1.getUserAndUserRole)(userState, userRoleState, addressState, userId))
|
|
24
|
-
.filter((value) => value != null);
|
|
25
|
-
return Object.assign(Object.assign({}, task), { assigneeUsers });
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
28
|
-
})
|
|
29
|
-
.filter((value) => value != null);
|
|
30
|
-
const searchedTaskList = unFilteredTaskList.filter((task) => task.name.toLowerCase().includes(searchText.toLowerCase()));
|
|
31
|
-
const sortKey = taskListState.uiState.sortKey;
|
|
32
|
-
const sortOrder = (0, sortOrderPayload_1.getSortOrder)(taskListState.uiState.sortOrder);
|
|
33
|
-
const filteredTaskList = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('task_management', searchedTaskList, taskListState.filters);
|
|
34
|
-
const tasksInOrder = (0, orderBy_1.default)(filteredTaskList, (task) => {
|
|
15
|
+
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
16
|
+
const taskGroupSelector_1 = require("../../../entity/taskGroup/taskGroupSelector");
|
|
17
|
+
const sortTasksList = (state, tasksList, sortKey, sortOrder) => {
|
|
18
|
+
const tasksInOrder = (0, orderBy_1.default)(tasksList, (task) => {
|
|
35
19
|
var _a, _b;
|
|
36
20
|
const tagsByIds = (0, tagSelector_1.getTagsByIds)(state.tagState, task.tagIds);
|
|
37
21
|
switch (sortKey) {
|
|
@@ -50,15 +34,67 @@ const getAllTasks = (state) => {
|
|
|
50
34
|
return task.name.toLowerCase();
|
|
51
35
|
}
|
|
52
36
|
}, sortOrder);
|
|
37
|
+
return tasksInOrder;
|
|
38
|
+
};
|
|
39
|
+
const getAllTasks = (state) => {
|
|
40
|
+
const { taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagViewState, } = state;
|
|
41
|
+
const { localData, searchText } = taskListState;
|
|
42
|
+
const sortKey = taskListState.uiState.sortKey;
|
|
43
|
+
const sortOrder = (0, sortOrderPayload_1.getSortOrder)(taskListState.uiState.sortOrder);
|
|
44
|
+
const taskGroupIds = taskGroupViewState.taskGroupsIds;
|
|
45
|
+
const taskGroupsWithTasksList = taskGroupIds
|
|
46
|
+
.map((taskGroupId) => {
|
|
47
|
+
var _a;
|
|
48
|
+
const taskGroup = (0, taskGroupSelector_1.getTaskGroupById)(taskGroupState, taskGroupId);
|
|
49
|
+
const taskIds = (_a = taskListState.taskIdsByGroupsIds[taskGroupId]) !== null && _a !== void 0 ? _a : [];
|
|
50
|
+
const tasks = taskIds
|
|
51
|
+
.map((taskId) => {
|
|
52
|
+
const task = (0, taskSelector_1.getTaskById)(taskState, taskId);
|
|
53
|
+
if (task != null) {
|
|
54
|
+
const assigneeUsers = task.assignees
|
|
55
|
+
.map((userId) => (0, userAndRole_1.getUserAndUserRole)(userState, userRoleState, addressState, userId))
|
|
56
|
+
.filter((value) => value != null);
|
|
57
|
+
return Object.assign(Object.assign({}, task), { assigneeUsers });
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
})
|
|
61
|
+
.filter((value) => (value === null || value === void 0 ? void 0 : value.name.toLowerCase().includes(searchText.toLowerCase())) ===
|
|
62
|
+
true);
|
|
63
|
+
if (taskGroup != null) {
|
|
64
|
+
const filteredTaskList = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('task_management', tasks, taskListState.filters);
|
|
65
|
+
const sortedTaskList = sortTasksList(state, filteredTaskList, sortKey, sortOrder);
|
|
66
|
+
return Object.assign(Object.assign({}, taskGroup), { tasks: sortedTaskList });
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
})
|
|
70
|
+
.filter((value) => value != null);
|
|
71
|
+
taskGroupsWithTasksList.sort((a, b) => {
|
|
72
|
+
return b.createdAt.valueOf() - a.createdAt.valueOf();
|
|
73
|
+
});
|
|
74
|
+
const sortedTaskGroupsWithTasksList = taskGroupsWithTasksList.filter((taskGroup) => taskGroup.isDefault === false);
|
|
75
|
+
const defaultTaskGroup = taskGroupsWithTasksList.find((taskGroup) => taskGroup.isDefault === true);
|
|
76
|
+
if (defaultTaskGroup != null) {
|
|
77
|
+
sortedTaskGroupsWithTasksList.push(defaultTaskGroup);
|
|
78
|
+
}
|
|
79
|
+
const { fetchState, error } = (0, reduceFetchState_1.reduceAnyFetchState)([
|
|
80
|
+
taskListState,
|
|
81
|
+
taskGroupViewState,
|
|
82
|
+
tagViewState,
|
|
83
|
+
]);
|
|
53
84
|
return {
|
|
54
|
-
taskList: tasksInOrder,
|
|
55
85
|
searchText: taskListState.searchText,
|
|
56
86
|
uiState: taskListState.uiState,
|
|
57
87
|
filters: taskListState.filters,
|
|
58
|
-
fetchState:
|
|
88
|
+
fetchState: fetchState,
|
|
59
89
|
userList: (0, userListViewSelector_1.getUserList)(state, 'taskManagerCandidate'),
|
|
60
|
-
error:
|
|
90
|
+
error: error,
|
|
61
91
|
version: 0,
|
|
92
|
+
taskGroupsWithTasksList: sortedTaskGroupsWithTasksList,
|
|
93
|
+
localData,
|
|
94
|
+
updateTasksFetchState: taskListState.updateTasksFetchState,
|
|
95
|
+
taskGroupDeleteStatus: taskGroupViewState.taskGroupDeleteStatus,
|
|
96
|
+
taskGroupUpdateStatus: taskGroupViewState.taskGroupUpdateStatus,
|
|
97
|
+
taskGroupCreationStatus: taskGroupViewState.taskGroupCreationStatus,
|
|
62
98
|
};
|
|
63
99
|
};
|
|
64
100
|
exports.getAllTasks = getAllTasks;
|
|
@@ -23,8 +23,8 @@ const snackbarReducer_1 = require("../../../entity/snackbar/snackbarReducer");
|
|
|
23
23
|
const recommendationPayload_1 = require("../../../commonPayloadTypes/recommendationPayload");
|
|
24
24
|
const vendorSelector_1 = require("../../../entity/vendor/vendorSelector");
|
|
25
25
|
const vendorReducer_1 = require("../../../entity/vendor/vendorReducer");
|
|
26
|
-
const transactionType_1 = require("../../../entity/transaction/stateTypes/transactionType");
|
|
27
26
|
const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
|
|
27
|
+
const transactionType_1 = require("../../../entity/transaction/stateTypes/transactionType");
|
|
28
28
|
const updateTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.updateTransactionDetail.match), (0, operators_1.mergeMap)((action) => {
|
|
29
29
|
const { transactionState, vendorState, transactionDetailState } = state$.value;
|
|
30
30
|
return zeniAPI
|
|
@@ -63,11 +63,15 @@ const updateTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe
|
|
|
63
63
|
}));
|
|
64
64
|
actions.push((0, transactionDetailReducer_1.updateTransactionDetailSaveStatus)(transactionIdResp, 'Completed'));
|
|
65
65
|
let callMarkTransactionAsNotMiscategorized = true;
|
|
66
|
-
// NOTE: If tran is vendorType transaction and there is no vendor chosen on this tranaction while saving,
|
|
66
|
+
// NOTE: If tran is vendorType OR JE OR Deposit transaction and there is no vendor chosen on this tranaction while saving,
|
|
67
67
|
// then we need to skip mark-miscategorized-as-correct api call
|
|
68
|
-
if ((0, transactionType_1.toVendorTransactionTypeStrict)(response.data.transaction.transaction_type) != null
|
|
68
|
+
if ((0, transactionType_1.toVendorTransactionTypeStrict)(response.data.transaction.transaction_type) != null ||
|
|
69
|
+
(0, transactionType_1.toJEAndDepositTransactionTypeStrict)(response.data.transaction.transaction_type) != null) {
|
|
69
70
|
const isAnyClassMissing = checkIfClassMissingForAnyLineItem(response.data.transaction);
|
|
70
|
-
|
|
71
|
+
const isVendorOrCustomerMissingInAnyLine = checkIfVendorOrCustomerMissingForAnyLineItem(response.data.transaction);
|
|
72
|
+
if (((vendorUpdates === null || vendorUpdates === void 0 ? void 0 : vendorUpdates.id) == null &&
|
|
73
|
+
isVendorOrCustomerMissingInAnyLine == true) ||
|
|
74
|
+
isAnyClassMissing == true) {
|
|
71
75
|
callMarkTransactionAsNotMiscategorized = false;
|
|
72
76
|
}
|
|
73
77
|
}
|
|
@@ -196,7 +200,7 @@ const toTransactionUpdatePayload = (updates, detail, vendorUpdates) => {
|
|
|
196
200
|
};
|
|
197
201
|
const checkIfClassMissingForAnyLineItem = (transactionPayload) => {
|
|
198
202
|
let isAnyClassMissing = false;
|
|
199
|
-
if (
|
|
203
|
+
if (transactionPayload.lines != null) {
|
|
200
204
|
transactionPayload.lines.forEach((line) => {
|
|
201
205
|
var _a;
|
|
202
206
|
if (((_a = line.line_detail) === null || _a === void 0 ? void 0 : _a.class.accounting_class_id) == null) {
|
|
@@ -206,6 +210,19 @@ const checkIfClassMissingForAnyLineItem = (transactionPayload) => {
|
|
|
206
210
|
}
|
|
207
211
|
return isAnyClassMissing;
|
|
208
212
|
};
|
|
213
|
+
const checkIfVendorOrCustomerMissingForAnyLineItem = (transactionPayload) => {
|
|
214
|
+
let isAnyVendorOrCustomerMissing = false;
|
|
215
|
+
if (transactionPayload.lines != null) {
|
|
216
|
+
transactionPayload.lines.forEach((line) => {
|
|
217
|
+
var _a, _b;
|
|
218
|
+
if (((_a = line.line_detail) === null || _a === void 0 ? void 0 : _a.vendor) == null &&
|
|
219
|
+
((_b = line.line_detail) === null || _b === void 0 ? void 0 : _b.customer) == null) {
|
|
220
|
+
isAnyVendorOrCustomerMissing = true;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
return isAnyVendorOrCustomerMissing;
|
|
225
|
+
};
|
|
209
226
|
const toEntityUpdatePayload = (entityUpdates) => {
|
|
210
227
|
const entityUpdatesPayload = [];
|
|
211
228
|
let entityKey;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { RootState } from '../../../../reducer';
|
|
4
|
+
import { ZeniAPI } from '../../../../zeniAPI';
|
|
5
|
+
import { fetchVendorFirstReviewAttachments, updateVendorFirstReviewViewTransactionAttachments, updateVendorFirstReviewViewTransactionAttachmentsFailure } from '../vendorFirstReviewViewReducer';
|
|
6
|
+
export declare type ActionType = ReturnType<typeof fetchVendorFirstReviewAttachments> | ReturnType<typeof updateVendorFirstReviewViewTransactionAttachments> | ReturnType<typeof updateVendorFirstReviewViewTransactionAttachmentsFailure>;
|
|
7
|
+
export declare const fetchVendorFirstReviewAttachmentsEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
8
|
+
export interface VendorFirstReviewAttachementQueryPayload {
|
|
9
|
+
attachment_ids: string[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchVendorFirstReviewAttachmentsEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const responsePayload_1 = require("../../../../responsePayload");
|
|
7
|
+
const vendorFirstReviewViewReducer_1 = require("../vendorFirstReviewViewReducer");
|
|
8
|
+
const fetchVendorFirstReviewAttachmentsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(vendorFirstReviewViewReducer_1.fetchVendorFirstReviewAttachments.match), (0, operators_1.switchMap)((action) => {
|
|
9
|
+
const { attachmentIds, vendorId } = action.payload;
|
|
10
|
+
let apiUrl = `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/vendors/${vendorId}/attachments`;
|
|
11
|
+
const queryParam = {
|
|
12
|
+
attachment_ids: attachmentIds,
|
|
13
|
+
};
|
|
14
|
+
apiUrl =
|
|
15
|
+
apiUrl + `?query=${encodeURIComponent(JSON.stringify(queryParam))}`;
|
|
16
|
+
return zeniAPI.getJSON(apiUrl).pipe((0, operators_1.switchMap)((response) => {
|
|
17
|
+
if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
|
|
18
|
+
const actions = [];
|
|
19
|
+
actions.push((0, vendorFirstReviewViewReducer_1.updateVendorFirstReviewViewTransactionAttachments)({
|
|
20
|
+
vendorId,
|
|
21
|
+
transactionAttachments: response.data.transaction_attachments,
|
|
22
|
+
}));
|
|
23
|
+
return actions;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.updateVendorFirstReviewViewTransactionAttachmentsFailure)({
|
|
27
|
+
status: response.status,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
}), (0, operators_1.catchError)((error) => {
|
|
31
|
+
return (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.updateVendorFirstReviewViewTransactionAttachmentsFailure)({
|
|
32
|
+
status: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch Vendor First Review View REST API call errored out' +
|
|
33
|
+
JSON.stringify(error)),
|
|
34
|
+
}));
|
|
35
|
+
}));
|
|
36
|
+
}));
|
|
37
|
+
exports.fetchVendorFirstReviewAttachmentsEpic = fetchVendorFirstReviewAttachmentsEpic;
|
package/lib/view/vendorReviewView/vendorFirstReviewView/epics/fetchVendorFirstReviewViewEpic.js
CHANGED
|
@@ -67,6 +67,7 @@ const mapVendorPayloadFromVendorFirstReviewViewResponse = (vendor) => {
|
|
|
67
67
|
qbo_id: vendor.qbo_id,
|
|
68
68
|
currency_code: vendor.currency_code,
|
|
69
69
|
currency_symbol: vendor.currency_symbol,
|
|
70
|
+
transaction_attachments: vendor.transaction_attachments,
|
|
70
71
|
};
|
|
71
72
|
};
|
|
72
73
|
const mapUsersPayloadFromVendorFirstReviewViewResponse = (vendorsResponse) => {
|
package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorFirstReviewViewEpic.js
CHANGED
|
@@ -21,12 +21,12 @@ const fetchVendorFirstReviewViewEpic_1 = require("./fetchVendorFirstReviewViewEp
|
|
|
21
21
|
const globalMerchantSelector_1 = require("../../../../entity/globalMerchant/globalMerchantSelector");
|
|
22
22
|
const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(vendorFirstReviewViewReducer_1.saveVendorFirstReviewView.match), (0, operators_1.mergeMap)((action) => {
|
|
23
23
|
const { vendorFirstReviewViewState, globalMerchantState, vendorState } = state$.value;
|
|
24
|
-
const { vendorId, markAsEmployee } = action.payload;
|
|
24
|
+
const { vendorId, markAsEmployee, markAsLocalContractor } = action.payload;
|
|
25
25
|
const currentVendorLocalData = vendorFirstReviewViewState.vendorFirstReviewViewLocalDataById[vendorId]
|
|
26
26
|
.vendorFirstReviewViewLocalData;
|
|
27
27
|
const currentVendor = (0, vendorSelector_1.getVendorByVendorId)(state$.value.vendorState, vendorId);
|
|
28
28
|
const { vendorName, selectedGlobalMerchant, recommendations, nonExistingRecommendations, } = getSaveVendorFirstReviewViewPayloadDetails(currentVendorLocalData, globalMerchantState, vendorState);
|
|
29
|
-
const payload = Object.assign({}, prepareSaveVendorFirstReviewViewPayload(vendorName, recommendations, nonExistingRecommendations, markAsEmployee, currentVendor === null || currentVendor === void 0 ? void 0 : currentVendor.qboId, selectedGlobalMerchant));
|
|
29
|
+
const payload = Object.assign({}, prepareSaveVendorFirstReviewViewPayload(vendorName, recommendations, nonExistingRecommendations, markAsEmployee, markAsLocalContractor, currentVendor === null || currentVendor === void 0 ? void 0 : currentVendor.qboId, selectedGlobalMerchant));
|
|
30
30
|
const queryParam = {
|
|
31
31
|
view: 'merchant_review_list',
|
|
32
32
|
};
|
|
@@ -45,7 +45,7 @@ const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pi
|
|
|
45
45
|
vendorId,
|
|
46
46
|
vendors: (_d = response.data.vendors) !== null && _d !== void 0 ? _d : [],
|
|
47
47
|
}));
|
|
48
|
-
actions.push((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Completed', action.payload.vendorId, markAsEmployee, response.status, (_e = response.data.vendors) === null || _e === void 0 ? void 0 : _e[0].status));
|
|
48
|
+
actions.push((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Completed', action.payload.vendorId, markAsEmployee, markAsLocalContractor, response.status, (_e = response.data.vendors) === null || _e === void 0 ? void 0 : _e[0].status));
|
|
49
49
|
if (currentVendor != null) {
|
|
50
50
|
if (((_f = response.data.vendors) === null || _f === void 0 ? void 0 : _f[0].status.code) === 'reviewed') {
|
|
51
51
|
actions.push((0, snackbarReducer_1.openSnackbar)({
|
|
@@ -68,9 +68,14 @@ const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pi
|
|
|
68
68
|
actions.push((0, snackbarReducer_1.openSnackbar)({
|
|
69
69
|
messageSection: payload.is_employee === true
|
|
70
70
|
? 'save_vendor_marked_as_employee'
|
|
71
|
-
:
|
|
71
|
+
: payload.is_local_contractor === true
|
|
72
|
+
? 'save_vendor_marked_as_local_contractor'
|
|
73
|
+
: 'save_vendor_sent_for_review',
|
|
72
74
|
messageText: 'success',
|
|
73
|
-
type: payload.is_employee === true
|
|
75
|
+
type: payload.is_employee === true ||
|
|
76
|
+
payload.is_local_contractor === true
|
|
77
|
+
? 'success'
|
|
78
|
+
: 'info',
|
|
74
79
|
variables: [
|
|
75
80
|
{
|
|
76
81
|
variableName: '_vendor_name_',
|
|
@@ -88,7 +93,7 @@ const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pi
|
|
|
88
93
|
vendorId,
|
|
89
94
|
vendors: (_g = response.data.vendors) !== null && _g !== void 0 ? _g : [],
|
|
90
95
|
}));
|
|
91
|
-
actions.push((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, response.status));
|
|
96
|
+
actions.push((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, markAsLocalContractor, response.status));
|
|
92
97
|
actions.push((0, vendorReducer_1.updateVendors)((0, fetchVendorFirstReviewViewEpic_1.mapVendorsPayloadFromVendorFirstReviewViewResponse)((_h = response.data.vendors) !== null && _h !== void 0 ? _h : [])), (0, userReducer_1.updateAllUsers)({
|
|
93
98
|
users: (0, fetchVendorFirstReviewViewEpic_1.mapUsersPayloadFromVendorFirstReviewViewResponse)((_j = response.data.vendors) !== null && _j !== void 0 ? _j : []),
|
|
94
99
|
updateType: 'merge',
|
|
@@ -125,7 +130,7 @@ const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pi
|
|
|
125
130
|
return (0, rxjs_1.from)(actions);
|
|
126
131
|
}
|
|
127
132
|
else {
|
|
128
|
-
return (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, response.status), (0, snackbarReducer_1.openSnackbar)({
|
|
133
|
+
return (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, markAsLocalContractor, response.status), (0, snackbarReducer_1.openSnackbar)({
|
|
129
134
|
messageSection: 'save_vendor_sent_for_review',
|
|
130
135
|
messageText: 'failed',
|
|
131
136
|
type: 'error',
|
|
@@ -137,13 +142,13 @@ const saveVendorFirstReviewViewEpic = (actions$, state$, zeniAPI) => actions$.pi
|
|
|
137
142
|
],
|
|
138
143
|
}));
|
|
139
144
|
}
|
|
140
|
-
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', `Save Vendor First Review View REST API call errored out ${JSON.stringify(error)}`)))));
|
|
145
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.saveVendorFirstReviewViewSuccessOrFailure)('Error', action.payload.vendorId, markAsEmployee, markAsLocalContractor, (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', `Save Vendor First Review View REST API call errored out ${JSON.stringify(error)}`)))));
|
|
141
146
|
}));
|
|
142
147
|
exports.saveVendorFirstReviewViewEpic = saveVendorFirstReviewViewEpic;
|
|
143
148
|
/**
|
|
144
149
|
* Helpers
|
|
145
150
|
*/
|
|
146
|
-
const prepareSaveVendorFirstReviewViewPayload = (vendorName, recommendations, nonExistingRecommendations, markAsEmployee, vendorQboId, selectedGlobalMerchant) => {
|
|
151
|
+
const prepareSaveVendorFirstReviewViewPayload = (vendorName, recommendations, nonExistingRecommendations, markAsEmployee, markAsLocalContractor, vendorQboId, selectedGlobalMerchant) => {
|
|
147
152
|
const selectedGlobalMerchantBase = (selectedGlobalMerchant === null || selectedGlobalMerchant === void 0 ? void 0 : selectedGlobalMerchant.globalMerchantId) != null
|
|
148
153
|
? (0, omit_1.default)((0, globalMerchantPayload_1.toGlobalMerchantBasePayload)(selectedGlobalMerchant), ['create_time', 'update_time'])
|
|
149
154
|
: selectedGlobalMerchant != null
|
|
@@ -155,6 +160,7 @@ const prepareSaveVendorFirstReviewViewPayload = (vendorName, recommendations, no
|
|
|
155
160
|
selected_global_merchant: markAsEmployee === true ? null : selectedGlobalMerchantBase,
|
|
156
161
|
recommendations: (0, commonTypes_2.toVendorReviewViewRecommendationPayload)(recommendations, nonExistingRecommendations),
|
|
157
162
|
is_employee: markAsEmployee,
|
|
163
|
+
is_local_contractor: markAsLocalContractor,
|
|
158
164
|
};
|
|
159
165
|
return payload;
|
|
160
166
|
};
|
|
@@ -1,13 +1,25 @@
|
|
|
1
|
+
import { AttachmentPayload } from '../../../entity/transaction/payloadTypes/attachmentPayload';
|
|
2
|
+
import { ID } from '../../../commonStateTypes/common';
|
|
1
3
|
import { UserBasePayload } from '../../../entity/user/userPayload';
|
|
2
4
|
import { VendorPayload } from '../../../entity/vendor/vendorPayload';
|
|
3
5
|
import { ZeniAPIResponse } from '../../../responsePayload';
|
|
4
6
|
import { AllGlobalMerchantBasePayload, VendorReviewViewAllRecommendationsPayload, VendorReviewViewRecommendationsPayload } from '../common/payload/commonTypes';
|
|
5
7
|
import { VendorFirstReviewViewColumnKey } from './vendorFirstReviewViewState';
|
|
8
|
+
export interface VendorTransactionAttachment {
|
|
9
|
+
attachmentEndpoint: string;
|
|
10
|
+
vendorId: ID;
|
|
11
|
+
attachmentIds: ID[];
|
|
12
|
+
}
|
|
13
|
+
export interface VendorTransactionAttachmentPayload {
|
|
14
|
+
vendor_id: ID;
|
|
15
|
+
attachment_ids: ID[];
|
|
16
|
+
}
|
|
6
17
|
export interface VendorFirstReviewViewPayload extends VendorPayload {
|
|
7
18
|
recommendations: VendorReviewViewAllRecommendationsPayload;
|
|
8
19
|
status: ReviewStatusPayload;
|
|
9
20
|
last_updated_vendor_name_by_user: UserBasePayload | null;
|
|
10
21
|
merge_vendor_name: string | null;
|
|
22
|
+
transaction_attachments?: AttachmentPayload[] | null;
|
|
11
23
|
}
|
|
12
24
|
export interface FetchVendorFirstReviewViewQuery {
|
|
13
25
|
search_text: string;
|
|
@@ -29,6 +41,7 @@ export interface VendorFirstReviewPayload {
|
|
|
29
41
|
query?: FetchVendorFirstReviewViewQuery;
|
|
30
42
|
}
|
|
31
43
|
export declare type VendorFirstReviewViewResponse = ZeniAPIResponse<VendorFirstReviewPayload>;
|
|
44
|
+
export declare type VendorFirstReviewAttachmentResponse = ZeniAPIResponse<VendorFirstReviewPayload>;
|
|
32
45
|
export declare type ReviewStatusPayload = {
|
|
33
46
|
code: string;
|
|
34
47
|
name: string;
|
|
@@ -38,6 +51,7 @@ export interface SaveVendorFirstReviewViewPayload extends VendorPayload {
|
|
|
38
51
|
last_updated_vendor_name_by_user: UserBasePayload | null;
|
|
39
52
|
status: ReviewStatusPayload;
|
|
40
53
|
merge_vendor_name: string | null;
|
|
54
|
+
transaction_attachments: AttachmentPayload[];
|
|
41
55
|
}
|
|
42
56
|
export interface SaveVendorFirstReviewView {
|
|
43
57
|
vendors?: SaveVendorFirstReviewViewPayload[];
|
|
@@ -50,6 +64,7 @@ export interface SaveVendorFirstReviewViewQueryPayload {
|
|
|
50
64
|
qbo_id: string | null;
|
|
51
65
|
selected_global_merchant: AllGlobalMerchantBasePayload | null;
|
|
52
66
|
is_employee: boolean;
|
|
67
|
+
is_local_contractor: boolean;
|
|
53
68
|
recommendations: VendorReviewViewAllRecommendationsPayload;
|
|
54
69
|
}
|
|
55
70
|
export declare type SaveVendorFirstReviewResponse = ZeniAPIResponse<SaveVendorFirstReviewView>;
|