diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 1648c5805bf0088624ee0a8b1111794406efb539..7ca2543c46cc586606017d6e3436caed88a0aa44 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -291,8 +291,10 @@ trait SolrMarcFincTrait */ public function getIndexOfGermanPrints() { - // define a false indicator - $lookfor_indicator = '8'; + // if IND1 === 8 we have an unspecified type of number + // if IND1 === 7 the "Source of number or code" is specified in subfield $2 + // however, we don't need to check that since we have a begins-with check on the field's data + $lookfor_indicators = ['7','8']; $retval = []; $fields = $this->getMarcRecord()->getFields('024'); @@ -301,11 +303,11 @@ trait SolrMarcFincTrait } foreach ($fields as $field) { // ->getIndicator(position) - $subjectrow = $field->getIndicator('1'); - if ($subjectrow == $lookfor_indicator) { + if (in_array($field->getIndicator('1'),$lookfor_indicators)) { if ($subfield = $field->getSubfield('a')) { - if (preg_match('/^VD/i', $subfield->getData()) > 0) { - $retval[] = $subfield->getData(); + $data = $subfield->getData(); + if (stripos($data,'VD') === 0) { + $retval[] = $data; } } }