@@ -, +, @@ --- C4/Circulation.pm | 3 +++ t/db_dependent/Acquisition.t | 4 ++-- t/db_dependent/Items_DelItemCheck.t | 2 +- t/db_dependent/db_structure.t | 3 --- t/lib/TestBuilder.pm | 10 ++++++++++ 5 files changed, 16 insertions(+), 6 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -1803,6 +1803,9 @@ sub AddReturn { unless ($item) { return ( 0, { BadBarcode => $barcode } ); # no barcode means no item or borrower. bail out. } + if ($item->{deleted_at}) { + return ( 0, { BadBarcode => $barcode } ); + } my $itemnumber = $item->{ itemnumber }; my $itemtype = $item->{itype}; # GetItem called effective_itemtype --- a/t/db_dependent/Acquisition.t +++ a/t/db_dependent/Acquisition.t @@ -513,7 +513,7 @@ ok((not defined $error), "DelOrder does not fail"); $order2 = GetOrder($order2->{ordernumber}); ok((defined $order2->{datecancellationprinted}), "order is cancelled"); ok((not defined $order2->{cancellationreason}), "order has no cancellation reason"); -ok((not defined Koha::Biblios->find( $order2->{biblionumber} )), "biblio does not exist anymore"); +ok(Koha::Biblios->find($order2->{biblionumber})->deleted_at , "biblio does not exist anymore"); my $order4 = GetOrder($ordernumbers[3]); $error = DelOrder($order4->{biblionumber}, $order4->{ordernumber}, 1, "foobar"); @@ -521,7 +521,7 @@ ok((not defined $error), "DelOrder does not fail"); $order4 = GetOrder($order4->{ordernumber}); ok((defined $order4->{datecancellationprinted}), "order is cancelled"); ok(($order4->{cancellationreason} eq "foobar"), "order has cancellation reason \"foobar\""); -ok((not defined Koha::Biblios->find( $order4->{biblionumber} )), "biblio does not exist anymore"); +ok(Koha::Biblios->find($order4->{biblionumber})->deleted_at, "biblio does not exist anymore"); my $order5 = GetOrder($ordernumbers[4]); C4::Items::AddItem( { barcode => '0102030405' }, $order5->{biblionumber} ); --- a/t/db_dependent/Items_DelItemCheck.t +++ a/t/db_dependent/Items_DelItemCheck.t @@ -161,7 +161,7 @@ DelItemCheck( $biblio->{biblionumber}, $item->{itemnumber} ); my $test_item = GetItem( $item->{itemnumber} ); -is( $test_item->{itemnumber}, undef, +isnt( $test_item->{deleted_at}, undef, "DelItemCheck should delete item if ItemSafeToDelete returns true" ); --- a/t/db_dependent/db_structure.t +++ a/t/db_dependent/db_structure.t @@ -22,9 +22,6 @@ use Koha::Database; my @modules = ( [ qw( Borrower Deletedborrower ) ], - [ qw( Biblio Deletedbiblio ) ], - [ qw( Biblioitem Deletedbiblioitem ) ], - [ qw( Item Deleteditem ) ], ); my @keys_to_check = qw( size is_nullable data_type accessor datetime_undef_if_invalid default_value ); --- a/t/lib/TestBuilder.pm +++ a/t/lib/TestBuilder.pm @@ -470,8 +470,18 @@ sub _gen_default_values { debarred => undef, borrowernotes => '', }, + Biblio => { + deleted_at => undef, + }, + Biblioitems => { + deleted_at => undef, + }, + BiblioMetadata => { + deleted_at => undef, + }, Item => { more_subfields_xml => undef, + deleted_at => undef, }, Category => { enrolmentfee => 0, --