Fixing hierarchy processing
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Mon, 8 Mar 2010 11:33:35 +0000 (12:33 +0100)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Tue, 16 Mar 2010 11:37:59 +0000 (12:37 +0100)
C4/AuthoritiesMarc.pm

index c2c1786..3e3534f 100644 (file)
@@ -1051,9 +1051,7 @@ sub BuildUnimarcHierarchies{
   my $data = GetHeaderAuthority($authid);
   if ($data->{'authtrees'} and not $force){
     return $data->{'authtrees'};
-  } elsif ($data->{'authtrees'}){
-    $hierarchies=$data->{'authtrees'};
-  } else {
+  } elsif ($force or !($data->{authtrees})) {
     my $record = GetAuthority($authid);
     my $found;
     foreach my $field ($record->field('550')){
@@ -1079,6 +1077,9 @@ sub BuildUnimarcHierarchies{
     }
     #Unless there is no ancestor, I am alone.
     $hierarchies="$authid" unless ($hierarchies);
+  } 
+  else {
+    $hierarchies=$data->{'authtrees'};
   }
   AddAuthorityTrees($authid,$hierarchies);
   return $hierarchies;