Lines 585-608
sub MapItemsToHoldRequests {
Link Here
|
585 |
} else { |
585 |
} else { |
586 |
$pull_branches = [keys %items_by_branch]; |
586 |
$pull_branches = [keys %items_by_branch]; |
587 |
} |
587 |
} |
|
|
588 |
$holdingbranch ||= $pull_branches->[0]; # We set this as the first from the list of pull branches |
589 |
# unless we set it above to the pickupbranch or the least cost branch |
590 |
# FIXME: The itention is to follow StaticHoldsQueueWeight, but we don't check that pref |
588 |
|
591 |
|
589 |
# Try picking items where the home and pickup branch match first |
592 |
# Try picking items where the home and pickup branch match first |
590 |
PULL_BRANCHES: |
|
|
591 |
foreach my $branch (@$pull_branches) { |
593 |
foreach my $branch (@$pull_branches) { |
592 |
my $holding_branch_items = $items_by_branch{$branch} |
594 |
my $holding_branch_items = $items_by_branch{$branch} |
593 |
or next; |
595 |
or next; |
594 |
|
596 |
|
595 |
$holdingbranch ||= $branch; # We set this as the first from the list of pull branches |
|
|
596 |
# unless we set it above to the pickupbranch or the least cost branch |
597 |
# FIXME: The itention is to follow StaticHoldsQueueWeight, but we don't check that pref |
598 |
foreach my $item (@$holding_branch_items) { |
597 |
foreach my $item (@$holding_branch_items) { |
599 |
next if $pickup_branch ne $item->{homebranch}; |
598 |
if ( $pickup_branch eq $item->{homebranch} |
600 |
next unless _can_item_fill_request( $item, $request, $libraries ); |
599 |
&& _can_item_fill_request( $item, $request, $libraries ) ) |
601 |
|
600 |
{ |
602 |
$itemnumber = $item->{itemnumber}; |
601 |
$itemnumber = $item->{itemnumber}; |
603 |
$holdingbranch = $branch; |
602 |
$holdingbranch = $branch; |
604 |
last PULL_BRANCHES; |
603 |
last; |
|
|
604 |
} |
605 |
} |
605 |
} |
|
|
606 |
last if $itemnumber; |
606 |
} |
607 |
} |
607 |
|
608 |
|
608 |
# Now try items from the least cost branch based on the transport cost matrix or StaticHoldsQueueWeight |
609 |
# Now try items from the least cost branch based on the transport cost matrix or StaticHoldsQueueWeight |
Lines 617-635
sub MapItemsToHoldRequests {
Link Here
|
617 |
|
618 |
|
618 |
# Now try for items for any item that can fill this hold |
619 |
# Now try for items for any item that can fill this hold |
619 |
unless ( $itemnumber ) { |
620 |
unless ( $itemnumber ) { |
620 |
PULL_BRANCHES2: |
|
|
621 |
foreach my $branch (@$pull_branches) { |
621 |
foreach my $branch (@$pull_branches) { |
622 |
my $holding_branch_items = $items_by_branch{$branch} |
622 |
my $holding_branch_items = $items_by_branch{$branch} |
623 |
or next; |
623 |
or next; |
624 |
|
624 |
|
625 |
foreach my $item (@$holding_branch_items) { |
625 |
foreach my $item (@$holding_branch_items) { |
626 |
|
626 |
if( _can_item_fill_request( $item, $request, $libraries ) ){ |
627 |
next unless _can_item_fill_request( $item, $request, $libraries ); |
627 |
$itemnumber = $item->{itemnumber}; |
628 |
|
628 |
$holdingbranch = $branch; |
629 |
$itemnumber = $item->{itemnumber}; |
629 |
last; |
630 |
$holdingbranch = $branch; |
630 |
} |
631 |
last PULL_BRANCHES2; |
|
|
632 |
} |
631 |
} |
|
|
632 |
last if $itemnumber; |
633 |
} |
633 |
} |
634 |
} |
634 |
} |
635 |
} |
635 |
} |
636 |
- |
|
|