Bugzilla – Attachment 13163 Details for
Bug 5490
Is smsoverdues.pl an orphan
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 5490: smsoverdues.pl is an orphan
Bug-5490-smsoverduespl-is-an-orphan.patch (text/plain), 11.27 KB, created by
Jared Camins-Esakov
on 2012-10-31 23:27:37 UTC
(
hide
)
Description:
Bug 5490: smsoverdues.pl is an orphan
Filename:
MIME Type:
Creator:
Jared Camins-Esakov
Created:
2012-10-31 23:27:37 UTC
Size:
11.27 KB
patch
obsolete
>From fc48f71f1367c28986fb2a4e1bf13e0fd25fdf9a Mon Sep 17 00:00:00 2001 >From: Jared Camins-Esakov <jcamins@cpbibliography.com> >Date: Wed, 31 Oct 2012 19:23:35 -0400 >Subject: [PATCH] Bug 5490: smsoverdues.pl is an orphan > >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. >--- > misc/cronjobs/smsoverdues.pl | 360 ------------------------------------------ > 1 file changed, 360 deletions(-) > delete mode 100755 misc/cronjobs/smsoverdues.pl > >diff --git a/misc/cronjobs/smsoverdues.pl b/misc/cronjobs/smsoverdues.pl >deleted file mode 100755 >index 6415eb6..0000000 >--- a/misc/cronjobs/smsoverdues.pl >+++ /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(); >- >-- >1.7.9.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 5490
:
13163
|
13337