@@ -, +, @@ --- t/db_dependent/Circulation.t | 97 ++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 43 deletions(-) --- a/t/db_dependent/Circulation.t +++ a/t/db_dependent/Circulation.t @@ -3475,57 +3475,68 @@ subtest 'Set waiting flag' => sub { }; subtest 'Cancel transfers on lost items' => sub { - plan tests => 6; - my $library_1 = $builder->build( { source => 'Branch' } ); - my $patron_1 = $builder->build( { source => 'Borrower', value => { branchcode => $library_1->{branchcode}, categorycode => $patron_category->{categorycode} } } ); - my $library_2 = $builder->build( { source => 'Branch' } ); - my $patron_2 = $builder->build( { source => 'Borrower', value => { branchcode => $library_2->{branchcode}, categorycode => $patron_category->{categorycode} } } ); - my $biblio = $builder->build_sample_biblio({branchcode => $library->{branchcode}}); - my $item = $builder->build_sample_item({ - biblionumber => $biblio->biblionumber, - library => $library_1->{branchcode}, - }); + plan tests => 5; - set_userenv( $library_2 ); - my $reserve_id = AddReserve( + my $library_to = $builder->build_object( { class => 'Koha::Libraries' } ); + my $item = $builder->build_sample_item(); + my $old_transfer = $builder->build_object( { - branchcode => $library_2->{branchcode}, - borrowernumber => $patron_2->{borrowernumber}, - biblionumber => $item->biblionumber, - priority => 1, - itemnumber => $item->itemnumber, + class => 'Koha::Item::Transfers', + value => { + itemnumber => $item->itemnumber, + frombranch => $item->holdingbranch, + tobranch => $library_to->branchcode, + reason => 'Manual', + datesent => \'NOW()', + datearrived => \'NOW()', + datecancelled => undef, + daterequested => \'NOW()' + } + } + ); + my $transfer_1 = $builder->build_object( + { + class => 'Koha::Item::Transfers', + value => { + itemnumber => $item->itemnumber, + frombranch => $item->holdingbranch, + tobranch => $library_to->branchcode, + reason => 'Manual', + datesent => undef, + datearrived => undef, + datecancelled => undef, + daterequested => \'NOW()' + } + } + ); + my $transfer_2 = $builder->build_object( + { + class => 'Koha::Item::Transfers', + value => { + itemnumber => $item->itemnumber, + frombranch => $item->holdingbranch, + tobranch => $library_to->branchcode, + reason => 'Manual', + datesent => \'NOW()', + datearrived => undef, + datecancelled => undef, + daterequested => \'NOW()' + } } ); - #Return book and add transfer - set_userenv( $library_1 ); - my $do_transfer = 1; - my ( $res, $rr ) = AddReturn( $item->barcode, $library_1->{branchcode} ); - ModReserveAffect( $item->itemnumber, undef, $do_transfer, $reserve_id ); - C4::Circulation::transferbook({ - from_branch => $library_1->{branchcode}, - to_branch => $library_2->{branchcode}, - barcode => $item->barcode, - trigger => 'Reserve', - }); - my $hold = Koha::Holds->find( $reserve_id ); - is( $hold->found, 'T', 'Hold is in transit' ); - - #Check transfer exists and the items holding branch is the transfer destination branch before marking it as lost - my ($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber); - is( $frombranch, $library_1->{branchcode}, 'The transfer is generated from the correct library'); - is( $tobranch, $library_2->{branchcode}, 'The transfer is generated to the correct library'); - my $itemcheck = Koha::Items->find($item->itemnumber); - is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Items holding branch is the transfers origination branch before it is marked as lost' ); - - #Simulate item being marked as lost and confirm the transfer is deleted and the items holding branch is the transfers source branch + # Simulate item being marked as lost $item->itemlost(1)->store; LostItem( $item->itemnumber, 'test', 1 ); - ($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber); - is( $tobranch, undef, 'The transfer on the lost item has been deleted as the LostItemCancelOutstandingTransfer is enabled'); - $itemcheck = Koha::Items->find($item->itemnumber); - is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Lost item with cancelled hold has holding branch equallying the transfers source branch' ); + $transfer_1->discard_changes; + isnt($transfer_1->datecancelled, undef, "Queud transfer was cancelled upon item lost"); + is($transfer_1->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'"); + $transfer_2->discard_changes; + isnt($transfer_2->datecancelled, undef, "Active transfer was cancelled upon item lost"); + is($transfer_2->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'"); + $old_transfer->discard_changes; + is($old_transfer->datecancelled, undef, "Old transfers are unaffected"); }; subtest 'CanBookBeIssued | is_overdue' => sub { --