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

(-)a/C4/Reserves.pm (-1 / +48 lines)
Lines 1211-1222 sub ModReserveAffect { Link Here
1211
        $hold->set_processing();
1211
        $hold->set_processing();
1212
    } else {
1212
    } else {
1213
        $hold->set_waiting($desk_id);
1213
        $hold->set_waiting($desk_id);
1214
        _koha_notify_reserve( $hold->reserve_id, $notify_library ) unless $already_on_shelf;
1214
        _koha_notify_reserve( $hold->reserve_id ) unless $already_on_shelf;
1215
        # Complete transfer if one exists
1215
        # Complete transfer if one exists
1216
        my $transfer = $hold->item->get_transfer;
1216
        my $transfer = $hold->item->get_transfer;
1217
        $transfer->receive if $transfer;
1217
        $transfer->receive if $transfer;
1218
    }
1218
    }
1219
1219
1220
    _koha_notify_hold_changed( $hold ) if $notify_library;
1221
1220
    _FixPriority( { biblionumber => $biblionumber } );
1222
    _FixPriority( { biblionumber => $biblionumber } );
1221
    my $item = Koha::Items->find($itemnumber);
1223
    my $item = Koha::Items->find($itemnumber);
1222
    if ( $item->location && $item->location eq 'CART'
1224
    if ( $item->location && $item->location eq 'CART'
Lines 1937-1942 sub _koha_notify_reserve { Link Here
1937
    }
1939
    }
1938
}
1940
}
1939
1941
1942
=head2 _koha_notify_hold_changed
1943
1944
  _koha_notify_hold_changed( $hold_object );
1945
1946
=cut
1947
1948
sub _koha_notify_hold_changed {
1949
    my $hold = shift;
1950
1951
    my $patron = $hold->patron;
1952
    my $library = $hold->branch;
1953
1954
    my $letter = C4::Letters::GetPreparedLetter(
1955
        module      => 'reserves',
1956
        letter_code => 'HOLD_CHANGED',
1957
        branchcode  => $hold->branchcode,
1958
        substitute  => { today => output_pref( dt_from_string ) },
1959
        tables      => {
1960
            'branches'    => $library->unblessed,
1961
            'borrowers'   => $patron->unblessed,
1962
            'biblio'      => $hold->biblionumber,
1963
            'biblioitems' => $hold->biblionumber,
1964
            'reserves'    => $hold->unblessed,
1965
            'items'       => $hold->itemnumber,
1966
        },
1967
    );
1968
1969
    return unless $letter;
1970
1971
    my $email =
1972
         C4::Context->preference('ExpireReservesAutoFillEmail')
1973
      || $library->branchemail
1974
      || C4::Context->preference('KohaAdminEmailAddress');
1975
1976
    C4::Letters::EnqueueLetter(
1977
        {
1978
            letter                 => $letter,
1979
            borrowernumber         => $patron->id,
1980
            message_transport_type => 'email',
1981
            from_address           => $email,
1982
            to_address             => $email,
1983
        }
1984
    );
1985
}
1986
1940
=head2 _ShiftPriorityByDateAndPriority
1987
=head2 _ShiftPriorityByDateAndPriority
1941
1988
1942
  $new_priority = _ShiftPriorityByDateAndPriority( $biblionumber, $reservedate, $priority );
1989
  $new_priority = _ShiftPriorityByDateAndPriority( $biblionumber, $reservedate, $priority );
(-)a/t/db_dependent/Holds/ExpireReservesAutoFill.t (-9 / +8 lines)
Lines 100-110 subtest 'Test automatically canceled expired waiting holds to fill the next hold Link Here
100
100
101
    CancelExpiredReserves();
101
    CancelExpiredReserves();
102
102
103
    my @holds = Koha::Holds->search( {}, { order_by => 'priority' } );
103
    my $holds = Koha::Holds->search( {}, { order_by => 'priority' } );
104
    $hold_2 = $holds[0];
104
    $hold_2 = $holds->next;
105
    $hold_3 = $holds[1];
105
    $hold_3 = $holds->next;
106
106
107
    is( @holds,            2,   'Found 2 holds' );
107
    is( $holds->count,     2,   'Found 2 holds' );
108
    is( $hold_2->priority, 0,   'Next hold in line now has priority of 0' );
108
    is( $hold_2->priority, 0,   'Next hold in line now has priority of 0' );
109
    is( $hold_2->found,    'W', 'Next hold in line is now set to waiting' );
109
    is( $hold_2->found,    'W', 'Next hold in line is now set to waiting' );
110
110
Lines 117-126 subtest 'Test automatically canceled expired waiting holds to fill the next hold Link Here
117
117
118
    CancelExpiredReserves();
118
    CancelExpiredReserves();
119
119
120
    @holds = Koha::Holds->search( {}, { order_by => 'priority' } );
120
    $holds = Koha::Holds->search( {}, { order_by => 'priority' } );
121
    $hold_3 = $holds[0];
121
    $hold_3 = $holds->next;
122
122
123
    is( @holds,            1,   'Found 1 hold' );
123
    is( $holds->count,     1,   'Found 1 hold' );
124
    is( $hold_3->priority, 0,   'Next hold in line now has priority of 0' );
124
    is( $hold_3->priority, 0,   'Next hold in line now has priority of 0' );
125
    is( $hold_3->found,    'W', 'Next hold in line is now set to waiting' );
125
    is( $hold_3->found,    'W', 'Next hold in line is now set to waiting' );
126
126
Lines 186-190 subtest 'Test automatically canceled expired waiting holds to fill the next hold Link Here
186
186
187
    my @messages = $schema->resultset('MessageQueue')
187
    my @messages = $schema->resultset('MessageQueue')
188
      ->search( { letter_code => 'HOLD_CHANGED' } );
188
      ->search( { letter_code => 'HOLD_CHANGED' } );
189
    is( @messages, 0, 'No messages in the message queue when generating transfer' );
189
    is( @messages, 1, 'Nessage is generated in the message queue when generating transfer' );
190
};
190
};
191
- 

Return to bug 14364