Bug 32528: Make safe_to_delete exit earlier on error conditions

This patch makes the `Koha::Item->safe_to_delete` method return right
after one of the checked conditions is met. This way we avoid further DB
queries and processing.

No behavior change is expected

To test:
1. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Item.t
=> SUCCESS: Tests pass!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests STILL pass!
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 32528: Change return logic

Back to 1 return statement
Prevent the Koha::Result::Boolean instanciation duplication

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Tomas Cohen Arazi 2022-12-26 15:43:16 -03:00
parent cd89c38321
commit cc58ca2a3c
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
1 changed files with 7 additions and 7 deletions

View File

@ -293,20 +293,20 @@ sub safe_to_delete {
$error = "book_on_loan" if $self->checkout;
$error = "not_same_branch"
$error //= "not_same_branch"
if defined C4::Context->userenv
and !C4::Context->IsSuperLibrarian()
and C4::Context->preference("IndependentBranches")
and ( C4::Context->userenv->{branch} ne $self->homebranch );
&& !C4::Context->IsSuperLibrarian()
&& C4::Context->preference("IndependentBranches")
&& ( C4::Context->userenv->{branch} ne $self->homebranch );
# check it doesn't have a waiting reserve
$error = "book_reserved"
$error //= "book_reserved"
if $self->holds->filter_by_found->count;
$error = "linked_analytics"
$error //= "linked_analytics"
if C4::Items::GetAnalyticsCount( $self->itemnumber ) > 0;
$error = "last_item_for_hold"
$error //= "last_item_for_hold"
if $self->biblio->items->count == 1
&& $self->biblio->holds->search(
{