* export C4::Reserves::CancelExpiredReserves * rename misc/cronjobs/cancel_expired_reserves.pl to misc/cronjobs/holds/cancel_expired_holds.pl * added cancel_expired_holds.pl to example crontab * fix staff crash if AllowHoldDateInFuture is on * expirationdate is now nullable instead of relying on 0000-00-00
Signed-off-by: Galen Charlton <[email protected]> --- C4/Reserves.pm | 18 +++++++----- misc/cronjobs/cancel_expired_reserves.pl | 39 --------------------------- misc/cronjobs/crontab.example | 3 ++ misc/cronjobs/holds/cancel_expired_holds.pl | 31 +++++++++++++++++++++ opac/opac-reserve.pl | 6 ++-- reserve/request.pl | 5 ++- 6 files changed, 51 insertions(+), 51 deletions(-) delete mode 100755 misc/cronjobs/cancel_expired_reserves.pl create mode 100755 misc/cronjobs/holds/cancel_expired_holds.pl diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 668117e..fae352c 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -113,6 +113,7 @@ BEGIN { &CanBookBeReserved &CanItemBeReserved &CancelReserve + &CancelExpiredReserves &IsAvailableForItemLevelRequest @@ -849,13 +850,16 @@ sub CheckReserves { sub CancelExpiredReserves { - my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare( "SELECT * FROM reserves WHERE DATE(expirationdate) < DATE( CURDATE() ) AND expirationdate != '0000-00-00'" ); - $sth->execute(); + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare( " + SELECT * FROM reserves WHERE DATE(expirationdate) < DATE( CURDATE() ) + AND expirationdate IS NOT NULL + " ); + $sth->execute(); - while ( my $res = $sth->fetchrow_hashref() ) { - CancelReserve( $res->{'biblionumber'}, '', $res->{'borrowernumber'} ); - } + while ( my $res = $sth->fetchrow_hashref() ) { + CancelReserve( $res->{'biblionumber'}, '', $res->{'borrowernumber'} ); + } } diff --git a/misc/cronjobs/cancel_expired_reserves.pl b/misc/cronjobs/cancel_expired_reserves.pl deleted file mode 100755 index 41a810e..0000000 --- a/misc/cronjobs/cancel_expired_reserves.pl +++ /dev/null @@ -1,39 +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., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - -# $Id: sendoverdues.pl,v 1.1.2.1 2007/03/26 22:38:09 tgarip1957 Exp $ - -BEGIN { - # find Koha's Perl modules - # test carefully before changing this - use FindBin; - eval { require "$FindBin::Bin/../kohalib.pl" }; -} - -use C4::Reserves; - -CancelExpiredReserves(); \ No newline at end of file diff --git a/misc/cronjobs/crontab.example b/misc/cronjobs/crontab.example index bdb58f7..33845a8 100644 --- a/misc/cronjobs/crontab.example +++ b/misc/cronjobs/crontab.example @@ -64,6 +64,9 @@ KOHA_CRON_PATH = /home/liblime/kohaclone/misc/cronjobs # Hourly holds queue updated 52 * * * * $KOHA_CRON_PATH/holds/build_holds_queue.pl >/dev/null 2>&1 +# Cancel expired holds +0 1 * * * $KOHA_CRON_PATH/holds/cancel_expired_holds.pl >/dev/null 2>&1 + # ZEBRA INDEX UPDATES with -z option, incremental index updates throughout the day # for both authorities and bibs */10 * * * * $KOHA_CRON_PATH/../migration_tools/rebuild_zebra.pl -b -a -z >/dev/null diff --git a/misc/cronjobs/holds/cancel_expired_holds.pl b/misc/cronjobs/holds/cancel_expired_holds.pl new file mode 100755 index 0000000..4b5cf8c --- /dev/null +++ b/misc/cronjobs/holds/cancel_expired_holds.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +# Copyright 2009-2010 Kyle Hall +# +# 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., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +BEGIN { + # find Koha's Perl modules + # test carefully before changing this + use FindBin; + eval { require "$FindBin::Bin/../kohalib.pl" }; +} + +# cancel all expired hold requests + +use C4::Reserves; + +CancelExpiredReserves(); diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 499f9cb..d5d39db 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -294,7 +294,6 @@ $template->param('item-level_itypes' => $itemLevelTypes); foreach my $biblioNum (@biblionumbers) { my $record = GetMarcBiblio($biblioNum); - my $subtitle = C4::Biblio::get_koha_field_from_marc('bibliosubtitle', 'subtitle', $record, ''); # Init the bib item with the choices for branch pickup my %biblioLoopIter = ( branchChoicesLoop => $CGIbranchloop ); @@ -307,7 +306,7 @@ foreach my $biblioNum (@biblionumbers) { $biblioLoopIter{biblionumber} = $biblioData->{biblionumber}; $biblioLoopIter{title} = $biblioData->{title}; - $biblioLoopIter{subtitle} = $subtitle; + $biblioLoopIter{subtitle} = GetRecordValue('subtitle', $record, GetFrameworkCode($biblioData->{biblionumber})); $biblioLoopIter{author} = $biblioData->{author}; $biblioLoopIter{rank} = $biblioData->{rank}; $biblioLoopIter{reservecount} = $biblioData->{reservecount}; @@ -489,9 +488,10 @@ if ( ) { $template->param( reserve_in_future => 1, - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); } +$template->param( DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar() ); + output_html_with_http_headers $query, $cookie, $template->output; diff --git a/reserve/request.pl b/reserve/request.pl index 561bb5a..17c83a9 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -509,7 +509,8 @@ foreach my $biblionumber (@biblionumbers) { $reserve{'hidename'} = 1; $reserve{'cardnumber'} = $reserveborrowerinfo->{'cardnumber'}; } - $reserve{'expirationdate'} = format_date( $res->{'expirationdate'} ) unless ( $res->{'expirationdate'} eq '0000-00-00' ); + $reserve{'expirationdate'} = format_date( $res->{'expirationdate'} ) + unless ( !defined($res->{'expirationdate'}) || $res->{'expirationdate'} eq '0000-00-00' ); $reserve{'date'} = format_date( $res->{'reservedate'} ); $reserve{'borrowernumber'} = $res->{'borrowernumber'}; $reserve{'biblionumber'} = $res->{'biblionumber'}; @@ -585,7 +586,7 @@ if ($multihold) { } if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) { - template->param( reserve_in_future => 1 ); + $template->param( reserve_in_future => 1 ); } # printout the page -- 1.6.3.3 _______________________________________________ Koha-patches mailing list [email protected] http://lists.koha.org/mailman/listinfo/koha-patches
