@@ -, +, @@
modification
---
.../prog/en/modules/tools/modborrowers.tt | 42 +++++++++++--
tools/modborrowers.pl | 72 ++++++++++++++++------
2 files changed, 90 insertions(+), 24 deletions(-)
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt
@@ -29,9 +29,16 @@
-
No patron card numbers given.
+
No patron card numbers/SMS numbers given.
@@ -100,6 +118,21 @@
[% END %]
+ [% IF ( notfoundsmsnumbers ) %]
+
Warning, the following sms numbers were not found:
+
+
+ SMS numbers not found |
+
+
+ [% FOREACH notfoundsmsnumber IN notfoundsmsnumbers %]
+ [% notfoundsmsnumber.smsalertnumber | html %] |
+ [% END %]
+
+
+ [% END %]
+
+
[% IF ( op == 'show_results' ) %]
[% IF ( errors ) %]
@@ -109,6 +142,7 @@
[% IF ( error.error == 'can_not_update' ) %]
Can not update patron.
[% IF ( error.cardnumber ) %] Cardnumber: [% error.cardnumber | html %] [% END %]
+ [% IF ( error.smsnumber ) %] SMS number: [% error.smsnumber | html %] [% END %]
(Borrowernumber: [% error.borrowernumber | html %])
[% ELSE %]
--- a/tools/modborrowers.pl
+++ a/tools/modborrowers.pl
@@ -57,48 +57,77 @@ my $dbh = C4::Context->dbh;
# Show borrower informations
if ( $op eq 'show' ) {
- my $filefh = $input->upload('uploadfile');
+ my $cardnumberfilefh = $input->upload('uploadcardnumberfile');
+ my $smsnumberfilefh = $input->upload('uploadsmsnumberfile');
my $filecontent = $input->param('filecontent');
my $patron_list_id = $input->param('patron_list_id');
my @borrowers;
my @cardnumbers;
- my @notfoundcardnumbers;
+ my @smsnumbers;
+ my ( @notfoundcardnumbers, @notfoundsmsnumbers );
# Get cardnumbers from a file or the input area
- if ($filefh) {
- while ( my $content = <$filefh> ) {
+ if ( $cardnumberfilefh ) {
+ while ( my $content = <$cardnumberfilefh> ) {
$content =~ s/[\r\n]*$//g;
push @cardnumbers, $content if $content;
}
+ } elsif ( $smsnumberfilefh ) {
+ while ( my $content = <$smsnumberfilefh> ) {
+ $content =~ s/[\r\n]*$//g;
+ push @smsnumbers, $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();
-
+ @smsnumbers =
+ $list->patron_list_patrons()->search_related('borrowernumber')
+ ->get_column('smsalertnumber')->all();
} else {
- if ( my $list = $input->param('cardnumberlist') ) {
- push @cardnumbers, split( /\s\n/, $list );
+ if ( my $cardnumberlist = $input->param('cardnumberlist') ) {
+ push @cardnumbers, split( /\s\n/, $cardnumberlist );
+ } elsif ( my $smsnumberlist = $input->param('smsnumberlist') ) {
+ push @smsnumbers, split( /\s\n/, $smsnumberlist );
}
}
my $max_nb_attr = 0;
- for my $cardnumber ( @cardnumbers ) {
- my $patron = Koha::Patrons->find( { cardnumber => $cardnumber } );
- 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;
+ if ( @cardnumbers ) {
+ for my $cardnumber ( @cardnumbers ) {
+ my $patron = Koha::Patrons->find( { cardnumber => $cardnumber } );
+ 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, $cardnumber;
+ }
+ I }
+ }
+ } else {
+ for my $smsnumber (@smsnumbers ) {
+ my $patron = Koha::Patrons->find( { smsalertnumber => $smsnumber } );
+ 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, $patron;
+ } else {
+ push @notfoundsmsnumbers, $smsnumber;
+ }
} else {
- push @notfoundcardnumbers, $cardnumber;
+ push @notfoundsmsnumbers, $smsnumber;
}
- } else {
- push @notfoundcardnumbers, $cardnumber;
}
}
@@ -148,6 +177,9 @@ if ( $op eq 'show' ) {
$template->param( borrowers => \@borrowers );
$template->param( attributes_header => \@attributes_header );
@notfoundcardnumbers = map { { cardnumber => $_ } } @notfoundcardnumbers;
+ @notfoundsmsnumbers = map { { smsalertnumber => $_ } } @notfoundsmsnumbers;
+ $template->param( notfoundsmsnumbers => \@notfoundsmsnumbers ) if @notfoundsmsnumbers;
+
$template->param( notfoundcardnumbers => \@notfoundcardnumbers )
if @notfoundcardnumbers;
--