ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / C4 / Serials.pm
index b4452a3..f8c17b9 100644 (file)
@@ -274,12 +274,6 @@ sub GetSubscription {
 
     $subscription->{cannotedit} = not can_edit_subscription( $subscription );
 
-    # Add additional fields to the subscription into a new key "additional_fields"
-    my %additional_field_values = map {
-        $_->field->name => $_->value
-    } Koha::Subscriptions->find($subscriptionid)->additional_field_values;
-    $subscription->{additional_fields} = \%additional_field_values;
-
     if ( my $mana_id = $subscription->{mana_id} ) {
         my $mana_subscription = Koha::SharedContent::get_entity_by_id(
             'subscription', $mana_id, {usecomments => 1});
@@ -528,7 +522,7 @@ sub SearchSubscriptions {
     my $additional_fields = $args->{additional_fields} // [];
     my $matching_record_ids_for_additional_fields = [];
     if ( @$additional_fields ) {
-        my @subscriptions = Koha::Subscriptions->search_additional_fields($additional_fields);
+        my @subscriptions = Koha::Subscriptions->filter_by_additional_fields($additional_fields);
 
         return () unless @subscriptions;
 
@@ -631,10 +625,10 @@ sub SearchSubscriptions {
         $subscription->{cannotedit} = not can_edit_subscription( $subscription );
         $subscription->{cannotdisplay} = not can_show_subscription( $subscription );
 
-        my %additional_field_values = map {
-            $_->field->name => $_->value
-        } Koha::Subscriptions->find($subscription->{subscriptionid})->additional_field_values;
-        $subscription->{additional_fields} = \%additional_field_values;
+        my $subscription_object = Koha::Subscriptions->find($subscription->{subscriptionid});
+        $subscription->{additional_fields} = { map { $_->field->name => $_->value }
+            $subscription_object->additional_field_values->as_list };
+
     }
 
     return @$results;
@@ -1314,7 +1308,7 @@ sub ModSubscription {
     $biblionumber, $callnumber, $notes, $letter, $manualhistory,
     $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount,
     $graceperiod, $location, $enddate, $subscriptionid, $skip_serialseq,
-    $itemtype, $previousitemtype
+    $itemtype, $previousitemtype, $mana_id
     ) = @_;
 
     my $dbh   = C4::Context->dbh;
@@ -1327,7 +1321,7 @@ sub ModSubscription {
             callnumber=?, notes=?, letter=?, manualhistory=?,
             internalnotes=?, serialsadditems=?, staffdisplaycount=?,
             opacdisplaycount=?, graceperiod=?, location = ?, enddate=?,
-            skip_serialseq=?, itemtype=?, previousitemtype=?
+            skip_serialseq=?, itemtype=?, previousitemtype=?, mana_id=?
         WHERE subscriptionid = ?";
 
     my $sth = $dbh->prepare($query);
@@ -1341,7 +1335,7 @@ sub ModSubscription {
         $letter,          ($manualhistory ? $manualhistory : 0),
         $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount,
         $graceperiod,     $location,       $enddate,        $skip_serialseq,
-        $itemtype,        $previousitemtype,
+        $itemtype,        $previousitemtype, $mana_id,
         $subscriptionid
     );
     my $rows = $sth->rows;
@@ -1832,11 +1826,9 @@ sub GetLateOrMissingIssues {
         }
         $line->{"status".$line->{status}}   = 1;
 
-        my $subscription = Koha::Subscriptions->find($line->{subscriptionid});
-        my %additional_field_values = map {
-            $_->field->name => $_->value
-        } $subscription->additional_field_values;
-        %$line = ( %$line, additional_fields => \%additional_field_values );
+        my $subscription_object = Koha::Subscriptions->find($line->{subscriptionid});
+        $line->{additional_fields} = { map { $_->field->name => $_->value }
+            $subscription_object->additional_field_values->as_list };
 
         push @issuelist, $line;
     }