From: miker Date: Tue, 28 Aug 2007 17:38:04 +0000 (+0000) Subject: changing from prox to depth for nearest hold stalling X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=02c9eb91e7d3bd8318042d32d8a471011cb73fe4;p=Evergreen.git changing from prox to depth for nearest hold stalling git-svn-id: svn://svn.open-ils.org/ILS/trunk@7727 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm index 04f04eacca..f2d830712d 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm @@ -183,17 +183,22 @@ sub nearest_hold { my $pl = shift; my $cp = shift; my $limit = int(shift()) || 10; - my $age = shift() || '0'; - my $prox = shift() || 0; + my $age = shift() || '0 seconds'; + my $depth = shift; - my $ids = action::hold_request->db_Main->selectcol_arrayref(<<" SQL", {}, $cp, $pl, $age, $prox); + my $descendents = + defined($depth) ? + "actor.org_unit_descendants($pl, $depth)" : + "actor.org_unit_descendants($pl)" ; + + my $ids = action::hold_request->db_Main->selectcol_arrayref(<<" SQL", {}, $cp, $age); SELECT h.id FROM action.hold_request h JOIN action.hold_copy_map hm ON (hm.hold = h.id) - JOIN actor.org_unit_proximity p ON (p.from_org = h.pickup_lib) + JOIN $descendents d ON (d.id = h.pickup_lib) + JOIN actor.org_unit_proximity p ON (p.from_org = d.id AND p.to_org = h.pickup_lib) WHERE hm.target_copy = ? - AND p.to_org = ? - AND (h.request_time + ? < NOW() OR p.prox <= ?) + AND AGE(NOW(),h.request_time) >= CAST(? AS INTERVAL) AND h.capture_time IS NULL AND h.cancel_time IS NULL ORDER BY