[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/misc/cronjobs reservefix.pl,NONE,1.1
From: |
Joshua Ferraro |
Subject: |
[Koha-cvs] CVS: koha/misc/cronjobs reservefix.pl,NONE,1.1 |
Date: |
Wed, 04 May 2005 06:58:38 -0700 |
Update of /cvsroot/koha/koha/misc/cronjobs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1227
Added Files:
reservefix.pl
Log Message:
Fixes priority of reserves it also e-mails a list of 'problem' reserves to me
at the library
--- NEW FILE ---
#!/usr/bin/perl -w
#-----------------------------------
# Script Name: reservefix.pl
# Script Version: 1.0.0
# Date: 2004/02/22
# Author: Stephen Hedges address@hidden
# Description: fixes priority of reserves
# It also e-mails a list of 'problem' reserves
# to me at the library
# Usage: reservefix.pl.
# Revision History:
# 1.0.0 2004/02/22: original version
#-----------------------------------
use lib '/usr/local/koha/intranet/modules/';
use strict;
use C4::Context;
use Date::Manip;
use Mail::Sendmail;
my $dbh = C4::Context->dbh;
my $message; # e-mail message
my $admin = "address@hidden"; #To
my @library = "address@hidden"; #From
# get biblionumbers of unfilled reserves
my $bibnos_sth=$dbh->prepare("SELECT DISTINCT biblionumber FROM reserves WHERE
cancellationdate IS NULL AND found IS NULL AND priority>0");
my $get_sth=$dbh->prepare("SELECT * FROM reserves WHERE biblionumber=? AND
cancellationdate IS NULL AND found IS NULL ORDER BY reservedate,priority");
# checking reservedate avoids overwriting legitimate duplicate reserves
my $put_sth=$dbh->prepare("UPDATE reserves SET priority=? WHERE biblionumber=?
AND borrowernumber=? AND reservedate=?");
my $count_sth=$dbh->prepare("SELECT COUNT(itemnumber) FROM items WHERE
biblionumber=?");
my $dvd_sth=$dbh->prepare("SELECT itemtype FROM biblioitems WHERE
biblionumber=?");
$bibnos_sth->execute();
while (my $number=$bibnos_sth->fetchrow_arrayref) {
my $bibliono=$number->[0];
$get_sth->execute($bibliono);
my $priority=0;
while (my $data=$get_sth->fetchrow_hashref){
$priority++;
my $bibno = $data->{'biblionumber'};
my $borrno = $data->{'borrowernumber'};
my $resdate = $data->{'reservedate'};
if ($priority==1) {
my $date1 = DateCalc("today","- 60 days"); # calculate date 60 days
ago
my $date2 = ParseDate($resdate);
my $flag = Date_Cmp($date2,$date1);
if ($flag<0) { # date1 is later
$dvd_sth->execute($bibno);
while (my $itemtype=$dvd_sth->fetchrow_arrayref) {
my $it = $itemtype->[0];
if ($it) {
if ($it ne 'DVD') {
$message .= "Check $bibno\n";
# print "Check $bibno\n";
}
} else {
$message .= "$bibno has no itemtype\n";
# print "$bibno has no itemtype\n";
}
}
$dvd_sth->finish;
}
}
$put_sth->execute($priority,$bibno,$borrno,$resdate);
$put_sth->finish;
}
$count_sth->execute($bibliono); # get item count
my $itemcount=$count_sth->fetchrow;
if (($priority/4)>$itemcount) { # no more than 4 reserves per item
$dvd_sth->execute($bibliono);
while (my $itemtype=$dvd_sth->fetchrow_arrayref) {
my $it = $itemtype->[0];
if ($it) {
if ($it ne 'DVD') {
$message .= "Check $bibliono\n";
# print "Check $bibliono\n";
}
} else {
$message .= "$bibliono has no itemtype\n"
# print "$bibliono has no itemtype\n";
}
}
$dvd_sth->finish;
}
$count_sth->finish;
$get_sth->finish;
}
$bibnos_sth->finish;
$dbh->disconnect;
my %mail = ( To => '$admin',
From => '$library',
Subject => 'Reserve problems',
Message => $message,
);
sendmail(%mail);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/misc/cronjobs reservefix.pl,NONE,1.1,
Joshua Ferraro <=