Bug 29843: Use in batch_anonymise.pl
[srvgit] / misc / cronjobs / automatic_renewals.pl
index c8958cd..c954aa9 100755 (executable)
@@ -75,13 +75,13 @@ chosen 'Digests only' on the advance messages.
 =cut
 
 use Modern::Perl;
-use Pod::Usage;
-use Getopt::Long;
+use Pod::Usage qw( pod2usage );
+use Getopt::Long qw( GetOptions );
 
 use Koha::Script -cron;
-use C4::Circulation;
+use C4::Circulation qw( CanBookBeRenewed AddRenewal );
 use C4::Context;
-use C4::Log;
+use C4::Log qw( cronlogaction );
 use C4::Letters;
 use Koha::Checkouts;
 use Koha::Libraries;
@@ -132,7 +132,7 @@ $verbose = 1 unless $verbose or $confirm;
 print "Test run only\n" unless $confirm;
 
 print "getting auto renewals\n" if $verbose;
-my $auto_renews = Koha::Checkouts->search({ auto_renew => 1, 'borrower.autorenew_checkouts' => 1 },{ join => 'borrower'});
+my $auto_renews = Koha::Checkouts->search({ auto_renew => 1, 'patron.autorenew_checkouts' => 1 },{ join => 'patron'});
 print "found " . $auto_renews->count . " auto renewals\n" if $verbose;
 
 my $renew_digest = {};
@@ -179,15 +179,15 @@ while ( my $auto_renew = $auto_renews->next ) {
         }
     }
 
-    if ( $borrower_preferences && $borrower_preferences->{transports} && $borrower_preferences->{transports}->{email} && $borrower_preferences->{'wants_digest'} ) {
+    if ( $error ne 'auto_too_soon' && $borrower_preferences && $borrower_preferences->{transports} && $borrower_preferences->{transports}->{email} && $borrower_preferences->{'wants_digest'} ) {
         # cache this one to process after we've run through all of the items.
         if ($digest_per_branch) {
             $renew_digest->{ $auto_renew->branchcode }->{ $auto_renew->borrowernumber }->{success}++ if $error eq 'auto_renew';
-            $renew_digest->{ $auto_renew->branchcode }->{ $auto_renew->borrowernumber }->{error}++ unless $error eq 'auto_renew' || $error eq 'auto_too_soon' ;
+            $renew_digest->{ $auto_renew->branchcode }->{ $auto_renew->borrowernumber }->{error}++ unless $error eq 'auto_renew';
             push @{$renew_digest->{ $auto_renew->branchcode }->{ $auto_renew->borrowernumber }->{issues}}, $auto_renew->itemnumber;
         } else {
             $renew_digest->{ $auto_renew->borrowernumber }->{success} ++ if $error eq 'auto_renew';
-            $renew_digest->{ $auto_renew->borrowernumber }->{error}++ unless $error eq 'auto_renew' || $error eq 'auto_too_soon' ;
+            $renew_digest->{ $auto_renew->borrowernumber }->{error}++ unless $error eq 'auto_renew';
             push @{$renew_digest->{ $auto_renew->borrowernumber }->{issues}}, $auto_renew->itemnumber;
         }
     }
@@ -212,7 +212,7 @@ if ( $send_notices && $confirm ) {
             );
 
             my $library = Koha::Libraries->find( $patron->branchcode );
-            my $admin_email_address = $library->branchemail || C4::Context->preference('KohaAdminEmailAddress');
+            my $admin_email_address = $library->from_email_address;
 
             C4::Letters::EnqueueLetter(
                 {   letter                 => $letter,
@@ -270,8 +270,6 @@ String that denote the letter code.
 sub send_digests {
     my $params = shift;
 
-    my $admin_email_address = C4::Context->preference('KohaAdminEmailAddress');
-
     PATRON: while ( my ( $borrowernumber, $digest ) = each %{$params->{digests}} ) {
         my $borrower_preferences =
             C4::Members::Messaging::GetMessagingPreferences(
@@ -284,14 +282,20 @@ sub send_digests {
         next PATRON unless $borrower_preferences; # how could this happen?
 
         my $patron = Koha::Patrons->find( $borrowernumber );
-        my $library = Koha::Libraries->find( $params->{branchcode} );
-        my $from_address = $library->{branchemail} || $admin_email_address;
+        my $branchcode;
+        if ( defined $params->{branchcode} ) {
+            $branchcode = $params->{branchcode};
+        } else {
+            $branchcode = $patron->branchcode;
+        }
+        my $library = Koha::Libraries->find( $branchcode );
+        my $from_address = $library->from_email_address;
 
         foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) {
             my $letter = C4::Letters::GetPreparedLetter (
                 module => 'circulation',
                 letter_code => $params->{letter_code},
-                branchcode => $params->{branchcode},
+                branchcode => $branchcode,
                 lang => $patron->lang,
                 substitute => {
                     error => $digest->{error}||0,