@zeniai/client-epic-state 4.12.23 → 4.12.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonStateTypes/selectorTypes/selectorTypes.d.ts +3 -1
- package/lib/entity/account/accountSelector.d.ts +1 -0
- package/lib/entity/account/accountSelector.js +13 -1
- package/lib/entity/class/classPayload.d.ts +1 -0
- package/lib/entity/class/classPayload.js +13 -29
- package/lib/entity/class/classState.d.ts +1 -0
- package/lib/entity/jeSchedules/jeScheduleHelper.d.ts +2 -0
- package/lib/entity/jeSchedules/jeScheduleHelper.js +7 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +22 -5
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +104 -29
- package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +14 -4
- package/lib/entity/jeSchedules/jeSchedulesReducer.js +86 -6
- package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +15 -3
- package/lib/entity/jeSchedules/jeSchedulesSelector.js +68 -5
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +14 -2
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +4 -2
- package/lib/entity/jeSchedules/jeSchedulesTypes.js +1 -0
- package/lib/entity/jeSchedules/updateAccruedJESchedulesEpic.d.ts +9 -0
- package/lib/entity/jeSchedules/updateAccruedJESchedulesEpic.js +41 -0
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +2 -0
- package/lib/entity/tenant/clearAllEpic.d.ts +4 -3
- package/lib/entity/tenant/clearAllEpic.js +3 -0
- package/lib/entity/toastNotification/epic/pushToastNotificationEpic.d.ts +1 -1
- package/lib/entity/transaction/payloadTypes/otherTransactionPayload.d.ts +0 -2
- package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.d.ts +1 -1
- package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +3 -0
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +7 -3
- package/lib/entity/transaction/payloadTypes/vendorTransactionPayload.d.ts +1 -1
- package/lib/entity/transaction/stateTypes/transaction.d.ts +3 -0
- package/lib/epic.d.ts +12 -1
- package/lib/epic.js +12 -1
- package/lib/index.d.ts +11 -5
- package/lib/index.js +27 -5
- package/lib/reducer.d.ts +3 -0
- package/lib/reducer.js +3 -0
- package/lib/view/cardPayment/epic/addCardPaymentSourceEpic.d.ts +1 -1
- package/lib/view/cardPayment/epic/confirmCardSetupIntentEpic.d.ts +1 -1
- package/lib/view/cardPayment/epic/createCardSetupIntentEpic.d.ts +1 -1
- package/lib/view/cardPayment/epic/fetchPaymentSourcesEpic.d.ts +1 -1
- package/lib/view/commonVendorView/vendorView/epics/fetchVendorEpic.js +0 -1
- 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/scheduleView/scheduleAccruedDetailView/LinkBillExpenseView/linkBillExpense.d.ts +3 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/LinkBillExpenseView/linkBillExpense.js +12 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/cancelScheduleAccruedJournalEntryEpic.d.ts +8 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/cancelScheduleAccruedJournalEntryEpic.js +81 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/createNewSchedulesAccruedEpic.d.ts +6 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/createNewSchedulesAccruedEpic.js +35 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.d.ts +8 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/deleteScheduleAccruedDetailEpic.js +79 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.d.ts +7 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchRecommendedTransactionRowIndexEpic.js +73 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsEpic.d.ts +8 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsEpic.js +53 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsPageEpic.d.ts +8 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/fetchScheduleAccruedDetailsPageEpic.js +28 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/initializeScheduleAccruedDetailLocalDataEpic.d.ts +6 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/initializeScheduleAccruedDetailLocalDataEpic.js +37 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/saveScheduleAccruedDetailsEpic.d.ts +12 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/saveScheduleAccruedDetailsEpic.js +126 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/updateAmountsInScheduleAccruedDetailEpic.d.ts +6 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/epics/updateAmountsInScheduleAccruedDetailEpic.js +30 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailLocalDataHelper.d.ts +16 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailLocalDataHelper.js +121 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.d.ts +60 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailPayload.js +288 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailReducer.d.ts +83 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailReducer.js +363 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailSelector.d.ts +36 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailSelector.js +127 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailState.d.ts +45 -0
- package/lib/view/scheduleView/scheduleAccruedDetailView/scheduleAccruedDetailState.js +2 -0
- 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/fetchScheduleDetailsPageEpic.js +3 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/initializeScheduleDetailLocalDataEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/markAsCompleteScheduleDetailEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.d.ts +2 -2
- package/lib/view/scheduleView/scheduleDetailView/epics/saveScheduleDetailsEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/epics/updateAmountsInScheduleDetailEpic.js +1 -1
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailLocalDataHelper.js +2 -0
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailPayload.d.ts +11 -5
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailPayload.js +66 -2
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.d.ts +2 -5
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.js +2 -17
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailSelector.js +7 -3
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailState.d.ts +3 -2
- package/lib/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.d.ts +8 -0
- package/lib/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.js +52 -0
- package/lib/view/scheduleView/scheduleListView/epics/fetchDownloadSchedulesEpic.js +7 -1
- package/lib/view/scheduleView/scheduleListView/epics/fetchScheduleListEpic.js +7 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListHelper.d.ts +33 -2
- package/lib/view/scheduleView/scheduleListView/scheduleListHelper.js +117 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListPayload.d.ts +6 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListReducer.d.ts +32 -4
- package/lib/view/scheduleView/scheduleListView/scheduleListReducer.js +207 -69
- package/lib/view/scheduleView/scheduleListView/scheduleListSelector.d.ts +23 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListSelector.js +176 -5
- package/lib/view/scheduleView/scheduleListView/scheduleListState.d.ts +15 -3
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.js +2 -0
- package/lib/view/settingsView/epic/saveNotificationSettingsEpic.d.ts +1 -1
- package/lib/view/tagView/epics/createTagEpic.d.ts +1 -1
- package/lib/view/tagView/epics/deleteTagEpic.d.ts +1 -1
- package/lib/view/vendorList/vendorListSelector.d.ts +1 -1
- package/lib/view/vendorList/vendorListSelector.js +1 -0
- package/lib/view/vendorTabView/fetchVendorTabViewEpic.d.ts +2 -2
- package/lib/view/vendorTabView/fetchVendorTabViewEpic.js +11 -1
- package/lib/view/vendorTabView/vendorTabViewReducer.d.ts +2 -0
- package/lib/view/vendorTabView/vendorTabViewReducer.js +2 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ const updateAmountsInScheduleDetailEpic = (actions$, state$) => actions$.pipe((0
|
|
|
14
14
|
const selectedJEScheduleKey = scheduleDetailState.selectedJEScheduleKey;
|
|
15
15
|
const scheduleType = action.payload.scheduleType;
|
|
16
16
|
if (selectedJEScheduleKey != null) {
|
|
17
|
-
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.
|
|
17
|
+
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(selectedJEScheduleKey, state);
|
|
18
18
|
const jeScheduleDetailId = action.payload.jeScheduleDetailId;
|
|
19
19
|
const totalAmount = jeScheduleTransactionState.baseTransaction.amount.amount;
|
|
20
20
|
const jeScheduleLocalDataUpdated = jeScheduleDetailId != null
|
|
@@ -228,6 +228,8 @@ const getAccountsTypesForScheduleDetails = (scheduleType) => {
|
|
|
228
228
|
case 'prepaid_expenses':
|
|
229
229
|
case 'fixed_assets':
|
|
230
230
|
return ['cogs', 'expenses', 'other_expense'];
|
|
231
|
+
case 'accrued_expenses':
|
|
232
|
+
return ['cogs', 'expenses', 'other_expense', 'other_current_liabilities'];
|
|
231
233
|
default:
|
|
232
234
|
return [];
|
|
233
235
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { RootState } from '../../../reducer';
|
|
2
|
-
import { ScheduleDetailsLocalData } from './scheduleDetailState';
|
|
3
|
-
import {
|
|
2
|
+
import { ScheduleDetailsLocalData, ScheduleDetailsLocalDataFixedAssets } from './scheduleDetailState';
|
|
3
|
+
import { JEScheduleTransactionKey, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
|
|
4
4
|
import { VendorBasePayload } from '../../../entity/vendor/vendorPayload';
|
|
5
|
+
import { JEScheduledTransaction } from '../../../entity/jeSchedules/jeSchedulesSelector';
|
|
6
|
+
import { VendorState } from '../../../entity/vendor/vendorState';
|
|
5
7
|
import { AccountBasePayload } from '../../../entity/account/accountPayload';
|
|
6
8
|
import { ClassBasePayload } from '../../../entity/class/classPayload';
|
|
7
9
|
import { TransactionIDPayload } from '../../../entity/transaction/payloadTypes/transactionIDPayload';
|
|
@@ -28,10 +30,13 @@ interface JESchedulePayload {
|
|
|
28
30
|
is_deleted?: boolean;
|
|
29
31
|
je_schedule_id?: string;
|
|
30
32
|
}
|
|
31
|
-
interface SaveJESchedulePayload {
|
|
33
|
+
export interface SaveJESchedulePayload {
|
|
32
34
|
status: StatusCodeWithLabelPayload;
|
|
33
35
|
transaction_memo: string | null;
|
|
34
36
|
third_party_id: string | null;
|
|
37
|
+
reversal_transaction_details?: TransactionIDPayload | null;
|
|
38
|
+
is_bill_linked?: boolean | null;
|
|
39
|
+
actual_reversal_post_date?: string | null;
|
|
35
40
|
expected_post_date: string | null;
|
|
36
41
|
je_schedule_id: string | null;
|
|
37
42
|
scheduled_journal_entry_id: string | null;
|
|
@@ -43,7 +48,7 @@ interface SaveJESchedulePayload {
|
|
|
43
48
|
create_time: string | null;
|
|
44
49
|
is_deleted?: boolean;
|
|
45
50
|
}
|
|
46
|
-
interface SaveScheduleTransactionPayload extends TransactionIDPayload, Omit<AccountBasePayload, 'qbo_id'>, Omit<ClassBasePayload, 'qbo_id'> {
|
|
51
|
+
interface SaveScheduleTransactionPayload extends TransactionIDPayload, Omit<AccountBasePayload, 'qbo_id'>, Omit<ClassBasePayload, 'qbo_id' | 'labels'> {
|
|
47
52
|
third_party_transaction_id: string | null;
|
|
48
53
|
transaction_date: string | null;
|
|
49
54
|
total_amount: number | null;
|
|
@@ -54,5 +59,6 @@ interface SaveScheduleDetailPayload {
|
|
|
54
59
|
je_schedules: JESchedulePayload[];
|
|
55
60
|
scheduled_journal_entries: SaveJESchedulePayload[];
|
|
56
61
|
}
|
|
57
|
-
export declare const
|
|
62
|
+
export declare const mapAccruedExpenseJEScheduleTransactionToPayload: (jeScheduleTransactionState: JEScheduledTransaction, vendorState: VendorState, scheduleDetailsLocalData: ScheduleDetailsLocalDataFixedAssets, isDelete?: boolean | undefined, isMarkAsComplete?: boolean | undefined) => JESchedulePayload;
|
|
63
|
+
export declare const prepareScheduleDetailPayload: (state: RootState, scheduleDetailsLocalData: ScheduleDetailsLocalData, selectedJEScheduleKey: JEScheduleTransactionKey, jeScheduleType: ScheduleTypes, isDelete?: boolean | undefined, isMarkAsComplete?: boolean | undefined) => SaveScheduleDetailPayload;
|
|
58
64
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.prepareScheduleDetailPayload = void 0;
|
|
3
|
+
exports.prepareScheduleDetailPayload = exports.mapAccruedExpenseJEScheduleTransactionToPayload = void 0;
|
|
4
4
|
const jeSchedulesSelector_1 = require("../../../entity/jeSchedules/jeSchedulesSelector");
|
|
5
5
|
const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
|
|
6
6
|
const formatZeniDateFY_1 = require("../../../commonStateTypes/fiscalYearHelpers/formatZeniDateFY");
|
|
@@ -216,12 +216,76 @@ const mapFixedAssetJEScheduleTransactionToPayload = (jeScheduleTransactionState,
|
|
|
216
216
|
return isDelete === true
|
|
217
217
|
? Object.assign(Object.assign({}, payload), { is_deleted: true }) : payload;
|
|
218
218
|
};
|
|
219
|
+
const mapAccruedExpenseJEScheduleTransactionToPayload = (jeScheduleTransactionState, vendorState, scheduleDetailsLocalData, isDelete, isMarkAsComplete) => {
|
|
220
|
+
var _a, _b;
|
|
221
|
+
const { vendor, currencyCode, currencySymbol, baseTransaction, status, startDate, endDate, balanceAsOfToday, jeScheduleId, } = jeScheduleTransactionState;
|
|
222
|
+
const { selectedMonths, selectedAccount, selectedClass, selectedDayOfMonth, lastDayOfMonth, selectedAccumulatedDepreciationCategory, assetId, } = scheduleDetailsLocalData;
|
|
223
|
+
let updatedStatus = Object.assign({}, status);
|
|
224
|
+
// if the current status is marked as completed, we need to send the status as new when creating a new schedule.
|
|
225
|
+
if (status.code === 'marked_as_completed') {
|
|
226
|
+
updatedStatus = {
|
|
227
|
+
code: 'new',
|
|
228
|
+
label: 'New',
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
if (isMarkAsComplete === true) {
|
|
232
|
+
updatedStatus = {
|
|
233
|
+
code: 'marked_as_completed',
|
|
234
|
+
label: 'Marked as Completed',
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
const postingDate = selectedDayOfMonth !== null && selectedDayOfMonth !== void 0 ? selectedDayOfMonth : (lastDayOfMonth != null ? timePeriod_1.LAST_SCHEDULE_DAY_OF_MONTH : null);
|
|
238
|
+
const scheduleLength = scheduleDetailsLocalData.jeScheduleDetails.length;
|
|
239
|
+
const firstJEScheduleDate = scheduleLength > 0
|
|
240
|
+
? scheduleDetailsLocalData.jeScheduleDetails[0].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
241
|
+
: null;
|
|
242
|
+
const lastJEScheduleDate = scheduleLength > 0
|
|
243
|
+
? scheduleDetailsLocalData.jeScheduleDetails[scheduleLength - 1].postingDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)
|
|
244
|
+
: null;
|
|
245
|
+
const vendorID = vendor.id;
|
|
246
|
+
const vendorDetails = vendorState.vendorByID[vendorID];
|
|
247
|
+
const payload = {
|
|
248
|
+
status: updatedStatus,
|
|
249
|
+
vendor: mapVendorToVendorPayload(vendorDetails),
|
|
250
|
+
currency_code: currencyCode,
|
|
251
|
+
currency_symbol: currencySymbol,
|
|
252
|
+
period: selectedMonths !== null && selectedMonths !== void 0 ? selectedMonths : null,
|
|
253
|
+
je_schedule_type: 'fixed_assets',
|
|
254
|
+
posting_date: postingDate,
|
|
255
|
+
je_schedule_id: status.code === 'marked_as_completed' ? jeScheduleId : undefined,
|
|
256
|
+
balance: getBalanceAmountAsOfToday({
|
|
257
|
+
isMarkAsComplete,
|
|
258
|
+
balanceAsOfToday,
|
|
259
|
+
baseTransaction,
|
|
260
|
+
}),
|
|
261
|
+
start_date: (_a = startDate === null || startDate === void 0 ? void 0 : startDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)) !== null && _a !== void 0 ? _a : firstJEScheduleDate,
|
|
262
|
+
end_date: (_b = endDate === null || endDate === void 0 ? void 0 : endDate.format(formatZeniDateFY_1.DEFAULT_DATE_FORMAT)) !== null && _b !== void 0 ? _b : lastJEScheduleDate,
|
|
263
|
+
je_credit_accounting_class_id: getJECreditAccountingClassId({
|
|
264
|
+
isMarkAsComplete,
|
|
265
|
+
jeScheduleTransactionState,
|
|
266
|
+
}),
|
|
267
|
+
je_credit_account_id: isMarkAsComplete === true
|
|
268
|
+
? null
|
|
269
|
+
: selectedAccumulatedDepreciationCategory !== null && selectedAccumulatedDepreciationCategory !== void 0 ? selectedAccumulatedDepreciationCategory : null,
|
|
270
|
+
je_debit_account_id: selectedAccount !== null && selectedAccount !== void 0 ? selectedAccount : null,
|
|
271
|
+
je_debit_accounting_class_id: selectedClass !== null && selectedClass !== void 0 ? selectedClass : null,
|
|
272
|
+
other_attributes: assetId != null
|
|
273
|
+
? {
|
|
274
|
+
asset_id: assetId,
|
|
275
|
+
}
|
|
276
|
+
: {},
|
|
277
|
+
base_transaction: mapScheduleTransactionToBaseScheduleTransactionPayload(baseTransaction),
|
|
278
|
+
};
|
|
279
|
+
return isDelete === true
|
|
280
|
+
? Object.assign(Object.assign({}, payload), { is_deleted: true }) : payload;
|
|
281
|
+
};
|
|
282
|
+
exports.mapAccruedExpenseJEScheduleTransactionToPayload = mapAccruedExpenseJEScheduleTransactionToPayload;
|
|
219
283
|
const prepareScheduleDetailPayload = (state, scheduleDetailsLocalData, selectedJEScheduleKey, jeScheduleType, isDelete, isMarkAsComplete) => {
|
|
220
284
|
const payload = {
|
|
221
285
|
je_schedules: [],
|
|
222
286
|
scheduled_journal_entries: [],
|
|
223
287
|
};
|
|
224
|
-
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.
|
|
288
|
+
const jeScheduleTransactionState = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(selectedJEScheduleKey, state);
|
|
225
289
|
const { vendorState } = state;
|
|
226
290
|
const jeScheduleDetailsLocalData = scheduleDetailsLocalData.jeScheduleDetails;
|
|
227
291
|
payload.je_schedules =
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ScheduleDetailsLocalData, ScheduleDetailsLocalDataFixedAssets, ScheduleDetailViewState } from './scheduleDetailState';
|
|
2
|
-
import {
|
|
2
|
+
import { JEScheduleTransactionKey, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
|
|
3
3
|
import { FetchState, ID } from '../../../commonStateTypes/common';
|
|
4
4
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
5
5
|
import ZeniUrl from '../../../zeniUrl';
|
|
@@ -48,11 +48,8 @@ export declare const createNewSchedules: import("@reduxjs/toolkit").ActionCreato
|
|
|
48
48
|
scheduleType: "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue";
|
|
49
49
|
rowId: number;
|
|
50
50
|
jeScheduleDetailId: string | undefined;
|
|
51
|
-
}, string, never, never>, updateScheduleDetailNewStateLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[scheduleType: "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue", selectedJeScheduleDetailId: string], {
|
|
52
|
-
scheduleType: "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue";
|
|
53
|
-
selectedJeScheduleDetailId: string;
|
|
54
51
|
}, string, never, never>, updateSelectedJEScheduleKey: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
55
|
-
selectedJEScheduleKey:
|
|
52
|
+
selectedJEScheduleKey: JEScheduleTransactionKey;
|
|
56
53
|
}, string>, updatedSelectedJELinkRowIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
57
54
|
selectedJELinkRowIndex: number;
|
|
58
55
|
}, string>, updatedJELinkWithRecommendedLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.clearScheduleDetailView = exports.resetMarkAsCompleteStatus = exports.markAsCompleteScheduleDetailSuccessOrFailure = exports.markAsCompleteScheduleDetail = exports.resetJELinkInLocalData = exports.updatedJELinkWithRecommendedLocalData = exports.updatedSelectedJELinkRowIndex = exports.updateSelectedJEScheduleKey = exports.
|
|
4
|
+
exports.clearScheduleDetailView = exports.resetMarkAsCompleteStatus = exports.markAsCompleteScheduleDetailSuccessOrFailure = exports.markAsCompleteScheduleDetail = exports.resetJELinkInLocalData = exports.updatedJELinkWithRecommendedLocalData = exports.updatedSelectedJELinkRowIndex = exports.updateSelectedJEScheduleKey = exports.updateAmountsInScheduleDetail = exports.updatedJELinkInLocalData = exports.updateScheduleDetailsLocalData = exports.initializeScheduleDetailLocalData = exports.deleteScheduleDetailSuccessOrFailure = exports.updateDeletedScheduleDetail = exports.deleteScheduleDetail = exports.saveScheduleDetailsSuccessOrFailure = exports.saveScheduleDetails = exports.updateScheduleDetailsFailure = exports.updateScheduleDetailsSuccess = exports.fetchScheduleDetails = exports.fetchScheduleDetailsPage = exports.createNewSchedules = exports.initialState = exports.initialScheduleDetailsLocalData = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const scheduleDetailLocalDataHelper_1 = require("./scheduleDetailLocalDataHelper");
|
|
7
7
|
const transactionDetailState_1 = require("../../transactionDetail/transactionDetailState");
|
|
@@ -197,21 +197,6 @@ const scheduleDetailView = (0, toolkit_1.createSlice)({
|
|
|
197
197
|
updateSelectedJEScheduleKey(draft, action) {
|
|
198
198
|
draft.selectedJEScheduleKey = action.payload.selectedJEScheduleKey;
|
|
199
199
|
},
|
|
200
|
-
updateScheduleDetailNewStateLocalData: {
|
|
201
|
-
prepare(scheduleType, selectedJeScheduleDetailId) {
|
|
202
|
-
return {
|
|
203
|
-
payload: { scheduleType, selectedJeScheduleDetailId },
|
|
204
|
-
};
|
|
205
|
-
},
|
|
206
|
-
reducer(draft, action) {
|
|
207
|
-
// This is a special case - when we save, we need the newSchedule state to move to the
|
|
208
|
-
// edit state
|
|
209
|
-
const selectedJeScheduleDetailId = action.payload.selectedJeScheduleDetailId;
|
|
210
|
-
if (draft.editScheduleStateByDetailId[action.payload.scheduleType][selectedJeScheduleDetailId] == null) {
|
|
211
|
-
draft.editScheduleStateByDetailId[action.payload.scheduleType][selectedJeScheduleDetailId] = Object.assign({}, draft.newScheduleState[action.payload.scheduleType]);
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
},
|
|
215
200
|
updatedSelectedJELinkRowIndex(draft, action) {
|
|
216
201
|
draft.selectedJELinkRowIndex = action.payload.selectedJELinkRowIndex;
|
|
217
202
|
},
|
|
@@ -305,7 +290,7 @@ const scheduleDetailView = (0, toolkit_1.createSlice)({
|
|
|
305
290
|
},
|
|
306
291
|
},
|
|
307
292
|
});
|
|
308
|
-
_a = scheduleDetailView.actions, exports.createNewSchedules = _a.createNewSchedules, exports.fetchScheduleDetailsPage = _a.fetchScheduleDetailsPage, exports.fetchScheduleDetails = _a.fetchScheduleDetails, exports.updateScheduleDetailsSuccess = _a.updateScheduleDetailsSuccess, exports.updateScheduleDetailsFailure = _a.updateScheduleDetailsFailure, exports.saveScheduleDetails = _a.saveScheduleDetails, exports.saveScheduleDetailsSuccessOrFailure = _a.saveScheduleDetailsSuccessOrFailure, exports.deleteScheduleDetail = _a.deleteScheduleDetail, exports.updateDeletedScheduleDetail = _a.updateDeletedScheduleDetail, exports.deleteScheduleDetailSuccessOrFailure = _a.deleteScheduleDetailSuccessOrFailure, exports.initializeScheduleDetailLocalData = _a.initializeScheduleDetailLocalData, exports.updateScheduleDetailsLocalData = _a.updateScheduleDetailsLocalData, exports.updatedJELinkInLocalData = _a.updatedJELinkInLocalData, exports.updateAmountsInScheduleDetail = _a.updateAmountsInScheduleDetail, exports.
|
|
293
|
+
_a = scheduleDetailView.actions, exports.createNewSchedules = _a.createNewSchedules, exports.fetchScheduleDetailsPage = _a.fetchScheduleDetailsPage, exports.fetchScheduleDetails = _a.fetchScheduleDetails, exports.updateScheduleDetailsSuccess = _a.updateScheduleDetailsSuccess, exports.updateScheduleDetailsFailure = _a.updateScheduleDetailsFailure, exports.saveScheduleDetails = _a.saveScheduleDetails, exports.saveScheduleDetailsSuccessOrFailure = _a.saveScheduleDetailsSuccessOrFailure, exports.deleteScheduleDetail = _a.deleteScheduleDetail, exports.updateDeletedScheduleDetail = _a.updateDeletedScheduleDetail, exports.deleteScheduleDetailSuccessOrFailure = _a.deleteScheduleDetailSuccessOrFailure, exports.initializeScheduleDetailLocalData = _a.initializeScheduleDetailLocalData, exports.updateScheduleDetailsLocalData = _a.updateScheduleDetailsLocalData, exports.updatedJELinkInLocalData = _a.updatedJELinkInLocalData, exports.updateAmountsInScheduleDetail = _a.updateAmountsInScheduleDetail, exports.updateSelectedJEScheduleKey = _a.updateSelectedJEScheduleKey, exports.updatedSelectedJELinkRowIndex = _a.updatedSelectedJELinkRowIndex, exports.updatedJELinkWithRecommendedLocalData = _a.updatedJELinkWithRecommendedLocalData, exports.resetJELinkInLocalData = _a.resetJELinkInLocalData, exports.markAsCompleteScheduleDetail = _a.markAsCompleteScheduleDetail, exports.markAsCompleteScheduleDetailSuccessOrFailure = _a.markAsCompleteScheduleDetailSuccessOrFailure, exports.resetMarkAsCompleteStatus = _a.resetMarkAsCompleteStatus, exports.clearScheduleDetailView = _a.clearScheduleDetailView;
|
|
309
294
|
exports.default = scheduleDetailView.reducer;
|
|
310
295
|
const updateJELinkInScheduleDetails = (jeScheduleDetailsLocalData, rowId, jeLink) => {
|
|
311
296
|
return jeScheduleDetailsLocalData.map((jeScheduleDetail, index) => {
|
|
@@ -38,7 +38,11 @@ const getScheduleDetailsView = (state, scheduleType) => {
|
|
|
38
38
|
markAsCompleteStatus: scheduleDetailState.markAsCompleteStatus,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
let jeScheduleTransactionState = undefined;
|
|
42
|
+
if (jeScheduleKey != null) {
|
|
43
|
+
jeScheduleTransactionState =
|
|
44
|
+
(0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(jeScheduleKey, state);
|
|
45
|
+
}
|
|
42
46
|
const scheduleDetailAccountTypes = (0, scheduleDetailLocalDataHelper_1.getAccountsTypesForScheduleDetails)(scheduleType);
|
|
43
47
|
const scheduleDetailAccountIds = (0, accountSelector_1.getAccountIdsForTypes)(accountState, scheduleDetailAccountTypes);
|
|
44
48
|
const allAccountList = (0, accountListSelector_1.getAccountList)(accountState, accountListState, accountTypes.accountListKey);
|
|
@@ -60,7 +64,7 @@ const getScheduleDetailsView = (state, scheduleType) => {
|
|
|
60
64
|
const depAccountListNestedAccountHierarchy = (0, accountListSelector_1.getNestedAccountListHierarchy)(accountListState, accountTypes.accountListKey);
|
|
61
65
|
const filteredDepAccountListNestedAccountHierarchy = filterNestedAccountHierarchyById(depAccountListNestedAccountHierarchy, filteredDepAccounts.map((account) => account.accountId));
|
|
62
66
|
const classListNestedAccountHierarchy = (0, classListSelector_1.getNestedClassListHierarchy)(classListState);
|
|
63
|
-
const selectedJeScheduleDetailId = jeScheduleTransactionState.jeScheduleId;
|
|
67
|
+
const selectedJeScheduleDetailId = jeScheduleTransactionState === null || jeScheduleTransactionState === void 0 ? void 0 : jeScheduleTransactionState.jeScheduleId;
|
|
64
68
|
const scheduleDetailsLocalData = Object.assign({}, scheduleDetailReducer_1.initialScheduleDetailsLocalData);
|
|
65
69
|
if (selectedJeScheduleDetailId != null) {
|
|
66
70
|
if (scheduleDetailState.editScheduleStateByDetailId[scheduleType][selectedJeScheduleDetailId] != null) {
|
|
@@ -72,6 +76,7 @@ const getScheduleDetailsView = (state, scheduleType) => {
|
|
|
72
76
|
scheduleDetailsLocalData[scheduleType] =
|
|
73
77
|
scheduleDetailState.newScheduleState[scheduleType];
|
|
74
78
|
}
|
|
79
|
+
// this reduceAllFetchState should be replaced with reduceAnyFetchState
|
|
75
80
|
const fetchState = (0, reduceFetchState_1.reduceAllFetchState)([
|
|
76
81
|
scheduleDetailState,
|
|
77
82
|
allAccountList,
|
|
@@ -98,7 +103,6 @@ const getScheduleDetailsView = (state, scheduleType) => {
|
|
|
98
103
|
};
|
|
99
104
|
};
|
|
100
105
|
exports.getScheduleDetailsView = getScheduleDetailsView;
|
|
101
|
-
// TODO: Optimize this function as the accountlist is very huge
|
|
102
106
|
const filterNestedAccountHierarchyById = (accountList, targetIds) => {
|
|
103
107
|
const result = [];
|
|
104
108
|
for (const account of accountList) {
|
|
@@ -2,7 +2,7 @@ import { Amount } from '../../../commonStateTypes/amount';
|
|
|
2
2
|
import { ID, FetchStateAndError } from '../../../commonStateTypes/common';
|
|
3
3
|
import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes';
|
|
4
4
|
import { ScheduleDaysOfMonth } from '../../../commonStateTypes/timePeriod';
|
|
5
|
-
import {
|
|
5
|
+
import { JEScheduleTransactionKey, ScheduleJournalEntryStatusCodeType, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
|
|
6
6
|
import { TransactionID } from '../../../entity/transaction/stateTypes/transaction';
|
|
7
7
|
import { ZeniDate } from '../../../zeniDayJS';
|
|
8
8
|
import { ScheduleDetailSortKey } from './scheduleDetailTypes';
|
|
@@ -12,6 +12,7 @@ export interface JETransactionLink {
|
|
|
12
12
|
thirdPartyTransactionId?: ID;
|
|
13
13
|
transactionDetailID?: TransactionID;
|
|
14
14
|
recommendedTransactionID?: TransactionID;
|
|
15
|
+
reversalTransactionDetails?: TransactionID;
|
|
15
16
|
}
|
|
16
17
|
export interface ScheduleDetailUIState {
|
|
17
18
|
sortKey: ScheduleDetailSortKey;
|
|
@@ -58,6 +59,6 @@ export interface ScheduleDetailViewState extends FetchStateAndError {
|
|
|
58
59
|
markAsCompleteStatus: FetchStateAndError;
|
|
59
60
|
uiState: ScheduleDetailUIState;
|
|
60
61
|
selectedDetailScheduleType?: ScheduleTypes;
|
|
61
|
-
selectedJEScheduleKey?:
|
|
62
|
+
selectedJEScheduleKey?: JEScheduleTransactionKey;
|
|
62
63
|
selectedJELinkRowIndex?: number;
|
|
63
64
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { fetchAccruedScheduleList, updateAccruedScheduleListFailure, updateAccruedScheduleListSuccess } from '../scheduleListReducer';
|
|
4
|
+
import { RootState } from '../../../../reducer';
|
|
5
|
+
import { ZeniAPI } from '../../../../zeniAPI';
|
|
6
|
+
import { updateAccruedJESchedules, updateAccruedJESchedulesDetails } from '../../../../entity/jeSchedules/jeSchedulesReducer';
|
|
7
|
+
export declare type ActionType = ReturnType<typeof fetchAccruedScheduleList> | ReturnType<typeof updateAccruedJESchedules> | ReturnType<typeof updateAccruedJESchedulesDetails> | ReturnType<typeof updateAccruedScheduleListSuccess> | ReturnType<typeof updateAccruedScheduleListFailure>;
|
|
8
|
+
export declare const fetchAccruedScheduleListEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchAccruedScheduleListEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const scheduleListReducer_1 = require("../scheduleListReducer");
|
|
7
|
+
const responsePayload_1 = require("../../../../responsePayload");
|
|
8
|
+
const jeSchedulesReducer_1 = require("../../../../entity/jeSchedules/jeSchedulesReducer");
|
|
9
|
+
const timePeriod_1 = require("../../../../commonStateTypes/timePeriod");
|
|
10
|
+
const timeframeTick_1 = require("../../../../commonStateTypes/timeframeTick");
|
|
11
|
+
const scheduleListTypes_1 = require("../scheduleListTypes");
|
|
12
|
+
const fetchAccruedScheduleListEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(scheduleListReducer_1.fetchAccruedScheduleList.match), (0, operators_1.mergeMap)((action) => {
|
|
13
|
+
const { scheduleType } = action.payload;
|
|
14
|
+
const { scheduleListState } = state$.value;
|
|
15
|
+
const scheduleState = (0, scheduleListReducer_1.getState)(scheduleListState, scheduleType);
|
|
16
|
+
const timeframe = action.payload.timeframeAndCategory != null
|
|
17
|
+
? action.payload.timeframeAndCategory.selectedTimeframe
|
|
18
|
+
: scheduleState.selectedTimeframe;
|
|
19
|
+
const categoryId = action.payload.timeframeAndCategory != null
|
|
20
|
+
? action.payload.timeframeAndCategory.selectedCategoryId
|
|
21
|
+
: scheduleState.selectedCategoryId;
|
|
22
|
+
const timePeriod = (0, timeframeTick_1.toTimePeriod)(timeframe);
|
|
23
|
+
const key = (0, scheduleListTypes_1.getScheduleListKey)(categoryId, timeframe);
|
|
24
|
+
const draft = scheduleState.jeScheduleAccruedByListKey[key];
|
|
25
|
+
if (draft != null &&
|
|
26
|
+
draft.fetchState === 'Completed' &&
|
|
27
|
+
action.payload.cacheOverride === false) {
|
|
28
|
+
return (0, rxjs_1.from)([]);
|
|
29
|
+
}
|
|
30
|
+
const queryParam = {
|
|
31
|
+
start_date: (0, timePeriod_1.toString)(timePeriod.start),
|
|
32
|
+
end_date: (0, timePeriod_1.toString)(timePeriod.end),
|
|
33
|
+
je_schedule_type: scheduleType,
|
|
34
|
+
sort_by: 'transaction_date',
|
|
35
|
+
sort_order: 'desc',
|
|
36
|
+
filter: 'all',
|
|
37
|
+
};
|
|
38
|
+
return zeniAPI
|
|
39
|
+
.getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/schedules?query=${encodeURIComponent(JSON.stringify(queryParam))}`)
|
|
40
|
+
.pipe((0, operators_1.mergeMap)((response) => {
|
|
41
|
+
if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
|
|
42
|
+
const updateActions = [];
|
|
43
|
+
updateActions.push((0, jeSchedulesReducer_1.updateAccruedJESchedules)(response.data.je_schedules), (0, jeSchedulesReducer_1.updateAccruedJESchedulesDetails)(response.data.je_schedules, response.data.scheduled_journal_entries), (0, scheduleListReducer_1.updateAccruedScheduleListSuccess)(scheduleType, timeframe, categoryId, response.data.je_schedules));
|
|
44
|
+
return (0, rxjs_1.from)(updateActions);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return (0, rxjs_1.of)((0, scheduleListReducer_1.updateAccruedScheduleListFailure)(scheduleType, timeframe, categoryId, response.status));
|
|
48
|
+
}
|
|
49
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, scheduleListReducer_1.updateAccruedScheduleListFailure)(scheduleType, timeframe, categoryId, (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Accrued Schedule List REST API call errored out' +
|
|
50
|
+
JSON.stringify(error))))));
|
|
51
|
+
}));
|
|
52
|
+
exports.fetchAccruedScheduleListEpic = fetchAccruedScheduleListEpic;
|
|
@@ -13,7 +13,13 @@ const fetchDownloadSchedulesEpic = (actions$, state$, zeniAPI) => actions$.pipe(
|
|
|
13
13
|
const { scheduleType, downloadCategories } = action.payload;
|
|
14
14
|
const scheduleListState = state$.value.scheduleListState;
|
|
15
15
|
// if parameters are provided, use those. else go to localdata
|
|
16
|
-
|
|
16
|
+
let scheduleState;
|
|
17
|
+
if (scheduleType !== 'accrued_expenses') {
|
|
18
|
+
scheduleState = (0, scheduleListReducer_1.getState)(scheduleListState, scheduleType);
|
|
19
|
+
}
|
|
20
|
+
if (scheduleState == null) {
|
|
21
|
+
return (0, rxjs_1.from)([]);
|
|
22
|
+
}
|
|
17
23
|
const timeframe = action.payload.timeframeAndCategory != null
|
|
18
24
|
? action.payload.timeframeAndCategory.selectedTimeframe
|
|
19
25
|
: scheduleState.selectedTimeframe;
|
|
@@ -15,7 +15,13 @@ const fetchScheduleListEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, o
|
|
|
15
15
|
const { scheduleType } = action.payload;
|
|
16
16
|
const { scheduleListState, accountListState } = state$.value;
|
|
17
17
|
// if parameters are provided, use those. else go to localdata
|
|
18
|
-
|
|
18
|
+
let scheduleState;
|
|
19
|
+
if (scheduleType !== 'accrued_expenses') {
|
|
20
|
+
scheduleState = (0, scheduleListReducer_1.getState)(scheduleListState, scheduleType);
|
|
21
|
+
}
|
|
22
|
+
if (scheduleState == null) {
|
|
23
|
+
return (0, rxjs_1.from)([]);
|
|
24
|
+
}
|
|
19
25
|
const timeframe = action.payload.timeframeAndCategory != null
|
|
20
26
|
? action.payload.timeframeAndCategory.selectedTimeframe
|
|
21
27
|
: scheduleState.selectedTimeframe;
|
|
@@ -3,10 +3,10 @@ import { Amount } from '../../../commonStateTypes/amount';
|
|
|
3
3
|
import { COABalanceGroupedByPeriod } from '../../../commonStateTypes/coaBalance/coaBalance';
|
|
4
4
|
import { TimeframeTick, TimeframeTickWithMetaData } from '../../../commonStateTypes/timeframeTick';
|
|
5
5
|
import { AccountBase, AccountLabel, AccountType } from '../../../entity/account/accountState';
|
|
6
|
-
import { JEScheduledTransaction } from '../../../entity/jeSchedules/jeSchedulesSelector';
|
|
6
|
+
import { JEScheduledTransaction, JEAccruedSchedule } from '../../../entity/jeSchedules/jeSchedulesSelector';
|
|
7
7
|
import { ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
|
|
8
8
|
import { AccountListKeyType } from '../../accountList/accountListState';
|
|
9
|
-
import { JEScheduledTransactionWithBalance } from './scheduleListSelector';
|
|
9
|
+
import { JEScheduledTransactionWithBalance, JEScheduleWithBalance } from './scheduleListSelector';
|
|
10
10
|
export interface ScheduleTotalType {
|
|
11
11
|
totalAmount: Amount;
|
|
12
12
|
totalRunningBalances: Amount;
|
|
@@ -18,6 +18,7 @@ export interface ScheduleTotalType {
|
|
|
18
18
|
* @returns
|
|
19
19
|
*/
|
|
20
20
|
export declare const getCalculatedScheduleTotals: (jeTransactions: JEScheduledTransaction[]) => ScheduleTotalType;
|
|
21
|
+
export declare const getCalculatedAccruedScheduleTotal: (jeAccruedSchedule: JEAccruedSchedule[]) => ScheduleTotalType;
|
|
21
22
|
export declare const getAccountListKeyForSchedules: () => AccountListKeyType;
|
|
22
23
|
export declare const getAllAccountBase: () => AccountBase;
|
|
23
24
|
export declare const getAllAccountNested: () => NestedAccountHierarchyForReport;
|
|
@@ -29,6 +30,14 @@ export declare const getAllAccountNested: () => NestedAccountHierarchyForReport;
|
|
|
29
30
|
* @returns
|
|
30
31
|
*/
|
|
31
32
|
export declare const getAllTimeframeTicks: (sortedJETransactionView: JEScheduledTransaction[], startMonth: number) => TimeframeTickWithMetaData[];
|
|
33
|
+
/**
|
|
34
|
+
* This helper function is to get all possible timeframe
|
|
35
|
+
* Logic --> Timeframe Range is startDate = (currentDate to 3 months back )and endDate = (currentDate to 9 months ahead)
|
|
36
|
+
* @param sortedJETransactionView
|
|
37
|
+
* @param startMonth
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
export declare const getAllTimeframeTicksForAccrued: (sortedJEAccruedSchedules: JEAccruedSchedule[], startMonth: number) => TimeframeTickWithMetaData[];
|
|
32
41
|
/**
|
|
33
42
|
* This function returns an COABalanceGroupedByPeriod (months, weeks, years, quarters) with an array of COABalances
|
|
34
43
|
* in which we loop over the totalBalanceTimeframeTicks which is a record of <Labels(mm yy), Balances>- {'Feb 2023' : [20, 30, 40]}
|
|
@@ -39,18 +48,40 @@ export declare const getAllTimeframeTicks: (sortedJETransactionView: JEScheduled
|
|
|
39
48
|
* @returns
|
|
40
49
|
*/
|
|
41
50
|
export declare const calculateTotalBalanceTimeframeTick: (allTimeframeTickBalances: JEScheduledTransactionWithBalance[], allTimeframeTicks: TimeframeTickWithMetaData[], timeframe: 'months') => COABalanceGroupedByPeriod;
|
|
51
|
+
/**
|
|
52
|
+
* This function returns an COABalanceGroupedByPeriod (months, weeks, years, quarters) with an array of COABalances
|
|
53
|
+
* in which we loop over the totalBalanceTimeframeTicks which is a record of <Labels(mm yy), Balances>- {'Feb 2023' : [20, 30, 40]}
|
|
54
|
+
* e.g - { months : { balance, startDate, endDate, type}}
|
|
55
|
+
* @param allTimeframeTickBalances
|
|
56
|
+
* @param allTimeframeTicks
|
|
57
|
+
* @param timeframe
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
export declare const calculateTotalBalanceTimeframeTickForAccrued: (allTimeframeTickBalances: JEScheduleWithBalance[], allTimeframeTicks: TimeframeTickWithMetaData[], timeframe: 'months') => COABalanceGroupedByPeriod;
|
|
42
61
|
/**
|
|
43
62
|
* This function helps us in finding COABalanceGroupedByPeriod for months
|
|
44
63
|
* @param jeSchedule
|
|
45
64
|
* @returns
|
|
46
65
|
*/
|
|
47
66
|
export declare const calculateCOABalanceGroupedByPeriod: (jeSchedule: JEScheduledTransaction) => COABalanceGroupedByPeriod;
|
|
67
|
+
/**
|
|
68
|
+
* This function helps us in finding COABalanceGroupedByPeriod for months
|
|
69
|
+
* @param jeSchedule
|
|
70
|
+
* @returns
|
|
71
|
+
*/
|
|
72
|
+
export declare const calculateCOABalanceGroupedByPeriodForAccrued: (jeSchedule: JEAccruedSchedule) => COABalanceGroupedByPeriod;
|
|
48
73
|
/**
|
|
49
74
|
* Function to get Duration of months out total months Eg 5/12 or 9/12
|
|
50
75
|
* @param jeSchedule
|
|
51
76
|
* @returns
|
|
52
77
|
*/
|
|
53
78
|
export declare const getDurationOfMonthOutTotalMonth: (jeSchedule: JEScheduledTransaction) => number;
|
|
79
|
+
/**
|
|
80
|
+
* Function to get Duration of months out total months Eg 5/12 or 9/12
|
|
81
|
+
* @param jeSchedule
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
export declare const getDurationOfMonthOutTotalMonthForAccrued: (jeSchedule: JEAccruedSchedule) => number;
|
|
54
85
|
declare type AccountListTypesPayload = {
|
|
55
86
|
accountListKey: AccountListKeyType;
|
|
56
87
|
allowedAccountList: AccountType[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultSelectedTimeframeForScheduleType = exports.getAccountsTypesForScheduleEpics = exports.getAccountLabelForScheduleType = exports.getAccountsTypesForScheduleList = exports.getDurationOfMonthOutTotalMonth = exports.calculateCOABalanceGroupedByPeriod = exports.calculateTotalBalanceTimeframeTick = exports.getAllTimeframeTicks = exports.getAllAccountNested = exports.getAllAccountBase = exports.getAccountListKeyForSchedules = exports.getCalculatedScheduleTotals = void 0;
|
|
3
|
+
exports.getDefaultSelectedTimeframeForScheduleType = exports.getAccountsTypesForScheduleEpics = exports.getAccountLabelForScheduleType = exports.getAccountsTypesForScheduleList = exports.getDurationOfMonthOutTotalMonthForAccrued = exports.getDurationOfMonthOutTotalMonth = exports.calculateCOABalanceGroupedByPeriodForAccrued = exports.calculateCOABalanceGroupedByPeriod = exports.calculateTotalBalanceTimeframeTickForAccrued = exports.calculateTotalBalanceTimeframeTick = exports.getAllTimeframeTicksForAccrued = exports.getAllTimeframeTicks = exports.getAllAccountNested = exports.getAllAccountBase = exports.getAccountListKeyForSchedules = exports.getCalculatedAccruedScheduleTotal = exports.getCalculatedScheduleTotals = void 0;
|
|
4
4
|
const amount_1 = require("../../../commonStateTypes/amount");
|
|
5
5
|
const formatZeniDateFY_1 = require("../../../commonStateTypes/fiscalYearHelpers/formatZeniDateFY");
|
|
6
6
|
const getFYMonths_1 = require("../../../commonStateTypes/fiscalYearHelpers/getFYMonths");
|
|
@@ -31,6 +31,26 @@ const getCalculatedScheduleTotals = (jeTransactions) => {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
exports.getCalculatedScheduleTotals = getCalculatedScheduleTotals;
|
|
34
|
+
const getCalculatedAccruedScheduleTotal = (jeAccruedSchedule) => {
|
|
35
|
+
if (jeAccruedSchedule.length === 0) {
|
|
36
|
+
return {
|
|
37
|
+
totalAmount: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
38
|
+
totalRunningBalances: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const totalAmountSum = jeAccruedSchedule.reduce((sum, schedule) => {
|
|
42
|
+
return sum + schedule.recurringAmount.amount;
|
|
43
|
+
}, 0);
|
|
44
|
+
const totalRunningBalances = jeAccruedSchedule.reduce((sum, schedule) => {
|
|
45
|
+
return (sum +
|
|
46
|
+
(schedule.balanceAsOfToday != null ? schedule.balanceAsOfToday.amount : 0));
|
|
47
|
+
}, 0);
|
|
48
|
+
return {
|
|
49
|
+
totalAmount: Object.assign(Object.assign({}, jeAccruedSchedule[0].recurringAmount), { amount: totalAmountSum }),
|
|
50
|
+
totalRunningBalances: Object.assign(Object.assign({}, jeAccruedSchedule[0].recurringAmount), { amount: totalRunningBalances }),
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
exports.getCalculatedAccruedScheduleTotal = getCalculatedAccruedScheduleTotal;
|
|
34
54
|
const getAccountListKeyForSchedules = () => {
|
|
35
55
|
return 'schedulesAccountList';
|
|
36
56
|
};
|
|
@@ -78,6 +98,33 @@ const getAllTimeframeTicks = (sortedJETransactionView, startMonth) => {
|
|
|
78
98
|
return tickLabel;
|
|
79
99
|
};
|
|
80
100
|
exports.getAllTimeframeTicks = getAllTimeframeTicks;
|
|
101
|
+
/**
|
|
102
|
+
* This helper function is to get all possible timeframe
|
|
103
|
+
* Logic --> Timeframe Range is startDate = (currentDate to 3 months back )and endDate = (currentDate to 9 months ahead)
|
|
104
|
+
* @param sortedJETransactionView
|
|
105
|
+
* @param startMonth
|
|
106
|
+
* @returns
|
|
107
|
+
*/
|
|
108
|
+
const getAllTimeframeTicksForAccrued = (sortedJEAccruedSchedules, startMonth) => {
|
|
109
|
+
const tickLabel = [];
|
|
110
|
+
if (sortedJEAccruedSchedules.length > 0) {
|
|
111
|
+
const jeTransaction = sortedJEAccruedSchedules[0];
|
|
112
|
+
const { currencySymbol } = jeTransaction;
|
|
113
|
+
const start = (0, zeniDayJS_1.dateNow)().startOf('month').subtract(startMonth, 'month');
|
|
114
|
+
let months = 0;
|
|
115
|
+
while (months < getFYMonths_1.NUM_OF_MONTHS_IN_YEAR) {
|
|
116
|
+
tickLabel.push({
|
|
117
|
+
startDate: start.add(months, 'month'),
|
|
118
|
+
endDate: start.add(months, 'month').endOf('month'),
|
|
119
|
+
currencySymbol: currencySymbol,
|
|
120
|
+
balanceType: 'default',
|
|
121
|
+
});
|
|
122
|
+
months++;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return tickLabel;
|
|
126
|
+
};
|
|
127
|
+
exports.getAllTimeframeTicksForAccrued = getAllTimeframeTicksForAccrued;
|
|
81
128
|
/**
|
|
82
129
|
* This is a helper function to map totalBalanceTimeframeTicks to COABalance
|
|
83
130
|
* @param totalBalanceTimeframeTicks
|
|
@@ -140,6 +187,34 @@ const calculateTotalBalanceTimeframeTick = (allTimeframeTickBalances, allTimefra
|
|
|
140
187
|
};
|
|
141
188
|
};
|
|
142
189
|
exports.calculateTotalBalanceTimeframeTick = calculateTotalBalanceTimeframeTick;
|
|
190
|
+
/**
|
|
191
|
+
* This function returns an COABalanceGroupedByPeriod (months, weeks, years, quarters) with an array of COABalances
|
|
192
|
+
* in which we loop over the totalBalanceTimeframeTicks which is a record of <Labels(mm yy), Balances>- {'Feb 2023' : [20, 30, 40]}
|
|
193
|
+
* e.g - { months : { balance, startDate, endDate, type}}
|
|
194
|
+
* @param allTimeframeTickBalances
|
|
195
|
+
* @param allTimeframeTicks
|
|
196
|
+
* @param timeframe
|
|
197
|
+
* @returns
|
|
198
|
+
*/
|
|
199
|
+
const calculateTotalBalanceTimeframeTickForAccrued = (allTimeframeTickBalances, allTimeframeTicks, timeframe) => {
|
|
200
|
+
const totalBalanceTimeframeTicks = setDefaultTotalBalanceTimeframeTicks(allTimeframeTicks);
|
|
201
|
+
allTimeframeTickBalances.forEach((jeScheduleKey) => {
|
|
202
|
+
const coaBalanceByPeriodByTimeframe = jeScheduleKey.coaBalanceByPeriod[timeframe];
|
|
203
|
+
if (coaBalanceByPeriodByTimeframe != null) {
|
|
204
|
+
coaBalanceByPeriodByTimeframe.map((coaBalancePeriod) => {
|
|
205
|
+
if (coaBalancePeriod.label != null &&
|
|
206
|
+
totalBalanceTimeframeTicks[coaBalancePeriod.label] != null) {
|
|
207
|
+
totalBalanceTimeframeTicks[coaBalancePeriod.label].push(coaBalancePeriod);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
const coaBalanceGrouped = mapTotalBalanceTimeframeTickToCOAGroupedBalance(totalBalanceTimeframeTicks);
|
|
213
|
+
return {
|
|
214
|
+
months: coaBalanceGrouped,
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
exports.calculateTotalBalanceTimeframeTickForAccrued = calculateTotalBalanceTimeframeTickForAccrued;
|
|
143
218
|
/**
|
|
144
219
|
* This is a helper function just to map COABalance for every ScheduledJournalEntry
|
|
145
220
|
* @param scheduleJournal
|
|
@@ -175,6 +250,19 @@ const calculateCOABalanceGroupedByPeriod = (jeSchedule) => {
|
|
|
175
250
|
};
|
|
176
251
|
};
|
|
177
252
|
exports.calculateCOABalanceGroupedByPeriod = calculateCOABalanceGroupedByPeriod;
|
|
253
|
+
/**
|
|
254
|
+
* This function helps us in finding COABalanceGroupedByPeriod for months
|
|
255
|
+
* @param jeSchedule
|
|
256
|
+
* @returns
|
|
257
|
+
*/
|
|
258
|
+
const calculateCOABalanceGroupedByPeriodForAccrued = (jeSchedule) => {
|
|
259
|
+
const scheduleJournalEntry = jeSchedule.scheduledJournalEntry;
|
|
260
|
+
const { currencyCode, currencySymbol } = jeSchedule;
|
|
261
|
+
return {
|
|
262
|
+
months: scheduleJournalEntry.map((scheduleJournal) => mapScheduleJournalToCOABalance(scheduleJournal, currencyCode, currencySymbol, 'month')),
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
exports.calculateCOABalanceGroupedByPeriodForAccrued = calculateCOABalanceGroupedByPeriodForAccrued;
|
|
178
266
|
const countStatusForDuration = (statusCode) => {
|
|
179
267
|
return ['unknown', 'posted'].includes(statusCode);
|
|
180
268
|
};
|
|
@@ -194,6 +282,22 @@ const getDurationOfMonthOutTotalMonth = (jeSchedule) => {
|
|
|
194
282
|
return totalDurationCompleted;
|
|
195
283
|
};
|
|
196
284
|
exports.getDurationOfMonthOutTotalMonth = getDurationOfMonthOutTotalMonth;
|
|
285
|
+
/**
|
|
286
|
+
* Function to get Duration of months out total months Eg 5/12 or 9/12
|
|
287
|
+
* @param jeSchedule
|
|
288
|
+
* @returns
|
|
289
|
+
*/
|
|
290
|
+
const getDurationOfMonthOutTotalMonthForAccrued = (jeSchedule) => {
|
|
291
|
+
let totalDurationCompleted = 0;
|
|
292
|
+
const scheduledEntries = jeSchedule.scheduledJournalEntry;
|
|
293
|
+
const allowedJEScheduleStatus = ['ongoing', 'completed'];
|
|
294
|
+
if (allowedJEScheduleStatus.includes(jeSchedule.status.code) === true &&
|
|
295
|
+
scheduledEntries.length > 0) {
|
|
296
|
+
totalDurationCompleted = scheduledEntries.filter((scheduledEntry) => countStatusForDuration(scheduledEntry.status.code)).length;
|
|
297
|
+
}
|
|
298
|
+
return totalDurationCompleted;
|
|
299
|
+
};
|
|
300
|
+
exports.getDurationOfMonthOutTotalMonthForAccrued = getDurationOfMonthOutTotalMonthForAccrued;
|
|
197
301
|
/**
|
|
198
302
|
* Function to get accountListKey and allowedAccountList for a given tab
|
|
199
303
|
* @param scheduleType
|
|
@@ -211,6 +315,11 @@ const getAccountsTypesForScheduleList = (scheduleType) => {
|
|
|
211
315
|
accountListKey: 'schedulesAccountList',
|
|
212
316
|
allowedAccountList: ['fixed_assets', 'other_assets'],
|
|
213
317
|
};
|
|
318
|
+
case 'accrued_expenses': // check for this
|
|
319
|
+
return {
|
|
320
|
+
accountListKey: 'schedulesAccountList',
|
|
321
|
+
allowedAccountList: ['fixed_assets', 'other_assets'],
|
|
322
|
+
};
|
|
214
323
|
default:
|
|
215
324
|
return {
|
|
216
325
|
accountListKey: 'accountList',
|
|
@@ -223,6 +332,7 @@ const getAccountLabelForScheduleType = (scheduleType) => {
|
|
|
223
332
|
switch (scheduleType) {
|
|
224
333
|
case 'prepaid_expenses':
|
|
225
334
|
case 'fixed_assets':
|
|
335
|
+
case 'accrued_expenses':
|
|
226
336
|
return scheduleType;
|
|
227
337
|
default:
|
|
228
338
|
return undefined;
|
|
@@ -244,6 +354,7 @@ const getAccountsTypesForScheduleEpics = () => {
|
|
|
244
354
|
'expenses',
|
|
245
355
|
'other_expense',
|
|
246
356
|
'other_assets',
|
|
357
|
+
'other_current_liabilities',
|
|
247
358
|
],
|
|
248
359
|
};
|
|
249
360
|
};
|
|
@@ -257,6 +368,11 @@ const getDefaultSelectedTimeframeForScheduleType = (scheduleType) => {
|
|
|
257
368
|
startDate: thisMonthStart.subtract(7, 'year'),
|
|
258
369
|
endDate: thisMonthEnd,
|
|
259
370
|
};
|
|
371
|
+
case 'accrued_expenses':
|
|
372
|
+
return {
|
|
373
|
+
startDate: thisMonthStart.subtract(7, 'year'),
|
|
374
|
+
endDate: thisMonthEnd,
|
|
375
|
+
};
|
|
260
376
|
default:
|
|
261
377
|
return {
|
|
262
378
|
startDate: thisMonthStart.subtract(13, 'month'),
|