View | Details | Raw Unified | Return to bug 40529
Collapse All | Expand All

(-)a/Koha/HoldGroup.pm (-2 / +2 lines)
Lines 116-127 sub skip_non_target_holds_query { Link Here
116
                -and => { '!=' => undef },
116
                -and => { '!=' => undef },
117
                {
117
                {
118
                    -not_in => \
118
                    -not_in => \
119
                        'SELECT hold_group_id FROM hold_group_target_holds WHERE reserve_id IS NOT NULL AND hold_group_id IS NOT NULL'
119
                        'SELECT hold_group_id FROM hold_group_target_holds WHERE reserve_id IS NOT NULL AND reserve_id != me.reserve_id'
120
                }
120
                }
121
            ]
121
            ]
122
        ],
122
        ],
123
        'sql' =>
123
        'sql' =>
124
            'AND (hold_group_id IS NULL OR hold_group_id IS NOT NULL AND reserves.hold_group_id NOT IN (SELECT hold_group_id FROM hold_group_target_holds WHERE reserve_id IS NOT NULL AND hold_group_id IS NOT NULL))'
124
            'AND (hold_group_id IS NULL OR reserves.hold_group_id NOT IN (SELECT hold_group_id FROM hold_group_target_holds WHERE reserve_id IS NOT NULL AND reserve_id != reserves.reserve_id))'
125
    };
125
    };
126
126
127
    return unless $query_type && exists $query_types->{$query_type};
127
    return unless $query_type && exists $query_types->{$query_type};
(-)a/t/db_dependent/Koha/Hold.t (-2 / +34 lines)
Lines 1389-1395 subtest 'is_hold_group_target, cleanup_hold_group and set_as_hold_group_target t Link Here
1389
};
1389
};
1390
1390
1391
subtest '_Findgroupreserve in the context of hold groups' => sub {
1391
subtest '_Findgroupreserve in the context of hold groups' => sub {
1392
    plan tests => 13;
1392
    plan tests => 17;
1393
1393
1394
    $schema->storage->txn_begin;
1394
    $schema->storage->txn_begin;
1395
1395
Lines 1461-1466 subtest '_Findgroupreserve in the context of hold groups' => sub { Link Here
1461
        }
1461
        }
1462
    );
1462
    );
1463
1463
1464
    my $reserve_4_id = AddReserve(
1465
        {
1466
            branchcode     => $library_2->{branchcode},
1467
            borrowernumber => $patron_2->borrowernumber,
1468
            biblionumber   => $item->biblionumber,
1469
            priority       => 2,
1470
        }
1471
    );
1472
1464
    my @reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
1473
    my @reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
1465
    is( scalar @reserves,           2,             "No hold group created yet. We should get both holds" );
1474
    is( scalar @reserves,           2,             "No hold group created yet. We should get both holds" );
1466
    is( $reserves[0]->{reserve_id}, $reserve_2_id, "We got the expected reserve" );
1475
    is( $reserves[0]->{reserve_id}, $reserve_2_id, "We got the expected reserve" );
Lines 1481-1486 subtest '_Findgroupreserve in the context of hold groups' => sub { Link Here
1481
1490
1482
    is( $hold->is_hold_group_target, 1, 'First hold is the hold group target' );
1491
    is( $hold->is_hold_group_target, 1, 'First hold is the hold group target' );
1483
1492
1493
    my @reserves_with_target_hold = C4::Reserves::_Findgroupreserve( $item->biblionumber, $item->id, 0, [] );
1494
1495
    is(
1496
        $reserves_with_target_hold[0]->{hold_group_id}, $new_hold_group->hold_group_id,
1497
        'First eligible hold is part of a hold group'
1498
    );
1499
1500
    my $target_hold = Koha::Holds->find( $reserves_with_target_hold[0]->{reserve_id} );
1501
1502
    is(
1503
        $target_hold->is_hold_group_target, 1,
1504
        'First eligible hold is the hold group target'
1505
    );
1506
1507
    is(
1508
        $reserves_with_target_hold[1]->{hold_group_id}, undef,
1509
        'Second eligible hold is not part of a hold group'
1510
    );
1511
1512
    is(
1513
        $reserves_with_target_hold[1]->{reserve_id}, $reserve_4_id,
1514
        'Second eligible hold is reserve_4'
1515
    );
1516
1484
    my @new_reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
1517
    my @new_reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
1485
    is( scalar @new_reserves, 1, "reserve_2_id is now part of a group that has a target. Should not be here." );
1518
    is( scalar @new_reserves, 1, "reserve_2_id is now part of a group that has a target. Should not be here." );
1486
    is(
1519
    is(
1487
- 

Return to bug 40529