Bug 12630: Prioritizing "Hold starts on date" -holds causes all other holds to be prioritized as well!
------------------------- -- REPLICATE LIKE THIS -- ------------------------- 0. Enable AllowHoldDateInFuture-system preference! 1. Select a biblio with some holds. 2. Place a hold with the "Hold starts on date"-attribute set to future. 3. More the specific hold up on the priority queue. 4. Add another normal hold, observe how it is prioritized with the "Hold starts on date"-hold, leaving old holds to the prioritization queue tail. Unfair eh? Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
beb663836b
commit
05ac7e0d4a
1 changed files with 6 additions and 8 deletions
|
@ -224,11 +224,9 @@ sub AddReserve {
|
|||
$found = 'W';
|
||||
}
|
||||
}
|
||||
|
||||
if ( C4::Context->preference('AllowHoldDateInFuture') ) {
|
||||
|
||||
# Make room in reserves for this before those of a later reserve date
|
||||
$priority = _ShiftPriorityByDateAndPriority( $biblionumber, $resdate, $priority );
|
||||
if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) {
|
||||
# Make room in reserves for this before those of a later reserve date
|
||||
$priority = _ShiftPriorityByDateAndPriority( $biblionumber, $priority );
|
||||
}
|
||||
|
||||
my $waitingdate;
|
||||
|
@ -1962,12 +1960,12 @@ the sub accounts for that too.
|
|||
=cut
|
||||
|
||||
sub _ShiftPriorityByDateAndPriority {
|
||||
my ( $biblio, $resdate, $new_priority ) = @_;
|
||||
my ( $biblio, $new_priority ) = @_;
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = "SELECT priority FROM reserves WHERE biblionumber = ? AND ( reservedate > ? OR priority > ? ) ORDER BY priority ASC LIMIT 1";
|
||||
my $query = "SELECT priority FROM reserves WHERE biblionumber = ? AND priority > ? ORDER BY priority ASC LIMIT 1";
|
||||
my $sth = $dbh->prepare( $query );
|
||||
$sth->execute( $biblio, $resdate, $new_priority );
|
||||
$sth->execute( $biblio, $new_priority );
|
||||
my $min_priority = $sth->fetchrow;
|
||||
# if no such matches are found, $new_priority remains as original value
|
||||
$new_priority = $min_priority if ( $min_priority );
|
||||
|
|
Loading…
Reference in a new issue