Bug 7295: More granular permissions for baskets
[koha.git] / tools / modborrowers.pl
index 1bba4a0..5bd2103 100755 (executable)
@@ -21,7 +21,7 @@
 #
 # Batch Edit Patrons
 # Modification for patron's fields:
-# surname firstname branchcode categorycode sort1 sort2 dateenrolled dateexpiry debarred debarredcomment borrowernotes
+# surname firstname branchcode categorycode sort1 sort2 dateenrolled dateexpiry borrowernotes
 # And for patron attributes.
 
 use Modern::Perl;
@@ -34,6 +34,7 @@ use C4::Members::Attributes;
 use C4::Members::AttributeTypes qw/GetAttributeTypes_hashref/;
 use C4::Output;
 use List::MoreUtils qw /any uniq/;
+use Koha::List::Patron;
 
 my $input = new CGI;
 my $op = $input->param('op') || 'show_form';
@@ -50,12 +51,11 @@ my %cookies   = parse CGI::Cookie($cookie);
 my $sessionID = $cookies{'CGISESSID'}->value;
 my $dbh       = C4::Context->dbh;
 
-
-
 # Show borrower informations
 if ( $op eq 'show' ) {
-    my $filefh      = $input->upload('uploadfile');
-    my $filecontent = $input->param('filecontent');
+    my $filefh         = $input->upload('uploadfile');
+    my $filecontent    = $input->param('filecontent');
+    my $patron_list_id = $input->param('patron_list_id');
     my @borrowers;
     my @cardnumbers;
     my @notfoundcardnumbers;
@@ -67,6 +67,13 @@ if ( $op eq 'show' ) {
             $content =~ s/[\r\n]*$//g;
             push @cardnumbers, $content if $content;
         }
+    } elsif ( $patron_list_id ) {
+        my ($list) = GetPatronLists( { patron_list_id => $patron_list_id } );
+
+        @cardnumbers =
+          $list->patron_list_patrons()->search_related('borrowernumber')
+          ->get_column('cardnumber')->all();
+
     } else {
         if ( my $list = $input->param('cardnumberlist') ) {
             push @cardnumbers, split( /\s\n/, $list );
@@ -205,18 +212,6 @@ if ( $op eq 'show' ) {
             mandatory => ( grep /dateexpiry/, @mandatoryFields ) ? 1 : 0,
         }
         ,
-        {
-            name => "debarred",
-            type => "date",
-            mandatory => ( grep /debarred/, @mandatoryFields ) ? 1 : 0,
-        }
-        ,
-        {
-            name => "debarredcomment",
-            type => "text",
-            mandatory => ( grep /debarredcomment/, @mandatoryFields ) ? 1 : 0,
-        }
-        ,
         {
             name => "borrowernotes",
             type => "text",
@@ -235,7 +230,7 @@ if ( $op eq 'do' ) {
 
     my @disabled = $input->param('disable_input');
     my $infos;
-    for my $field ( qw/surname firstname branchcode categorycode sort1 sort2 dateenrolled dateexpiry debarred debarredcomment borrowernotes/ ) {
+    for my $field ( qw/surname firstname branchcode categorycode sort1 sort2 dateenrolled dateexpiry borrowernotes/ ) {
         my $value = $input->param($field);
         $infos->{$field} = $value if $value;
         $infos->{$field} = "" if grep { /^$field$/ } @disabled;
@@ -314,6 +309,9 @@ if ( $op eq 'do' ) {
 
     $template->param( borrowers => \@borrowers );
     $template->param( errors => \@errors );
+} else {
+
+    $template->param( patron_lists => [ GetPatronLists() ] );
 }
 
 $template->param(
@@ -327,7 +325,7 @@ sub GetBorrowerInfos {
     my $borrower = GetMember( %info );
     if ( $borrower ) {
         $borrower->{branchname} = GetBranchName( $borrower->{branchcode} );
-        for ( qw(dateenrolled dateexpiry debarred) ) {
+        for ( qw(dateenrolled dateexpiry) ) {
             my $userdate = $borrower->{$_};
             unless ($userdate && $userdate ne "0000-00-00" and $userdate ne "9999-12-31") {
                 $borrower->{$_} = '';