- for my $cardnumber ( @cardnumbers ) {
- my $borrower = GetBorrowerInfos( cardnumber => $cardnumber );
- if ( $borrower ) {
- $max_nb_attr = scalar( @{ $borrower->{patron_attributes} } )
- if scalar( @{ $borrower->{patron_attributes} } ) > $max_nb_attr;
- push @borrowers, $borrower;
+
+ # Make sure there is only one of each patron id number
+ @patronidnumbers = uniq( @patronidnumbers );
+
+ for my $patronidnumber ( @patronidnumbers ) {
+ my $patron;
+ if( $useborrowernumbers == 1 ){
+ $patron = Koha::Patrons->find( { borrowernumber => $patronidnumber } );
+ } else {
+ $patron = Koha::Patrons->find( { cardnumber => $patronidnumber } );
+ }
+ if ( $patron ) {
+ if ( $logged_in_user->can_see_patron_infos( $patron ) ) {
+ my $borrower = $patron->unblessed;
+ my $attributes = $patron->extended_attributes;
+ $borrower->{patron_attributes} = $attributes->as_list;
+ $borrower->{patron_attributes_count} = $attributes->count;
+ $max_nb_attr = $borrower->{patron_attributes_count} if $borrower->{patron_attributes_count} > $max_nb_attr;
+ push @borrowers, $borrower;
+ } else {
+ push @notfoundcardnumbers, $patronidnumber;
+ }