|
Lines 3389-3445
subtest 'Set waiting flag' => sub {
Link Here
|
| 3389 |
}; |
3389 |
}; |
| 3390 |
|
3390 |
|
| 3391 |
subtest 'Cancel transfers on lost items' => sub { |
3391 |
subtest 'Cancel transfers on lost items' => sub { |
| 3392 |
plan tests => 6; |
3392 |
plan tests => 5; |
| 3393 |
my $library_1 = $builder->build( { source => 'Branch' } ); |
|
|
| 3394 |
my $patron_1 = $builder->build( { source => 'Borrower', value => { branchcode => $library_1->{branchcode}, categorycode => $patron_category->{categorycode} } } ); |
| 3395 |
my $library_2 = $builder->build( { source => 'Branch' } ); |
| 3396 |
my $patron_2 = $builder->build( { source => 'Borrower', value => { branchcode => $library_2->{branchcode}, categorycode => $patron_category->{categorycode} } } ); |
| 3397 |
my $biblio = $builder->build_sample_biblio({branchcode => $library->{branchcode}}); |
| 3398 |
my $item = $builder->build_sample_item({ |
| 3399 |
biblionumber => $biblio->biblionumber, |
| 3400 |
library => $library_1->{branchcode}, |
| 3401 |
}); |
| 3402 |
|
3393 |
|
| 3403 |
set_userenv( $library_2 ); |
3394 |
my $library_to = $builder->build_object( { class => 'Koha::Libraries' } ); |
| 3404 |
my $reserve_id = AddReserve( |
3395 |
my $item = $builder->build_sample_item(); |
|
|
3396 |
my $old_transfer = $builder->build_object( |
| 3405 |
{ |
3397 |
{ |
| 3406 |
branchcode => $library_2->{branchcode}, |
3398 |
class => 'Koha::Item::Transfers', |
| 3407 |
borrowernumber => $patron_2->{borrowernumber}, |
3399 |
value => { |
| 3408 |
biblionumber => $item->biblionumber, |
3400 |
itemnumber => $item->itemnumber, |
| 3409 |
priority => 1, |
3401 |
frombranch => $item->holdingbranch, |
| 3410 |
itemnumber => $item->itemnumber, |
3402 |
tobranch => $library_to->branchcode, |
|
|
3403 |
reason => 'Manual', |
| 3404 |
datesent => \'NOW()', |
| 3405 |
datearrived => \'NOW()', |
| 3406 |
datecancelled => undef, |
| 3407 |
daterequested => \'NOW()' |
| 3408 |
} |
| 3409 |
} |
| 3410 |
); |
| 3411 |
my $transfer_1 = $builder->build_object( |
| 3412 |
{ |
| 3413 |
class => 'Koha::Item::Transfers', |
| 3414 |
value => { |
| 3415 |
itemnumber => $item->itemnumber, |
| 3416 |
frombranch => $item->holdingbranch, |
| 3417 |
tobranch => $library_to->branchcode, |
| 3418 |
reason => 'Manual', |
| 3419 |
datesent => undef, |
| 3420 |
datearrived => undef, |
| 3421 |
datecancelled => undef, |
| 3422 |
daterequested => \'NOW()' |
| 3423 |
} |
| 3424 |
} |
| 3425 |
); |
| 3426 |
my $transfer_2 = $builder->build_object( |
| 3427 |
{ |
| 3428 |
class => 'Koha::Item::Transfers', |
| 3429 |
value => { |
| 3430 |
itemnumber => $item->itemnumber, |
| 3431 |
frombranch => $item->holdingbranch, |
| 3432 |
tobranch => $library_to->branchcode, |
| 3433 |
reason => 'Manual', |
| 3434 |
datesent => \'NOW()', |
| 3435 |
datearrived => undef, |
| 3436 |
datecancelled => undef, |
| 3437 |
daterequested => \'NOW()' |
| 3438 |
} |
| 3411 |
} |
3439 |
} |
| 3412 |
); |
3440 |
); |
| 3413 |
|
3441 |
|
| 3414 |
#Return book and add transfer |
3442 |
# Simulate item being marked as lost |
| 3415 |
set_userenv( $library_1 ); |
|
|
| 3416 |
my $do_transfer = 1; |
| 3417 |
my ( $res, $rr ) = AddReturn( $item->barcode, $library_1->{branchcode} ); |
| 3418 |
ModReserveAffect( $item->itemnumber, undef, $do_transfer, $reserve_id ); |
| 3419 |
C4::Circulation::transferbook({ |
| 3420 |
from_branch => $library_1->{branchcode}, |
| 3421 |
to_branch => $library_2->{branchcode}, |
| 3422 |
barcode => $item->barcode, |
| 3423 |
trigger => 'Reserve', |
| 3424 |
}); |
| 3425 |
my $hold = Koha::Holds->find( $reserve_id ); |
| 3426 |
is( $hold->found, 'T', 'Hold is in transit' ); |
| 3427 |
|
| 3428 |
#Check transfer exists and the items holding branch is the transfer destination branch before marking it as lost |
| 3429 |
my ($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber); |
| 3430 |
is( $frombranch, $library_1->{branchcode}, 'The transfer is generated from the correct library'); |
| 3431 |
is( $tobranch, $library_2->{branchcode}, 'The transfer is generated to the correct library'); |
| 3432 |
my $itemcheck = Koha::Items->find($item->itemnumber); |
| 3433 |
is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Items holding branch is the transfers origination branch before it is marked as lost' ); |
| 3434 |
|
| 3435 |
#Simulate item being marked as lost and confirm the transfer is deleted and the items holding branch is the transfers source branch |
| 3436 |
$item->itemlost(1)->store; |
3443 |
$item->itemlost(1)->store; |
| 3437 |
LostItem( $item->itemnumber, 'test', 1 ); |
3444 |
LostItem( $item->itemnumber, 'test', 1 ); |
| 3438 |
($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber); |
|
|
| 3439 |
is( $tobranch, undef, 'The transfer on the lost item has been deleted as the LostItemCancelOutstandingTransfer is enabled'); |
| 3440 |
$itemcheck = Koha::Items->find($item->itemnumber); |
| 3441 |
is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Lost item with cancelled hold has holding branch equallying the transfers source branch' ); |
| 3442 |
|
3445 |
|
|
|
3446 |
$transfer_1->discard_changes; |
| 3447 |
isnt($transfer_1->datecancelled, undef, "Queud transfer was cancelled upon item lost"); |
| 3448 |
is($transfer_1->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'"); |
| 3449 |
$transfer_2->discard_changes; |
| 3450 |
isnt($transfer_2->datecancelled, undef, "Active transfer was cancelled upon item lost"); |
| 3451 |
is($transfer_2->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'"); |
| 3452 |
$old_transfer->discard_changes; |
| 3453 |
is($old_transfer->datecancelled, undef, "Old transfers are unaffected"); |
| 3443 |
}; |
3454 |
}; |
| 3444 |
|
3455 |
|
| 3445 |
subtest 'CanBookBeIssued | is_overdue' => sub { |
3456 |
subtest 'CanBookBeIssued | is_overdue' => sub { |
| 3446 |
- |
|
|