From 8aec9b7c32ea2713f378e9f6493ebd8f19d70f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joonas=20Kylm=C3=A4l=C3=A4?= Date: Wed, 17 Feb 2021 14:28:03 +0200 Subject: [PATCH] Bug 25690: SIP2: Don't allow checking out attached hold that is being transferred Items that are attached to a hold and being transferred (found = T) is final decision and you cannot checkout those to other patrons. To test (if you have applied all patches from bug 25690): 1) prove t/db_dependent/SIP/Transaction.t => passes To test (if you don't have all patches): 1) Create hold and set pickup library to something else where the item is at 2) Return the item and it should confirm the hold and start transfer 3) Apply this patch 4) Try to checkout this item now to some other patron via SIP2 and notice it doesn't allow it 5) Revert this patch 6) Notice you can now checkout somebody else's hold that is being transferred! Signed-off-by: Martin Renvoize --- C4/SIP/ILS/Item.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/SIP/ILS/Item.pm b/C4/SIP/ILS/Item.pm index e787ed1aee..4a6c09826b 100644 --- a/C4/SIP/ILS/Item.pm +++ b/C4/SIP/ILS/Item.pm @@ -108,8 +108,8 @@ sub new { my $biblio = Koha::Biblios->find( $self->{biblionumber} ); my $holds = $biblio->current_holds->unblessed; $self->{hold_queue} = $holds; - $self->{hold_attached} = [( grep { defined $_->{found} and ( $_->{found} eq 'W' or $_->{found} eq 'P' ) } @{$self->{hold_queue}} )]; - $self->{pending_queue} = [( grep {(! defined $_->{found}) or ( $_->{found} ne 'W' and $_->{found} ne 'P' ) } @{$self->{hold_queue}} )]; + $self->{hold_attached} = [( grep { defined $_->{found} and ( $_->{found} eq 'W' or $_->{found} eq 'P' or $_->{found} eq 'T' ) } @{$self->{hold_queue}} )]; + $self->{pending_queue} = [( grep {(! defined $_->{found}) or ( $_->{found} ne 'W' and $_->{found} ne 'P' and $_->{found} ne 'T' ) } @{$self->{hold_queue}} )]; $self->{title} = $biblio->title; $self->{author} = $biblio->author; bless $self, $type; -- 2.20.1