diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 04b43af250..4ace8d9907 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -22,6 +22,8 @@ package C4::Reserves; use Modern::Perl; +use JSON qw( to_json ); + use C4::Accounts; use C4::Biblio qw( GetMarcFromKohaField ); use C4::Circulation qw( CheckIfIssuedToPatron GetAgeRestriction GetBranchItemRule ); @@ -192,6 +194,8 @@ sub AddReserve { my $itemtype = $params->{itemtype}; my $non_priority = $params->{non_priority}; my $item_group_id = $params->{item_group_id}; + my $confirmations = $params->{confirmations}; + my $forced = $params->{forced}; $resdate ||= dt_from_string; @@ -261,8 +265,24 @@ sub AddReserve { # record patron activity $hold->patron->update_lastseen('hold'); - logaction( 'HOLDS', 'CREATE', $hold->id, $hold ) - if C4::Context->preference('HoldsLog'); + # Log the hold creation + if ( C4::Context->preference('HoldsLog') ) { + my $info = $hold->id; + if ( defined($confirmations) || defined($forced) ) { + $info = to_json( + { + hold => $hold->id, + branchcode => $hold->branchcode, + biblionumber => $hold->biblionumber, + itemnumber => $hold->itemnumber, + confirmations => $confirmations, + forced => $forced + }, + { pretty => 1, canonical => 1 } + ); + } + logaction( 'HOLDS', 'CREATE', $hold->id, $info ); + } my $reserve_id = $hold->id(); diff --git a/Koha/REST/V1/Holds.pm b/Koha/REST/V1/Holds.pm index 53abf9c2cd..f4f74d655a 100644 --- a/Koha/REST/V1/Holds.pm +++ b/Koha/REST/V1/Holds.pm @@ -191,6 +191,12 @@ sub add { my $priority = C4::Reserves::CalculatePriority($biblio_id); + # Build confirmations array for logging overrides + my $confirmations = []; + if ($override_all) { + push @{$confirmations}, 'HOLD_POLICY_OVERRIDE'; + } + my $hold_id = C4::Reserves::AddReserve( { branchcode => $pickup_library_id, @@ -206,6 +212,7 @@ sub add { itemtype => $item_type, non_priority => $non_priority, item_group_id => $item_group_id, + confirmations => $confirmations, } ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/action-logs.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/action-logs.inc index 774e05477f..57092d75e7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/action-logs.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/action-logs.inc @@ -179,6 +179,8 @@ [% BLOCK translate_log_override %] [% SWITCH override %] + [% CASE 'HOLD_POLICY_OVERRIDE' %] + Hold policy override [% CASE 'INVALID_DATE' %] Invalid date confirmed [% CASE 'DEBT_GUARANTEES' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt index 44e6e4b20e..03efca0532 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt @@ -349,6 +349,28 @@