@zeniai/client-epic-state 4.19.90 → 4.19.91-beta0ND
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/chargeCardTransaction/chargeCardTransaction.d.ts +1 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +1 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +10 -5
- package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +2 -2
- package/lib/entity/jeSchedules/jeSchedulesReducer.js +2 -2
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +1 -2
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +7 -3
- package/lib/entity/jeSchedules/jeSchedulesTypes.js +3 -1
- package/lib/entity/reimbursement/reimbursementPayload.d.ts +1 -1
- package/lib/entity/reimbursement/reimbursementPayload.js +1 -1
- package/lib/entity/transaction/transactionReducer.js +3 -2
- package/lib/entity/transaction/transactionSelector.d.ts +2 -2
- package/lib/entity/transaction/transactionState.d.ts +3 -2
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +10 -5
- package/lib/esm/entity/jeSchedules/jeSchedulesReducer.js +3 -3
- package/lib/esm/entity/jeSchedules/jeSchedulesTypes.js +1 -0
- package/lib/esm/entity/reimbursement/reimbursementPayload.js +1 -1
- package/lib/esm/entity/transaction/transactionReducer.js +3 -2
- package/lib/esm/index.js +5 -4
- package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +4 -12
- package/lib/esm/view/financeStatement/financeStatementReducer.js +11 -8
- package/lib/esm/view/financeStatement/financeStatementSelector.js +13 -4
- package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +281 -0
- package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +1 -0
- package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +5 -1
- package/lib/esm/view/scheduleView/scheduleDetailView/epics/fetchScheduleDetailsEpic.js +2 -7
- package/lib/esm/view/scheduleView/scheduleListView/scheduleListReducer.js +2 -7
- package/lib/index.d.ts +7 -5
- package/lib/index.js +29 -25
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +11 -11
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +3 -11
- package/lib/view/financeStatement/financeStatementReducer.js +11 -8
- package/lib/view/financeStatement/financeStatementSelector.d.ts +2 -0
- package/lib/view/financeStatement/financeStatementSelector.js +13 -4
- package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.d.ts +13 -0
- package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +285 -0
- package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.d.ts +57 -0
- package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +2 -0
- package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.d.ts +4 -2
- package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +6 -2
- package/lib/view/profitAndLossClassesView/profitAndLossClassesViewState.d.ts +2 -0
- package/lib/view/scheduleView/scheduleDetailView/epics/fetchScheduleDetailsEpic.js +2 -7
- package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.d.ts +4 -4
- package/lib/view/scheduleView/scheduleListView/scheduleListReducer.js +1 -6
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/package.json +2 -2
|
@@ -36,6 +36,6 @@ export interface ChargeCardTransactionState {
|
|
|
36
36
|
}
|
|
37
37
|
export declare const toCardTransactionTypeCode: (v: string) => "expense" | "credit_card_credit" | "transfer" | "purchase";
|
|
38
38
|
export type ChargeCardTransactionTypeCode = ReturnType<typeof toCardTransactionTypeCode>;
|
|
39
|
-
export declare const toCardTransactionStatusCode: (v: string) => "paid" | "
|
|
39
|
+
export declare const toCardTransactionStatusCode: (v: string) => "paid" | "canceled" | "authorized" | "declined";
|
|
40
40
|
export type ChargeCardTransactionStatusCode = ReturnType<typeof toCardTransactionStatusCode>;
|
|
41
41
|
export {};
|
|
@@ -71,7 +71,7 @@ export declare function toScheduledJournalEntryState(payload: ScheduledJournalEn
|
|
|
71
71
|
export declare function toJEAccountPayload(payload: JEScheduledTransactionPayload | JEAccruedScheduledTransactionPayload, type: TransactionCategory): AccountPayload | undefined;
|
|
72
72
|
export declare function toJEAccruedAccountPayload(payload: JEScheduledTransactionPayload | JEAccruedScheduledTransactionPayload, type: TransactionCategory): AccountPayload | undefined;
|
|
73
73
|
export declare function toJEClassPayload(payload: JEScheduledTransactionPayload | JEAccruedScheduledTransactionPayload, type: TransactionCategory): ClassBasePayload | undefined;
|
|
74
|
-
export declare function
|
|
74
|
+
export declare function getJEScheduleTransactionDetailKeyPayload(payload: ScheduleTransactionPayload): JEScheduleTransactionKey;
|
|
75
75
|
export declare function getJEScheduleKey(payload: JEAccruedScheduledTransactionPayload): JEScheduleKey;
|
|
76
76
|
export declare function toJEScheduledTransaction(payload: JEScheduledTransactionPayload): JEScheduledTransactionState;
|
|
77
77
|
export declare function toJEAccruedScheduledTransaction(payload: JEAccruedScheduledTransactionPayload): JEAccruedScheduledTransactionState;
|
|
@@ -4,13 +4,12 @@ exports.toScheduledJournalEntryState = toScheduledJournalEntryState;
|
|
|
4
4
|
exports.toJEAccountPayload = toJEAccountPayload;
|
|
5
5
|
exports.toJEAccruedAccountPayload = toJEAccruedAccountPayload;
|
|
6
6
|
exports.toJEClassPayload = toJEClassPayload;
|
|
7
|
-
exports.
|
|
7
|
+
exports.getJEScheduleTransactionDetailKeyPayload = getJEScheduleTransactionDetailKeyPayload;
|
|
8
8
|
exports.getJEScheduleKey = getJEScheduleKey;
|
|
9
9
|
exports.toJEScheduledTransaction = toJEScheduledTransaction;
|
|
10
10
|
exports.toJEAccruedScheduledTransaction = toJEAccruedScheduledTransaction;
|
|
11
11
|
const amount_1 = require("../../commonStateTypes/amount");
|
|
12
12
|
const timePeriod_1 = require("../../commonStateTypes/timePeriod");
|
|
13
|
-
const transactionDetailState_1 = require("../../view/transactionDetail/transactionDetailState");
|
|
14
13
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
15
14
|
const transactionIDPayload_1 = require("../transaction/payloadTypes/transactionIDPayload");
|
|
16
15
|
const jeScheduleHelper_1 = require("./jeScheduleHelper");
|
|
@@ -132,9 +131,12 @@ function toJEClassPayload(payload, type) {
|
|
|
132
131
|
: undefined;
|
|
133
132
|
}
|
|
134
133
|
}
|
|
135
|
-
function
|
|
134
|
+
function getJEScheduleTransactionDetailKeyPayload(payload) {
|
|
136
135
|
const transactionId = (0, transactionIDPayload_1.toTransactionID)(payload);
|
|
137
|
-
return (0,
|
|
136
|
+
return (0, jeSchedulesTypes_1.getJEScheduleTransactionKey)({
|
|
137
|
+
...transactionId,
|
|
138
|
+
lineId: payload.line_id,
|
|
139
|
+
});
|
|
138
140
|
}
|
|
139
141
|
function getJEScheduleKey(payload) {
|
|
140
142
|
return (0, jeScheduleHelper_1.generateJEScheduleKey)(payload);
|
|
@@ -155,7 +157,10 @@ function toJEScheduledTransaction(payload) {
|
|
|
155
157
|
label: payload.status.label,
|
|
156
158
|
},
|
|
157
159
|
vendorId: payload.vendor.vendor_id,
|
|
158
|
-
baseTransaction:
|
|
160
|
+
baseTransaction: (0, jeSchedulesTypes_1.getJEScheduleTransactionKey)({
|
|
161
|
+
...(0, transactionIDPayload_1.toTransactionID)(payload.base_transaction),
|
|
162
|
+
lineId: payload.base_transaction.line_id,
|
|
163
|
+
}),
|
|
159
164
|
startDate: payload.start_date != null ? (0, zeniDayJS_1.date)(payload.start_date) : undefined,
|
|
160
165
|
endDate: payload.end_date != null ? (0, zeniDayJS_1.date)(payload.end_date) : undefined,
|
|
161
166
|
period: payload.period != null ? Number(payload.period) : undefined,
|
|
@@ -18,8 +18,8 @@ export declare const updateJESchedules: import("@reduxjs/toolkit").ActionCreator
|
|
|
18
18
|
jeSchedulesPayload: JEAccruedScheduledTransactionPayload[];
|
|
19
19
|
scheduledJEntriesPayload: ScheduledJournalEntryPayload[] | undefined;
|
|
20
20
|
updateType: UpdateType;
|
|
21
|
-
}, "jeSchedules/updateAccruedJESchedulesDetails", never, never>, deleteJESchedulesDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleTransactionKey: `${string}
|
|
22
|
-
jeScheduleTransactionKey: `${string}
|
|
21
|
+
}, "jeSchedules/updateAccruedJESchedulesDetails", never, never>, deleteJESchedulesDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleTransactionKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`], {
|
|
22
|
+
jeScheduleTransactionKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
|
|
23
23
|
}, "jeSchedules/deleteJESchedulesDetails", never, never>, deleteAccruedJESchedulesDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[JEScheduleKey: `${string}_${string}`], {
|
|
24
24
|
JEScheduleKey: `${string}_${string}`;
|
|
25
25
|
}, "jeSchedules/deleteAccruedJESchedulesDetails", never, never>, clearAllAccruedJESchedules: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllAccruedJESchedules">, clearAllJEScheduleTransactions: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllJEScheduleTransactions">;
|
|
@@ -42,7 +42,7 @@ const jeSchedules = (0, toolkit_1.createSlice)({
|
|
|
42
42
|
},
|
|
43
43
|
updateJEScheduledTransaction: (draft, action) => {
|
|
44
44
|
action.payload.jeSchedulesTransactionsPayload.forEach((schedule) => {
|
|
45
|
-
doUpdateJEScheduledTransaction(draft.schedulesByTransactionKey, (0, jeSchedulesPayload_1.
|
|
45
|
+
doUpdateJEScheduledTransaction(draft.schedulesByTransactionKey, (0, jeSchedulesPayload_1.getJEScheduleTransactionDetailKeyPayload)(schedule.base_transaction), schedule, 'merge');
|
|
46
46
|
});
|
|
47
47
|
},
|
|
48
48
|
updateAccruedJEScheduledTransaction: (draft, action) => {
|
|
@@ -84,7 +84,7 @@ const jeSchedules = (0, toolkit_1.createSlice)({
|
|
|
84
84
|
if (jeSchedulesPayload.length > 0) {
|
|
85
85
|
jeSchedulesPayload.forEach((jeSchedulePayload) => {
|
|
86
86
|
const transactionKey = jeSchedulePayload.base_transaction;
|
|
87
|
-
doUpdateScheduledDetailTransaction(draft.schedulesByTransactionKey, (0, jeSchedulesPayload_1.
|
|
87
|
+
doUpdateScheduledDetailTransaction(draft.schedulesByTransactionKey, (0, jeSchedulesPayload_1.getJEScheduleTransactionDetailKeyPayload)(transactionKey), jeSchedulePayload, action.payload.scheduledJEntriesPayload ?? [], updateType);
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
},
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Amount } from '../../commonStateTypes/amount';
|
|
2
2
|
import { ID } from '../../commonStateTypes/common';
|
|
3
3
|
import { ScheduleDaysOfMonth } from '../../commonStateTypes/timePeriod';
|
|
4
|
-
import { TransactionDetailKey } from '../../view/transactionDetail/transactionDetailState';
|
|
5
4
|
import { ZeniDate } from '../../zeniDayJS';
|
|
6
5
|
import { TransactionID } from '../transaction/stateTypes/transaction';
|
|
7
6
|
import { JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleJournalEntryStatusCodeType, ScheduleStatusCodeType, ScheduleTypes } from './jeSchedulesTypes';
|
|
@@ -42,7 +41,7 @@ export interface ScheduledJournalEntryState {
|
|
|
42
41
|
updateTime?: ZeniDate;
|
|
43
42
|
}
|
|
44
43
|
export interface JEScheduledTransactionState {
|
|
45
|
-
baseTransaction:
|
|
44
|
+
baseTransaction: JEScheduleTransactionKey;
|
|
46
45
|
currencyCode: string;
|
|
47
46
|
currencySymbol: string;
|
|
48
47
|
jeCredit: {
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TransactionID } from '../transaction/stateTypes/transaction';
|
|
2
2
|
import { generateJEScheduleKey } from './jeScheduleHelper';
|
|
3
|
-
export
|
|
3
|
+
export interface ScheduleTransactionID extends TransactionID {
|
|
4
|
+
lineId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const getJEScheduleTransactionKey: (scheduleTransactionId: ScheduleTransactionID) => `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
|
|
7
|
+
export type JEScheduleTransactionKey = ReturnType<typeof getJEScheduleTransactionKey>;
|
|
4
8
|
export type JEScheduleKey = ReturnType<typeof generateJEScheduleKey>;
|
|
5
9
|
export declare const ALL_SCHEDULES_TYPES: readonly ["prepaid_expenses", "fixed_assets", "accrued_expenses", "deferred_revenue"];
|
|
6
10
|
export declare const toScheduleTypesType: (v: string) => "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue";
|
|
7
11
|
export type ScheduleTypes = ReturnType<typeof toScheduleTypesType>;
|
|
8
12
|
export declare const toScheduleTypesTypeStrict: (v?: string) => "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue" | undefined;
|
|
9
|
-
export declare const toScheduleJournalEntryStatusCodeType: (v: string) => "pending" | "posted" | "
|
|
13
|
+
export declare const toScheduleJournalEntryStatusCodeType: (v: string) => "pending" | "posted" | "unknown" | "canceled" | "recorded";
|
|
10
14
|
export type ScheduleJournalEntryStatusCodeType = ReturnType<typeof toScheduleJournalEntryStatusCodeType>;
|
|
11
15
|
export declare const toScheduleStatusCodeType: (v: string) => "draft" | "completed" | "new" | "ongoing" | "marked_as_completed";
|
|
12
16
|
export type ScheduleStatusCodeType = ReturnType<typeof toScheduleStatusCodeType>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toJournalEntryErrorCodeType = exports.toScheduleStatusCodeType = exports.toScheduleJournalEntryStatusCodeType = exports.toScheduleTypesTypeStrict = exports.toScheduleTypesType = exports.ALL_SCHEDULES_TYPES = void 0;
|
|
3
|
+
exports.toJournalEntryErrorCodeType = exports.toScheduleStatusCodeType = exports.toScheduleJournalEntryStatusCodeType = exports.toScheduleTypesTypeStrict = exports.toScheduleTypesType = exports.ALL_SCHEDULES_TYPES = exports.getJEScheduleTransactionKey = void 0;
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
|
+
const getJEScheduleTransactionKey = (scheduleTransactionId) => `${scheduleTransactionId.id}_${scheduleTransactionId.type}_${scheduleTransactionId.lineId}`;
|
|
6
|
+
exports.getJEScheduleTransactionKey = getJEScheduleTransactionKey;
|
|
5
7
|
exports.ALL_SCHEDULES_TYPES = [
|
|
6
8
|
'prepaid_expenses',
|
|
7
9
|
'fixed_assets',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { URLPayload } from '../../commonPayloadTypes/urlPayload';
|
|
2
2
|
import { SegregatedReimbursementLineWithRecommendation } from '../../view/spendManagement/reimbursement/editRemiView/editRemiViewState';
|
|
3
3
|
import { AccountBasePayload } from '../account/accountPayload';
|
|
4
|
-
import { CustomerBasePayload } from '../customer/customerPayload';
|
|
5
4
|
import { BillAccountPayload, BillPaymentMethodPayload, BillPaymentStatusPayload, BillStagePayload, BillStatusPayload, BulkOperationDetailPayload, DeletionInfoPayload } from '../billPay/billTransaction/billTransactionPayload';
|
|
6
5
|
import { ClassBasePayload } from '../class/classPayload';
|
|
6
|
+
import { CustomerBasePayload } from '../customer/customerPayload';
|
|
7
7
|
import { MerchantBasePayload } from '../merchant/merchantPayload';
|
|
8
8
|
import { AttachmentPayload } from '../transaction/payloadTypes/attachmentPayload';
|
|
9
9
|
import { LineDetail, Reimbursement, ReimbursementTypeCode } from './reimbursementState';
|
|
@@ -6,9 +6,9 @@ const amount_1 = require("../../commonStateTypes/amount");
|
|
|
6
6
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
7
7
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
8
8
|
const accountPayload_1 = require("../account/accountPayload");
|
|
9
|
-
const customerPayload_1 = require("../customer/customerPayload");
|
|
10
9
|
const billTransactionPayload_1 = require("../billPay/billTransaction/billTransactionPayload");
|
|
11
10
|
const classPayload_1 = require("../class/classPayload");
|
|
11
|
+
const customerPayload_1 = require("../customer/customerPayload");
|
|
12
12
|
const merchantPayload_1 = require("../merchant/merchantPayload");
|
|
13
13
|
const attachmentPayload_1 = require("../transaction/payloadTypes/attachmentPayload");
|
|
14
14
|
const ALL_REIMBURSEMENT_TRANSACTION_TYPE = ['reimbursement'];
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.clearAllTransactions = exports.updateTransactionIsMiscategorized = exports.removeTransactionAttachment = exports.removeTransactionCategorization = exports.removeTransaction = exports.updateMultipleReconcileTransactions = exports.updateReconcileTransactions = exports.updateScheduleTransactions = exports.updateTransaction = exports.updateTransactions = exports.initialState = void 0;
|
|
8
8
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
9
9
|
const assignWith_1 = __importDefault(require("lodash/assignWith"));
|
|
10
|
-
const
|
|
10
|
+
const jeSchedulesTypes_1 = require("../jeSchedules/jeSchedulesTypes");
|
|
11
11
|
const reconciliationTransactionPayloads_1 = require("./payloadTypes/reconciliationTransactionPayloads");
|
|
12
12
|
const scheduleTransactionPayload_1 = require("./payloadTypes/scheduleTransactionPayload");
|
|
13
13
|
const transactionType_1 = require("./stateTypes/transactionType");
|
|
@@ -75,9 +75,10 @@ const transaction = (0, toolkit_1.createSlice)({
|
|
|
75
75
|
updateScheduleTransactions: {
|
|
76
76
|
reducer(draft, action) {
|
|
77
77
|
action.payload.transactionsPayload.forEach((value) => {
|
|
78
|
-
const id = (0,
|
|
78
|
+
const id = (0, jeSchedulesTypes_1.getJEScheduleTransactionKey)({
|
|
79
79
|
id: value.transaction_id,
|
|
80
80
|
type: (0, transactionType_1.toTransactionType)(value.transaction_type),
|
|
81
|
+
lineId: value.line_id,
|
|
81
82
|
});
|
|
82
83
|
doUpdateScheduleTransaction(draft.scheduleTransactionById, id, value, action.payload.currencyCode, action.payload.currencySymbol, action.meta.updateType);
|
|
83
84
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ID } from '../../commonStateTypes/common';
|
|
2
|
-
import {
|
|
2
|
+
import { JEScheduleTransactionKey } from '../jeSchedules/jeSchedulesTypes';
|
|
3
3
|
import { MatchedTransaction } from './stateTypes/reconciliationTransaction';
|
|
4
4
|
import { ScheduleTransaction } from './stateTypes/scheduleTransaction';
|
|
5
5
|
import { SupportedTransaction, TransactionState } from './transactionState';
|
|
6
|
-
export declare function getScheduleTransactionById(transactionState: TransactionState, transactionId:
|
|
6
|
+
export declare function getScheduleTransactionById(transactionState: TransactionState, transactionId: JEScheduleTransactionKey): ScheduleTransaction | undefined;
|
|
7
7
|
export declare function getSupportedTransactionById(transactionState: TransactionState, transactionId: ID): SupportedTransaction | undefined;
|
|
8
8
|
export declare function getSupportedTransactionsByIds(transactionState: TransactionState, transactionIds: ID[]): SupportedTransaction[];
|
|
9
9
|
export declare function getMatchedTransactionById(transactionState: TransactionState, transactionId: ID): MatchedTransaction | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ID } from '../../commonStateTypes/common';
|
|
2
|
-
import { TransactionDetailKey
|
|
2
|
+
import { TransactionDetailKey } from '../../view/transactionDetail/transactionDetailState';
|
|
3
|
+
import { JEScheduleTransactionKey } from '../jeSchedules/jeSchedulesTypes';
|
|
3
4
|
import { CustomerTransactionPayload } from './payloadTypes/customerTransactionPayload';
|
|
4
5
|
import { TransactionPayload } from './payloadTypes/transactionPayload';
|
|
5
6
|
import { VendorTransactionPayload, VendorTransactionWithCustomerPayload } from './payloadTypes/vendorTransactionPayload';
|
|
@@ -14,6 +15,6 @@ export type SupportedTransactionPayload = TransactionPayload | CustomerTransacti
|
|
|
14
15
|
export type AllSupportedTransactions = SupportedTransaction | undefined;
|
|
15
16
|
export interface TransactionState {
|
|
16
17
|
reconcileTransactionById: Record<ID, MatchedTransaction>;
|
|
17
|
-
scheduleTransactionById: Record<
|
|
18
|
+
scheduleTransactionById: Record<JEScheduleTransactionKey, ScheduleTransaction>;
|
|
18
19
|
transactionById: Record<ID | TransactionDetailKey, SupportedTransaction | undefined>;
|
|
19
20
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { toAmount } from '../../commonStateTypes/amount';
|
|
2
2
|
import { LAST_SCHEDULE_DAY_OF_MONTH, MAX_SCHEDULE_DAY_OF_MONTH, MIN_SCHEDULE_DAY_OF_MONTH, toScheduleDaysOfMonth, } from '../../commonStateTypes/timePeriod';
|
|
3
|
-
import { getZeniTransactionDetailKey } from '../../view/transactionDetail/transactionDetailState';
|
|
4
3
|
import { date } from '../../zeniDayJS';
|
|
5
4
|
import { toTransactionID, } from '../transaction/payloadTypes/transactionIDPayload';
|
|
6
5
|
import { generateJEScheduleKey } from './jeScheduleHelper';
|
|
7
|
-
import { toJournalEntryErrorCodeType, toScheduleJournalEntryStatusCodeType, toScheduleStatusCodeType, toScheduleTypesTypeStrict, } from './jeSchedulesTypes';
|
|
6
|
+
import { getJEScheduleTransactionKey, toJournalEntryErrorCodeType, toScheduleJournalEntryStatusCodeType, toScheduleStatusCodeType, toScheduleTypesTypeStrict, } from './jeSchedulesTypes';
|
|
8
7
|
export function toScheduledJournalEntryState(payload, currency_code, currency_symbol) {
|
|
9
8
|
return {
|
|
10
9
|
status: {
|
|
@@ -122,9 +121,12 @@ export function toJEClassPayload(payload, type) {
|
|
|
122
121
|
: undefined;
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
|
-
export function
|
|
124
|
+
export function getJEScheduleTransactionDetailKeyPayload(payload) {
|
|
126
125
|
const transactionId = toTransactionID(payload);
|
|
127
|
-
return
|
|
126
|
+
return getJEScheduleTransactionKey({
|
|
127
|
+
...transactionId,
|
|
128
|
+
lineId: payload.line_id,
|
|
129
|
+
});
|
|
128
130
|
}
|
|
129
131
|
export function getJEScheduleKey(payload) {
|
|
130
132
|
return generateJEScheduleKey(payload);
|
|
@@ -145,7 +147,10 @@ export function toJEScheduledTransaction(payload) {
|
|
|
145
147
|
label: payload.status.label,
|
|
146
148
|
},
|
|
147
149
|
vendorId: payload.vendor.vendor_id,
|
|
148
|
-
baseTransaction:
|
|
150
|
+
baseTransaction: getJEScheduleTransactionKey({
|
|
151
|
+
...toTransactionID(payload.base_transaction),
|
|
152
|
+
lineId: payload.base_transaction.line_id,
|
|
153
|
+
}),
|
|
149
154
|
startDate: payload.start_date != null ? date(payload.start_date) : undefined,
|
|
150
155
|
endDate: payload.end_date != null ? date(payload.end_date) : undefined,
|
|
151
156
|
period: payload.period != null ? Number(payload.period) : undefined,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
2
|
import assignWith from 'lodash/assignWith';
|
|
3
|
-
import { getJEScheduleKey,
|
|
3
|
+
import { getJEScheduleKey, getJEScheduleTransactionDetailKeyPayload, toJEAccruedScheduledTransaction, toJEScheduledTransaction, toScheduledJournalEntryState, } from './jeSchedulesPayload';
|
|
4
4
|
export const initialState = {
|
|
5
5
|
schedulesByTransactionKey: {},
|
|
6
6
|
schedulesByAccruedJEScheduleKey: {},
|
|
@@ -35,7 +35,7 @@ const jeSchedules = createSlice({
|
|
|
35
35
|
},
|
|
36
36
|
updateJEScheduledTransaction: (draft, action) => {
|
|
37
37
|
action.payload.jeSchedulesTransactionsPayload.forEach((schedule) => {
|
|
38
|
-
doUpdateJEScheduledTransaction(draft.schedulesByTransactionKey,
|
|
38
|
+
doUpdateJEScheduledTransaction(draft.schedulesByTransactionKey, getJEScheduleTransactionDetailKeyPayload(schedule.base_transaction), schedule, 'merge');
|
|
39
39
|
});
|
|
40
40
|
},
|
|
41
41
|
updateAccruedJEScheduledTransaction: (draft, action) => {
|
|
@@ -77,7 +77,7 @@ const jeSchedules = createSlice({
|
|
|
77
77
|
if (jeSchedulesPayload.length > 0) {
|
|
78
78
|
jeSchedulesPayload.forEach((jeSchedulePayload) => {
|
|
79
79
|
const transactionKey = jeSchedulePayload.base_transaction;
|
|
80
|
-
doUpdateScheduledDetailTransaction(draft.schedulesByTransactionKey,
|
|
80
|
+
doUpdateScheduledDetailTransaction(draft.schedulesByTransactionKey, getJEScheduleTransactionDetailKeyPayload(transactionKey), jeSchedulePayload, action.payload.scheduledJEntriesPayload ?? [], updateType);
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { stringToUnion, stringToUnionStrict, } from '../../commonStateTypes/stringToUnion';
|
|
2
|
+
export const getJEScheduleTransactionKey = (scheduleTransactionId) => `${scheduleTransactionId.id}_${scheduleTransactionId.type}_${scheduleTransactionId.lineId}`;
|
|
2
3
|
export const ALL_SCHEDULES_TYPES = [
|
|
3
4
|
'prepaid_expenses',
|
|
4
5
|
'fixed_assets',
|
|
@@ -3,9 +3,9 @@ import { toAmount } from '../../commonStateTypes/amount';
|
|
|
3
3
|
import { stringToUnion } from '../../commonStateTypes/stringToUnion';
|
|
4
4
|
import { date, dateNow } from '../../zeniDayJS';
|
|
5
5
|
import { mapAccountBasePayloadToAccountBase, toAccountPayload, } from '../account/accountPayload';
|
|
6
|
-
import { toCustomerBase, toCustomerBasePayload, } from '../customer/customerPayload';
|
|
7
6
|
import { toBillPaymentMethod, toBillPaymentStatus, toBillStage, toBillStatus, toBulkProcessingDetail, toDeletionInfo, } from '../billPay/billTransaction/billTransactionPayload';
|
|
8
7
|
import { mapClassBasePayloadToClassBase, toClassBasePayload, } from '../class/classPayload';
|
|
8
|
+
import { toCustomerBase, toCustomerBasePayload, } from '../customer/customerPayload';
|
|
9
9
|
import { mapMerchantBasePayloadToMerchantBase, toMerchantBasePayload, } from '../merchant/merchantPayload';
|
|
10
10
|
import { toAttachment, } from '../transaction/payloadTypes/attachmentPayload';
|
|
11
11
|
const ALL_REIMBURSEMENT_TRANSACTION_TYPE = ['reimbursement'];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
2
|
import assignWith from 'lodash/assignWith';
|
|
3
|
-
import {
|
|
3
|
+
import { getJEScheduleTransactionKey, } from '../jeSchedules/jeSchedulesTypes';
|
|
4
4
|
import { toMatchedTransaction, } from './payloadTypes/reconciliationTransactionPayloads';
|
|
5
5
|
import { toScheduleTransaction, } from './payloadTypes/scheduleTransactionPayload';
|
|
6
6
|
import { toTransactionType } from './stateTypes/transactionType';
|
|
@@ -68,9 +68,10 @@ const transaction = createSlice({
|
|
|
68
68
|
updateScheduleTransactions: {
|
|
69
69
|
reducer(draft, action) {
|
|
70
70
|
action.payload.transactionsPayload.forEach((value) => {
|
|
71
|
-
const id =
|
|
71
|
+
const id = getJEScheduleTransactionKey({
|
|
72
72
|
id: value.transaction_id,
|
|
73
73
|
type: toTransactionType(value.transaction_type),
|
|
74
|
+
lineId: value.line_id,
|
|
74
75
|
});
|
|
75
76
|
doUpdateScheduleTransaction(draft.scheduleTransactionById, id, value, action.payload.currencyCode, action.payload.currencySymbol, action.meta.updateType);
|
|
76
77
|
});
|
package/lib/esm/index.js
CHANGED
|
@@ -50,7 +50,7 @@ import { getForecast } from './entity/forecast/forecastSelector';
|
|
|
50
50
|
import { toEntityType, } from './entity/genericEntity/entity';
|
|
51
51
|
import { clearAllEntities, updateEntities, } from './entity/genericEntity/entityReducer';
|
|
52
52
|
import { getEntityByEntityIDs } from './entity/genericEntity/entitySelector';
|
|
53
|
-
import { ALL_SCHEDULES_TYPES, toScheduleTypesType, toScheduleTypesTypeStrict, } from './entity/jeSchedules/jeSchedulesTypes';
|
|
53
|
+
import { ALL_SCHEDULES_TYPES, getJEScheduleTransactionKey, toScheduleTypesType, toScheduleTypesTypeStrict, } from './entity/jeSchedules/jeSchedulesTypes';
|
|
54
54
|
import { ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, } from './entity/monthEndCloseChecks/monthEndCloseChecksState';
|
|
55
55
|
import { updateCommentsNotifications, updateCommentsNotificationsStatuses, } from './entity/notification/notificationReducer';
|
|
56
56
|
import { toNotificationModeStrict, } from './entity/notification/types/notificationTypes';
|
|
@@ -217,7 +217,8 @@ import { changeZeniPersonRoles, deletePerson, fetchAllPeopleRequiredViews, fetch
|
|
|
217
217
|
import { getPeople, getPeopleLocalData } from './view/people/peopleSelector';
|
|
218
218
|
import { fetchProfitAndLoss, fetchProfitAndLossForTimeframe, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState, } from './view/profitAndLoss/profitAndLossReducer';
|
|
219
219
|
import { getPandLReportFetchState, getProfitAndLossReport, } from './view/profitAndLoss/profitAndLossSelector';
|
|
220
|
-
import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState, } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
|
|
220
|
+
import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateClassViewLayout, updateProfitAndLossClassesViewUIState, } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
|
|
221
|
+
import { getProfitAndLossClassesHorizontalView } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
|
|
221
222
|
import { getProfitAndLossClassesView } from './view/profitAndLossClassesView/profitAndLossClassesViewSelector';
|
|
222
223
|
import { isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, } from './view/profitAndLossClassesView/profitAndLossClassesViewSelectorTypes';
|
|
223
224
|
import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, } from './view/recommendation/recommendationReducer';
|
|
@@ -451,7 +452,7 @@ export { fetchDashboard, getDashboard, updateTreasuryVideoClosed, };
|
|
|
451
452
|
export { updateDashboardLayout };
|
|
452
453
|
export { getPandLWithForecast, } from './view/profitAndLoss/pAndLWithForecast/pAndLWithForecastSelector';
|
|
453
454
|
export { fetchProfitAndLoss, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState, getProfitAndLossReport, getPandLReportFetchState, fetchProfitAndLossForTimeframe, };
|
|
454
|
-
export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, getProfitAndLossClassesView, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, };
|
|
455
|
+
export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, updateClassViewLayout, getProfitAndLossClassesView, getProfitAndLossClassesHorizontalView, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, };
|
|
455
456
|
export { getAccountingProviderAttachment };
|
|
456
457
|
export { fetchUserListByType, getUserList };
|
|
457
458
|
export { fetchAllPeopleRequiredViews, fetchPeoplePage, fetchPeople, deletePerson, resendInvite, changeZeniPersonRoles, invitePeople, inviteZeniPeople, updatePeopleUIState, peopleSaveUpdates, resetUpdateErrorMessage, peopleSaveDataInLocalStore, peopleClearDataInLocalStore, getPeople, getPeopleLocalData, initializeEditPerson, };
|
|
@@ -578,7 +579,7 @@ export { fetchApAging, getApAgingReport, updateApAgingUIState, };
|
|
|
578
579
|
export { fetchApAgingDetail, getApAgingDetailForVendor, updateApAgingDetailUIState, };
|
|
579
580
|
export { clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchExpenseAutomationJESchedulesPage, ignoreExpenseAutomationJESchedule, initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryExpenseAutomationJESchedule, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, };
|
|
580
581
|
export { createNewSchedulesAccrued, deleteScheduleAccruedDetail, cancelScheduleAccruedJournalEntry, fetchScheduleAccruedDetails, fetchScheduleAccruedDetailsPage, resetJEAccruedLinkInLocalData, saveScheduleAccruedDetails, updateAmountsInScheduleAccruedDetail, updatedJEAccruedLinkWithRecommendedLocalData, updatedJELinkInLocalDataAccruedExpenses, fetchRecommendedTransactionRowIndex, clearSelectedJELinkRowIndex, updateLinkBillExpenseLocalData, updateScheduleAccruedDetailsLocalData, updateSelectedJEAccruedScheduleKey, resetSelectedJEAccruedScheduleKey, resetAccruedDetailNewScheduleState, };
|
|
581
|
-
export { ALL_SCHEDULES_TYPES, getScheduleListReport, getAccruedScheduleListReport, fetchScheduleList, fetchAccruedScheduleList, fetchDownloadSchedules, fetchSchedulesAccount, updateScheduleListLocalData, getFetchStateForScheduleAccountList, toScheduleTypesType, toScheduleTypesTypeStrict, toScheduleListTabsFileTypeStrict, toScheduleSubTabType, updateScheduleListSubTab, updateScheduleListSearchText, updateScheduleListScrollState, updateScheduleListSortState, updateSelectedJEScheduleKey, fetchScheduleDetails, getScheduleDetailsView, getAccruedScheduleDetailsView, fetchScheduleDetailsPage, saveScheduleDetails, deleteScheduleDetail, createNewSchedules, updateScheduleDetailsLocalData, updateScheduleListDownloadState, updateAccruedJEScheduleAccruedByListKey, updatedSelectedJELinkRowIndex, getQBOUrlForLink, getThirdPartyIDFromQBOURL, updatedJELinkInLocalData, updateAmountsInScheduleDetail, resetJELinkInLocalData, updatedJELinkWithRecommendedLocalData, getFetchStateForScheduleListByType, getDefaultSelectedTimeframeForScheduleType, markAsCompleteScheduleDetail, resetMarkAsCompleteStatus, fetchVendorTabView, updateVendorTabViewTab, getVendorTabView, };
|
|
582
|
+
export { getJEScheduleTransactionKey, ALL_SCHEDULES_TYPES, getScheduleListReport, getAccruedScheduleListReport, fetchScheduleList, fetchAccruedScheduleList, fetchDownloadSchedules, fetchSchedulesAccount, updateScheduleListLocalData, getFetchStateForScheduleAccountList, toScheduleTypesType, toScheduleTypesTypeStrict, toScheduleListTabsFileTypeStrict, toScheduleSubTabType, updateScheduleListSubTab, updateScheduleListSearchText, updateScheduleListScrollState, updateScheduleListSortState, updateSelectedJEScheduleKey, fetchScheduleDetails, getScheduleDetailsView, getAccruedScheduleDetailsView, fetchScheduleDetailsPage, saveScheduleDetails, deleteScheduleDetail, createNewSchedules, updateScheduleDetailsLocalData, updateScheduleListDownloadState, updateAccruedJEScheduleAccruedByListKey, updatedSelectedJELinkRowIndex, getQBOUrlForLink, getThirdPartyIDFromQBOURL, updatedJELinkInLocalData, updateAmountsInScheduleDetail, resetJELinkInLocalData, updatedJELinkWithRecommendedLocalData, getFetchStateForScheduleListByType, getDefaultSelectedTimeframeForScheduleType, markAsCompleteScheduleDetail, resetMarkAsCompleteStatus, fetchVendorTabView, updateVendorTabViewTab, getVendorTabView, };
|
|
582
583
|
export { toVendorFirstReviewViewColumnKeyType, getGlobalMerchantAutoCompleteResults, getVendorFirstReviewView, getVendorFirstReviewAttachmentView, fetchVendorFirstReviewView, fetchVendorFirstReviewAttachments, updateVendorFirstReviewViewScrollYOffset, resetVendorFirstReviewLocalData, updateVendorFirstReviewViewPageToken, clearRecentlySavedErroredVendorData, saveVendorFirstReviewView, updateVendorFirstReviewViewLocalData, updateVendorFirstReviewSortUiState, fetchGlobalMerchantAutoCompleteView, clearGlobalMerchantAutoCompleteResults, updateReviewVendorDetailLocalData, saveVendorDetailsView, getVendorDetailSelectorView, };
|
|
583
584
|
export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGlobalMerchantLocalData, clearGlobalMerchantView, getGlobalMerchantView, };
|
|
584
585
|
export { approveVendorGlobalReview, rejectVendorGlobalReview, fetchVendorGlobalReviewView, updateSelectedGlobalMerchant, updateVendorGlobalReviewViewUIState, getVendorGlobalReviewView, getTenantMerchantByMerchantId, toVendorGlobalReviewColumnSortKeyType, updateVendorGlobalReviewViewLocalData, };
|
|
@@ -2,10 +2,8 @@ import { createSlice } from '@reduxjs/toolkit';
|
|
|
2
2
|
import { geNestedAccountIDHierarchyForReport } from '../../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport';
|
|
3
3
|
import { toMonthYearPeriodId, } from '../../../commonStateTypes/timePeriod';
|
|
4
4
|
import { mapAccountBasePayloadToAccountBase, mapAccountMetadataPayloadToAccountMetadata, } from '../../../entity/account/accountPayload';
|
|
5
|
-
import {
|
|
6
|
-
import { toTransactionID } from '../../../entity/transaction/payloadTypes/transactionIDPayload';
|
|
5
|
+
import { getJEScheduleTransactionDetailKeyPayload, } from '../../../entity/jeSchedules/jeSchedulesPayload';
|
|
7
6
|
import { mapAccountTypeRecommendationPayloadToAccountRecommendationByType, } from '../../accountMappingView/accountTypeRecommendation/accountTypeRecommendationPayload';
|
|
8
|
-
import { getZeniTransactionDetailKey } from '../../transactionDetail/transactionDetailState';
|
|
9
7
|
export const accountSettingsInitialState = {
|
|
10
8
|
localData: {
|
|
11
9
|
selectedPrepaidExpensesAccountIds: [],
|
|
@@ -99,14 +97,8 @@ const expenseAutomationJESchedulesView = createSlice({
|
|
|
99
97
|
},
|
|
100
98
|
fetchJeSchedulesSuccess(draft, action) {
|
|
101
99
|
const { jeSchedules, selectedPeriod, failedJeSchedules, refreshViewInBackground, } = action.payload;
|
|
102
|
-
const jeScheduleTransactionKeys = jeSchedules.map((schedules) =>
|
|
103
|
-
|
|
104
|
-
return getZeniTransactionDetailKey(transactionID);
|
|
105
|
-
});
|
|
106
|
-
const failedJeScheduleTransactionKeys = failedJeSchedules.map((schedules) => {
|
|
107
|
-
const transactionID = toTransactionID(schedules.base_transaction);
|
|
108
|
-
return getZeniTransactionDetailKey(transactionID);
|
|
109
|
-
});
|
|
100
|
+
const jeScheduleTransactionKeys = jeSchedules.map((schedules) => getJEScheduleTransactionDetailKeyPayload(schedules.base_transaction));
|
|
101
|
+
const failedJeScheduleTransactionKeys = failedJeSchedules.map((schedules) => getJEScheduleTransactionDetailKeyPayload(schedules.base_transaction));
|
|
110
102
|
if (refreshViewInBackground === true &&
|
|
111
103
|
draft.refreshStatus.fetchState === 'In-Progress') {
|
|
112
104
|
draft.refreshStatus = { fetchState: 'Completed', error: undefined };
|
|
@@ -272,7 +264,7 @@ const expenseAutomationJESchedulesView = createSlice({
|
|
|
272
264
|
return {
|
|
273
265
|
payload: {
|
|
274
266
|
jeScheduleTransactionKeys: [
|
|
275
|
-
...jeSchedules.map((jeSchedule) =>
|
|
267
|
+
...jeSchedules.map((jeSchedule) => getJEScheduleTransactionDetailKeyPayload(jeSchedule.base_transaction)),
|
|
276
268
|
],
|
|
277
269
|
},
|
|
278
270
|
};
|
|
@@ -44,19 +44,20 @@ const financeStatement = createSlice({
|
|
|
44
44
|
updateFinanceStatementThisPeriod(draft, action) {
|
|
45
45
|
const { firstMonthOfFY, coaBalances, maxNumOfPeriodsToHighlight } = action.payload;
|
|
46
46
|
const { timeframe, selectedCOABalancesRange } = draft;
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const safeCoaBalances = coaBalances ?? [];
|
|
48
|
+
if (safeCoaBalances.length > 0) {
|
|
49
|
+
const prevThisPeriod = extractThisPeriod(action.payload.firstMonthOfFY, timeframe, selectedCOABalancesRange, safeCoaBalances);
|
|
49
50
|
if (prevThisPeriod != null) {
|
|
50
51
|
const selectedCoaBalancesRangeWithThisPeriod = {
|
|
51
52
|
...selectedCOABalancesRange,
|
|
52
53
|
thisPeriod: prevThisPeriod,
|
|
53
54
|
};
|
|
54
|
-
const newThisPeriod = getMatchingThisPeriod(action.payload.firstMonthOfFY, timeframe, action.payload.thisPeriod,
|
|
55
|
+
const newThisPeriod = getMatchingThisPeriod(action.payload.firstMonthOfFY, timeframe, action.payload.thisPeriod, safeCoaBalances);
|
|
55
56
|
if (newThisPeriod != null) {
|
|
56
57
|
const selectionRanges = getSelectedAndHighlightedRangesForThisPeriod({
|
|
57
58
|
firstMonthOfFY,
|
|
58
59
|
thisPeriod: newThisPeriod,
|
|
59
|
-
coaBalances,
|
|
60
|
+
coaBalances: safeCoaBalances,
|
|
60
61
|
timeframe,
|
|
61
62
|
maxNumOfPeriodsToSelect: maxNumOfPeriodsToHighlight,
|
|
62
63
|
currentSelection: {
|
|
@@ -75,7 +76,9 @@ const financeStatement = createSlice({
|
|
|
75
76
|
draft.selectedReportId = action.payload;
|
|
76
77
|
},
|
|
77
78
|
updateFinanceStatementAdditionalBalancesSelection(draft, action) {
|
|
78
|
-
const { firstMonthOfFY, additionalBalances, coaBalances, maxNumOfPeriodsToHighlight, } = action.payload;
|
|
79
|
+
const { firstMonthOfFY, additionalBalances: additionalBalancesPayload, coaBalances, maxNumOfPeriodsToHighlight, } = action.payload;
|
|
80
|
+
const safeCoaBalances = coaBalances ?? [];
|
|
81
|
+
const additionalBalances = additionalBalancesPayload ?? [];
|
|
79
82
|
let tempAdditionalBalances = [...additionalBalances];
|
|
80
83
|
if (additionalBalances.includes('this_period_vs_last_period') ||
|
|
81
84
|
additionalBalances.includes('this_period_vs_last_period_percent')) {
|
|
@@ -91,8 +94,8 @@ const financeStatement = createSlice({
|
|
|
91
94
|
draft.isAdditionalBalancesShown =
|
|
92
95
|
additionalBalances.length != 0 ? true : false;
|
|
93
96
|
const { timeframe, selectedCOABalancesRange } = draft;
|
|
94
|
-
if (
|
|
95
|
-
const thisPeriod = extractThisPeriod(action.payload.firstMonthOfFY, timeframe, selectedCOABalancesRange,
|
|
97
|
+
if (safeCoaBalances.length > 0) {
|
|
98
|
+
const thisPeriod = extractThisPeriod(action.payload.firstMonthOfFY, timeframe, selectedCOABalancesRange, safeCoaBalances);
|
|
96
99
|
if (thisPeriod != null) {
|
|
97
100
|
const selectedCoaBalancesRangeWithThisPeriod = {
|
|
98
101
|
...selectedCOABalancesRange,
|
|
@@ -101,7 +104,7 @@ const financeStatement = createSlice({
|
|
|
101
104
|
const selectionRanges = getSelectedAndHighlightedRangesForThisPeriod({
|
|
102
105
|
firstMonthOfFY,
|
|
103
106
|
thisPeriod: thisPeriod,
|
|
104
|
-
coaBalances,
|
|
107
|
+
coaBalances: safeCoaBalances,
|
|
105
108
|
timeframe,
|
|
106
109
|
maxNumOfPeriodsToHighlight: maxNumOfPeriodsToHighlight,
|
|
107
110
|
currentSelection: {
|
|
@@ -8,6 +8,7 @@ import { extractThisPeriod } from '../../commonStateTypes/viewAndReport/thisPeri
|
|
|
8
8
|
import { getBalanceSheet } from '../balanceSheet/balanceSheetSelector';
|
|
9
9
|
import { getCashFlow } from '../cashFlow/cashFlowSelector';
|
|
10
10
|
import { getProfitAndLossReport, } from '../profitAndLoss/profitAndLossSelector';
|
|
11
|
+
import { getProfitAndLossClassesHorizontalView } from '../profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
|
|
11
12
|
import { getProfitAndLossClassesView } from '../profitAndLossClassesView/profitAndLossClassesViewSelector';
|
|
12
13
|
function getDateRangeForFinanceReports(profitAndLossState, balanceSheetState, cashFlowState) {
|
|
13
14
|
const datesSorted = [
|
|
@@ -42,11 +43,15 @@ export const getFinanceStatement = createSelector((state) => state.accountState,
|
|
|
42
43
|
if (dataAvailable != null) {
|
|
43
44
|
const noFilter = newBalancesFilterForDateRange(firstMonthOfFY, financeStatementState.timeframe, dataAvailable, 'ascending_date', []);
|
|
44
45
|
const profitAndLossForTimeframeTicks = getProfitAndLossReport(noFilter, undefined, accountState, accountGroupState, sectionAccountsViewState, profitAndLossState, forecastState);
|
|
45
|
-
|
|
46
|
+
const expensesSection = profitAndLossForTimeframeTicks.sections.expenses;
|
|
47
|
+
const incomeSection = profitAndLossForTimeframeTicks.sections.income;
|
|
48
|
+
const expensesBalances = expensesSection?.balances;
|
|
49
|
+
const incomeBalances = incomeSection?.balances;
|
|
50
|
+
if (expensesSection != null) {
|
|
46
51
|
balancesInTimeframe =
|
|
47
|
-
|
|
48
|
-
?
|
|
49
|
-
:
|
|
52
|
+
(expensesBalances?.length ?? 0) > 0
|
|
53
|
+
? expensesBalances ?? []
|
|
54
|
+
: incomeBalances ?? [];
|
|
50
55
|
allTimeframeTicks = balancesInTimeframe.map((balance) => toTimeframeTick(balance));
|
|
51
56
|
}
|
|
52
57
|
}
|
|
@@ -60,6 +65,9 @@ export const getFinanceStatement = createSelector((state) => state.accountState,
|
|
|
60
65
|
const profitAndLossReport = getProfitAndLossReport(filter, undefined, accountState, accountGroupState, sectionAccountsViewState, profitAndLossState, forecastState);
|
|
61
66
|
const classFilter = newBalancesFilterClassesView(filter.firstMonthOfFY, filter.timeframe, filter.balancesRange.numberOfPeriods, filter.balancesRange.thisPeriod, filter.balancesRange.orderBy, filter.additionalBalances, profitAndLossClassesViewState.uiState.classesToFilterOut);
|
|
62
67
|
const profitAndLossByClassReport = getProfitAndLossClassesView(classFilter, accountState, classState, sectionsState, profitAndLossClassesViewState);
|
|
68
|
+
const profitAndLossByClassHorizontalReport = profitAndLossClassesViewState.uiState.classViewLayout === 'horizontal'
|
|
69
|
+
? getProfitAndLossClassesHorizontalView(classFilter, accountState, classState, sectionsState, profitAndLossClassesViewState, thisPeriod)
|
|
70
|
+
: getProfitAndLossClassesHorizontalView(classFilter, accountState, classState, sectionsState, profitAndLossClassesViewState, undefined);
|
|
63
71
|
const balanceSheetReport = getBalanceSheet(filter, accountState, accountGroupState, sectionAccountsViewState, balanceSheetState);
|
|
64
72
|
const cashFlowReport = getCashFlow(filter, accountState, accountGroupState, sectionAccountsViewState, cashFlowState);
|
|
65
73
|
const allReports = [
|
|
@@ -107,6 +115,7 @@ export const getFinanceStatement = createSelector((state) => state.accountState,
|
|
|
107
115
|
dataAvailable,
|
|
108
116
|
profitAndLossReport,
|
|
109
117
|
profitAndLossByClassReport,
|
|
118
|
+
profitAndLossByClassHorizontalReport,
|
|
110
119
|
balanceSheetReport,
|
|
111
120
|
cashFlowReport,
|
|
112
121
|
filter,
|