From 61dc9a985d767e1bb49d11a5c7e8bd6a66c07341 Mon Sep 17 00:00:00 2001 From: Lebbeous Fogle-Weekley Date: Thu, 29 Nov 2012 17:04:00 -0500 Subject: [PATCH] Effectively FF r145 Signed-off-by: Lebbeous Fogle-Weekley --- Open-ILS/examples/fm_IDL.xml | 1 + .../lib/OpenILS/Application/Storage/CDBI/action.pm | 2 +- .../lib/OpenILS/Application/Storage/Publisher/action.pm | 5 +++-- .../lib/OpenILS/Application/Storage/Publisher/asset.pm | 17 +++++++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 32e1529728..efa3896e8e 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -4049,6 +4049,7 @@ SELECT usr, + diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/action.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/action.pm index 48686643f3..c79371057d 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/action.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/action.pm @@ -114,7 +114,7 @@ package action::hold_copy_map; use base qw/action/; __PACKAGE__->table('action_hold_copy_map'); __PACKAGE__->columns(Primary => 'id'); -__PACKAGE__->columns(Essential => qw/hold target_copy/); +__PACKAGE__->columns(Essential => qw/hold target_copy proximity/); #------------------------------------------------------------------------------- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm index 4101309eae..536cdb1e6f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm @@ -1483,7 +1483,7 @@ sub new_hold_copy_targeter { } } - $prox_list = create_prox_list( $self, $pu_lib, $all_copies ); + $prox_list = create_prox_list( $self, $pu_lib, $all_copies, $hold ); $client->status( new OpenSRF::DomainObject::oilsContinueStatus ); @@ -1970,12 +1970,13 @@ sub create_prox_list { my $self = shift; my $lib = shift; my $copies = shift; + my $hold = shift; my $actor = OpenSRF::AppSession->create('open-ils.actor'); my @prox_list; for my $cp (@$copies) { - my ($prox) = $self->method_lookup('open-ils.storage.asset.copy.proximity')->run( $cp, $lib ); + my ($prox) = $self->method_lookup('open-ils.storage.asset.copy.proximity')->run( $cp, $lib, $hold ); next unless (defined($prox)); my $copy_circ_lib = ''.$cp->circ_lib; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm index 42fb89161f..5cbb60738a 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm @@ -397,9 +397,26 @@ sub copy_proximity { my $cp = shift; my $org = shift; + my $hold = shift; return unless ($cp && $org); + if ($hold) { + my $prox = action::hold_request->db_Main->selectrow_hashref( + 'SELECT proximity AS prox FROM action.hold_copy_map WHERE hold = ? and target_copy = ?', + {}, + "$hold", + "$cp" + )->{prox} || action::hold_request->db_Main->selectrow_hashref( + 'SELECT action.hold_copy_calculated_proximity(?,?,?) AS prox', + {}, + "$hold", + "$cp", + "$org" + )->{prox}; + return int($prox * 100.0); + } + $cp = asset::copy->retrieve($cp) unless (ref($cp)); return unless $cp; -- 2.11.0