@@ -2557,13 +2557,32 @@ function getMenuDataIls() {
2557
2557
$ ilsSummary = $ user ->getCatalogDriver ()->getAccountSummary ($ user );
2558
2558
$ ilsSummary ->setMaterialsRequests ($ user ->getNumMaterialsRequests ());
2559
2559
if ($ user ->getLinkedUsers () != null ) {
2560
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2561
+ if ($ selectedLinkedUser ) {
2562
+ $ filterLinkedUser = new User ();
2563
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2564
+ if ($ filterLinkedUser ->find (true )) {
2565
+ $ filterLinkedUserSummary = $ filterLinkedUser ->getCatalogDriver ()->getAccountSummary ($ filterLinkedUser );
2566
+
2567
+ $ ilsSummary ->numAvailableHolds = $ filterLinkedUserSummary ->numAvailableHolds ;
2568
+ $ ilsSummary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2569
+ }
2570
+ } else {
2560
2571
/** @var User $user */
2572
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2573
+ $ linkedUserSummary = $ linkedUser ->getCatalogDriver ()->getAccountSummary ($ linkedUser );
2574
+ $ ilsSummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2575
+ $ ilsSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2576
+
2577
+ }
2578
+ }
2561
2579
foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2562
2580
$ linkedUserSummary = $ linkedUser ->getCatalogDriver ()->getAccountSummary ($ linkedUser );
2563
2581
$ ilsSummary ->totalFines += $ linkedUserSummary ->totalFines ;
2564
2582
$ ilsSummary ->numCheckedOut += $ linkedUserSummary ->numCheckedOut ;
2565
2583
$ ilsSummary ->numOverdue += $ linkedUserSummary ->numOverdue ;
2566
2584
$ ilsSummary ->setMaterialsRequests ($ ilsSummary ->getMaterialsRequests () + $ linkedUser ->getNumMaterialsRequests ());
2585
+
2567
2586
}
2568
2587
}
2569
2588
$ timer ->logTime ("Loaded ILS Summary for User and linked users " );
@@ -2581,19 +2600,6 @@ function getMenuDataIls() {
2581
2600
//Expiration and fines
2582
2601
$ interface ->assign ('ilsSummary ' , $ ilsSummary );
2583
2602
$ interface ->setFinesRelatedTemplateVariables ();
2584
-
2585
- $ result = $ this ->getHolds ();
2586
-
2587
- if ($ result ['success ' ] === true ) {
2588
- $ allHolds = $ interface ->getVariable ('recordList ' );
2589
- if (isset ($ allHolds ['available ' ]) && isset ($ allHolds ['unavailable ' ])) {
2590
- $ numAvailableHolds = count ($ allHolds ['available ' ]);
2591
- $ numUnavailableHolds = count ($ allHolds ['unavailable ' ]);
2592
-
2593
- $ ilsSummary ->numAvailableHolds = $ numAvailableHolds ;
2594
- $ ilsSummary ->numUnavailableHolds = $ numUnavailableHolds ;
2595
- }
2596
- }
2597
2603
2598
2604
if ($ interface ->getVariable ('expiredMessage ' )) {
2599
2605
$ interface ->assign ('expiredMessage ' , str_replace ('%date% ' , date ('M j, Y ' , $ ilsSummary ->expirationDate ), $ interface ->getVariable ('expiredMessage ' )));
@@ -2656,11 +2662,26 @@ function getMenuDataCloudLibrary() {
2656
2662
$ cloudLibrarySummary = $ driver ->getAccountSummary ($ user );
2657
2663
if ($ user ->getLinkedUsers () != null ) {
2658
2664
/** @var User $user */
2665
+
2666
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2667
+ if ($ selectedLinkedUser ) {
2668
+ $ filterLinkedUser = new User ();
2669
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2670
+ if ($ filterLinkedUser ->find (true )) {
2671
+ $ filterLinkedUserSummary = $ driver ->getAccountSummary ($ filterLinkedUser );
2672
+ $ cloudLibrarySummary ->numAvailableHolds = $ filterLinkedUserSummary ->numAvailableHolds ;
2673
+ $ cloudLibrarySummary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2674
+ }
2675
+ } else {
2676
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2677
+ $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2678
+ $ cloudLibrarySummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2679
+ $ cloudLibrarySummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2680
+ }
2681
+ }
2659
2682
foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2660
2683
$ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2661
2684
$ cloudLibrarySummary ->numCheckedOut += $ linkedUserSummary ->numCheckedOut ;
2662
- $ cloudLibrarySummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2663
- $ cloudLibrarySummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2664
2685
}
2665
2686
}
2666
2687
$ timer ->logTime ("Loaded cloudLibrary Summary for User and linked users " );
@@ -2698,11 +2719,25 @@ function getMenuDataAxis360() {
2698
2719
$ axis360Summary = $ driver ->getAccountSummary ($ user );
2699
2720
if ($ user ->getLinkedUsers () != null ) {
2700
2721
/** @var User $user */
2722
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2723
+ if ($ selectedLinkedUser ) {
2724
+ $ filterLinkedUser - new User ();
2725
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2726
+ if ($ filterLinkedUser ->find (true )) {
2727
+ $ filterLinkedUserSummary = $ driver ->getAccountSummary ($ filterLinkedUser );
2728
+ $ axis360Summary ->numAvailableHolds = $ filterLinkedUserSummary ->numAvailableHolds ;
2729
+ $ axis360Summary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2730
+ }
2731
+ } else {
2732
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2733
+ $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2734
+ $ axis360Summary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2735
+ $ axis360Summary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2736
+ }
2737
+ }
2701
2738
foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2702
2739
$ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2703
2740
$ axis360Summary ->numCheckedOut += $ linkedUserSummary ->numCheckedOut ;
2704
- $ axis360Summary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2705
- $ axis360Summary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2706
2741
}
2707
2742
}
2708
2743
$ timer ->logTime ("Loaded Boundless Summary for User and linked users " );
@@ -2782,11 +2817,27 @@ function getMenuDataOverdrive() {
2782
2817
$ overDriveSummary = $ driver ->getAccountSummary ($ user );
2783
2818
if ($ user ->getLinkedUsers () != null ) {
2784
2819
/** @var User $user */
2820
+
2821
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2822
+ if ($ selectedLinkedUser ) {
2823
+ $ filterLinkedUser = new User ();
2824
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2825
+ if ($ filterLinkedUser ->find (true )) {
2826
+ $ filterLinkedUserSummary = $ driver ->getAccountSummary ($ filterLinkedUser );
2827
+ $ overDriveSummary ->numAvailableHolds = $ filterLinkedUserSummary ->numAvailableHolds ;
2828
+ $ overDriveSummary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2829
+ }
2830
+ } else {
2831
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2832
+ $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2833
+ $ overDriveSummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2834
+ $ overDriveSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2835
+ }
2836
+ }
2837
+
2785
2838
foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2786
2839
$ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2787
2840
$ overDriveSummary ->numCheckedOut += $ linkedUserSummary ->numCheckedOut ;
2788
- $ overDriveSummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2789
- $ overDriveSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2790
2841
}
2791
2842
}
2792
2843
$ timer ->logTime ("Loaded " . $ readerName . " Summary for User and linked users " );
@@ -2821,11 +2872,25 @@ function getMenuDataPalaceProject() {
2821
2872
$ palaceProjectSummary = $ driver ->getAccountSummary ($ user );
2822
2873
if ($ user ->getLinkedUsers () != null ) {
2823
2874
/** @var User $user */
2875
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2876
+ if ($ selectedLinkedUser ) {
2877
+ $ filterLinkedUser = new User ();
2878
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2879
+ if ($ filterLinkedUser ->find (true )) {
2880
+ $ filterLinkedUserSummary = $ driver ->getAccountSummary ($ filterLinkedUser );
2881
+ $ palaceProjectSummary ->numAvailableHolds = $ filterLinkedUserSummary ->numAvailableHolds ;
2882
+ $ palaceProjectSummary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2883
+ }
2884
+ } else {
2885
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2886
+ $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2887
+ $ palaceProjectSummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2888
+ $ palaceProjectSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2889
+ }
2890
+ }
2824
2891
foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2825
2892
$ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2826
2893
$ palaceProjectSummary ->numCheckedOut += $ linkedUserSummary ->numCheckedOut ;
2827
- $ palaceProjectSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2828
- $ palaceProjectSummary ->numAvailableHolds += $ linkedUserSummary ->numAvailableHolds ;
2829
2894
}
2830
2895
}
2831
2896
$ timer ->logTime ("Loaded Palace Project Summary for User and linked users " );
@@ -2863,9 +2928,19 @@ function getMenuDataInterlibraryLoan() {
2863
2928
$ vdxSummary = $ driver ->getAccountSummary ($ user );
2864
2929
if ($ user ->getLinkedUsers () != null ) {
2865
2930
/** @var User $user */
2866
- foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2867
- $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2868
- $ vdxSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2931
+ $ selectedLinkedUser = $ this ->setFilterLinkedUser ();
2932
+ if ($ selectedLinkedUser ) {
2933
+ $ filterLinkedUser = new User ();
2934
+ $ filterLinkedUser ->id = $ selectedLinkedUser ;
2935
+ if ($ filterLinkedUser ->find (true )) {
2936
+ $ filterLinkedUserSummary = $ driver ->getAccountSummary ($ filterLinkedUser );
2937
+ $ vdxSummary ->numUnavailableHolds = $ filterLinkedUserSummary ->numUnavailableHolds ;
2938
+ }
2939
+ } else {
2940
+ foreach ($ user ->getLinkedUsers () as $ linkedUser ) {
2941
+ $ linkedUserSummary = $ driver ->getAccountSummary ($ linkedUser );
2942
+ $ vdxSummary ->numUnavailableHolds += $ linkedUserSummary ->numUnavailableHolds ;
2943
+ }
2869
2944
}
2870
2945
}
2871
2946
$ timer ->logTime ("Loaded VDX Summary for User and linked users " );
@@ -3573,10 +3648,10 @@ public function filterHolds(array $allHolds, string $selectedUser, $selectedHold
3573
3648
3574
3649
if (isset ($ parsedHolds ['selected ' ])) {
3575
3650
foreach ($ parsedHolds ['selected ' ] as $ holdKey => $ value ) {
3576
- if (preg_match ('/(\d+)\|(\d +)\|/ ' , $ holdKey , $ matches )) {
3651
+ if (preg_match ('/(\d+)\|([a-zA-Z0-9_-] +)\|? / ' , $ holdKey , $ matches )) {
3577
3652
$ selectedHoldsArray [] = [
3578
3653
'userId ' => (int )$ matches [1 ],
3579
- 'recordId ' => ( int ) $ matches [2 ],
3654
+ 'recordId ' => $ matches [2 ],
3580
3655
];
3581
3656
}
3582
3657
}
@@ -3592,18 +3667,33 @@ public function filterHolds(array $allHolds, string $selectedUser, $selectedHold
3592
3667
$ allUsersSelected = (empty ($ selectedUser ) || $ selectedUser === "" || $ selectedUser === '[""] ' );
3593
3668
3594
3669
foreach ($ allHolds ['available ' ] as $ key => $ hold ) {
3595
- if ($ allUsersSelected || strval ($ hold ->userId ) === strval ($ selectedUser )) {
3670
+ if ($ allUsersSelected || intval ($ hold ->userId ) === intval ($ selectedUser )) {
3671
+ if (!empty ($ selectedHolds )) {
3672
+ $ matchFound = false ;
3673
+ foreach ($ selectedHolds as $ selectedHold ) {
3674
+ if (
3675
+ strval ($ hold ->recordId ) === strval ($ selectedHold ['recordId ' ]) &&
3676
+ intval ($ hold ->userId ) === intval ($ selectedHold ['userId ' ])
3677
+ ) {
3678
+ $ matchFound = true ;
3679
+ break ;
3680
+ }
3681
+ }
3682
+ if (!$ matchFound ) {
3683
+ continue ;
3684
+ }
3685
+ }
3596
3686
$ filteredHolds ['available ' ][$ key ] = $ hold ;
3597
3687
}
3598
3688
}
3599
3689
3600
3690
foreach ($ allHolds ['unavailable ' ] as $ key => $ hold ) {
3601
- if ($ allUsersSelected || strval ($ hold ->userId ) === strval ($ selectedUser )) {
3691
+ if ($ allUsersSelected || intval ($ hold ->userId ) === intval ($ selectedUser )) {
3602
3692
if (!empty ($ selectedHolds )) {
3603
3693
$ matchFound = false ;
3604
3694
foreach ($ selectedHolds as $ selectedHold ) {
3605
3695
if (
3606
- intval ($ hold ->recordId ) === intval ($ selectedHold ['recordId ' ]) &&
3696
+ strval ($ hold ->recordId ) === strval ($ selectedHold ['recordId ' ]) &&
3607
3697
intval ($ hold ->userId ) === intval ($ selectedHold ['userId ' ])
3608
3698
) {
3609
3699
$ matchFound = true ;
0 commit comments