From d785ae7c628d50befb7960963f12e8c8897d5623 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: 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! --- 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.11.0