[open-ils-commits] r14105 - trunk/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher (erickson)
svn at svn.open-ils.org
svn at svn.open-ils.org
Tue Sep 22 17:15:49 EDT 2009
Author: erickson
Date: 2009-09-22 17:15:44 -0400 (Tue, 22 Sep 2009)
New Revision: 14105
Modified:
trunk/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm
Log:
When a hold has expired waiting for a copy to become available and is subsequently cancelled, set the cancel cause value and tell the notification innards to react as necessary (e.g. send the patron an email)
Modified: trunk/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm 2009-09-22 21:09:46 UTC (rev 14104)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm 2009-09-22 21:15:44 UTC (rev 14105)
@@ -896,8 +896,17 @@
if ($hold->expire_time) {
my $ex_time = $parser->parse_datetime( clense_ISO8601( $hold->expire_time ) );
if ( DateTime->compare($ex_time, DateTime->now) < 0 ) {
- $hold->update( { cancel_time => 'now' } );
+
+ # cancel cause = un-targeted expiration
+ $hold->update( { cancel_time => 'now', cancel_cause => 1 } );
$self->method_lookup('open-ils.storage.transaction.commit')->run;
+
+ # tell A/T the hold was cancelled
+ my $fm_hold = $hold->to_fieldmapper;
+ my $ses = OpenSRF::AppSession->create('open-ils.trigger');
+ $ses->request('open-ils.trigger.event.autocreate',
+ 'hold_request.cancel.expire_no_target', $fm_hold, $fm_hold->pickup_lib);
+
die "OK\n";
}
}
More information about the open-ils-commits
mailing list