From 9aee7a94a67bd4c10bada1c9f83ef29235d226a8 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 11 Mar 2022 15:04:06 +0000 Subject: [PATCH] Bug 30275: Rename issues.renewals to issues.renewals_count --- C4/Circulation.pm | 14 +++++++------- C4/ILSDI/Services.pm | 2 +- C4/Members.pm | 4 ++-- Koha/REST/V1/Checkouts.pm | 2 +- installer/data/mysql/atomicupdate/bug_30275.pl | 3 +++ installer/data/mysql/kohastructure.sql | 2 +- .../prog/en/modules/catalogue/issuehistory.tt | 2 +- .../prog/en/modules/members/readingrec.tt | 2 +- misc/recreateIssueStatistics.pl | 6 +++--- offline_circ/download.pl | 2 +- t/db_dependent/SIP/ILS.t | 4 ++-- 11 files changed, 23 insertions(+), 20 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 7a3683b4e2..a08b3d521c 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2740,7 +2740,7 @@ sub CanBookBeRenewed { ); return ( 0, "too_many" ) - if not $issuing_rule->{renewalsallowed} or $issuing_rule->{renewalsallowed} <= $issue->renewals; + if not $issuing_rule->{renewalsallowed} or $issuing_rule->{renewalsallowed} <= $issue->renewals_count; return ( 0, "too_unseen" ) if C4::Context->preference('UnseenRenewals') && @@ -2961,8 +2961,8 @@ sub AddRenewal { # Update the issues record to have the new due date, and a new count # of how many times it has been renewed. - my $renews = ( $issue->renewals || 0 ) + 1; - my $sth = $dbh->prepare("UPDATE issues SET date_due = ?, renewals = ?, unseen_renewals = ?, lastreneweddate = ? WHERE issue_id = ?"); + my $renews = ( $issue->renewals_count || 0 ) + 1; + my $sth = $dbh->prepare("UPDATE issues SET date_due = ?, renewals_count = ?, unseen_renewals = ?, lastreneweddate = ? WHERE issue_id = ?"); eval{ $sth->execute( $datedue->strftime('%Y-%m-%d %H:%M'), $renews, $unseen_renewals, $lastreneweddate, $issue->issue_id ); @@ -2974,8 +2974,8 @@ sub AddRenewal { } # Update the renewal count on the item, and tell zebra to reindex - $renews = ( $item_object->renewals || 0 ) + 1; - $item_object->renewals($renews); + $renews = ( $item_object->renewals_count || 0 ) + 1; + $item_object->renewals_count($renews); $item_object->onloan($datedue); $item_object->store({ log_action => 0 }); @@ -3090,7 +3090,7 @@ sub GetRenewCount { ); $sth->execute( $bornum, $itemno ); my $data = $sth->fetchrow_hashref; - $renewcount = $data->{'renewals'} if $data->{'renewals'}; + $renewcount = $data->{'renewals_count'} if $data->{'renewals_count'}; $unseencount = $data->{'unseen_renewals'} if $data->{'unseen_renewals'}; # $item and $borrower should be calculated my $branchcode = _GetCircControlBranch($item->unblessed, $patron->unblessed); @@ -3884,7 +3884,7 @@ sub ProcessOfflineReturn { $itemnumber, $operation->{timestamp}, ); - $item->renewals(0); + $item->renewals_count(0); $item->onloan(undef); $item->store({ log_action => 0 }); return "Success."; diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index 52585ac2dd..772caf4f3b 100644 --- a/C4/ILSDI/Services.pm +++ b/C4/ILSDI/Services.pm @@ -694,7 +694,7 @@ sub RenewLoan { # Hashref building my $out; - $out->{'renewals'} = $issue->renewals; + $out->{'renewals'} = $issue->renewals_count; $out->{date_due} = dt_from_string($issue->date_due)->strftime('%Y-%m-%d %H:%M'); $out->{'success'} = $renewal[0]; $out->{'error'} = $renewal[1]; diff --git a/C4/Members.pm b/C4/Members.pm index 0919ac9883..5478e0de32 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -266,7 +266,7 @@ sub GetAllIssues { my $dbh = C4::Context->dbh; my $query = -'SELECT issues.*, items.*, biblio.*, biblioitems.*, issues.timestamp as issuestimestamp, issues.renewals AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp,borrowers.firstname,borrowers.surname +'SELECT issues.*, items.*, biblio.*, biblioitems.*, issues.timestamp as issuestimestamp, issues.renewals_count AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp,borrowers.firstname,borrowers.surname FROM issues LEFT JOIN items on items.itemnumber=issues.itemnumber LEFT JOIN borrowers on borrowers.borrowernumber=issues.issuer_id @@ -274,7 +274,7 @@ sub GetAllIssues { LEFT JOIN biblioitems ON items.biblioitemnumber=biblioitems.biblioitemnumber WHERE issues.borrowernumber=? UNION ALL - SELECT old_issues.*, items.*, biblio.*, biblioitems.*, old_issues.timestamp as issuestimestamp, old_issues.renewals AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp,borrowers.firstname,borrowers.surname + SELECT old_issues.*, items.*, biblio.*, biblioitems.*, old_issues.timestamp as issuestimestamp, old_issues.renewals_count AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp,borrowers.firstname,borrowers.surname FROM old_issues LEFT JOIN items on items.itemnumber=old_issues.itemnumber LEFT JOIN borrowers on borrowers.borrowernumber=old_issues.issuer_id diff --git a/Koha/REST/V1/Checkouts.pm b/Koha/REST/V1/Checkouts.pm index e670987bff..b00469879a 100644 --- a/Koha/REST/V1/Checkouts.pm +++ b/Koha/REST/V1/Checkouts.pm @@ -193,7 +193,7 @@ sub allows_renewal { openapi => { allows_renewal => $renewable, max_renewals => $rule->rule_value, - current_renewals => $checkout->renewals, + current_renewals => $checkout->renewals_count, unseen_renewals => $checkout->unseen_renewals, error => $error } diff --git a/installer/data/mysql/atomicupdate/bug_30275.pl b/installer/data/mysql/atomicupdate/bug_30275.pl index b567dfb852..a0eb8655f1 100755 --- a/installer/data/mysql/atomicupdate/bug_30275.pl +++ b/installer/data/mysql/atomicupdate/bug_30275.pl @@ -21,6 +21,9 @@ return { ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; }); say $out "Added new table 'checkout_renewals'"; + + $dbh->do(q{ ALTER TABLE `issues` CHANGE `renewals` `renewals_count` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'lists the number of times the item was renewed' }); + say $out "Renamed `issues.renewals` to `issues.renewals_count`"; } }, } diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 75b66486ce..570a515e49 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3006,7 +3006,7 @@ CREATE TABLE `issues` ( `branchcode` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'foreign key, linking to the branches table for the location the item was checked out', `returndate` datetime DEFAULT NULL COMMENT 'date the item was returned, will be NULL until moved to old_issues', `lastreneweddate` datetime DEFAULT NULL COMMENT 'date the item was last renewed', - `renewals` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'lists the number of times the item was renewed', + `renewals_count` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'lists the number of times the item was renewed', `unseen_renewals` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'lists the number of consecutive times the item was renewed without being seen', `auto_renew` tinyint(1) DEFAULT 0 COMMENT 'automatic renewal', `auto_renew_error` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'automatic renewal error', diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt index 53c0121d52..836a4782e8 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt @@ -90,7 +90,7 @@ [% INCLUDE 'patron-title.inc' patron=checkout.issuer %] [% END %] - [% IF checkout.renewals %] + [% IF checkout.renewals_count %] Yes[% IF checkout.lastreneweddate %], last on: [% checkout.lastreneweddate |$KohaDates with_hours => 1 %] [% END %] [% ELSE %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt index 4a2241b80c..b2181ddbf0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt @@ -106,7 +106,7 @@ [% issue.barcode | html %] - [% issue.renewals | html %] + [% issue.renewals_count | html %] [% issue.issuedate |$KohaDates with_hours => 1 %] diff --git a/misc/recreateIssueStatistics.pl b/misc/recreateIssueStatistics.pl index 859cf02a5e..939b4df168 100755 --- a/misc/recreateIssueStatistics.pl +++ b/misc/recreateIssueStatistics.pl @@ -60,7 +60,7 @@ if ($issues == 1) { foreach my $table ('issues', 'old_issues') { # Getting issues print "looking for missing issues from $table\n"; - my $query = "SELECT borrowernumber, branchcode, itemnumber, issuedate, renewals, lastreneweddate from $table where itemnumber is not null"; + my $query = "SELECT borrowernumber, branchcode, itemnumber, issuedate, renewals_count, lastreneweddate from $table where itemnumber is not null"; my $sth = $dbh->prepare($query); $sth->execute; # Looking for missing issues @@ -92,7 +92,7 @@ if ($issues == 1) { } # Looking for missing renewals - if ($hashref->{'renewals'} && $hashref->{'renewals'} > 0 ) { + if ($hashref->{'renewals_count'} && $hashref->{'renewals_count'} > 0 ) { # This is the not-so accurate part : # We assume that there are missing renewals, based on the last renewal date # Maybe should this be deactivated by default ? @@ -100,7 +100,7 @@ if ($issues == 1) { my $substh = $dbh->prepare($ctnquery); $substh->execute($hashref->{'borrowernumber'}, $hashref->{'itemnumber'}, $hashref->{'lastreneweddate'}); - my $missingrenewalscount = $hashref->{'renewals'} - $substh->fetchrow_hashref->{'cnt'}; + my $missingrenewalscount = $hashref->{'renewals_count'} - $substh->fetchrow_hashref->{'cnt'}; print "We assume $missingrenewalscount renewals are missing. Creating them\n" if ($missingrenewalscount > 0); for (my $i = 0; $i < $missingrenewalscount; $i++) { diff --git a/offline_circ/download.pl b/offline_circ/download.pl index 10272cbc3f..ad120fd766 100755 --- a/offline_circ/download.pl +++ b/offline_circ/download.pl @@ -66,7 +66,7 @@ my $issues_query = q{SELECT items.itemcallnumber AS callnumber, issues.date_due AS date_due, issues.issuedate AS issuedate, - issues.renewals AS renewals, + issues.renewals_count AS renewals, issues.unseen_renewals AS unseen_renewals, borrowers.cardnumber AS cardnumber, CONCAT(borrowers.surname, ', ', borrowers.firstname) AS borrower_name diff --git a/t/db_dependent/SIP/ILS.t b/t/db_dependent/SIP/ILS.t index c117e53763..abc441a748 100755 --- a/t/db_dependent/SIP/ILS.t +++ b/t/db_dependent/SIP/ILS.t @@ -275,7 +275,7 @@ subtest checkout => sub { AddIssue( $patron->unblessed, $item->barcode, undef, 0 ); my $checkout = $item->checkout; ok( defined($checkout), "Checkout added"); - is( $checkout->renewals, 0, "Correct renewals"); + is( $checkout->renewals_count, 0, "Correct renewals"); my $ils = C4::SIP::ILS->new({ id => $library->branchcode }); my $sip_patron = C4::SIP::ILS::Patron->new( $patron->cardnumber ); @@ -284,7 +284,7 @@ subtest checkout => sub { is( $transaction->{screen_msg},"Item already checked out to you: renewing item.","We get a success message when issue is renewed"); $checkout->discard_changes(); - is( $checkout->renewals, 1, "Renewals has been reduced"); + is( $checkout->renewals_count, 1, "Renewals has been reduced"); }; subtest renew_all => sub { -- 2.20.1