Bug 11650: multiplicated authorities after link_bibs_to_authorities.pl
[koha_fer] / C4 / Linker / Default.pm
index 653dabd..2610085 100644 (file)
@@ -56,17 +56,16 @@ sub get_link {
 
         if ( !defined $authid && $self->{'broader_headings'} ) {
             my $field     = $heading->field();
-            my @subfields = $field->subfields();
+            my @subfields = grep { $_->[0] ne '9' } $field->subfields();
             if ( scalar @subfields > 1 ) {
                 pop @subfields;
-                $field->replace_with(
+                $field =
                     MARC::Field->new(
                         $field->tag,
                         $field->indicator(1),
                         $field->indicator(2),
-                        map { $_[0] => $_[1] } @subfields
-                    )
-                );
+                        map { $_->[0] => $_->[1] } @subfields
+                    );
                 ( $authid, $fuzzy ) =
                   $self->get_link( C4::Heading->new_from_bib_field($field),
                     $behavior );
@@ -80,6 +79,18 @@ sub get_link {
     return $self->SUPER::_handle_auth_limit($authid), $fuzzy;
 }
 
+sub update_cache {
+    my $self        = shift;
+    my $heading     = shift;
+    my $authid      = shift;
+    my $search_form = $heading->search_form();
+    my $fuzzy = 0;
+
+    $self->{'cache'}->{$search_form}->{'cached'} = 1;
+    $self->{'cache'}->{$search_form}->{'authid'} = $authid;
+    $self->{'cache'}->{$search_form}->{'fuzzy'}  = $fuzzy;
+}
+
 sub flip_heading {
     my $self    = shift;
     my $heading = shift;