Bug 5490: smsoverdues.pl is an orphan
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 31 Oct 2012 23:23:35 +0000 (19:23 -0400)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 10 Nov 2012 02:43:53 +0000 (21:43 -0500)
The script misc/cronjobs/smsoverdues.pl requires HTML::Template::Pro and
uses templates that do not exist in Koha. Since this has been true for
at least a year and a half, and no one is aware of anyone who is using
it, it seems prudent to remove the script so that no one is confused
and/or distressed by its non-functioning nature.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Passed-QA-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
misc/cronjobs/smsoverdues.pl [deleted file]

diff --git a/misc/cronjobs/smsoverdues.pl b/misc/cronjobs/smsoverdues.pl
deleted file mode 100755 (executable)
index 6415eb6..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-#!/usr/bin/perl
-
-#  This script loops through each overdue item, determines the fine,
-#  and updates the total amount of fines due by each user.  It relies on
-#  the existence of /tmp/fines, which is created by ???
-# Doesnt really rely on it, it relys on being able to write to /tmp/
-# It creates the fines file
-#
-#  This script is meant to be run nightly out of cron.
-
-# Copyright 2000-2002 Katipo Communications
-#
-# This file is part of Koha.
-#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-# $Id: sendoverdues.pl,v 1.1.2.1 2007/03/26 22:38:09 tgarip1957 Exp $
-
-#use strict;
-#use warnings; FIXME - Bug 2505
-
-BEGIN {
-    # find Koha's Perl modules
-    # test carefully before changing this
-    use FindBin;
-    eval { require "$FindBin::Bin/../kohalib.pl" };
-}
-
-use C4::Context;
-use C4::Search;
-use C4::Circulation;
-use C4::Members;
-use C4::Dates qw/format_date/;
-use HTML::Template::Pro;
-use Mail::Sendmail;
-use Mail::RFC822::Address;
-use C4::SMS;
-use Carp;
-use utf8;
-my ($res,$ua);##variables for SMS
-
-my $date=get_today();
-                       my $dbh = C4::Context->dbh;
-
-
-notifyOverdues();
-
-sub    notifyOverdues {
-       # Look up the overdues for today. 
-       # Capture overdues which fall on our dates of interest.
-
-####################################################################################################
-# Creating a big hash of available templates
-my %email;
-%email->{'template'}='email-2.txt';
-my %sms; 
-%sms->{'template'}='sms-2.txt';
-
-
-my %firstReminder->{'email'} = \%email;
-%firstReminder->{'sms'} = \%sms;
-
-my %email2;
-%email2->{'template'}='email-7.txt';
-my %secondReminder->{'email'} = \%email2;
-my %sms2;  
-%sms2->{'template'}='sms-7.txt';
-%secondReminder->{'sms'} = \%sms2;
-my %letter2;
-%letter2->{'template'}='letter-7.html';
-%secondReminder->{'letter'} = \%letter2;    
-
-
-my %email3;
-%email3->{'template'}='email-29.txt';
-my %sms3;
-%sms3->{'template'}='sms-29.txt';
-my %letter3;
-%letter3->{'template'}='letter-29.html';
-
-my %finalReminder->{'email'} = \%email3;
-%finalReminder->{'letter'} = \%letter3;
-%finalReminder->{'sms'} = \%sms3;
-
-my %actions;
-%actions->{'1'}=\%firstReminder;
-%actions->{'3'}=\%secondReminder;###This was 7 days changed to 3 days
-%actions->{'20'}=\%finalReminder;###This was 29 days changed to 20 days
-
-##################################################################################################################
-my @overdues2;#an array for each actiondate
-my @overdues7;
-my @overdues29;
-my $filename;
-       
-   
-
-        # Retrieve an array of overdues.
-        my ($count, $overduesReference) = Getoverdues();
-        my @overdues=@$overduesReference;
-
-
-       # We're going to build a hash of arrays, containing the items requiring action.
-       # ->borrowernumber, date, @overdues
-       my %actionItems;
-       
-
-        foreach my $overdue (@overdues) {
-                 my $due_day=$overdue->{'date_due'};
-
-                       my $difference=DATE_subtract($date,$due_day);
-               # If does this item fall on a day of interest?
-                               $overdue->{'difference'}=$difference;
-               foreach my $actiondate (keys(%actions)) {
-                       if ($actiondate == $difference) {
-                       $filename='overdues'.$actiondate;
-                               push @$$filename,$overdue;              
-#print "$actiondate,-,$overdue->{borrowernumber}\n";           
-                       }
-                       $actionItems{$actiondate} = \@$$filename;
-               }
-       }
-
-       # We now have a hash containing overdues which need actioning,  we can step through each set. 
-       # Work from earilest to latest. We only wish to send the most urgent message.
-       my %messages; 
-        my %borritem;
-
-    foreach my $actiondate (keys %actions) {
-#              print "\n\nThe following items are $actiondate days overdue.\n";
-               my $items = $actionItems{$actiondate};
-               $filename='overdues'.$actiondate;
-       foreach my $overdue (@$$filename) {
-                               # Detemine which borrower is responsible for this overdue;
-                               # if the offender is a child, then the guarantor is the person to notify
-                               my $borrowernumber=$overdue->{borrowernumber};
-
-                               my $borrower=responsibleBorrower($borrowernumber);
-                               my ($method, $address) = preferedContactMethod($borrower);
-                  if ($method && $address) {   
-                               
-                                       # Do we have to send something, using this method on this day?
-                   if (%actions->{$actiondate}->{$method}->{'template'}) {
-                                               my $intranetdir=C4::Context->config('intranetdir');
-                                               # Template the message
-                                               my $template = HTML::Template::Pro->new(filename => $intranetdir.'/scripts/misc/notifys/templates/'.%actions->{$actiondate}->{$method}->{'template'}, die_on_bad_params => 0);
-                                               my @bookdetails;
-                                                               my %row_data;
-                                        my $item = getiteminformation("", $overdue->{'itemnumber'});
-                                                       $row_data{'BARCODE'}=$item->{'barcode'};
-                               
-                                                      my $title=substr($item->{'title'},0,25)."...";
-
-                               $title=changecharacter($title);
-                                 $row_data{'TITLE'}=$title;
-                                                       $row_data{'DATE_DUE'}=format_date($overdue->{'date_due'});
-                               $row_data{'cardnumber'}=$borrower->{'cardnumber'};
-                                       push(@bookdetails, \%row_data);
-                                               $template->param(BOOKDETAILS => \@bookdetails);                                                         
-                               my $name= "$borrower->{'firstname'} $borrower->{'surname'}"; 
-                               $template->param(NAME=> $name);
-                     %messages->{$borrower->{'borrowernumber'}} = $template->output();
-                       if ($method eq 'email') {
-                       $result = sendEmail($address, 'library@library.neu.edu.tr', 'Overdue Library Items', %messages->{$borrowernumber});
-                       logContact($borrowernumber, $method, $address, $result, %messages->{$borrowernumber});
-                       }
-                       elsif ($method eq 'sms') {
-                       $result = sendSMS($address, %messages->{$borrowernumber});
-                       logContact($borrowernumber, $method, $address, $result, %messages->{$borrowernumber});
-                       }
-                       elsif ($method eq 'letter') {
-                       $result = printLetter($address, %messages->{$borrowernumber});
-                       }                                                       
-                      }##template exists
-               }else{
-               print "$borrowernumber has an overdue item, but no means of contact\n";
-               }##$method              
-
-
-       } #end of 'foreach overdue'
-
-     } # end of foreach actiondate
-}
-
-sub    responsibleBorrower {   
-       # Given an overdue item, return the details of the borrower responible as a hash of database columns.
-       my $borrowernumber=shift;
-
-       if ($borrowernumber) {
-               my $borrower=BorType($borrowernumber);
-               # Overdue books assigned to children have notices sent to the guarantor.        
-               if ($borrower->{'categorycode'} eq 'C') {
-                       my $guarantor=BorType($borrower->{'guarantor'});
-                       $borrower = $guarantor;
-                       }
-       
-               return $borrower;
-       }
-
-}
-
-
-
-
-
-
-
-
-
-sub    preferedContactMethod {
-       # Given a reference to borrower details, in the format
-       # returned by BorType(), determine the prefered contact method, and address to use.
-       my $borrower=$_[0];
-       my $borrcat = getborrowercategoryinfo($borrower->{'categorycode'});
-if(  !$borrcat->{'overduenoticerequired'}){
-return (undef,undef);
-}
-       my $method='';  
-       my $address=''; 
-## if borrower has a phone set that as our preferrred contact
-       if ($borrower->{'phoneday'}) {
-               if (parse_phone($borrower->{phoneday})){
-                               $address = parse_phone($borrower->{phoneday});
-                               $method="sms";
-                               return ($method, $address);
-               }
-       }
-       
-       if (($borrower->{'emailaddress'}) and (Mail::RFC822::Address::valid($borrower->{'emailaddress'}))) {
-                               $address = $borrower->{'emailaddress'};
-               $method="email";
-                               return ($method, $address);
-       }
-                       
-       if ($borrower->{'streetaddress'}) {
-                               $address =  mailingAddress($borrower);
-                       $method = 'letter';     
-       }
-#print "$method, $address\n";
-       return ($method, $address);
-}
-
-
-
-
-
-
-
-
-sub    logContact {
-       # Given the details of an attempt to contact a borrower, 
-       # log them in the attempted_contacts table of the koha database.
-       my ($borrowernumber, $method, $address, $result, $message) = @_;
-
-       my $querystring = "     insert into     attempted_contacts 
-                                               (borrowernumber, method, address, result, message, date) 
-                                               values (?, ?, ?, ?, ?, now())";
-       my $sth= $dbh->prepare($querystring);
-       $sth->execute($borrowernumber, $method, $address, $result, $message);
-       $sth->finish();
-}
-
-
-
-
-
-
-
-
-sub    mailingAddress {
-       # Given a hash of borrower information, such as that returned by BorType, 
-       # return a mailing address. 
-       my $borrower=$_[0];
-
-       my $address =   $borrower->{'firstname'}."\n". 
-                       $borrower->{'streetaddress'}."\n".
-                       $borrower->{'streetcity'};
-
-       return $address;
-}
-
-
-
-sub    sendEmail {
-       # Given an email address, and a subject and message, attempt to send email.
-
-       my $to=$_[0];
-       my $from=$_[1];
-       my $subject=$_[2];
-       my $message=$_[3];
-#    print "in email area";
-
-#      print "\nSending Email To: $to\n$message\n";
-
-       my      %mail = (               To      => $to,
-                                        CC => 'library@library.neu.edu.tr', 
-                                       From    => $from,
-                                        Subject => $subject,
-                                        Message => $message);
-
-                
-       if (not(sendmail %mail)) {       
-carp  "sendEmail to $to failed: " . $Mail::Sendmail::error;
-               return 0;       
-       }
-       
-       return 1;
-}
-
-
-sub    sendSMS {
-my ($phone, $message)=@_;
-($res,$ua)=get_sms_auth() unless $res;
-       # Given a cell number and a message, attempt to send an SMS message.
-my  $sendresult=send_sms($ua,$phone,$message,$res->{pSessionId});
-       my $error=error_codes($sendresult->{pErrCode});
-       return 1 unless $error;
-       return $error;
-}
-
-
-sub    printLetter {
-print "letter\n";
-       # Print a letter
-       # FIXME - decide where to print
-       return 1;
-}
-sub changecharacter {
-my ($string)=@_;
-$_=$string;
-
-s/ş/s/g;
-s/Ş/S/g;
-s/ü/u/g;
-s/Ü/U/g;
-s/ç/c/g;
-s/Ç/C/g;
-s/ö/o/g;
-s/Ö/O/g;
-s/ı/i/g;
-s/İ/I/g;
-s/ğ/g/g;
-s/Ğ/G/g;
-$string=$_;
-return $string;
-}
-$dbh->disconnect();
-