From 1962244b74130c6d6123d934401c7857cfdfd857 Mon Sep 17 00:00:00 2001 From: Emmi Takkinen Date: Thu, 24 Nov 2022 13:09:28 +0200 Subject: [PATCH 2/2] Bug 32306: Log after storing changes in ModReserve When one modifies holds from records holds page, these changes don't log into action_logs table correctly. Instead holds data before modifications is stored to action_logs. This patch moves call for logaction after changes have been stored in ModReserve. To test: 1. Find hold to modify. 2. If possible, locate this hold from action_logs table: SELECT * FROM action_logs WHERE module = "HOLDS" AND object = ; 3. Modify hold, change its pickup library from A to B. 4. Save changes. 5. Take a look at action_logs table. => Modification is saved, but holds pickup library is still A. 6. Modify hold again, e.g add expiration date. 7. Save. 8. Find this new modification from action_logs. => In action_logs table expiration date is empty, but pickup library is now B. 9. Apply this patch. 10. Modify hold, change its pickup library back from B to A. 11. Save changes. => In action_logs table holds modification has now a correct pickup library A. Also prove t/db_dependent/Reserves.t. Sponsored-by: Koha-Suomi Oy --- C4/Reserves.pm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 6ff7149edc..a2b06405b2 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1119,16 +1119,12 @@ sub ModReserve { $hold->cancel({ cancellation_reason => $cancellation_reason }); } elsif ($hold->found && $hold->priority eq '0' && $date) { - logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, $hold ) - if C4::Context->preference('HoldsLog'); - # The only column that can be updated for a found hold is the expiration date $hold->expirationdate($date)->store(); - } - elsif ($rank =~ /^\d+/ and $rank > 0) { logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, $hold ) if C4::Context->preference('HoldsLog'); - + } + elsif ($rank =~ /^\d+/ and $rank > 0) { my $properties = { priority => $rank, branchcode => $branchcode, @@ -1156,6 +1152,8 @@ sub ModReserve { } _FixPriority({ reserve_id => $reserve_id, rank =>$rank }); + logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, $hold ) + if C4::Context->preference('HoldsLog'); } } -- 2.34.1