@@ -, +, @@
claim is resolved
---
Koha/REST/V1/ReturnClaims.pm | 9 +++++++--
.../prog/en/includes/checkouts-table.inc | 9 +++++++++
koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 6 ++++--
t/db_dependent/api/v1/return_claims.t | 19 ++++++++++++++++++-
4 files changed, 38 insertions(+), 5 deletions(-)
--- a/Koha/REST/V1/ReturnClaims.pm
+++ a/Koha/REST/V1/ReturnClaims.pm
@@ -160,8 +160,9 @@ sub resolve_claim {
return try {
- my $resolved_by = $body->{resolved_by};
- my $resolution = $body->{resolution};
+ my $resolved_by = $body->{resolved_by};
+ my $resolution = $body->{resolution};
+ my $new_lost_status = $body->{new_lost_status};
my $user = $c->stash('koha.user');
$resolved_by //= $user->borrowernumber;
@@ -174,6 +175,10 @@ sub resolve_claim {
updated_by => $resolved_by,
}
)->store;
+
+ if ( defined $new_lost_status ) {
+ $claim->checkout->item->itemlost($new_lost_status)->store;
+ }
$claim->discard_changes;
return $c->render(
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc
@@ -145,6 +145,15 @@
[% END %]
+
+
+ [% SET itemlost = AuthorisedValues.GetAuthValueDropbox('LOST') %]
+
--- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js
+++ a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js
@@ -1142,14 +1142,16 @@ $(document).ready(function() {
$(document).on('click', '#claims-returned-resolved-modal-btn-submit', function(e) {
let resolution = $('#claims-returned-resolved-modal-resolved-code').val();
+ let new_lost_status = $('#new_lost_status').val();
let id = $('#claims-returned-resolved-modal-id').val();
$('#claims-returned-resolved-modal-btn-submit-spinner').show();
$('#claims-returned-resolved-modal-btn-submit-icon').hide();
params = {
- resolution: resolution,
- resolved_by: logged_in_user_borrowernumber
+ resolution: resolution,
+ resolved_by: logged_in_user_borrowernumber,
+ new_lost_status: new_lost_status
};
$.ajax({
--- a/t/db_dependent/api/v1/return_claims.t
+++ a/t/db_dependent/api/v1/return_claims.t
@@ -175,7 +175,7 @@ subtest 'update_notes() tests' => sub {
subtest 'resolve_claim() tests' => sub {
- plan tests => 9;
+ plan tests => 13;
$schema->storage->txn_begin;
@@ -193,6 +193,10 @@ subtest 'resolve_claim() tests' => sub {
t::lib::Mocks::mock_userenv( { branchcode => $item->homebranch } ); # needed by AddIssue
+ # Picking 1 that should exist
+ my $ClaimReturnedLostValue = 1;
+ t::lib::Mocks::mock_preference('ClaimReturnedLostValue', $ClaimReturnedLostValue);
+
my $issue = AddIssue( $librarian->unblessed, $item->barcode, dt_from_string->add( weeks => 2 ) );
my $claim = $issue->claim_returned(
@@ -225,6 +229,19 @@ subtest 'resolve_claim() tests' => sub {
is( $claim->updated_by, $librarian->id );
ok( $claim->resolved_on );
+ is( $claim->checkout->item->itemlost, $ClaimReturnedLostValue );
+
+ $claim->update({resolution => undef, resolved_by => undef, resolved_on => undef });
+ $t->put_ok(
+ "//$userid:$password@/api/v1/return_claims/$claim_id/resolve" => json => {
+ resolved_by => $librarian->id,
+ resolution => "FOUNDINLIB",
+ new_lost_status => 0,
+ }
+ )->status_is(200);
+ is( $claim->get_from_storage->checkout->item->itemlost, 0 );
+
+
# Make sure the claim doesn't exist on the DB anymore
$claim->delete;
--