Bug 27004: Prevent claim resolution to fail

If the account of the patron who created a claim is removed, then the
claim won't be resolvable.
Trying to resolve the claim will result in a 500:
[2020/12/21 10:05:55] [ERROR] PUT /api/v1/return_claims/1/resolve: unhandled exception (Koha::Exceptions::Checkouts::ReturnClaims::NoCreatedBy)<<[created_by is mandatory]>> Koha::REST::Plugin::Exceptions::__ANON

We should not check if created_by exist when we update an existing hold,
only when we create it.

Test plan:
- Login with patron A
- set a value to syspref ClaimReturnedLostValue
- Check an item out
- Claim returned it
- Login with patron B
- Delete patron A
- Resolve the claim
- ERROR in api-error.log an UI never confirming the resolution
- apply patch & restart services
- Resolve the claim
- it works

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Jonathan Druart 2020-12-21 11:05:26 +01:00
parent c4702149b2
commit 92dbe80902
2 changed files with 3 additions and 1 deletions

View File

@ -48,7 +48,7 @@ exceptions as needed.
sub store {
my ( $self ) = @_;
unless ( $self->created_by ) {
unless ( $self->in_storage || $self->created_by ) {
Koha::Exceptions::Checkouts::ReturnClaims::NoCreatedBy->throw();
}

View File

@ -204,6 +204,8 @@ subtest 'resolve_claim() tests' => sub {
my $claim_id = $claim->id;
$claim->created_by(undef)->store; # resolve the claim must work even if the created_by patron has been removed
# Resolve a claim
$t->put_ok(
"//$userid:$password@/api/v1/return_claims/$claim_id/resolve" => json => {