From 8dd902f0ffca605d9b9b66571e134c6ea42b8621 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Lahmann?= <lahmann@ub.uni-leipzig.de>
Date: Mon, 17 Oct 2016 12:45:10 +0200
Subject: [PATCH] refs #8704: * added Marc field 490 to Marc-specific
 getHierarchyParentTitle/ID methods

---
 .../src/finc/RecordDriver/SolrMarcFincTrait.php  | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index e40ddeb3b8d..e656716220f 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -1362,6 +1362,7 @@ trait SolrMarcFincTrait
     {
         $parentID = [];
         $fieldList = [
+            ['490'],
             ['773'],
             ['800', '810', '811'],
             ['830']
@@ -1397,6 +1398,9 @@ trait SolrMarcFincTrait
                         $parentID[] = $idRetrieval(
                             $field->getSubfield('w')->getData()
                         );
+                    } elseif ($fieldNumber == '490') {
+                        // https://intern.finc.info/issues/8704
+                        $parentID[] = null;
                     }
                 }
             }
@@ -1420,7 +1424,17 @@ trait SolrMarcFincTrait
     {
         $parentTitle = [];
 
-        // check first if 773 is available and LDR 7 != (a || s)
+        // start with 490 (https://intern.finc.info/issues/8704)
+        $fields = $this->getMarcRecord()->getFields('490');
+        foreach($fields as $field) {
+            if ($field->getIndicator(1) == 0
+                && $subfield = $field->getSubfield('a')
+            ) {
+                $parentTitle[] = $subfield->getData(); // {490a}
+            }
+        }
+
+        // now check if 773 is available and LDR 7 != (a || s)
         $fields = $this->getMarcRecord()->getFields('773');
         if ($fields && !in_array($this->getMarcRecord()->getLeader()[7], ['a', 's'])) {
             foreach($fields as $field) {
-- 
GitLab