Bug 38186: Don't initiate transfer when cancelling hold on lost item
To test:
0. In the Circulation Rules, set the default return policy to "item
returns home (default settings have this already)
1. Find an item belonging to a branch other than the logged-in branch
2. Place a hold on that biblio record for pickup at the logged-in branch
3. Check in the item to set the hold to waiting
4. Set the expiration date to a date in the past
To do this in KTD:
ktd --shell
koha-mysql kohadev
UPDATE reserves SET expirationdate = < yesterday's date >;
5. Set a lost status on the item
6. Go to Circulation > Holds awaiting pickup
--> The hold should appear on the "holds waiting past their expiration
date" tab
7. Click the "Cancel and return to <homebranch>" button next to the hold
8. Open the biblio record for the item
--> Note that the lost status is gone and the item shows as in-transit
9. Apply patch
10. Repeat steps 2-8 on the same item
--> This time, the item is still lost and is not in-transit
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 1c3ed6e4db)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
fa90836eda
commit
cd7f17e968
|
|
@ -145,23 +145,24 @@ if ($item && $tab eq 'holdsover' && !@cancel_result) {
|
|||
exit;
|
||||
|
||||
sub cancel {
|
||||
my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_;
|
||||
my ( $itemnumber, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_;
|
||||
|
||||
my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo;
|
||||
my $item = Koha::Items->find( $itemnumber );
|
||||
|
||||
return if $transfer && $skip_transfers;
|
||||
|
||||
my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber );
|
||||
my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $itemnumber, $borrowernumber );
|
||||
|
||||
# if the document is not in his homebranch location and there is not reservation after, we transfer it
|
||||
if ($transfer && !$nextreservinfo) {
|
||||
ModItemTransfer( $item, $fbr, $tbr, 'CancelReserve' );
|
||||
if ( $transfer && !$nextreservinfo && !$item->itemlost ) {
|
||||
ModItemTransfer( $itemnumber, $fbr, $tbr, 'CancelReserve' );
|
||||
}
|
||||
# if we have a result
|
||||
if ($nextreservinfo) {
|
||||
my %res;
|
||||
my $patron = Koha::Patrons->find( $nextreservinfo );
|
||||
my $title = Koha::Items->find( $item )->biblio->title;
|
||||
my $title = $item->biblio->title;
|
||||
if ( $messages->{'transfert'} ) {
|
||||
$res{messagetransfert} = $messages->{'transfert'};
|
||||
$res{branchcode} = $messages->{'transfert'};
|
||||
|
|
@ -171,7 +172,7 @@ sub cancel {
|
|||
$res{nextreservnumber} = $nextreservinfo;
|
||||
$res{nextreservsurname} = $patron->surname;
|
||||
$res{nextreservfirstname} = $patron->firstname;
|
||||
$res{nextreservitem} = $item;
|
||||
$res{nextreservitem} = $itemnumber;
|
||||
$res{nextreservtitle} = $title;
|
||||
$res{waiting} = $messages->{'waiting'} ? 1 : 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue