$valid_items was set inside the per-item availability check but used as
the gate of a separate if block, causing it to carry over across loop
iterations. Once any item set it to 1, all subsequent items entered the
if ($valid_items) branch and received $item->{available} = 1 regardless
of their individual availability.
Fix: merge the two consecutive if blocks into one so the pickup-location
logic only executes when the current item individually passes all
availability conditions. $valid_items continues to serve its correct
post-loop role (line 661: none_available_override).
Regression introduced by Bug 38412 (commit
|
||
|---|---|---|
| .. | ||
| hold-group.pl | ||
| modrequest.pl | ||
| modrequest_suspendall.pl | ||
| placerequest.pl | ||
| request.pl | ||