From 882faaf1452838669384ccc58f7b387c41af02c5 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 11 Nov 2008 17:04:03 +0000 Subject: [PATCH] plugged in simplistic hold wait estimate based on configured default wait estimate git-svn-id: svn://svn.open-ils.org/ILS/trunk@11133 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Circ/Holds.pm | 18 ++++++++++++------ Open-ILS/src/perlmods/OpenILS/Const.pm | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm index 48d066ccf8..f87d673942 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm @@ -685,26 +685,32 @@ sub retrieve_hold_queue_status_impl { { target => $hold->target, hold_type => $hold->hold_type, cancel_time => undef, - fulfillment_time => undef + capture_time => undef }, {order_by => {ahr => 'request_time asc'}} ], {idlist => 1} ); - my $pos = 0; + my $qpos = 0; for my $hid (@$hold_ids) { - $pos++; + $qpos++; last if $hid == $hold->id; } my $potentials = $e->search_action_hold_copy_map({hold => $hold->id}, {idlist => 1}); + my $num_potentials = scalar(@$potentials); + + my $user_org = $e->json_query({select => {au => 'home_ou'}, from => 'au', where => {id => $hold->usr}})->[0]->{home_ou}; + my $default_hold_interval = $U->ou_ancestor_setting_value($user_org, OILS_SETTING_HOLD_ESIMATE_WAIT_INTERVAL); + my $estimated_wait = $qpos * ($default_hold_interval / $num_potentials) if $default_hold_interval; return { total_holds => scalar(@$hold_ids), - queue_position => $pos, - potential_copies => scalar(@$potentials), - status => _hold_status($e, $hold) + queue_position => $qpos, + potential_copies => $num_potentials, + status => _hold_status($e, $hold), + estimated_wait => int($estimated_wait) }; } diff --git a/Open-ILS/src/perlmods/OpenILS/Const.pm b/Open-ILS/src/perlmods/OpenILS/Const.pm index 687640b518..358b333d32 100644 --- a/Open-ILS/src/perlmods/OpenILS/Const.pm +++ b/Open-ILS/src/perlmods/OpenILS/Const.pm @@ -82,6 +82,7 @@ econst OILS_SETTING_HOLD_HARD_STALL => 'circ.hold_stalling.hard'; econst OILS_SETTING_HOLD_SOFT_BOUNDARY => 'circ.hold_boundary.soft'; econst OILS_SETTING_HOLD_HARD_BOUNDARY => 'circ.hold_boundary.hard'; econst OILS_SETTING_HOLD_EXPIRE => 'circ.hold_expire_interval'; +econst OILS_SETTING_HOLD_ESIMATE_WAIT_INTERVAL => 'circ.hold_estimate_wait_interval'; -- 2.11.0