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 1977-1983 subtest 'is_hold_group_target, cleanup_hold_group and set_as_hold_group_target t Link Here
1977
};
1977
};
1978
1978
1979
subtest '_Findgroupreserve in the context of hold groups' => sub {
1979
subtest '_Findgroupreserve in the context of hold groups' => sub {
1980
    plan tests => 13;
1980
    plan tests => 17;
1981
1981
1982
    $schema->storage->txn_begin;
1982
    $schema->storage->txn_begin;
1983
1983
Lines 2049-2054 subtest '_Findgroupreserve in the context of hold groups' => sub { Link Here
2049
        }
2049
        }
2050
    );
2050
    );
2051
2051
2052
    my $reserve_4_id = AddReserve(
2053
        {
2054
            branchcode     => $library_2->{branchcode},
2055
            borrowernumber => $patron_2->borrowernumber,
2056
            biblionumber   => $item->biblionumber,
2057
            priority       => 2,
2058
        }
2059
    );
2060
2052
    my @reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
2061
    my @reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
2053
    is( scalar @reserves,           2,             "No hold group created yet. We should get both holds" );
2062
    is( scalar @reserves,           2,             "No hold group created yet. We should get both holds" );
2054
    is( $reserves[0]->{reserve_id}, $reserve_2_id, "We got the expected reserve" );
2063
    is( $reserves[0]->{reserve_id}, $reserve_2_id, "We got the expected reserve" );
Lines 2069-2074 subtest '_Findgroupreserve in the context of hold groups' => sub { Link Here
2069
2078
2070
    is( $hold->is_hold_group_target, 1, 'First hold is the hold group target' );
2079
    is( $hold->is_hold_group_target, 1, 'First hold is the hold group target' );
2071
2080
2081
    my @reserves_with_target_hold = C4::Reserves::_Findgroupreserve( $item->biblionumber, $item->id, 0, [] );
2082
2083
    is(
2084
        $reserves_with_target_hold[0]->{hold_group_id}, $new_hold_group->hold_group_id,
2085
        'First eligible hold is part of a hold group'
2086
    );
2087
2088
    my $target_hold = Koha::Holds->find( $reserves_with_target_hold[0]->{reserve_id} );
2089
2090
    is(
2091
        $target_hold->is_hold_group_target, 1,
2092
        'First eligible hold is the hold group target'
2093
    );
2094
2095
    is(
2096
        $reserves_with_target_hold[1]->{hold_group_id}, undef,
2097
        'Second eligible hold is not part of a hold group'
2098
    );
2099
2100
    is(
2101
        $reserves_with_target_hold[1]->{reserve_id}, $reserve_4_id,
2102
        'Second eligible hold is reserve_4'
2103
    );
2104
2072
    my @new_reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
2105
    my @new_reserves = C4::Reserves::_Findgroupreserve( $item_2->biblionumber, $item_2->id, 0, [] );
2073
    is( scalar @new_reserves, 1, "reserve_2_id is now part of a group that has a target. Should not be here." );
2106
    is( scalar @new_reserves, 1, "reserve_2_id is now part of a group that has a target. Should not be here." );
2074
    is(
2107
    is(
2075
- 

Return to bug 40529