Bugzilla – Attachment 24898 Details for
Bug 8735
Expire holds waiting only on days the library is open
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8735 - Expire holds waiting only on days the library is open
Bug-8735---Expire-holds-waiting-only-on-days-the-l.patch (text/plain), 5.29 KB, created by
Kyle M Hall (khall)
on 2014-01-30 17:01:29 UTC
(
hide
)
Description:
Bug 8735 - Expire holds waiting only on days the library is open
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2014-01-30 17:01:29 UTC
Size:
5.29 KB
patch
obsolete
>From ea3a9da4ef500fe6bbf84130ddaabb2eb94a89e0 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Thu, 6 Sep 2012 11:15:21 -0400 >Subject: [PATCH] Bug 8735 - Expire holds waiting only on days the library is open > >Signed-off-by: Leila <koha.aixmarseille@gmail.com> >--- > C4/Reserves.pm | 24 ++++++++++++++++--- > installer/data/mysql/sysprefs.sql | 1 + > installer/data/mysql/updatedatabase.pl | 7 +++++ > .../en/modules/admin/preferences/circulation.pref | 6 +++++ > 4 files changed, 34 insertions(+), 4 deletions(-) > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index 8fe0fd0..dc1ee7e 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -36,6 +36,7 @@ use C4::Members qw(); > use C4::Letters; > use C4::Branch qw( GetBranchDetail ); > use C4::Dates qw( format_date_in_iso ); >+use C4::Calendar; > > use Koha::DateUtils; > >@@ -971,17 +972,32 @@ sub CancelExpiredReserves { > if ( C4::Context->preference("ExpireReservesMaxPickUpDelay") ) { > my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); > my $charge = C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); >+ my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); >+ >+ my $today = C4::Dates->new(); > > my $query = "SELECT * FROM reserves WHERE TO_DAYS( NOW() ) - TO_DAYS( waitingdate ) > ? AND found = 'W' AND priority = 0"; > $sth = $dbh->prepare( $query ); > $sth->execute( $max_pickup_delay ); > >- while (my $res = $sth->fetchrow_hashref ) { >- if ( $charge ) { >- manualinvoice($res->{'borrowernumber'}, $res->{'itemnumber'}, 'Hold waiting too long', 'F', $charge); >+ while ( my $res = $sth->fetchrow_hashref ) { >+ my $do_cancel = 1; >+ unless ( $cancel_on_holidays ) { >+ my $calendar = C4::Calendar->new( branchcode => $res->{'branchcode'} ); >+ my $is_holiday = $calendar->isHoliday( split( '/', $today->output('metric') ) ); >+ >+ if ( $is_holiday ) { >+ $do_cancel = 0; >+ } > } > >- CancelReserve({ reserve_id => $res->{'reserve_id'} }); >+ if ( $do_cancel ) { >+ if ( $charge ) { >+ manualinvoice($res->{'borrowernumber'}, $res->{'itemnumber'}, 'Hold waiting too long', 'F', $charge); >+ } >+ >+ CancelReserve({ reserve_id => $res->{'reserve_id'} }); >+ } > } > } > >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 1668d37..89833f6 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -108,6 +108,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('expandedSearchOption','0',NULL,'If ON, set advanced search to be expanded by default','YesNo'), > ('ExpireReservesMaxPickUpDelay','0','','Enabling this allows holds to expire automatically if they have not been picked by within the time period specified in ReservesMaxPickUpDelay','YesNo'), > ('ExpireReservesMaxPickUpDelayCharge','0',NULL,'If ExpireReservesMaxPickUpDelay is enabled, and this field has a non-zero value, than a borrower whose waiting hold has expired will be charged this amount.','free'), >+('ExpireReservesOnHolidays', '1', NULL, 'If false, reserves at a library will not be canceled on days the library is not open.', 'YesNo'), > ('ExtendedPatronAttributes','0',NULL,'Use extended patron IDs and attributes','YesNo'), > ('FacetLabelTruncationLength','20',NULL,'Specify the facet max length in OPAC','Integer'), > ('FilterBeforeOverdueReport','0','','Do not run overdue report until filter selected','YesNo'), >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f98daa7..b1d0359 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -7945,6 +7945,13 @@ if (CheckVersion($DBversion)) { > SetVersion($DBversion); > } > >+$DBversion = "3.15.00.XXX"; >+if(C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('ExpireReservesOnHolidays', '1', NULL, 'If false, reserves at a library will not be canceled on days the library is not open.', 'YesNo')"); >+ print "Upgrade to $DBversion done (Add syspref ExpireReservesOnHolidays\n"; >+ SetVersion ($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index 33ae4c9..24e8839 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -479,6 +479,12 @@ Circulation: > no: "Don't allow" > - holds to be suspended from the OPAC. > - >+ - pref: ExpireReservesOnHolidays >+ choices: >+ yes: Allow >+ no: "Don't allow" >+ - expired holds to be canceled on days the library is closed.. >+ - > - pref: decreaseLoanHighHolds > choices: > yes: Enable >-- >1.7.2.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 8735
:
12019
|
12020
|
13364
|
13365
|
15074
|
15075
|
15096
|
15097
|
15098
|
16508
|
17625
|
17892
|
17893
|
24598
|
24599
|
24898
|
24899
|
27268
|
28660
|
28661
|
28662
|
28663
|
30395
|
30396
|
30397
|
30398
|
30399
|
30400
|
30401
|
30402