@zeniai/client-epic-state 4.19.47 → 4.19.49-betaJK1

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.
@@ -21,11 +21,14 @@ export const isReviewTransactionExpenseType = (transaction) => {
21
21
  export const isReviewTransactionDepositType = (transaction) => {
22
22
  return transaction.recommendedAction.action === 'record_deposit';
23
23
  };
24
- export const isReviewTransactionBankTransferType = (transaction) => {
25
- return transaction.recommendedAction.action === 'record_transfer';
24
+ export const isReviewTransactionBankTransferType = (transaction, accountType) => {
25
+ return (transaction.recommendedAction.action === 'record_transfer' ||
26
+ (transaction.recommendedAction.action === 'record_cc_payment' &&
27
+ accountType === 'credit_card'));
26
28
  };
27
- export const isReviewTransactionCreditCardPaymentType = (transaction) => {
28
- return transaction.recommendedAction.action === 'record_cc_payment';
29
+ export const isReviewTransactionCreditCardPaymentType = (transaction, accountType) => {
30
+ return (transaction.recommendedAction.action === 'record_cc_payment' &&
31
+ accountType !== 'credit_card');
29
32
  };
30
33
  export const isReviewTransactionCreditCardCreditType = (transaction) => {
31
34
  return transaction.recommendedAction.action === 'record_cc_credit';
@@ -39,11 +39,14 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
39
39
  let lastUpdatedClass;
40
40
  // single recommendation to just pick the last recommendation in the list of lines
41
41
  transaction.lines?.forEach((line) => {
42
- const entityDetails = getEntityDetails(selectedEntity, transactionDetailLocalData.lineItemById[line.id], transactionDetailLocalData.vendorUpdates, transactionDetailLocalData.customerUpdates);
42
+ const lineItem = transactionDetailLocalData.lineItemById[line.id];
43
43
  if (line.type === 'transaction_with_account_and_class_line' ||
44
44
  line.type === 'transaction_with_product_or_service_line' ||
45
45
  line.type === 'journal_entry_transaction_line') {
46
- const lineItem = transactionDetailLocalData.lineItemById[line.id];
46
+ if (lineItem == null) {
47
+ return;
48
+ }
49
+ const entityDetails = getEntityDetails(selectedEntity, lineItem, transactionDetailLocalData.vendorUpdates, transactionDetailLocalData.customerUpdates);
47
50
  updatesByLineId[line.id] = {
48
51
  lineDescription: lineItem.lineDescription,
49
52
  class: lineItem.class,
@@ -76,8 +79,8 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
76
79
  lineItem.class?.qboId !== accountLine.class.qboId;
77
80
  const recommendedAccountBase = toRecommendedAccountBase(lineItem.amount.amount, lineItem.account);
78
81
  const recommendedClassBase = toRecommendedClassBase(lineItem.amount.amount, lineItem.class);
79
- const latestRecommendedCategory = transactionDetailLocalData.lineItemById[line.id].recommendedAccount;
80
- const latestrecommendedClass = transactionDetailLocalData.lineItemById[line.id].recommendedClass;
82
+ const latestRecommendedCategory = lineItem.recommendedAccount;
83
+ const latestrecommendedClass = lineItem.recommendedClass;
81
84
  // If at any time the recommended category selected is different from the most recent
82
85
  const isMostRecentRecommendedCategorySelected = Boolean(recommendedAccountBase) &&
83
86
  Boolean(latestRecommendedCategory) &&
@@ -233,7 +236,7 @@ const getEntityDetails = (entity, lineItemLocalData, vendorUpdates, customerUpda
233
236
  entityName: entity.name,
234
237
  };
235
238
  }
236
- if (lineItemLocalData.lineEntity != null) {
239
+ if (lineItemLocalData?.lineEntity != null) {
237
240
  return {
238
241
  entityId: lineItemLocalData.lineEntity.qboId ?? lineItemLocalData.lineEntity.id,
239
242
  entityType: lineItemLocalData.lineEntity.type,
@@ -1,4 +1,5 @@
1
1
  import { CurrencyPayload } from '../../../commonPayloadTypes/v2/viewAndReportPayloadv2';
2
+ import { AccountType } from '../../../entity/account/accountState';
2
3
  import { ReconciliationDataPayload } from '../../../entity/accountRecon/accountReconPayload';
3
4
  import { TransactionsToReview } from '../../../entity/accountRecon/accountReconState';
4
5
  import { MatchedTransactionPayload } from '../../../entity/transaction/payloadTypes/reconciliationTransactionPayloads';
@@ -9,6 +10,6 @@ export declare const getAllReviewTransactionsFromReconcilePayload: (reconcilePay
9
10
  export declare const isReviewTransactionBillPaymentType: (transaction: TransactionsToReview) => boolean;
10
11
  export declare const isReviewTransactionExpenseType: (transaction: TransactionsToReview) => boolean;
11
12
  export declare const isReviewTransactionDepositType: (transaction: TransactionsToReview) => boolean;
12
- export declare const isReviewTransactionBankTransferType: (transaction: TransactionsToReview) => boolean;
13
- export declare const isReviewTransactionCreditCardPaymentType: (transaction: TransactionsToReview) => boolean;
13
+ export declare const isReviewTransactionBankTransferType: (transaction: TransactionsToReview, accountType: AccountType) => boolean;
14
+ export declare const isReviewTransactionCreditCardPaymentType: (transaction: TransactionsToReview, accountType: AccountType) => boolean;
14
15
  export declare const isReviewTransactionCreditCardCreditType: (transaction: TransactionsToReview) => boolean;
@@ -28,12 +28,15 @@ const isReviewTransactionDepositType = (transaction) => {
28
28
  return transaction.recommendedAction.action === 'record_deposit';
29
29
  };
30
30
  exports.isReviewTransactionDepositType = isReviewTransactionDepositType;
31
- const isReviewTransactionBankTransferType = (transaction) => {
32
- return transaction.recommendedAction.action === 'record_transfer';
31
+ const isReviewTransactionBankTransferType = (transaction, accountType) => {
32
+ return (transaction.recommendedAction.action === 'record_transfer' ||
33
+ (transaction.recommendedAction.action === 'record_cc_payment' &&
34
+ accountType === 'credit_card'));
33
35
  };
34
36
  exports.isReviewTransactionBankTransferType = isReviewTransactionBankTransferType;
35
- const isReviewTransactionCreditCardPaymentType = (transaction) => {
36
- return transaction.recommendedAction.action === 'record_cc_payment';
37
+ const isReviewTransactionCreditCardPaymentType = (transaction, accountType) => {
38
+ return (transaction.recommendedAction.action === 'record_cc_payment' &&
39
+ accountType !== 'credit_card');
37
40
  };
38
41
  exports.isReviewTransactionCreditCardPaymentType = isReviewTransactionCreditCardPaymentType;
39
42
  const isReviewTransactionCreditCardCreditType = (transaction) => {
@@ -42,11 +42,14 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
42
42
  let lastUpdatedClass;
43
43
  // single recommendation to just pick the last recommendation in the list of lines
44
44
  transaction.lines?.forEach((line) => {
45
- const entityDetails = getEntityDetails(selectedEntity, transactionDetailLocalData.lineItemById[line.id], transactionDetailLocalData.vendorUpdates, transactionDetailLocalData.customerUpdates);
45
+ const lineItem = transactionDetailLocalData.lineItemById[line.id];
46
46
  if (line.type === 'transaction_with_account_and_class_line' ||
47
47
  line.type === 'transaction_with_product_or_service_line' ||
48
48
  line.type === 'journal_entry_transaction_line') {
49
- const lineItem = transactionDetailLocalData.lineItemById[line.id];
49
+ if (lineItem == null) {
50
+ return;
51
+ }
52
+ const entityDetails = getEntityDetails(selectedEntity, lineItem, transactionDetailLocalData.vendorUpdates, transactionDetailLocalData.customerUpdates);
50
53
  updatesByLineId[line.id] = {
51
54
  lineDescription: lineItem.lineDescription,
52
55
  class: lineItem.class,
@@ -79,8 +82,8 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
79
82
  lineItem.class?.qboId !== accountLine.class.qboId;
80
83
  const recommendedAccountBase = (0, exports.toRecommendedAccountBase)(lineItem.amount.amount, lineItem.account);
81
84
  const recommendedClassBase = (0, exports.toRecommendedClassBase)(lineItem.amount.amount, lineItem.class);
82
- const latestRecommendedCategory = transactionDetailLocalData.lineItemById[line.id].recommendedAccount;
83
- const latestrecommendedClass = transactionDetailLocalData.lineItemById[line.id].recommendedClass;
85
+ const latestRecommendedCategory = lineItem.recommendedAccount;
86
+ const latestrecommendedClass = lineItem.recommendedClass;
84
87
  // If at any time the recommended category selected is different from the most recent
85
88
  const isMostRecentRecommendedCategorySelected = Boolean(recommendedAccountBase) &&
86
89
  Boolean(latestRecommendedCategory) &&
@@ -239,7 +242,7 @@ const getEntityDetails = (entity, lineItemLocalData, vendorUpdates, customerUpda
239
242
  entityName: entity.name,
240
243
  };
241
244
  }
242
- if (lineItemLocalData.lineEntity != null) {
245
+ if (lineItemLocalData?.lineEntity != null) {
243
246
  return {
244
247
  entityId: lineItemLocalData.lineEntity.qboId ?? lineItemLocalData.lineEntity.id,
245
248
  entityType: lineItemLocalData.lineEntity.type,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.47",
3
+ "version": "4.19.49-betaJK1",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",