@zeniai/client-epic-state 4.10.40 → 4.10.42

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.
@@ -1,5 +1,4 @@
1
1
  import { ID } from '../../commonStateTypes/common';
2
- import { Recommendation } from '../../commonStateTypes/recommendationBase';
3
2
  import { AccountBase } from '../../entity/account/accountState';
4
3
  import { ClassBase } from '../../entity/class/classState';
5
4
  import { Entity } from '../../entity/genericEntity/entity';
@@ -15,10 +14,10 @@ export declare const toSetAllLineItemsToCategoryClass: (transaction: SupportedTr
15
14
  } | undefined, chosenClass?: {
16
15
  classBase: ClassBase;
17
16
  updateOrRetain: 'update' | 'retain';
18
- } | undefined, recommendations?: Recommendation[] | undefined) => TransactionDetailLocalData;
17
+ } | undefined) => TransactionDetailLocalData;
19
18
  export declare const toSetAllLineItemsLocalDataIsUpdateAllChecked: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, isUpdateAll: boolean, entity?: Entity | undefined) => TransactionDetailLocalData;
20
19
  export declare const setEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity, recommendationLineIds: ID[], recommendationByLineId?: RecommendationByLineId | undefined, uncategorizedIncomeExpense?: UncategorizedAccounts | undefined) => TransactionDetailLocalData;
21
20
  export declare const removeEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, recommendationLineIds: ID[]) => TransactionDetailLocalData;
22
21
  export declare const getChangedLineItemCountFromLocalData: (transaction: SupportedTransaction, transactionLocalData: TransactionDetailLocalData) => number;
23
22
  export declare const toSetAllLineItemsToVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity) => TransactionDetailLocalData;
24
- export declare const toUpdateLineItemsToOriginalVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData) => TransactionDetailLocalData;
23
+ export declare const toUpdateLineItemsToOriginalVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, lineIdToRetainVendorSelection: ID) => TransactionDetailLocalData;
@@ -322,11 +322,11 @@ const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionDetailLo
322
322
  }
323
323
  });
324
324
  }
325
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
325
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity });
326
326
  return newLocalData;
327
327
  };
328
328
  exports.toUpdateLineItemsOriginalCategoryClass = toUpdateLineItemsOriginalCategoryClass;
329
- const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalData, isUpdateAll, lineEntity, chosenAccount, chosenClass, recommendations) => {
329
+ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalData, isUpdateAll, lineEntity, chosenAccount, chosenClass) => {
330
330
  const newLineItems = {};
331
331
  const updateAllLines = (0, vendorTransaction_1.isVendorTransaction)(transaction) === true ||
332
332
  (0, customerTransaction_1.isCustomerTransaction)(transaction) === true;
@@ -340,9 +340,6 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
340
340
  const lineId = line.id;
341
341
  const record = Object.assign({}, transactionDetailLocalData.lineItemById[lineId]);
342
342
  if (updateAllLines === true || isEntityMatching(lineEntity, record)) {
343
- if (updateAllLines !== true) {
344
- record.recommendations = recommendations;
345
- }
346
343
  if ((chosenAccount === null || chosenAccount === void 0 ? void 0 : chosenAccount.account) != null) {
347
344
  record.account = chosenAccount === null || chosenAccount === void 0 ? void 0 : chosenAccount.account;
348
345
  }
@@ -413,7 +410,7 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
413
410
  }
414
411
  });
415
412
  }
416
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorUpdates: transactionDetailLocalData.vendorUpdates, vendorDetails: transactionDetailLocalData.vendorDetails, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
413
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorUpdates: transactionDetailLocalData.vendorUpdates, vendorDetails: transactionDetailLocalData.vendorDetails, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity });
417
414
  return newLocalData;
418
415
  };
419
416
  exports.toSetAllLineItemsToCategoryClass = toSetAllLineItemsToCategoryClass;
@@ -439,7 +436,7 @@ const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDe
439
436
  }
440
437
  });
441
438
  }
442
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
439
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity });
443
440
  return newLocalData;
444
441
  };
445
442
  exports.toSetAllLineItemsLocalDataIsUpdateAllChecked = toSetAllLineItemsLocalDataIsUpdateAllChecked;
@@ -561,7 +558,7 @@ const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDet
561
558
  newLineItems[matchingEntityLineId] = Object.assign(Object.assign({}, newLineItem), { isUpdateAllChecked: true, isCategoryUpdateSelected: matchingRecord.isCategoryUpdateSelected, isClassUpdateSelected: matchingRecord.isClassUpdateSelected, isRecommendedCategorySelected: matchingRecord.isRecommendedCategorySelected, isRecommendedClassSelected: matchingRecord.isRecommendedClassSelected, isRetainedCategorySelected: matchingRecord.isRetainedCategorySelected, isRetainedClassSelected: matchingRecord.isRetainedCategorySelected, class: matchingRecord.class, account: matchingRecord.account, lineEntity: matchingRecord.lineEntity });
562
559
  }
563
560
  }
564
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorUpdates: transactionDetailLocalData.vendorUpdates, vendorDetails: transactionDetailLocalData.vendorDetails, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
561
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorUpdates: transactionDetailLocalData.vendorUpdates, vendorDetails: transactionDetailLocalData.vendorDetails, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity });
565
562
  return newLocalData;
566
563
  };
567
564
  exports.setEntityRecommendationForLineIdInLocalData = setEntityRecommendationForLineIdInLocalData;
@@ -598,7 +595,7 @@ const removeEntityRecommendationForLineIdInLocalData = (transaction, transaction
598
595
  }
599
596
  });
600
597
  }
601
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
598
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, vendorDetails: transactionDetailLocalData.vendorDetails, vendorUpdates: transactionDetailLocalData.vendorUpdates, updatePreviousTransactionsWithUpdatedVendor: transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor, isVendorUpdateAllChecked: transactionDetailLocalData.isVendorUpdateAllChecked, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity });
602
599
  return newLocalData;
603
600
  };
604
601
  exports.removeEntityRecommendationForLineIdInLocalData = removeEntityRecommendationForLineIdInLocalData;
@@ -684,7 +681,7 @@ const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalData, enti
684
681
  return newLocalData;
685
682
  };
686
683
  exports.toSetAllLineItemsToVendor = toSetAllLineItemsToVendor;
687
- const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData) => {
684
+ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData, lineIdToRetainVendorSelection) => {
688
685
  const newLineItems = {};
689
686
  if (transaction.lines != null) {
690
687
  // always preserving the order of the line items. hence iterating over this
@@ -696,91 +693,94 @@ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalDa
696
693
  const accountLine = line;
697
694
  const lineId = line.id;
698
695
  const record = Object.assign({}, transactionDetailLocalData.lineItemById[lineId]);
699
- const isVendorOrCustomerPresent = record.vendor != null || record.customer != null;
700
- record.recommendations = (_a = transaction.recommendations) === null || _a === void 0 ? void 0 : _a[lineId];
701
- record.vendor = accountLine.vendor;
702
- record.customer = accountLine.customer;
703
- const { recommendedAccount, recommendedClass } = getRecommendedCategoryClass(accountLine.isCategoryMiscategorized, accountLine.isClassMiscategorized, record.recommendations, accountLine.account, accountLine.class);
704
- // Update category
705
- record.account = accountLine.account;
706
- record.isRecommendedCategorySelected = false;
707
- record.recommendedAccount = recommendedAccount;
708
- record.isCategoryUpdateSelected = false;
709
- if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) !== accountLine.account.qboId &&
710
- Boolean(recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId)) {
711
- if (accountLine.isCategoryMiscategorized &&
712
- Boolean(accountLine.account.qboId) &&
713
- Boolean(isVendorOrCustomerPresent)) {
714
- record.retainedAccount = accountLine.account;
715
- record.isRetainedCategorySelected = false;
716
- }
717
- }
718
- else if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) === accountLine.account.qboId &&
719
- Boolean(recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId)) {
696
+ if (line.id !== lineIdToRetainVendorSelection) {
697
+ // We want to retain vendor and other selections for the line after whose vendor `update all` was selected.
698
+ const isVendorOrCustomerPresent = record.vendor != null || record.customer != null;
699
+ record.recommendations = (_a = transaction.recommendations) === null || _a === void 0 ? void 0 : _a[lineId];
700
+ record.vendor = accountLine.vendor;
701
+ record.customer = accountLine.customer;
702
+ const { recommendedAccount, recommendedClass } = getRecommendedCategoryClass(accountLine.isCategoryMiscategorized, accountLine.isClassMiscategorized, record.recommendations, accountLine.account, accountLine.class);
703
+ // Update category
720
704
  record.account = accountLine.account;
721
705
  record.isRecommendedCategorySelected = false;
706
+ record.recommendedAccount = recommendedAccount;
722
707
  record.isCategoryUpdateSelected = false;
723
- if (accountLine.isCategoryMiscategorized &&
724
- Boolean(accountLine.account.qboId) &&
725
- Boolean(isVendorOrCustomerPresent)) {
726
- record.retainedAccount = recommendedAccount;
727
- record.isRetainedCategorySelected = false;
708
+ if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) !== accountLine.account.qboId &&
709
+ Boolean(recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId)) {
710
+ if (accountLine.isCategoryMiscategorized &&
711
+ Boolean(accountLine.account.qboId) &&
712
+ Boolean(isVendorOrCustomerPresent)) {
713
+ record.retainedAccount = accountLine.account;
714
+ record.isRetainedCategorySelected = false;
715
+ }
728
716
  }
729
- }
730
- if (((_b = transactionDetailLocalData.vendorDetails) === null || _b === void 0 ? void 0 : _b.id) !==
731
- ((_c = transactionDetailLocalData.vendorUpdates) === null || _c === void 0 ? void 0 : _c.id)) {
732
- record.recommendedAccount =
733
- transactionDetailLocalData.lineItemById[lineId].recommendedAccount;
734
- }
735
- // Update class
736
- record.class = accountLine.class;
737
- record.isRecommendedClassSelected = false;
738
- record.recommendedClass = recommendedClass;
739
- record.isClassUpdateSelected = false;
740
- if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) !== accountLine.class.qboId &&
741
- Boolean(recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId)) {
742
- if (accountLine.isClassMiscategorized &&
743
- Boolean(accountLine.class.qboId) &&
744
- Boolean(isVendorOrCustomerPresent)) {
745
- record.retainedClass = accountLine.class;
746
- record.isRetainedClassSelected = false;
717
+ else if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) === accountLine.account.qboId &&
718
+ Boolean(recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId)) {
719
+ record.account = accountLine.account;
720
+ record.isRecommendedCategorySelected = false;
721
+ record.isCategoryUpdateSelected = false;
722
+ if (accountLine.isCategoryMiscategorized &&
723
+ Boolean(accountLine.account.qboId) &&
724
+ Boolean(isVendorOrCustomerPresent)) {
725
+ record.retainedAccount = recommendedAccount;
726
+ record.isRetainedCategorySelected = false;
727
+ }
747
728
  }
748
- }
749
- else if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) === accountLine.account.qboId &&
750
- Boolean(recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId)) {
729
+ if (((_b = transactionDetailLocalData.vendorDetails) === null || _b === void 0 ? void 0 : _b.id) !==
730
+ ((_c = transactionDetailLocalData.vendorUpdates) === null || _c === void 0 ? void 0 : _c.id)) {
731
+ record.recommendedAccount =
732
+ transactionDetailLocalData.lineItemById[lineId].recommendedAccount;
733
+ }
734
+ // Update class
751
735
  record.class = accountLine.class;
752
736
  record.isRecommendedClassSelected = false;
753
737
  record.recommendedClass = recommendedClass;
754
738
  record.isClassUpdateSelected = false;
755
- if (accountLine.isClassMiscategorized &&
756
- Boolean(accountLine.class.qboId) &&
757
- Boolean(isVendorOrCustomerPresent)) {
758
- record.retainedClass = recommendedClass;
759
- record.isRetainedClassSelected = false;
739
+ if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) !== accountLine.class.qboId &&
740
+ Boolean(recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId)) {
741
+ if (accountLine.isClassMiscategorized &&
742
+ Boolean(accountLine.class.qboId) &&
743
+ Boolean(isVendorOrCustomerPresent)) {
744
+ record.retainedClass = accountLine.class;
745
+ record.isRetainedClassSelected = false;
746
+ }
747
+ }
748
+ else if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) === accountLine.account.qboId &&
749
+ Boolean(recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId)) {
750
+ record.class = accountLine.class;
751
+ record.isRecommendedClassSelected = false;
752
+ record.recommendedClass = recommendedClass;
753
+ record.isClassUpdateSelected = false;
754
+ if (accountLine.isClassMiscategorized &&
755
+ Boolean(accountLine.class.qboId) &&
756
+ Boolean(isVendorOrCustomerPresent)) {
757
+ record.retainedClass = recommendedClass;
758
+ record.isRetainedClassSelected = false;
759
+ }
760
+ }
761
+ if (((_d = transactionDetailLocalData.vendorDetails) === null || _d === void 0 ? void 0 : _d.id) !=
762
+ ((_e = transactionDetailLocalData.vendorUpdates) === null || _e === void 0 ? void 0 : _e.id)) {
763
+ record.recommendedClass =
764
+ transactionDetailLocalData.lineItemById[lineId].recommendedClass;
765
+ }
766
+ if (line.type === 'transaction_with_product_or_service_line') {
767
+ const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
768
+ record.item = lineRecord.item;
769
+ record.lineDetailType = lineRecord.lineDetailType;
770
+ }
771
+ if (line.type === 'journal_entry_transaction_line') {
772
+ const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
773
+ record.lineTransactionType = lineRecord.lineTransactionType;
774
+ record.postingType = lineRecord.postingType;
775
+ record.postingTypeName = lineRecord.postingTypeName;
776
+ record.lineEntity = toLineEntity(lineRecord);
760
777
  }
761
- }
762
- if (((_d = transactionDetailLocalData.vendorDetails) === null || _d === void 0 ? void 0 : _d.id) !=
763
- ((_e = transactionDetailLocalData.vendorUpdates) === null || _e === void 0 ? void 0 : _e.id)) {
764
- record.recommendedClass =
765
- transactionDetailLocalData.lineItemById[lineId].recommendedClass;
766
- }
767
- if (line.type === 'transaction_with_product_or_service_line') {
768
- const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
769
- record.item = lineRecord.item;
770
- record.lineDetailType = lineRecord.lineDetailType;
771
- }
772
- if (line.type === 'journal_entry_transaction_line') {
773
- const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
774
- record.lineTransactionType = lineRecord.lineTransactionType;
775
- record.postingType = lineRecord.postingType;
776
- record.postingTypeName = lineRecord.postingTypeName;
777
- record.lineEntity = toLineEntity(lineRecord);
778
778
  }
779
779
  newLineItems[lineId] = record;
780
780
  }
781
781
  });
782
782
  }
783
- const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, isVendorUpdateAllChecked: false });
783
+ const newLocalData = Object.assign(Object.assign({}, transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData), { memo: transactionDetailLocalData.memo, lineItemById: newLineItems, isVendorUpdateAllChecked: false, latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity, latestSelectedEntityOnLineItem: transactionDetailLocalData.latestSelectedEntityOnLineItem });
784
784
  return newLocalData;
785
785
  };
786
786
  exports.toUpdateLineItemsToOriginalVendor = toUpdateLineItemsToOriginalVendor;
@@ -1,7 +1,7 @@
1
1
  import { ZeniAPIStatus } from '../../responsePayload';
2
2
  import { RecommendationByLineId, TransactionID } from '../../entity/transaction/stateTypes/transaction';
3
3
  import { TransactionDetailState, TransactionSaveUpdates } from './transactionDetailState';
4
- import { FetchState, UpdateType } from '../../commonStateTypes/common';
4
+ import { FetchState, ID, UpdateType } from '../../commonStateTypes/common';
5
5
  import { SupportedTransaction, SupportedTransactionPayload } from '../../entity/transaction/transactionState';
6
6
  import { TransactionDetailLocalData, TransactionVendorUpdates } from './transactionDetailTypes';
7
7
  import { AccountBase } from '../../entity/account/accountState';
@@ -109,11 +109,13 @@ export declare const fetchTransactionDetail: import("@reduxjs/toolkit").ActionCr
109
109
  transactionId: TransactionID;
110
110
  transaction: SupportedTransaction;
111
111
  entity: Entity;
112
- }, string, never, never>, resetAllLineItemsToVendor: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, transaction: SupportedTransaction], {
112
+ }, string, never, never>, resetAllLineItemsToVendor: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, transaction: SupportedTransaction, lineIdToRetainVendorSelection: string], {
113
113
  transactionId: TransactionID;
114
114
  transaction: SupportedTransaction;
115
+ lineIdToRetainVendorSelection: string;
115
116
  }, string, never, never>, updateLatestSelectedEntity: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
116
117
  transactionId: TransactionID;
118
+ lineId: ID;
117
119
  entity: Entity;
118
120
  }, string>;
119
121
  declare const _default: import("@reduxjs/toolkit").Reducer<TransactionDetailState, import("@reduxjs/toolkit").AnyAction>;
@@ -230,7 +230,7 @@ const transactionDetail = (0, toolkit_1.createSlice)({
230
230
  const key = (0, transactionDetailState_1.getTransactionDetailKey)(action.payload.transactionId);
231
231
  const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
232
232
  if (detail != null) {
233
- const newLocalData = (0, transactionDetailLocalDataHelper_1.toSetAllLineItemsToCategoryClass)(action.payload.transaction, detail.transactionDetailLocalData, action.payload.isUpdateAll, action.payload.lineEntity, action.payload.chosenAccount, action.payload.chosenClass, action.payload.recommendations);
233
+ const newLocalData = (0, transactionDetailLocalDataHelper_1.toSetAllLineItemsToCategoryClass)(action.payload.transaction, detail.transactionDetailLocalData, action.payload.isUpdateAll, action.payload.lineEntity, action.payload.chosenAccount, action.payload.chosenClass);
234
234
  draft.transactionDetailById[key] = Object.assign(Object.assign({}, detail), { transactionDetailLocalData: newLocalData });
235
235
  }
236
236
  },
@@ -357,7 +357,7 @@ const transactionDetail = (0, toolkit_1.createSlice)({
357
357
  const key = (0, transactionDetailState_1.getTransactionDetailKey)(action.payload.transactionId);
358
358
  const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
359
359
  if (detail != null) {
360
- const transactionDetailLocalData = Object.assign(Object.assign({}, detail.transactionDetailLocalData), { latestSelectedEntityOnLineItem: action.payload.entity });
360
+ const transactionDetailLocalData = Object.assign(Object.assign({}, detail.transactionDetailLocalData), { latestSelectedEntityOnLineItem: action.payload.entity, latestUpdatedLineWithEntity: action.payload.lineId });
361
361
  const transactionDetails = Object.assign(Object.assign({}, detail), { transactionDetailLocalData: transactionDetailLocalData });
362
362
  draft.transactionDetailById[key] = transactionDetails;
363
363
  }
@@ -386,15 +386,16 @@ const transactionDetail = (0, toolkit_1.createSlice)({
386
386
  const key = (0, transactionDetailState_1.getTransactionDetailKey)(action.payload.transactionId);
387
387
  const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
388
388
  if (detail != null) {
389
- const newLocalData = (0, transactionDetailLocalDataHelper_1.toUpdateLineItemsToOriginalVendor)(action.payload.transaction, detail.transactionDetailLocalData);
389
+ const newLocalData = (0, transactionDetailLocalDataHelper_1.toUpdateLineItemsToOriginalVendor)(action.payload.transaction, detail.transactionDetailLocalData, action.payload.lineIdToRetainVendorSelection);
390
390
  draft.transactionDetailById[key] = Object.assign(Object.assign({}, detail), { transactionDetailLocalData: newLocalData });
391
391
  }
392
392
  },
393
- prepare(transactionId, transaction) {
393
+ prepare(transactionId, transaction, lineIdToRetainVendorSelection) {
394
394
  return {
395
395
  payload: {
396
396
  transactionId,
397
397
  transaction,
398
+ lineIdToRetainVendorSelection,
398
399
  },
399
400
  };
400
401
  },
@@ -48,6 +48,7 @@ export interface TransactionDetailLocalData {
48
48
  updatePreviousTransactionsWithUpdatedVendor?: boolean;
49
49
  isVendorUpdateAllChecked: boolean;
50
50
  latestSelectedEntityOnLineItem?: Entity;
51
+ latestUpdatedLineWithEntity?: ID;
51
52
  }
52
53
  export interface TransactionVendorUpdates {
53
54
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.10.40",
3
+ "version": "4.10.42",
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
  "types": "lib/index.d.ts",