Bug 31051: Fix test
[koha-ffzg.git] / patron_lists / list.pl
index 75f30e2..45b11a1 100755 (executable)
@@ -21,10 +21,14 @@ use Modern::Perl;
 
 use CGI qw ( -utf8 );
 
-use C4::Auth;
-use C4::Output;
-use Koha::List::Patron;
-use List::MoreUtils qw/uniq/;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use Koha::List::Patron qw(
+    AddPatronsToList
+    DelPatronsFromList
+    GetPatronLists
+);
+use List::MoreUtils qw( uniq );
 
 my $cgi = CGI->new;
 
@@ -42,22 +46,27 @@ my ($list) =
 
 my @existing = $list->patron_list_patrons;
 
-my $cardnumbers = $cgi->param('patrons_by_barcode');
-my @patrons_by_barcode;
+my $patrons_by_id = $cgi->param('patrons_by_id');
+my $id_column = $cgi->param('id_column');
 
-if ( $cardnumbers ){
-    push my @patrons_by_barcode, uniq( split(/\s\n/, $cardnumbers) );
-    my @results = AddPatronsToList( { list => $list, cardnumbers => \@patrons_by_barcode } );
-    my %found = map { $_->borrowernumber->cardnumber => 1 } @results;
-    my %exist = map { $_->borrowernumber->cardnumber => 1 } @existing;
+if ( $patrons_by_id ){
+    push my @patrons_list, uniq( split(/\s\n/, $patrons_by_id) );
+    my %add_params;
+    $add_params{list} = $list;
+    $add_params{ $id_column } = \@patrons_list;
+    my @results = AddPatronsToList(\%add_params);
+    my $id = $id_column eq 'borrowernumbers' ? 'borrowernumber' : 'cardnumber';
+    my %found = map { $_->borrowernumber->$id => 1 } @results;
+    my %exist = map { $_->borrowernumber->$id => 1 } @existing;
     my (@not_found, @existed);
-    foreach my $barcode ( @patrons_by_barcode ){
-        push (@not_found, $barcode) unless defined $found{$barcode};
-        push (@existed, $barcode) if defined $exist{$barcode};
+    foreach my $patron ( @patrons_list ){
+        push (@not_found, $patron) unless defined $found{$patron};
+        push (@existed, $patron) if defined $exist{$patron};
     }
     $template->param(
         not_found => \@not_found,
         existed   => \@existed,
+        id_column => $id_column,
     );
 }