@zeniai/client-epic-state 5.1.55 → 5.1.56

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.
@@ -295,11 +295,13 @@ export const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionD
295
295
  const isLineIdInReplaceList = (findLineID) => lineIdsForReplace.find((lineId) => findLineID === lineId);
296
296
  const isLineIdInUpdateList = (findLineID) => lineIdsForUpdateAll.find((lineId) => findLineID === lineId);
297
297
  const newLineItems = {};
298
+ const persistedLineIds = new Set();
298
299
  const checkIfNotJEAndDeposit = isVendorTransaction(transaction) === true ||
299
300
  isCustomerTransaction(transaction) === true;
300
301
  if (transaction.lines != null) {
301
302
  // always preserving the order of the line items. hence iterating over this
302
303
  transaction.lines.forEach((line) => {
304
+ persistedLineIds.add(line.id);
303
305
  if (line.type === 'transaction_with_account_and_class_line' ||
304
306
  line.type === 'transaction_with_product_or_service_line' ||
305
307
  line.type === 'journal_entry_transaction_line') {
@@ -430,6 +432,7 @@ export const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionD
430
432
  }
431
433
  });
432
434
  }
435
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
433
436
  const newLocalData = {
434
437
  ...initialSupportedTransactionDetail.transactionDetailLocalData,
435
438
  memo: transactionDetailLocalData.memo,
@@ -450,11 +453,13 @@ export const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionD
450
453
  };
451
454
  export const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalData, isUpdateAll, lineEntity, chosenAccount, chosenClass) => {
452
455
  const newLineItems = {};
456
+ const persistedLineIds = new Set();
453
457
  const updateAllLines = isVendorTransaction(transaction) === true ||
454
458
  isCustomerTransaction(transaction) === true;
455
459
  if (transaction.lines != null) {
456
460
  // always preserving the order of the line items. hence iterating over this
457
461
  transaction.lines.forEach((line) => {
462
+ persistedLineIds.add(line.id);
458
463
  if (line.type === 'transaction_with_account_and_class_line' ||
459
464
  line.type === 'transaction_with_product_or_service_line' ||
460
465
  line.type === 'journal_entry_transaction_line') {
@@ -535,6 +540,7 @@ export const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailL
535
540
  }
536
541
  });
537
542
  }
543
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
538
544
  const newLocalData = {
539
545
  ...initialSupportedTransactionDetail.transactionDetailLocalData,
540
546
  memo: transactionDetailLocalData.memo,
@@ -555,11 +561,13 @@ export const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailL
555
561
  };
556
562
  export const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDetailLocalData, isUpdateAll, entity) => {
557
563
  const newLineItems = {};
564
+ const persistedLineIds = new Set();
558
565
  const updateAllLines = isVendorTransaction(transaction) === true ||
559
566
  isCustomerTransaction(transaction) === true;
560
567
  if (transaction.lines != null) {
561
568
  // always preserving the order of the line items. hence iterating over this
562
569
  transaction.lines.forEach((line) => {
570
+ persistedLineIds.add(line.id);
563
571
  const lineId = line.id;
564
572
  if (line.type === 'transaction_with_account_and_class_line' ||
565
573
  line.type === 'transaction_with_product_or_service_line' ||
@@ -581,6 +589,7 @@ export const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transa
581
589
  }
582
590
  });
583
591
  }
592
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
584
593
  const newLocalData = {
585
594
  ...initialSupportedTransactionDetail.transactionDetailLocalData,
586
595
  memo: transactionDetailLocalData.memo,
@@ -599,14 +608,23 @@ export const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transa
599
608
  };
600
609
  return newLocalData;
601
610
  };
611
+ const preserveLocalLines = (target, source, persistedLineIds) => {
612
+ Object.keys(source).forEach((lineId) => {
613
+ if (!persistedLineIds.has(lineId)) {
614
+ target[lineId] = { ...source[lineId] };
615
+ }
616
+ });
617
+ };
602
618
  export const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDetailLocalData, entity, recommendationLineIds, uncategorizedIncomeExpense, recommendationWithCOTByLineId) => {
603
619
  const newLineItems = {};
604
620
  let matchingEntityLineId = undefined;
605
621
  const checkIfNotJEAndDeposit = isVendorTransaction(transaction) === true ||
606
622
  isCustomerTransaction(transaction) === true;
623
+ const persistedLineIds = new Set();
607
624
  if (transaction.lines != null) {
608
625
  // always preserving the order of the line items. hence iterating over this
609
626
  transaction.lines.forEach((line) => {
627
+ persistedLineIds.add(line.id);
610
628
  const lineId = line.id;
611
629
  const oldRecord = transactionDetailLocalData.lineItemById[lineId];
612
630
  // check if any line already has this entity
@@ -718,6 +736,7 @@ export const setEntityRecommendationForLineIdInLocalData = (transaction, transac
718
736
  }
719
737
  });
720
738
  }
739
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
721
740
  // if we have found a matching entity
722
741
  if (matchingEntityLineId != null) {
723
742
  const matchingRecord = transactionDetailLocalData.lineItemById[matchingEntityLineId];
@@ -761,9 +780,11 @@ export const setEntityRecommendationForLineIdInLocalData = (transaction, transac
761
780
  };
762
781
  export const removeEntityRecommendationForLineIdInLocalData = (transaction, transactionDetailLocalData, recommendationLineIds) => {
763
782
  const newLineItems = {};
783
+ const persistedLineIds = new Set();
764
784
  if (transaction.lines != null) {
765
785
  // always preserving the order of the line items. hence iterating over this
766
786
  transaction.lines.forEach((line) => {
787
+ persistedLineIds.add(line.id);
767
788
  const lineId = line.id;
768
789
  const oldRecord = transactionDetailLocalData.lineItemById[lineId];
769
790
  // check if any line already has this entity
@@ -794,6 +815,7 @@ export const removeEntityRecommendationForLineIdInLocalData = (transaction, tran
794
815
  }
795
816
  });
796
817
  }
818
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
797
819
  const newLocalData = {
798
820
  ...initialSupportedTransactionDetail.transactionDetailLocalData,
799
821
  memo: transactionDetailLocalData.memo,
@@ -859,9 +881,11 @@ const toLineCustomerOrVendor = (entity) => {
859
881
  };
860
882
  export const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalData, entity) => {
861
883
  const newLineItems = {};
884
+ const persistedLineIds = new Set();
862
885
  if (transaction.lines != null) {
863
886
  // always preserving the order of the line items. hence iterating over this
864
887
  transaction.lines.forEach((line) => {
888
+ persistedLineIds.add(line.id);
865
889
  if (line.type === 'transaction_with_account_and_class_line' ||
866
890
  line.type === 'transaction_with_product_or_service_line' ||
867
891
  line.type === 'journal_entry_transaction_line') {
@@ -906,6 +930,7 @@ export const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalDat
906
930
  }
907
931
  });
908
932
  }
933
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
909
934
  const newLocalData = {
910
935
  ...transactionDetailLocalData,
911
936
  lineItemById: newLineItems,
@@ -916,9 +941,11 @@ export const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalDat
916
941
  export const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData, lineIdToRetainVendorSelection) => {
917
942
  const newLineItems = {};
918
943
  const transactionWithCOT = getTransactionWithCOT(transaction);
944
+ const persistedLineIds = new Set();
919
945
  if (transaction.lines != null) {
920
946
  // always preserving the order of the line items. hence iterating over this
921
947
  transaction.lines.forEach((line) => {
948
+ persistedLineIds.add(line.id);
922
949
  if (line.type === 'transaction_with_account_and_class_line' ||
923
950
  line.type === 'transaction_with_product_or_service_line' ||
924
951
  line.type === 'journal_entry_transaction_line') {
@@ -1019,6 +1046,7 @@ export const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetail
1019
1046
  }
1020
1047
  });
1021
1048
  }
1049
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
1022
1050
  const newLocalData = {
1023
1051
  ...initialSupportedTransactionDetail.transactionDetailLocalData,
1024
1052
  memo: transactionDetailLocalData.memo,
@@ -301,11 +301,13 @@ const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionDetailLo
301
301
  const isLineIdInReplaceList = (findLineID) => lineIdsForReplace.find((lineId) => findLineID === lineId);
302
302
  const isLineIdInUpdateList = (findLineID) => lineIdsForUpdateAll.find((lineId) => findLineID === lineId);
303
303
  const newLineItems = {};
304
+ const persistedLineIds = new Set();
304
305
  const checkIfNotJEAndDeposit = (0, vendorTransaction_1.isVendorTransaction)(transaction) === true ||
305
306
  (0, customerTransaction_1.isCustomerTransaction)(transaction) === true;
306
307
  if (transaction.lines != null) {
307
308
  // always preserving the order of the line items. hence iterating over this
308
309
  transaction.lines.forEach((line) => {
310
+ persistedLineIds.add(line.id);
309
311
  if (line.type === 'transaction_with_account_and_class_line' ||
310
312
  line.type === 'transaction_with_product_or_service_line' ||
311
313
  line.type === 'journal_entry_transaction_line') {
@@ -436,6 +438,7 @@ const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionDetailLo
436
438
  }
437
439
  });
438
440
  }
441
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
439
442
  const newLocalData = {
440
443
  ...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
441
444
  memo: transactionDetailLocalData.memo,
@@ -457,11 +460,13 @@ const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionDetailLo
457
460
  exports.toUpdateLineItemsOriginalCategoryClass = toUpdateLineItemsOriginalCategoryClass;
458
461
  const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalData, isUpdateAll, lineEntity, chosenAccount, chosenClass) => {
459
462
  const newLineItems = {};
463
+ const persistedLineIds = new Set();
460
464
  const updateAllLines = (0, vendorTransaction_1.isVendorTransaction)(transaction) === true ||
461
465
  (0, customerTransaction_1.isCustomerTransaction)(transaction) === true;
462
466
  if (transaction.lines != null) {
463
467
  // always preserving the order of the line items. hence iterating over this
464
468
  transaction.lines.forEach((line) => {
469
+ persistedLineIds.add(line.id);
465
470
  if (line.type === 'transaction_with_account_and_class_line' ||
466
471
  line.type === 'transaction_with_product_or_service_line' ||
467
472
  line.type === 'journal_entry_transaction_line') {
@@ -542,6 +547,7 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
542
547
  }
543
548
  });
544
549
  }
550
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
545
551
  const newLocalData = {
546
552
  ...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
547
553
  memo: transactionDetailLocalData.memo,
@@ -563,11 +569,13 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
563
569
  exports.toSetAllLineItemsToCategoryClass = toSetAllLineItemsToCategoryClass;
564
570
  const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDetailLocalData, isUpdateAll, entity) => {
565
571
  const newLineItems = {};
572
+ const persistedLineIds = new Set();
566
573
  const updateAllLines = (0, vendorTransaction_1.isVendorTransaction)(transaction) === true ||
567
574
  (0, customerTransaction_1.isCustomerTransaction)(transaction) === true;
568
575
  if (transaction.lines != null) {
569
576
  // always preserving the order of the line items. hence iterating over this
570
577
  transaction.lines.forEach((line) => {
578
+ persistedLineIds.add(line.id);
571
579
  const lineId = line.id;
572
580
  if (line.type === 'transaction_with_account_and_class_line' ||
573
581
  line.type === 'transaction_with_product_or_service_line' ||
@@ -589,6 +597,7 @@ const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDe
589
597
  }
590
598
  });
591
599
  }
600
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
592
601
  const newLocalData = {
593
602
  ...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
594
603
  memo: transactionDetailLocalData.memo,
@@ -608,14 +617,23 @@ const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDe
608
617
  return newLocalData;
609
618
  };
610
619
  exports.toSetAllLineItemsLocalDataIsUpdateAllChecked = toSetAllLineItemsLocalDataIsUpdateAllChecked;
620
+ const preserveLocalLines = (target, source, persistedLineIds) => {
621
+ Object.keys(source).forEach((lineId) => {
622
+ if (!persistedLineIds.has(lineId)) {
623
+ target[lineId] = { ...source[lineId] };
624
+ }
625
+ });
626
+ };
611
627
  const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDetailLocalData, entity, recommendationLineIds, uncategorizedIncomeExpense, recommendationWithCOTByLineId) => {
612
628
  const newLineItems = {};
613
629
  let matchingEntityLineId = undefined;
614
630
  const checkIfNotJEAndDeposit = (0, vendorTransaction_1.isVendorTransaction)(transaction) === true ||
615
631
  (0, customerTransaction_1.isCustomerTransaction)(transaction) === true;
632
+ const persistedLineIds = new Set();
616
633
  if (transaction.lines != null) {
617
634
  // always preserving the order of the line items. hence iterating over this
618
635
  transaction.lines.forEach((line) => {
636
+ persistedLineIds.add(line.id);
619
637
  const lineId = line.id;
620
638
  const oldRecord = transactionDetailLocalData.lineItemById[lineId];
621
639
  // check if any line already has this entity
@@ -727,6 +745,7 @@ const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDet
727
745
  }
728
746
  });
729
747
  }
748
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
730
749
  // if we have found a matching entity
731
750
  if (matchingEntityLineId != null) {
732
751
  const matchingRecord = transactionDetailLocalData.lineItemById[matchingEntityLineId];
@@ -771,9 +790,11 @@ const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDet
771
790
  exports.setEntityRecommendationForLineIdInLocalData = setEntityRecommendationForLineIdInLocalData;
772
791
  const removeEntityRecommendationForLineIdInLocalData = (transaction, transactionDetailLocalData, recommendationLineIds) => {
773
792
  const newLineItems = {};
793
+ const persistedLineIds = new Set();
774
794
  if (transaction.lines != null) {
775
795
  // always preserving the order of the line items. hence iterating over this
776
796
  transaction.lines.forEach((line) => {
797
+ persistedLineIds.add(line.id);
777
798
  const lineId = line.id;
778
799
  const oldRecord = transactionDetailLocalData.lineItemById[lineId];
779
800
  // check if any line already has this entity
@@ -804,6 +825,7 @@ const removeEntityRecommendationForLineIdInLocalData = (transaction, transaction
804
825
  }
805
826
  });
806
827
  }
828
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
807
829
  const newLocalData = {
808
830
  ...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
809
831
  memo: transactionDetailLocalData.memo,
@@ -871,9 +893,11 @@ const toLineCustomerOrVendor = (entity) => {
871
893
  };
872
894
  const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalData, entity) => {
873
895
  const newLineItems = {};
896
+ const persistedLineIds = new Set();
874
897
  if (transaction.lines != null) {
875
898
  // always preserving the order of the line items. hence iterating over this
876
899
  transaction.lines.forEach((line) => {
900
+ persistedLineIds.add(line.id);
877
901
  if (line.type === 'transaction_with_account_and_class_line' ||
878
902
  line.type === 'transaction_with_product_or_service_line' ||
879
903
  line.type === 'journal_entry_transaction_line') {
@@ -918,6 +942,7 @@ const toSetAllLineItemsToVendor = (transaction, transactionDetailLocalData, enti
918
942
  }
919
943
  });
920
944
  }
945
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
921
946
  const newLocalData = {
922
947
  ...transactionDetailLocalData,
923
948
  lineItemById: newLineItems,
@@ -929,9 +954,11 @@ exports.toSetAllLineItemsToVendor = toSetAllLineItemsToVendor;
929
954
  const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalData, lineIdToRetainVendorSelection) => {
930
955
  const newLineItems = {};
931
956
  const transactionWithCOT = (0, transactionHelper_1.getTransactionWithCOT)(transaction);
957
+ const persistedLineIds = new Set();
932
958
  if (transaction.lines != null) {
933
959
  // always preserving the order of the line items. hence iterating over this
934
960
  transaction.lines.forEach((line) => {
961
+ persistedLineIds.add(line.id);
935
962
  if (line.type === 'transaction_with_account_and_class_line' ||
936
963
  line.type === 'transaction_with_product_or_service_line' ||
937
964
  line.type === 'journal_entry_transaction_line') {
@@ -1032,6 +1059,7 @@ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalDa
1032
1059
  }
1033
1060
  });
1034
1061
  }
1062
+ preserveLocalLines(newLineItems, transactionDetailLocalData.lineItemById, persistedLineIds);
1035
1063
  const newLocalData = {
1036
1064
  ...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
1037
1065
  memo: transactionDetailLocalData.memo,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.1.55",
3
+ "version": "5.1.56",
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",