From 35cafa56f424a81ae98113d4f1db376987787849 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 2 Oct 2020 12:11:48 -0400 Subject: [PATCH] Bug 26604: "Generate next" button gives error on serials-collection.pl In serials-collection.pl, the line $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity}); causes the error Can't use string ("13") as a HASH ref while "strict refs" in use at /usr/share/koha/lib/C4/Serials.pm line 2198. This function call makes no sense, that subroutine always returns a list and doesn't take any parameters. I think it was meant to be GetSubscriptionFrequency which is in fact already called a few lines down. Signed-off-by: kelly mcelligott Signed-off-by: Martin Renvoize JD Test plan: 1. Create a new subscription * When there is an irregular issue: Skip issue number * Select a frequency (not irregular) * Test prediction pattern and mark some "not published" (to fill the subscription.irregular DB field 2. Receive a first serial (mark it arrived, an "expected" one is created) 3. Claim the expected one => You have 1 arrived and 1 claimed. It's the only way to not have an expected one and hit the else block in serials/serials-collection.pl 4. Generate next => boom Signed-off-by: Jonathan Druart (cherry picked from commit 9f4b54a6d74b9635195bb9ea0b9c11fe5570cf6e) Signed-off-by: Lucas Gass (cherry picked from commit 8c527522ec02c4b07c57c5a211d846856c936018) Signed-off-by: Aleisha Amohia --- serials/serials-collection.pl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl index e15796de07..d554ff7c7b 100755 --- a/serials/serials-collection.pl +++ b/serials/serials-collection.pl @@ -76,7 +76,7 @@ if($op eq 'gennext' && @subscriptionid){ require C4::Serials::Numberpattern; my $subscription = GetSubscription($subscriptionid); my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern}); - my $frequency = C4::Serials::Frequency::GetSubscriptionFrequencies($subscription->{periodicity}); + my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity}); my $expected = GetNextExpected($subscriptionid); my ( $newserialseq, $newlastvalue1, $newlastvalue2, $newlastvalue3, @@ -84,7 +84,6 @@ if($op eq 'gennext' && @subscriptionid){ ) = GetNextSeq($subscription, $pattern, $frequency, $expected->{publisheddate}); ## We generate the next publication date - $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity}); my $nextpublisheddate = GetNextDate($subscription, $expected->{publisheddate}, $frequency, 1); my $planneddate = $date_received_today ? dt_from_string : $nextpublisheddate; ## Creating the new issue -- 2.39.5