@zeniai/client-epic-state 4.12.23 → 4.12.25

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.
Files changed (115) hide show
  1. package/lib/commonStateTypes/selectorTypes/selectorTypes.d.ts +3 -1
  2. package/lib/entity/account/accountSelector.d.ts +1 -0
  3. package/lib/entity/account/accountSelector.js +13 -1
  4. package/lib/entity/class/classPayload.d.ts +1 -0
  5. package/lib/entity/class/classPayload.js +13 -29
  6. package/lib/entity/class/classState.d.ts +1 -0
  7. package/lib/entity/jeSchedules/jeScheduleHelper.d.ts +2 -0
  8. package/lib/entity/jeSchedules/jeScheduleHelper.js +7 -0
  9. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +22 -5
  10. package/lib/entity/jeSchedules/jeSchedulesPayload.js +104 -29
  11. package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +14 -4
  12. package/lib/entity/jeSchedules/jeSchedulesReducer.js +86 -6
  13. package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +15 -3
  14. package/lib/entity/jeSchedules/jeSchedulesSelector.js +68 -5
  15. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +14 -2
  16. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +4 -2
  17. package/lib/entity/jeSchedules/jeSchedulesTypes.js +1 -0
  18. package/lib/entity/jeSchedules/updateAccruedJESchedulesEpic.d.ts +9 -0
  19. package/lib/entity/jeSchedules/updateAccruedJESchedulesEpic.js +41 -0
  20. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  21. package/lib/entity/snackbar/snackbarTypes.js +2 -0
  22. package/lib/entity/tenant/clearAllEpic.d.ts +4 -3
  23. package/lib/entity/tenant/clearAllEpic.js +3 -0
  24. package/lib/entity/toastNotification/epic/pushToastNotificationEpic.d.ts +1 -1
  25. package/lib/entity/transaction/payloadTypes/otherTransactionPayload.d.ts +0 -2
  26. package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.d.ts +1 -1
  27. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +3 -0
  28. package/lib/entity/transaction/payloadTypes/transactionPayload.js +7 -3
  29. package/lib/entity/transaction/payloadTypes/vendorTransactionPayload.d.ts +1 -1
  30. package/lib/entity/transaction/stateTypes/transaction.d.ts +3 -0
  31. package/lib/epic.d.ts +12 -1
  32. package/lib/epic.js +12 -1
  33. package/lib/index.d.ts +11 -5
  34. package/lib/index.js +27 -5
  35. package/lib/reducer.d.ts +3 -0
  36. package/lib/reducer.js +3 -0
  37. package/lib/view/cardPayment/epic/addCardPaymentSourceEpic.d.ts +1 -1
  38. package/lib/view/cardPayment/epic/confirmCardSetupIntentEpic.d.ts +1 -1
  39. package/lib/view/cardPayment/epic/createCardSetupIntentEpic.d.ts +1 -1
  40. package/lib/view/cardPayment/epic/fetchPaymentSourcesEpic.d.ts +1 -1
  41. package/lib/view/commonVendorView/vendorView/epics/fetchVendorEpic.js +0 -1
  42. package/lib/view/people/changeZeniPersonRolesEpic.d.ts +1 -1
  43. package/lib/view/people/deletePersonEpic.d.ts +1 -1
  44. package/lib/view/people/invitePeopleEpic.d.ts +1 -1
  45. package/lib/view/people/inviteZeniPeopleEpic.d.ts +1 -1
  46. package/lib/view/people/resendInviteEpic.d.ts +1 -1
  47. package/lib/view/scheduleView/scheduleAccruedDetailView/LinkBillExpenseView/linkBillExpense.d.ts +3 -0
  48. package/lib/view/scheduleView/scheduleAccruedDetailView/LinkBillExpenseView/linkBillExpense.js +12 -0
  49. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/cancelScheduleAccruedJournalEntryEpic.d.ts +8 -0
  50. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/cancelScheduleAccruedJournalEntryEpic.js +81 -0
  51. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/createNewSchedulesAccruedEpic.d.ts +6 -0
  52. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/createNewSchedulesAccruedEpic.js +35 -0
  53. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.d.ts +8 -0
  54. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.js +79 -0
  55. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.d.ts +7 -0
  56. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.js +73 -0
  57. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsEpic.d.ts +8 -0
  58. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsEpic.js +53 -0
  59. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsPageEpic.d.ts +8 -0
  60. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsPageEpic.js +28 -0
  61. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/initializeScheduleAccruedDetailLocalDataEpic.d.ts +6 -0
  62. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/initializeScheduleAccruedDetailLocalDataEpic.js +37 -0
  63. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/saveScheduleAccruedDetailsEpic.d.ts +12 -0
  64. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/saveScheduleAccruedDetailsEpic.js +126 -0
  65. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/updateAmountsInScheduleAccruedDetailEpic.d.ts +6 -0
  66. package/lib/view/scheduleView/scheduleAccruedDetailView/epics/updateAmountsInScheduleAccruedDetailEpic.js +30 -0
  67. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailLocalDataHelper.d.ts +16 -0
  68. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailLocalDataHelper.js +121 -0
  69. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.d.ts +60 -0
  70. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.js +288 -0
  71. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailReducer.d.ts +83 -0
  72. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailReducer.js +363 -0
  73. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailSelector.d.ts +36 -0
  74. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailSelector.js +127 -0
  75. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailState.d.ts +45 -0
  76. package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailState.js +2 -0
  77. package/lib/view/scheduleView/scheduleDetailView/epics/createNewSchedulesEpic.js +1 -1
  78. package/lib/view/scheduleView/scheduleDetailView/epics/deleteScheduleDetailEpic.js +1 -1
  79. package/lib/view/scheduleView/scheduleDetailView/epics/fetchScheduleDetailsPageEpic.js +3 -1
  80. package/lib/view/scheduleView/scheduleDetailView/epics/initializeScheduleDetailLocalDataEpic.js +1 -1
  81. package/lib/view/scheduleView/scheduleDetailView/epics/markAsCompleteScheduleDetailEpic.js +1 -1
  82. package/lib/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.d.ts +2 -2
  83. package/lib/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.js +1 -1
  84. package/lib/view/scheduleView/scheduleDetailView/epics/updateAmountsInScheduleDetailEpic.js +1 -1
  85. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailLocalDataHelper.js +2 -0
  86. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailPayload.d.ts +11 -5
  87. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailPayload.js +66 -2
  88. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.d.ts +2 -5
  89. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.js +2 -17
  90. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailSelector.js +7 -3
  91. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailState.d.ts +3 -2
  92. package/lib/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.d.ts +8 -0
  93. package/lib/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.js +52 -0
  94. package/lib/view/scheduleView/scheduleListView/epics/fetchDownloadSchedulesEpic.js +7 -1
  95. package/lib/view/scheduleView/scheduleListView/epics/fetchScheduleListEpic.js +7 -1
  96. package/lib/view/scheduleView/scheduleListView/scheduleListHelper.d.ts +33 -2
  97. package/lib/view/scheduleView/scheduleListView/scheduleListHelper.js +117 -1
  98. package/lib/view/scheduleView/scheduleListView/scheduleListPayload.d.ts +6 -1
  99. package/lib/view/scheduleView/scheduleListView/scheduleListReducer.d.ts +32 -4
  100. package/lib/view/scheduleView/scheduleListView/scheduleListReducer.js +207 -69
  101. package/lib/view/scheduleView/scheduleListView/scheduleListSelector.d.ts +23 -1
  102. package/lib/view/scheduleView/scheduleListView/scheduleListSelector.js +176 -5
  103. package/lib/view/scheduleView/scheduleListView/scheduleListState.d.ts +15 -3
  104. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  105. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.js +2 -0
  106. package/lib/view/settingsView/epic/saveNotificationSettingsEpic.d.ts +1 -1
  107. package/lib/view/tagView/epics/createTagEpic.d.ts +1 -1
  108. package/lib/view/tagView/epics/deleteTagEpic.d.ts +1 -1
  109. package/lib/view/vendorList/vendorListSelector.d.ts +1 -1
  110. package/lib/view/vendorList/vendorListSelector.js +1 -0
  111. package/lib/view/vendorTabView/fetchVendorTabViewEpic.d.ts +2 -2
  112. package/lib/view/vendorTabView/fetchVendorTabViewEpic.js +11 -1
  113. package/lib/view/vendorTabView/vendorTabViewReducer.d.ts +2 -0
  114. package/lib/view/vendorTabView/vendorTabViewReducer.js +2 -1
  115. package/package.json +1 -1
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveScheduleAccruedDetailsEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../../responsePayload");
7
+ const jeSchedulesReducer_1 = require("../../../../entity/jeSchedules/jeSchedulesReducer");
8
+ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer");
9
+ const scheduleAccruedDetailReducer_1 = require("../scheduleAccruedDetailReducer");
10
+ const jeSchedulesSelector_1 = require("../../../../entity/jeSchedules/jeSchedulesSelector");
11
+ const scheduleAccruedDetailPayload_1 = require("../scheduleAccruedDetailPayload");
12
+ const jeSchedulesPayload_1 = require("../../../../entity/jeSchedules/jeSchedulesPayload");
13
+ const scheduleListHelper_1 = require("../../scheduleListView/scheduleListHelper");
14
+ const scheduleListTypes_1 = require("../../scheduleListView/scheduleListTypes");
15
+ const scheduleListReducer_1 = require("../../scheduleListView/scheduleListReducer");
16
+ const saveScheduleAccruedDetailsEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(scheduleAccruedDetailReducer_1.saveScheduleAccruedDetails.match), (0, operators_1.mergeMap)((action) => {
17
+ var _a, _b, _c, _d;
18
+ const state = state$.value;
19
+ const { scheduleAccruedDetailState } = state;
20
+ const { scheduleType } = action.payload;
21
+ const selectedJEScheduleKey = scheduleAccruedDetailState.selectedJEAccruedScheduleKey;
22
+ const actions = [];
23
+ let payload;
24
+ let scheduleDetailId = undefined;
25
+ let vendorName = '';
26
+ let jeScheduleAccruedState;
27
+ if (selectedJEScheduleKey != null) {
28
+ jeScheduleAccruedState = (0, jeSchedulesSelector_1.getJEAccruedScheduleByJEScheduleKey)(selectedJEScheduleKey, state);
29
+ if (jeScheduleAccruedState != null) {
30
+ scheduleDetailId = jeScheduleAccruedState.jeScheduleId;
31
+ const scheduleDetailsUpdated = state.scheduleAccruedDetailState.editScheduleStateByDetailId[scheduleDetailId];
32
+ vendorName = (_b = (_a = scheduleDetailsUpdated.selectedVendor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
33
+ payload = Object.assign({}, (0, scheduleAccruedDetailPayload_1.prepareScheduleAccruedDetailPayload)(state, scheduleDetailsUpdated, selectedJEScheduleKey));
34
+ }
35
+ }
36
+ else {
37
+ const scheduleDetailsUpdated = state.scheduleAccruedDetailState.newScheduleState;
38
+ vendorName = (_d = (_c = scheduleDetailsUpdated.selectedVendor) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '';
39
+ payload = Object.assign({}, (0, scheduleAccruedDetailPayload_1.prepareNewScheduleAccruedDetailPayload)(state, scheduleDetailsUpdated));
40
+ }
41
+ const queryParam = {
42
+ je_schedule_type: scheduleType,
43
+ };
44
+ // if scheduleDetailId exist then PUT for saving else POST for creating new AE
45
+ const saveScheduleDetailsApi = scheduleDetailId != null
46
+ ? zeniAPI.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/schedules/${scheduleDetailId}?query=${encodeURIComponent(JSON.stringify(queryParam))}`, payload)
47
+ : zeniAPI.postAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/schedules?query=${encodeURIComponent(JSON.stringify(queryParam))}`, payload);
48
+ return saveScheduleDetailsApi.pipe((0, operators_1.mergeMap)((response) => {
49
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
50
+ const jeScheduleDetailID = response.data.je_schedules[0].je_schedule_id;
51
+ if (jeScheduleDetailID == null) {
52
+ actions.push((0, scheduleAccruedDetailReducer_1.saveScheduleAccruedDetailsSuccessOrFailure)('Error', response.status), (0, snackbarReducer_1.openSnackbar)({
53
+ messageSection: scheduleDetailId != null
54
+ ? 'save_schedule'
55
+ : 'create_schedule',
56
+ messageText: 'failed',
57
+ type: 'error',
58
+ variables: [
59
+ {
60
+ variableName: '_api-error_',
61
+ variableValue: 'Schedule returned NULL for ID.',
62
+ },
63
+ ],
64
+ }));
65
+ return (0, rxjs_1.from)(actions);
66
+ }
67
+ actions.push((0, jeSchedulesReducer_1.updateAccruedJESchedules)(response.data.je_schedules), (0, jeSchedulesReducer_1.updateAccruedJESchedulesDetails)(response.data.je_schedules, response.data.scheduled_journal_entries));
68
+ // this is required to update the list
69
+ if (scheduleDetailId == null) {
70
+ const jeScheduleKey = (0, jeSchedulesPayload_1.getJEScheduleKey)(response.data.je_schedules[0]);
71
+ const timeframe = (0, scheduleListHelper_1.getDefaultSelectedTimeframeForScheduleType)('accrued_expenses');
72
+ const key = (0, scheduleListTypes_1.getScheduleListKey)('all', timeframe);
73
+ actions.push((0, scheduleListReducer_1.updateAccruedJEScheduleAccruedByListKey)({
74
+ scheduleType: 'accrued_expenses',
75
+ key,
76
+ jeScheduleAccruedKey: jeScheduleKey,
77
+ }));
78
+ }
79
+ actions.push((0, scheduleAccruedDetailReducer_1.initializeScheduleAccruedDetailLocalData)(scheduleType, selectedJEScheduleKey, jeScheduleDetailID), (0, scheduleAccruedDetailReducer_1.saveScheduleAccruedDetailsSuccessOrFailure)('Completed'), (0, snackbarReducer_1.openSnackbar)({
80
+ messageSection: scheduleDetailId != null
81
+ ? 'save_schedule'
82
+ : 'create_schedule',
83
+ messageText: 'success',
84
+ type: 'success',
85
+ variables: [
86
+ {
87
+ variableName: '_vendor_name_',
88
+ variableValue: vendorName,
89
+ },
90
+ ],
91
+ }));
92
+ return (0, rxjs_1.from)(actions);
93
+ }
94
+ else {
95
+ actions.push((0, scheduleAccruedDetailReducer_1.saveScheduleAccruedDetailsSuccessOrFailure)('Error', response.status));
96
+ actions.push((0, snackbarReducer_1.openSnackbar)({
97
+ messageSection: scheduleDetailId != null
98
+ ? 'save_schedule'
99
+ : 'create_schedule',
100
+ messageText: 'failed',
101
+ type: 'error',
102
+ variables: [
103
+ {
104
+ variableName: '_api-error_',
105
+ variableValue: response.status.message,
106
+ },
107
+ ],
108
+ }));
109
+ return (0, rxjs_1.from)(actions);
110
+ }
111
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
112
+ (0, snackbarReducer_1.openSnackbar)({
113
+ messageSection: scheduleDetailId != null ? 'save_schedule' : 'create_schedule',
114
+ messageText: 'failed',
115
+ type: 'error',
116
+ variables: [
117
+ {
118
+ variableName: '_api-error_',
119
+ variableValue: JSON.stringify(error),
120
+ },
121
+ ],
122
+ }),
123
+ (0, scheduleAccruedDetailReducer_1.saveScheduleAccruedDetailsSuccessOrFailure)('Error', (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', `Save Schedule Accrued Detail REST API call errored out ${JSON.stringify(error)}`)),
124
+ ])));
125
+ }));
126
+ exports.saveScheduleAccruedDetailsEpic = saveScheduleAccruedDetailsEpic;
@@ -0,0 +1,6 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { RootState } from '../../../../reducer';
4
+ import { updateScheduleAccruedDetailsLocalData, updateAmountsInScheduleAccruedDetail } from '../scheduleAccruedDetailReducer';
5
+ export declare type ActionType = ReturnType<typeof updateScheduleAccruedDetailsLocalData> | ReturnType<typeof updateAmountsInScheduleAccruedDetail>;
6
+ export declare const updateAmountsInScheduleAccruedDetailEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateAmountsInScheduleAccruedDetailEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const scheduleAccruedDetailReducer_1 = require("../scheduleAccruedDetailReducer");
7
+ const scheduleAccruedDetailLocalDataHelper_1 = require("../scheduleAccruedDetailLocalDataHelper");
8
+ const updateAmountsInScheduleAccruedDetailEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(scheduleAccruedDetailReducer_1.updateAmountsInScheduleAccruedDetail.match), (0, operators_1.mergeMap)((action) => {
9
+ const actions = [];
10
+ const state = state$.value;
11
+ const { scheduleAccruedDetailState } = state;
12
+ const selectedJEScheduleKey = scheduleAccruedDetailState.selectedJEAccruedScheduleKey;
13
+ const scheduleType = action.payload.scheduleType;
14
+ if (selectedJEScheduleKey != null) {
15
+ const jeScheduleDetailId = action.payload.jeScheduleDetailId;
16
+ const jeScheduleLocalDataUpdated = jeScheduleDetailId != null
17
+ ? (0, scheduleAccruedDetailLocalDataHelper_1.updateAmountsInScheduleAccruedDetails)(scheduleAccruedDetailState.editScheduleStateByDetailId[jeScheduleDetailId].jeScheduleDetails, action.payload.rowId)
18
+ : (0, scheduleAccruedDetailLocalDataHelper_1.updateAmountsInScheduleAccruedDetails)(scheduleAccruedDetailState.newScheduleState.jeScheduleDetails, action.payload.rowId);
19
+ const originalLocalData = jeScheduleDetailId != null
20
+ ? scheduleAccruedDetailState.editScheduleStateByDetailId[jeScheduleDetailId]
21
+ : scheduleAccruedDetailState.newScheduleState;
22
+ actions.push((0, scheduleAccruedDetailReducer_1.updateScheduleAccruedDetailsLocalData)({
23
+ scheduleType,
24
+ selectedJeScheduleDetailId: jeScheduleDetailId,
25
+ localData: Object.assign(Object.assign({}, originalLocalData), { jeScheduleDetails: jeScheduleLocalDataUpdated }),
26
+ }));
27
+ }
28
+ return (0, rxjs_1.from)(actions);
29
+ }));
30
+ exports.updateAmountsInScheduleAccruedDetailEpic = updateAmountsInScheduleAccruedDetailEpic;
@@ -0,0 +1,16 @@
1
+ import { Amount } from '../../../commonStateTypes/amount';
2
+ import { JEAccruedSchedule, ScheduledJournalEntry } from '../../../entity/jeSchedules/jeSchedulesSelector';
3
+ import { ScheduleDetailsLocalDataAccruedExpenses } from './scheduleAccruedDetailState';
4
+ import { ZeniDate } from '../../../zeniDayJS';
5
+ import { ScheduleJournalEntryStatusCodeType } from '../../../entity/jeSchedules/jeSchedulesTypes';
6
+ import { JEScheduleDetailsLocalData, JETransactionLink } from '../scheduleDetailView/scheduleDetailState';
7
+ import { TransactionID } from '../../../entity/transaction/stateTypes/transaction';
8
+ export declare const DUMMY_TRANSACTION_ID = "dummyid";
9
+ export declare const getPostingDateAndStatusForIndex: (schedulePostingMonth: number, schedulePostingYear: number, postingDay?: 2 | 1 | 22 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | undefined) => {
10
+ postingDate: ZeniDate;
11
+ postingStatus: ScheduleJournalEntryStatusCodeType;
12
+ };
13
+ export declare const createNewAccruedSchedulesHelper: (localData: ScheduleDetailsLocalDataAccruedExpenses, totalAmount: Amount, startingBalance: Amount, vendorName: string) => JEScheduleDetailsLocalData[];
14
+ export declare const getInitializedAccruedExpensesJEScheduleDetailsLocalData: (jeScheduleTransactionState: JEAccruedSchedule, scheduleJournalEntryData: ScheduledJournalEntry[]) => ScheduleDetailsLocalDataAccruedExpenses;
15
+ export declare const updateAmountsInScheduleAccruedDetails: (jeSchedulesLocalData: JEScheduleDetailsLocalData[], rowId: number) => JEScheduleDetailsLocalData[];
16
+ export declare const getJEAccruedTransactionLinkFromThirdPartyId: (thirdPartyID?: string | undefined, transactionId?: string | undefined, recommendedTransactionID?: TransactionID | undefined, reversalTransactionID?: TransactionID | undefined) => JETransactionLink;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getJEAccruedTransactionLinkFromThirdPartyId = exports.updateAmountsInScheduleAccruedDetails = exports.getInitializedAccruedExpensesJEScheduleDetailsLocalData = exports.createNewAccruedSchedulesHelper = exports.getPostingDateAndStatusForIndex = exports.DUMMY_TRANSACTION_ID = void 0;
4
+ const amount_1 = require("../../../commonStateTypes/amount");
5
+ const zeniDayJS_1 = require("../../../zeniDayJS");
6
+ const formatZeniDateFY_1 = require("../../../commonStateTypes/fiscalYearHelpers/formatZeniDateFY");
7
+ exports.DUMMY_TRANSACTION_ID = 'dummyid';
8
+ const getPostingDateAndStatusForIndex = function (schedulePostingMonth, schedulePostingYear, postingDay) {
9
+ const dateOfTransaction = postingDay !== null && postingDay !== void 0 ? postingDay : 31;
10
+ let postingDate = (0, zeniDayJS_1.dateFromYearMonthDate)(schedulePostingYear, schedulePostingMonth, dateOfTransaction);
11
+ if (postingDate.month() !== schedulePostingMonth) {
12
+ postingDate = (0, zeniDayJS_1.dateFromYearMonthDate)(schedulePostingYear, schedulePostingMonth).endOf('month');
13
+ }
14
+ const postingStatus = 'pending';
15
+ return {
16
+ postingDate,
17
+ postingStatus,
18
+ };
19
+ };
20
+ exports.getPostingDateAndStatusForIndex = getPostingDateAndStatusForIndex;
21
+ const getAccruedcheduleMemo = (vendorName, schedulePostingDate, currentPeriod, totalPeriod) => {
22
+ // update with this format <Vendor - Month - Acc_YYYY/MM>
23
+ return `${vendorName} - ${schedulePostingDate.format(formatZeniDateFY_1.MONTH_YEAR_FORMAT)} (${currentPeriod} of ${totalPeriod})`;
24
+ };
25
+ const createNewAccruedSchedulesHelper = (localData, totalAmount, startingBalance, vendorName) => {
26
+ var _a;
27
+ const period = localData.selectedMonths;
28
+ const startingMonth = localData.selectedDate;
29
+ if (startingMonth == null) {
30
+ return [];
31
+ }
32
+ const newSchedulesData = [];
33
+ if (period == null) {
34
+ return [];
35
+ }
36
+ for (let index = 0; index < period; index++) {
37
+ const schedulePostingDate = startingMonth.add(index, 'month');
38
+ const { postingDate, postingStatus } = (0, exports.getPostingDateAndStatusForIndex)(schedulePostingDate.month(), schedulePostingDate.year());
39
+ newSchedulesData.push({
40
+ postingDate,
41
+ amount: (0, amount_1.toAmount)(totalAmount.amount, totalAmount.currencyCode, totalAmount.currencySymbol),
42
+ runningBalance: (0, amount_1.toAmount)(index === 0 ? (_a = startingBalance.amount) !== null && _a !== void 0 ? _a : 0 : 0, totalAmount.currencyCode, totalAmount.currencySymbol),
43
+ postingStatus,
44
+ memo: getAccruedcheduleMemo(vendorName, schedulePostingDate, index + 1, period),
45
+ jeLink: {
46
+ type: 'unknown',
47
+ },
48
+ });
49
+ }
50
+ return newSchedulesData;
51
+ };
52
+ exports.createNewAccruedSchedulesHelper = createNewAccruedSchedulesHelper;
53
+ const getInitializedAccruedExpensesJEScheduleDetailsLocalData = (jeScheduleTransactionState, scheduleJournalEntryData) => {
54
+ var _a, _b, _c, _d, _e, _f;
55
+ const jeScheduleDetailsLocalData = scheduleJournalEntryData.map((schedule) => {
56
+ var _a, _b, _c, _d;
57
+ return {
58
+ postingDate: schedule.expectedPostDate,
59
+ amount: (0, amount_1.toAmount)(schedule.amount ? schedule.amount.amount : 0, (_a = schedule.currencyCode) !== null && _a !== void 0 ? _a : 'USD', (_b = schedule.currencySymbol) !== null && _b !== void 0 ? _b : '$'),
60
+ runningBalance: (0, amount_1.toAmount)(schedule.runningBalance ? schedule.runningBalance.amount : 0, (_c = schedule.currencyCode) !== null && _c !== void 0 ? _c : 'USD', (_d = schedule.currencySymbol) !== null && _d !== void 0 ? _d : '$'),
61
+ postingStatus: schedule.status.code,
62
+ memo: schedule.memo,
63
+ jeLink: (0, exports.getJEAccruedTransactionLinkFromThirdPartyId)(schedule.thirdPartyID, schedule.transactionID, schedule.recommendedTransactionID, schedule.reversalTransactionDetails),
64
+ };
65
+ });
66
+ const { startDate, period, jeDebit, jeCredit, memo, recurringAmount, vendor, otherAttributes, } = jeScheduleTransactionState;
67
+ return {
68
+ scheduleType: 'accrued_expenses',
69
+ startingBalance: {
70
+ amount: (_b = (_a = otherAttributes.startingBalance) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0,
71
+ currencyCode: 'USD',
72
+ currencySymbol: '$',
73
+ },
74
+ jeScheduleDetails: jeScheduleDetailsLocalData,
75
+ selectedDate: startDate,
76
+ selectedMonths: period,
77
+ selectedAccount: (_c = jeDebit.account) === null || _c === void 0 ? void 0 : _c.accountId,
78
+ selectedClass: (_d = jeDebit.accountingClass) === null || _d === void 0 ? void 0 : _d.classId,
79
+ estimatedMonthlyAmount: recurringAmount,
80
+ memo: memo,
81
+ selectedVendor: vendor,
82
+ selectedAccruedExpenseCategory: (_f = (_e = jeCredit.account) === null || _e === void 0 ? void 0 : _e.accountId) !== null && _f !== void 0 ? _f : '',
83
+ };
84
+ };
85
+ exports.getInitializedAccruedExpensesJEScheduleDetailsLocalData = getInitializedAccruedExpensesJEScheduleDetailsLocalData;
86
+ const updateAmountsInScheduleAccruedDetails = (jeSchedulesLocalData, rowId) => {
87
+ const updatedAmount = Math.abs(jeSchedulesLocalData[rowId].amount.amount);
88
+ return jeSchedulesLocalData.map((jeScheduleDetail, index) => {
89
+ if (index === rowId) {
90
+ return Object.assign(Object.assign({}, jeScheduleDetail), { amount: Object.assign(Object.assign({}, jeScheduleDetail.amount), { amount: updatedAmount }) });
91
+ }
92
+ else {
93
+ return jeScheduleDetail;
94
+ }
95
+ });
96
+ };
97
+ exports.updateAmountsInScheduleAccruedDetails = updateAmountsInScheduleAccruedDetails;
98
+ const getJEAccruedTransactionLinkFromThirdPartyId = (thirdPartyID, transactionId, recommendedTransactionID, reversalTransactionID) => {
99
+ const type = transactionId != null
100
+ ? 'linked'
101
+ : thirdPartyID == null
102
+ ? recommendedTransactionID == null
103
+ ? 'unknown'
104
+ : 'recommended'
105
+ : 'qbourl';
106
+ return {
107
+ type,
108
+ thirdPartyTransactionId: thirdPartyID,
109
+ recommendedTransactionID: recommendedTransactionID,
110
+ transactionDetailID: transactionId != null
111
+ ? {
112
+ id: transactionId,
113
+ type: 'journal_entry',
114
+ }
115
+ : undefined,
116
+ reversalTransactionDetails: reversalTransactionID != null
117
+ ? { id: reversalTransactionID.id, type: reversalTransactionID.type }
118
+ : undefined,
119
+ };
120
+ };
121
+ exports.getJEAccruedTransactionLinkFromThirdPartyId = getJEAccruedTransactionLinkFromThirdPartyId;
@@ -0,0 +1,60 @@
1
+ import { RootState } from '../../../reducer';
2
+ import { ScheduleDetailsLocalDataAccruedExpenses } from './scheduleAccruedDetailState';
3
+ import { VendorBasePayload } from '../../../entity/vendor/vendorPayload';
4
+ import { JEAccruedSchedule } from '../../../entity/jeSchedules/jeSchedulesSelector';
5
+ import { JEScheduleKey } from '../../../entity/jeSchedules/jeSchedulesTypes';
6
+ import { Vendor, VendorState } from '../../../entity/vendor/vendorState';
7
+ import { StatusCodeWithLabelPayload } from '../../../commonPayloadTypes/statusPayload';
8
+ import { SaveJESchedulePayload } from '../scheduleDetailView/scheduleDetailPayload';
9
+ import { JEScheduleDetailsLocalData } from '../scheduleDetailView/scheduleDetailState';
10
+ import { ZeniAPIResponse } from '../../../responsePayload';
11
+ import { TransactionPayload } from '../../../entity/transaction/payloadTypes/transactionPayload';
12
+ import { TransactionIDPayload } from '../../../entity/transaction/payloadTypes/transactionIDPayload';
13
+ export interface JEAccruedSchedulePayload {
14
+ status: StatusCodeWithLabelPayload;
15
+ vendor: VendorBasePayload;
16
+ currency_code: string;
17
+ currency_symbol: string;
18
+ period: number | null;
19
+ je_schedule_type: string;
20
+ balance: number | null;
21
+ posting_date: number | null;
22
+ start_date: string | null;
23
+ end_date: string | null;
24
+ je_credit_accounting_class_id: string | null;
25
+ je_credit_account_id: string | null;
26
+ je_debit_account_id: string | null;
27
+ je_debit_accounting_class_id: string | null;
28
+ recurring_amount: number;
29
+ other_attributes?: {
30
+ starting_balance: number;
31
+ };
32
+ memo: string;
33
+ is_deleted?: boolean;
34
+ }
35
+ export interface SaveScheduleDetailPayload {
36
+ je_schedules: JEAccruedSchedulePayload[];
37
+ scheduled_journal_entries: SaveJESchedulePayload[];
38
+ }
39
+ export interface FetchRecommendedBillExpenseTransactionQuery {
40
+ start_date: string;
41
+ end_date: string;
42
+ vendor_id: string;
43
+ amount: number;
44
+ accrued_balance: number;
45
+ account_name: string;
46
+ class_name: string;
47
+ }
48
+ export interface FetchRecommendedBillExpenseTransactionPayload {
49
+ transactions: TransactionPayload[];
50
+ }
51
+ export declare type FetchRecommendedBillExpenseTransactionResponse = ZeniAPIResponse<FetchRecommendedBillExpenseTransactionPayload>;
52
+ export declare const mapVendorToVendorPayload: (payload: Vendor) => VendorBasePayload;
53
+ export declare const mapJEScheduleAccruedLocalDataToScheduleDetailPayload: (jeScheduleDetails: JEScheduleDetailsLocalData[], jeScheduleTransactionState: JEAccruedSchedule, selectedJEAccruedLinkRowIndex: number | undefined, reversalTransactionDetails: TransactionIDPayload | undefined) => SaveJESchedulePayload[];
54
+ export declare const mapJEScheduleLocalDataToScheduleDetailPayloadForCancel: (jeScheduleDetails: JEScheduleDetailsLocalData[], jeScheduleTransactionState: JEAccruedSchedule, rowId?: number | undefined) => SaveJESchedulePayload[];
55
+ export declare const mapNewJEScheduleLocalDataToScheduleDetailPayload: (scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses) => SaveJESchedulePayload[];
56
+ export declare const mapNewAccruedExpenseJEScheduleTransactionToPayload: (scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses, balanceSheetClassId: string | undefined) => JEAccruedSchedulePayload;
57
+ export declare const mapAccruedExpenseJEScheduleTransactionToPayload: (jeScheduleAccruedExpense: JEAccruedSchedule, vendorState: VendorState, scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses, balanceSheetClassId: string | undefined, isDelete?: boolean | undefined) => JEAccruedSchedulePayload;
58
+ export declare const prepareNewScheduleAccruedDetailPayload: (state: RootState, scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses) => SaveScheduleDetailPayload;
59
+ export declare const prepareScheduleAccruedDetailPayload: (state: RootState, scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses, selectedJEScheduleKey: JEScheduleKey, isDelete?: boolean | undefined) => SaveScheduleDetailPayload;
60
+ export declare const prepareScheduleAccruedDetailForCancelPayload: (state: RootState, scheduleDetailsLocalDataAccruedExpenses: ScheduleDetailsLocalDataAccruedExpenses, selectedJEScheduleKey: JEScheduleKey, rowId?: number | undefined) => SaveScheduleDetailPayload;