@zeniai/client-epic-state 4.10.41 → 4.10.43

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.
@@ -4,11 +4,11 @@ import { RootState } from '../../../../reducer';
4
4
  import { fetchUserDetails, resetVendorDetailLocalData, saveVendor, saveVendorSuccessOrFailure, updateVendorDetailLocalData } from '../vendorViewReducer';
5
5
  import { updateVendors } from '../../../../entity/vendor/vendorReducer';
6
6
  import { updateAddresses } from '../../../../entity/address/addressReducer';
7
- import { convertAmountToHomeCurrency, saveBillUpdatesToLocalStore, updateRecommendedVendorId } from '../../../spendManagement/billPay/editBillView/editBillViewReducer';
7
+ import { convertAmountToHomeCurrency, saveBillUpdatesToLocalStore, updateAddBillAutoFields, updateRecommendedVendorId } from '../../../spendManagement/billPay/editBillView/editBillViewReducer';
8
8
  import { fetchPreviousBills } from '../../../spendManagement/billPay/previousBills/previousBillsReducer';
9
9
  import { updateContacts } from '../../../../entity/billPay/contact/contactReducer';
10
10
  import { updateBankAccounts } from '../../../../entity/bankAccount/bankAccountReducer';
11
11
  import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
12
12
  import { updatePaymentInstruments } from '../../../../entity/paymentInstrument/paymentInstrumentReducer';
13
- export declare type ActionType = ReturnType<typeof saveVendor> | ReturnType<typeof updateVendors> | ReturnType<typeof updateContacts> | ReturnType<typeof updateBankAccounts> | ReturnType<typeof saveBillUpdatesToLocalStore> | ReturnType<typeof fetchPreviousBills> | ReturnType<typeof openSnackbar> | ReturnType<typeof saveVendorSuccessOrFailure> | ReturnType<typeof resetVendorDetailLocalData> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateVendorDetailLocalData> | ReturnType<typeof fetchUserDetails> | ReturnType<typeof updatePaymentInstruments> | ReturnType<typeof convertAmountToHomeCurrency> | ReturnType<typeof updateRecommendedVendorId>;
13
+ export declare type ActionType = ReturnType<typeof saveVendor> | ReturnType<typeof updateVendors> | ReturnType<typeof updateContacts> | ReturnType<typeof updateBankAccounts> | ReturnType<typeof saveBillUpdatesToLocalStore> | ReturnType<typeof fetchPreviousBills> | ReturnType<typeof openSnackbar> | ReturnType<typeof saveVendorSuccessOrFailure> | ReturnType<typeof resetVendorDetailLocalData> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateVendorDetailLocalData> | ReturnType<typeof fetchUserDetails> | ReturnType<typeof updatePaymentInstruments> | ReturnType<typeof convertAmountToHomeCurrency> | ReturnType<typeof updateRecommendedVendorId> | ReturnType<typeof updateAddBillAutoFields>;
14
14
  export declare const saveVendorEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
@@ -122,16 +122,19 @@ const saveVendorEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operator
122
122
  vendorId !== updatedVendor.id) {
123
123
  showVendorGptRecommendationText = false;
124
124
  }
125
- //updated vendor name is not same as tentativeVendorName in case of setup vendor
126
- else if (Boolean(tentativeVendorName) === true &&
127
- tentativeVendorName === (updatedVendor === null || updatedVendor === void 0 ? void 0 : updatedVendor.name)) {
128
- showVendorGptRecommendationText = true;
129
- actions.push((0, editBillViewReducer_1.updateRecommendedVendorId)(updatedVendor === null || updatedVendor === void 0 ? void 0 : updatedVendor.id));
130
- }
131
125
  else {
132
126
  showVendorGptRecommendationText =
133
127
  originalShowVendorGptRecommendationText;
134
128
  }
129
+ //updated vendor name is not same as tentativeVendorName in case of setup vendor
130
+ if (Boolean(tentativeVendorName) === true &&
131
+ tentativeVendorName === (updatedVendor === null || updatedVendor === void 0 ? void 0 : updatedVendor.name)) {
132
+ showVendorGptRecommendationText = true;
133
+ actions.push((0, editBillViewReducer_1.updateAddBillAutoFields)(Object.assign(Object.assign({}, billInLocalStore.addBillAutoFields), { tentativeVendorName: '' })));
134
+ if (recommendedVendorId == null) {
135
+ actions.push((0, editBillViewReducer_1.updateRecommendedVendorId)(updatedVendor === null || updatedVendor === void 0 ? void 0 : updatedVendor.id));
136
+ }
137
+ }
135
138
  actions.push((0, editBillViewReducer_1.saveBillUpdatesToLocalStore)({
136
139
  billDetailLocalData: {
137
140
  showVendorGptRecommendationText,
@@ -20,4 +20,4 @@ export declare const setEntityRecommendationForLineIdInLocalData: (transaction:
20
20
  export declare const removeEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, recommendationLineIds: ID[]) => TransactionDetailLocalData;
21
21
  export declare const getChangedLineItemCountFromLocalData: (transaction: SupportedTransaction, transactionLocalData: TransactionDetailLocalData) => number;
22
22
  export declare const toSetAllLineItemsToVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity) => TransactionDetailLocalData;
23
- export declare const toUpdateLineItemsToOriginalVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData) => TransactionDetailLocalData;
23
+ export declare const toUpdateLineItemsToOriginalVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, lineIdToRetainVendorSelection: ID) => TransactionDetailLocalData;
@@ -322,7 +322,7 @@ 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;
@@ -410,7 +410,7 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
410
410
  }
411
411
  });
412
412
  }
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 });
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 });
414
414
  return newLocalData;
415
415
  };
416
416
  exports.toSetAllLineItemsToCategoryClass = toSetAllLineItemsToCategoryClass;
@@ -436,7 +436,7 @@ const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDe
436
436
  }
437
437
  });
438
438
  }
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 });
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 });
440
440
  return newLocalData;
441
441
  };
442
442
  exports.toSetAllLineItemsLocalDataIsUpdateAllChecked = toSetAllLineItemsLocalDataIsUpdateAllChecked;
@@ -558,7 +558,7 @@ const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDet
558
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 });
559
559
  }
560
560
  }
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 });
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 });
562
562
  return newLocalData;
563
563
  };
564
564
  exports.setEntityRecommendationForLineIdInLocalData = setEntityRecommendationForLineIdInLocalData;
@@ -595,7 +595,7 @@ const removeEntityRecommendationForLineIdInLocalData = (transaction, transaction
595
595
  }
596
596
  });
597
597
  }
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 });
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 });
599
599
  return newLocalData;
600
600
  };
601
601
  exports.removeEntityRecommendationForLineIdInLocalData = removeEntityRecommendationForLineIdInLocalData;
@@ -681,7 +681,7 @@ const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalData, enti
681
681
  return newLocalData;
682
682
  };
683
683
  exports.toSetAllLineItemsToVendor = toSetAllLineItemsToVendor;
684
- const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData) => {
684
+ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData, lineIdToRetainVendorSelection) => {
685
685
  const newLineItems = {};
686
686
  if (transaction.lines != null) {
687
687
  // always preserving the order of the line items. hence iterating over this
@@ -693,91 +693,94 @@ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalDa
693
693
  const accountLine = line;
694
694
  const lineId = line.id;
695
695
  const record = Object.assign({}, transactionDetailLocalData.lineItemById[lineId]);
696
- const isVendorOrCustomerPresent = record.vendor != null || record.customer != null;
697
- record.recommendations = (_a = transaction.recommendations) === null || _a === void 0 ? void 0 : _a[lineId];
698
- record.vendor = accountLine.vendor;
699
- record.customer = accountLine.customer;
700
- const { recommendedAccount, recommendedClass } = getRecommendedCategoryClass(accountLine.isCategoryMiscategorized, accountLine.isClassMiscategorized, record.recommendations, accountLine.account, accountLine.class);
701
- // Update category
702
- record.account = accountLine.account;
703
- record.isRecommendedCategorySelected = false;
704
- record.recommendedAccount = recommendedAccount;
705
- record.isCategoryUpdateSelected = false;
706
- if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) !== accountLine.account.qboId &&
707
- Boolean(recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId)) {
708
- if (accountLine.isCategoryMiscategorized &&
709
- Boolean(accountLine.account.qboId) &&
710
- Boolean(isVendorOrCustomerPresent)) {
711
- record.retainedAccount = accountLine.account;
712
- record.isRetainedCategorySelected = false;
713
- }
714
- }
715
- else if ((recommendedAccount === null || recommendedAccount === void 0 ? void 0 : recommendedAccount.qboId) === accountLine.account.qboId &&
716
- 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
717
704
  record.account = accountLine.account;
718
705
  record.isRecommendedCategorySelected = false;
706
+ record.recommendedAccount = recommendedAccount;
719
707
  record.isCategoryUpdateSelected = false;
720
- if (accountLine.isCategoryMiscategorized &&
721
- Boolean(accountLine.account.qboId) &&
722
- Boolean(isVendorOrCustomerPresent)) {
723
- record.retainedAccount = recommendedAccount;
724
- 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
+ }
725
716
  }
726
- }
727
- if (((_b = transactionDetailLocalData.vendorDetails) === null || _b === void 0 ? void 0 : _b.id) !==
728
- ((_c = transactionDetailLocalData.vendorUpdates) === null || _c === void 0 ? void 0 : _c.id)) {
729
- record.recommendedAccount =
730
- transactionDetailLocalData.lineItemById[lineId].recommendedAccount;
731
- }
732
- // Update class
733
- record.class = accountLine.class;
734
- record.isRecommendedClassSelected = false;
735
- record.recommendedClass = recommendedClass;
736
- record.isClassUpdateSelected = false;
737
- if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) !== accountLine.class.qboId &&
738
- Boolean(recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId)) {
739
- if (accountLine.isClassMiscategorized &&
740
- Boolean(accountLine.class.qboId) &&
741
- Boolean(isVendorOrCustomerPresent)) {
742
- record.retainedClass = accountLine.class;
743
- 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
+ }
744
728
  }
745
- }
746
- else if ((recommendedClass === null || recommendedClass === void 0 ? void 0 : recommendedClass.qboId) === accountLine.account.qboId &&
747
- 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
748
735
  record.class = accountLine.class;
749
736
  record.isRecommendedClassSelected = false;
750
737
  record.recommendedClass = recommendedClass;
751
738
  record.isClassUpdateSelected = false;
752
- if (accountLine.isClassMiscategorized &&
753
- Boolean(accountLine.class.qboId) &&
754
- Boolean(isVendorOrCustomerPresent)) {
755
- record.retainedClass = recommendedClass;
756
- 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);
757
777
  }
758
- }
759
- if (((_d = transactionDetailLocalData.vendorDetails) === null || _d === void 0 ? void 0 : _d.id) !=
760
- ((_e = transactionDetailLocalData.vendorUpdates) === null || _e === void 0 ? void 0 : _e.id)) {
761
- record.recommendedClass =
762
- transactionDetailLocalData.lineItemById[lineId].recommendedClass;
763
- }
764
- if (line.type === 'transaction_with_product_or_service_line') {
765
- const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
766
- record.item = lineRecord.item;
767
- record.lineDetailType = lineRecord.lineDetailType;
768
- }
769
- if (line.type === 'journal_entry_transaction_line') {
770
- const lineRecord = Object.assign(Object.assign({}, transactionDetailLocalData.lineItemById[lineId]), { vendor: record.vendor });
771
- record.lineTransactionType = lineRecord.lineTransactionType;
772
- record.postingType = lineRecord.postingType;
773
- record.postingTypeName = lineRecord.postingTypeName;
774
- record.lineEntity = toLineEntity(lineRecord);
775
778
  }
776
779
  newLineItems[lineId] = record;
777
780
  }
778
781
  });
779
782
  }
780
- 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 });
781
784
  return newLocalData;
782
785
  };
783
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>;
@@ -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.41",
3
+ "version": "4.10.43",
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",