Lines 931-938
are allowed to be passed to avoid calculating them many times inside loops.
Link Here
|
931 |
|
931 |
|
932 |
sub update_queue_for_biblio { |
932 |
sub update_queue_for_biblio { |
933 |
my ($args) = @_; |
933 |
my ($args) = @_; |
934 |
|
|
|
935 |
my $biblio_id = $args->{biblio_id}; |
934 |
my $biblio_id = $args->{biblio_id}; |
|
|
935 |
my $result; |
936 |
|
937 |
# We need to empty the queue for this biblio unless CreateQueue has emptied the entire queue for rebuilding |
938 |
if ( $args->{delete} ) { |
939 |
my $dbh = C4::Context->dbh; |
940 |
|
941 |
$dbh->do("DELETE FROM tmp_holdsqueue WHERE biblionumber=$biblio_id"); |
942 |
$dbh->do("DELETE FROM hold_fill_targets WHERE biblionumber=$biblio_id"); |
943 |
} |
944 |
|
945 |
my $hold_requests = GetPendingHoldRequestsForBib($biblio_id); |
946 |
$result->{requests} = scalar( @{$hold_requests} ); |
947 |
# No need to check anything else if there are no holds to fill |
948 |
return $result unless $result->{requests}; |
936 |
|
949 |
|
937 |
my $branches_to_use = $args->{branches_to_use} // load_branches_to_pull_from( C4::Context->preference('UseTransportCostMatrix') ); |
950 |
my $branches_to_use = $args->{branches_to_use} // load_branches_to_pull_from( C4::Context->preference('UseTransportCostMatrix') ); |
938 |
my $transport_cost_matrix; |
951 |
my $transport_cost_matrix; |
Lines 944-963
sub update_queue_for_biblio {
Link Here
|
944 |
$transport_cost_matrix = $args->{transport_cost_matrix}; |
957 |
$transport_cost_matrix = $args->{transport_cost_matrix}; |
945 |
} |
958 |
} |
946 |
|
959 |
|
947 |
if ( $args->{delete} ) { |
|
|
948 |
my $dbh = C4::Context->dbh; |
949 |
|
950 |
$dbh->do("DELETE FROM tmp_holdsqueue WHERE biblionumber=$biblio_id"); |
951 |
$dbh->do("DELETE FROM hold_fill_targets WHERE biblionumber=$biblio_id"); |
952 |
} |
953 |
|
954 |
my $hold_requests = GetPendingHoldRequestsForBib($biblio_id); |
955 |
my $available_items = GetItemsAvailableToFillHoldRequestsForBib( $biblio_id, $branches_to_use ); |
960 |
my $available_items = GetItemsAvailableToFillHoldRequestsForBib( $biblio_id, $branches_to_use ); |
956 |
|
961 |
|
957 |
my $result = { |
962 |
$result->{available_items} = scalar( @{$available_items} ); |
958 |
requests => scalar( @{$hold_requests} ), |
|
|
959 |
available_items => scalar( @{$available_items} ), |
960 |
}; |
961 |
|
963 |
|
962 |
my $item_map = MapItemsToHoldRequests( $hold_requests, $available_items, $branches_to_use, $transport_cost_matrix ); |
964 |
my $item_map = MapItemsToHoldRequests( $hold_requests, $available_items, $branches_to_use, $transport_cost_matrix ); |
963 |
$result->{mapped_items} = scalar( keys %{$item_map} ); |
965 |
$result->{mapped_items} = scalar( keys %{$item_map} ); |
964 |
- |
|
|