From dc37cfd975f3b4de7f582c6e28ff56ec6de0a761 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 25 Apr 2025 17:21:13 +0100 Subject: [PATCH] Bug 9762: (Alternative) Handle renewals --- C4/Circulation.pm | 24 +++++++++++++++++-- circ/renew.pl | 11 +++++---- .../prog/en/modules/circ/renew.tt | 17 ++++++------- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index b51eed36fbe..b3eb4c1f85a 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3458,6 +3458,8 @@ sub AddRenewal { my $seen = $params->{seen}; my $automatic = $params->{automatic}; my $skip_record_index = $params->{skip_record_index}; + my $confirmations = $params->{confirmations}; + my $forced = $params->{forced}; # Fallback on a 'seen' renewal $seen = defined $seen && $seen == 0 ? 0 : 1; @@ -3531,10 +3533,12 @@ sub AddRenewal { ); if ( !$seen && $rule && looks_like_number( $rule->rule_value ) ) { $unseen_renewals++; + push @{$confirmations}, 'UNSEEN'; } else { # If the renewal is seen, unseen should revert to 0 $unseen_renewals = 0; + push @{$confirmations}, 'SEEN'; } } @@ -3647,8 +3651,24 @@ sub AddRenewal { }; #Log the renewal - logaction( "CIRCULATION", "RENEWAL", $borrowernumber, $itemnumber ) - if C4::Context->preference("RenewalLog"); + if ( C4::Context->preference("RenewalLog") ) { + my $info = $itemnumber; + if ( defined($confirmations) || defined($forced) ) { + $info = to_json( + { + issue => $issue->issue_id, + itemnumber => $itemnumber, + confirmations => $confirmations, + forced => $forced + }, + { + pretty => 1, + cononical => 1 + } + ); + } + logaction( "CIRCULATION", "RENEWAL", $borrowernumber, $info ); + } Koha::Plugins->call( 'after_circ_action', diff --git a/circ/renew.pl b/circ/renew.pl index ff96fc0d6e4..069312f85b1 100755 --- a/circ/renew.pl +++ b/circ/renew.pl @@ -71,9 +71,11 @@ if ( $op eq 'cud-renew' && $barcode ) { my @message; if ( ( $patron->is_debarred || q{} ) lt dt_from_string()->ymd() ) { + my $confirmations; my $can_renew; my $info; ( $can_renew, $error, $info ) = CanBookBeRenewed( $patron, $checkout, $override_limit ); + push @{$confirmations}, $override_limit if $override_limit; if ( $error && ( $error eq 'on_reserve' ) ) { if ($override_holds) { @@ -123,10 +125,11 @@ if ( $op eq 'cud-renew' && $barcode ) { $date_due = AddRenewal( { - itemnumber => $item->itemnumber(), - branch => $branchcode, - datedue => $date_due, - seen => !$unseen + itemnumber => $item->itemnumber(), + branch => $branchcode, + datedue => $date_due, + seen => !$unseen, + confirmations => $confirmations } ); $template->param( date_due => $date_due ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt index ad653291346..ffd2bd911cd 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt @@ -59,7 +59,7 @@
[% INCLUDE 'csrf-token.inc' %] - + @@ -72,7 +72,7 @@ [% INCLUDE 'csrf-token.inc' %] - +
@@ -84,7 +84,7 @@
[% INCLUDE 'csrf-token.inc' %] - +
@@ -96,7 +96,7 @@
[% INCLUDE 'csrf-token.inc' %] - +
@@ -108,7 +108,7 @@
[% INCLUDE 'csrf-token.inc' %] - +
@@ -120,19 +120,20 @@
[% INCLUDE 'csrf-token.inc' %] - +
[% END %] [% ELSIF error == "auto_renew" or error == "auto_too_much_oweing" %]

[% INCLUDE 'biblio-title.inc' biblio=item.biblio link = 1 %] ( [% item.barcode | html %] ) has been scheduled for automatic renewal.

+ [% SET override_limit = error == "auto_renew" ? "AUTO_RENEW" : "TOO_MUCH" %] [% IF Koha.Preference('AllowRenewalLimitOverride') %]
[% INCLUDE 'csrf-token.inc' %] - +
@@ -143,7 +144,7 @@
[% INCLUDE 'csrf-token.inc' %] - +
-- 2.34.1