Bugzilla – Attachment 110992 Details for
Bug 26515
Add Koha::Acquisition::Order->cancel
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26515: (follow-up) Do not count self when checking orders
Bug-26515-follow-up-Do-not-count-self-when-checkin.patch (text/plain), 7.27 KB, created by
Tomás Cohen Arazi (tcohen)
on 2020-09-30 14:10:06 UTC
(
hide
)
Description:
Bug 26515: (follow-up) Do not count self when checking orders
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2020-09-30 14:10:06 UTC
Size:
7.27 KB
patch
obsolete
>From 984a365341377220a4410c9bb569a9033382183e Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Wed, 30 Sep 2020 11:06:34 -0300 >Subject: [PATCH] Bug 26515: (follow-up) Do not count self when checking orders > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > Koha/Acquisition/Order.pm | 3 +- > t/db_dependent/Koha/Acquisition/Order.t | 58 ++++++++++++++++++++----- > 2 files changed, 48 insertions(+), 13 deletions(-) > >diff --git a/Koha/Acquisition/Order.pm b/Koha/Acquisition/Order.pm >index dbb04f9afc..363c417fd1 100644 >--- a/Koha/Acquisition/Order.pm >+++ b/Koha/Acquisition/Order.pm >@@ -131,7 +131,7 @@ sub cancel { > my $biblio = $self->biblio; > if ( $biblio and $delete_biblio ) { > >- if ( $biblio->active_orders->count == 0 >+ if ( $biblio->active_orders->count - 1 == 0 # minus ourself > and $biblio->subscriptions->count == 0 > and $biblio->items->count == 0 ) > { >@@ -141,7 +141,6 @@ sub cancel { > if $error; > } > else { >- > $self->add_message({ message => 'error_delbiblio' }); > } > } >diff --git a/t/db_dependent/Koha/Acquisition/Order.t b/t/db_dependent/Koha/Acquisition/Order.t >index fbb5947620..7cafcc2a93 100755 >--- a/t/db_dependent/Koha/Acquisition/Order.t >+++ b/t/db_dependent/Koha/Acquisition/Order.t >@@ -592,10 +592,12 @@ subtest 'filter_by_current & filter_by_cancelled' => sub { > > subtest 'cancel() tests' => sub { > >- plan tests => 32; >+ plan tests => 38; > > $schema->storage->txn_begin; > >+ my $reason = 'Some reason'; >+ > # Scenario: > # * order with one item attached > # * the item is on loan >@@ -627,14 +629,14 @@ subtest 'cancel() tests' => sub { > # Add a checkout so cancelling fails because od 'book_on_loan' > C4::Circulation::AddIssue( $patron->unblessed, $item->barcode ); > >- my $result = $order->cancel({ reason => 'Some reason' }); >+ my $result = $order->cancel({ reason => $reason }); > # refresh the order object > $order->discard_changes; > > is( $result, $order, 'self is returned' ); > is( $order->orderstatus, 'cancelled', 'Order is not marked as cancelled' ); > isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is not undef' ); >- is( $order->cancellationreason, 'Some reason', 'cancellationreason is set' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is set' ); > is( ref(Koha::Items->find($item->id)), 'Koha::Item', 'The item is present' ); > is( ref(Koha::Biblios->find($biblio_id)), 'Koha::Biblio', 'The biblio is present' ); > my @messages = @{ $order->messages }; >@@ -651,12 +653,12 @@ subtest 'cancel() tests' => sub { > C4::Circulation::AddReturn( $item->barcode ); > > $order->reset_messages; >- $order->cancel({ reason => 'Some reason' }) >+ $order->cancel({ reason => $reason }) > ->discard_changes; > > is( $order->orderstatus, 'cancelled', 'Order is marked as cancelled' ); > isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is set' ); >- is( $order->cancellationreason, 'Some reason', 'cancellationreason is undef' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is undef' ); > is( Koha::Items->find($item->id), undef, 'The item is no longer present' ); > is( ref(Koha::Biblios->find($biblio_id)), 'Koha::Biblio', 'The biblio is present' ); > @messages = @{ $order->messages }; >@@ -686,12 +688,12 @@ subtest 'cancel() tests' => sub { > )->reset_messages; > $order->add_item( $item_1->id ); > >- $order->cancel({ reason => 'Some reason', delete_biblio => 1 }) >+ $order->cancel({ reason => $reason, delete_biblio => 1 }) > ->discard_changes; > > is( $order->orderstatus, 'cancelled', 'Order is marked as cancelled' ); > isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is set' ); >- is( $order->cancellationreason, 'Some reason', 'cancellationreason is undef' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is undef' ); > is( Koha::Items->find($item_1->id), undef, 'The item is no longer present' ); > is( ref(Koha::Items->find($item_2->id)), 'Koha::Item', 'The item is still present' ); > is( ref(Koha::Biblios->find($biblio_id)), 'Koha::Biblio', 'The biblio is still present' ); >@@ -734,12 +736,12 @@ subtest 'cancel() tests' => sub { > } > ); > >- $order->cancel({ reason => 'Some reason', delete_biblio => 1 }) >+ $order->cancel({ reason => $reason, delete_biblio => 1 }) > ->discard_changes; > > is( $order->orderstatus, 'cancelled', 'Order is marked as cancelled' ); > isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is set' ); >- is( $order->cancellationreason, 'Some reason', 'cancellationreason is undef' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is undef' ); > is( Koha::Items->find($item->id), undef, 'The item is no longer present' ); > is( ref(Koha::Biblios->find($biblio_id)), 'Koha::Biblio', 'The biblio is still present' ); > @messages = @{ $order->messages }; >@@ -778,16 +780,50 @@ subtest 'cancel() tests' => sub { > } > ); > >- $order->cancel({ reason => 'Some reason', delete_biblio => 1 }) >+ $order->cancel({ reason => $reason, delete_biblio => 1 }) > ->discard_changes; > > is( $order->orderstatus, 'cancelled', 'Order is marked as cancelled' ); > isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is set' ); >- is( $order->cancellationreason, 'Some reason', 'cancellationreason is undef' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is undef' ); > is( Koha::Items->find($item->id), undef, 'The item is no longer present' ); > is( ref(Koha::Biblios->find($biblio_id)), 'Koha::Biblio', 'The biblio is still present' ); > @messages = @{ $order->messages }; > is( $messages[0]->message, 'error_delbiblio', 'Cannot delete biblio and it gets notified' ); > >+ # Scenario: >+ # * order with one item attached >+ # * delete_biblio is passed >+ # => order is cancelled >+ # => item in order is removed >+ # => biblio in order is removed >+ >+ $item = $builder->build_sample_item; >+ $biblio_id = $item->biblio->id; >+ $order = $builder->build_object( >+ { >+ class => 'Koha::Acquisition::Orders', >+ value => { >+ orderstatus => 'new', >+ biblionumber => $item->biblio->id, >+ datecancellationprinted => undef, >+ cancellationreason => undef, >+ } >+ } >+ ); >+ $order->add_item( $item->id ); >+ >+ $order->cancel({ reason => $reason, delete_biblio => 1 }); >+ # refresh the order object >+ $order->discard_changes; >+ >+ is( $order->orderstatus, 'cancelled', 'Order is not marked as cancelled' ); >+ isnt( $order->datecancellationprinted, undef, 'datecancellationprinted is not undef' ); >+ is( $order->cancellationreason, $reason, 'cancellationreason is set' ); >+ is( Koha::Items->find($item->id), undef, 'The item is not present' ); >+ is( Koha::Biblios->find($biblio_id), undef, 'The biblio is not present' ); >+ @messages = @{ $order->messages }; >+ is( scalar @messages, 0, 'No errors' ); >+ > $schema->storage->txn_rollback; > }; >-- >2.28.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26515
:
110603
|
110604
|
110641
|
110642
|
110751
|
110752
|
110939
|
110940
|
110970
|
110971
|
110992
|
111031
|
111170
|
111172
|
111173
|
111372
|
111430
|
111724