Bug 7047: Change ReNewSubscription prototype - use hashref
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 16 Dec 2019 10:54:05 +0000 (11:54 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 23 Dec 2019 12:06:45 +0000 (12:06 +0000)
It also removes a warn statement.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

C4/Serials.pm
serials/subscription-renew.pl
t/db_dependent/Serials/ReNewSubscription.t

index 66e6521..e7e9e3a 100644 (file)
@@ -1469,15 +1469,25 @@ sub NewSubscription {
 
 =head2 ReNewSubscription
 
-ReNewSubscription($subscriptionid,$user,$startdate,$numberlength,$weeklength,$monthlength,$note)
+ReNewSubscription($params);
+
+$params is a hashref with the following keys: subscriptionid, user, startdate, numberlength, weeklength, monthlength, note, branchcode
 
 this function renew a subscription with values given on input args.
 
 =cut
 
 sub ReNewSubscription {
-    my ( $subscriptionid, $user, $startdate, $numberlength, $weeklength, $monthlength, $note, $branchcode ) = @_;
-    warn $note;
+    my ( $params ) = @_;
+    my $subscriptionid = $params->{subscriptionid};
+    my $user           = $params->{user};
+    my $startdate      = $params->{startdate};
+    my $numberlength   = $params->{numberlength};
+    my $weeklength     = $params->{weeklength};
+    my $monthlength    = $params->{monthlength};
+    my $note           = $params->{note};
+    my $branchcode     = $params->{branchcode};
+
     my $dbh          = C4::Context->dbh;
     my $subscription = GetSubscription($subscriptionid);
     my $query        = qq|
index 1e6f85b..6fc7298 100755 (executable)
@@ -81,19 +81,30 @@ if ( $op eq "renew" ) {
     output_and_exit( $query, $cookie, $template, 'unknown_subscription') unless $subscription;
     my $startdate = output_pref( { str => scalar $query->param('startdate'), dateonly => 1, dateformat => 'iso' } );
     ReNewSubscription(
-        $subscriptionid, $loggedinuser,
-        $startdate, scalar $query->param('numberlength'),
-        scalar $query->param('weeklength'), scalar $query->param('monthlength'),
-        scalar $query->param('note'), $branchcode
+        {
+            subscriptionid => $subscriptionid,
+            user           => $loggedinuser,
+            startdate      => $startdate,
+            numberlength   => scalar $query->param('numberlength'),
+            weeklength     => scalar $query->param('weeklength'),
+            monthlength    => scalar $query->param('monthlength'),
+            note           => scalar $query->param('note'),
+            branchcode     => $branchcode
+        }
     );
 } elsif ( $op eq 'multi_renew' ) {
     for my $subscriptionid ( @subscriptionids ) {
         my $subscription = GetSubscription( $subscriptionid );
         next unless $subscription;
         ReNewSubscription(
-            $subscriptionid, $loggedinuser,
-            $subscription->{enddate}, $subscription->{numberlength},
-            $subscription->{weeklength}, $subscription->{monthlength},
+            {
+                subscriptionid => $subscriptionid,
+                user           => $loggedinuser,
+                startdate      => $subscription->{enddate},
+                numberlength   => $subscription->{numberlength},
+                weeklength     => $subscription->{weeklength},
+                monthlength    => $subscription->{monthlength},
+            }
         );
     }
 } else {
index 1a90c51..d4331ce 100644 (file)
@@ -84,7 +84,13 @@ my $subscriptionhistory = $builder->build({
 # Actual testing starts here!
 
 # Renew the subscription and check that enddate has not been set
-ReNewSubscription($subscription->{subscriptionid},'',"2016-01-01",'','',12,'');
+ReNewSubscription(
+    {
+        subscriptionid => $subscription->{subscriptionid},
+        startdate      => "2016-01-01",
+        monthlength    => 12
+    }
+);
 my $history = Koha::Subscription::Histories->find($subscription->{subscriptionid});
 
 is ( $history->histenddate(), undef, 'subscription history not empty after renewal');