@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.
|
|
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",
|