|
Lines 1538-1566
sub display_marc_indicators {
Link Here
|
| 1538 |
sub GetNormalizedUPC { |
1538 |
sub GetNormalizedUPC { |
| 1539 |
my ($marcrecord,$marcflavour) = @_; |
1539 |
my ($marcrecord,$marcflavour) = @_; |
| 1540 |
|
1540 |
|
| 1541 |
if ($marcrecord) { |
1541 |
return unless $marcrecord; |
| 1542 |
if ($marcflavour eq 'UNIMARC') { |
1542 |
if ($marcflavour eq 'UNIMARC') { |
| 1543 |
my @fields = $marcrecord->field('072'); |
1543 |
my @fields = $marcrecord->field('072'); |
| 1544 |
foreach my $field (@fields) { |
1544 |
foreach my $field (@fields) { |
| 1545 |
my $upc = _normalize_match_point($field->subfield('a')); |
1545 |
my $upc = _normalize_match_point($field->subfield('a')); |
| 1546 |
if ($upc) { |
1546 |
if ($upc) { |
| 1547 |
return $upc; |
1547 |
return $upc; |
| 1548 |
} |
|
|
| 1549 |
} |
1548 |
} |
| 1550 |
|
|
|
| 1551 |
} |
1549 |
} |
| 1552 |
else { # assume marc21 if not unimarc |
1550 |
|
| 1553 |
my @fields = $marcrecord->field('024'); |
1551 |
} |
| 1554 |
foreach my $field (@fields) { |
1552 |
else { # assume marc21 if not unimarc |
| 1555 |
my $indicator = $field->indicator(1); |
1553 |
my @fields = $marcrecord->field('024'); |
| 1556 |
my $upc = _normalize_match_point($field->subfield('a')); |
1554 |
foreach my $field (@fields) { |
| 1557 |
if ($upc && $indicator == 1 ) { |
1555 |
my $indicator = $field->indicator(1); |
| 1558 |
return $upc; |
1556 |
my $upc = _normalize_match_point($field->subfield('a')); |
| 1559 |
} |
1557 |
if ($upc && $indicator == 1 ) { |
|
|
1558 |
return $upc; |
| 1560 |
} |
1559 |
} |
| 1561 |
} |
1560 |
} |
| 1562 |
} |
1561 |
} |
| 1563 |
return; |
|
|
| 1564 |
} |
1562 |
} |
| 1565 |
|
1563 |
|
| 1566 |
# Normalizes and returns the first valid ISBN found in the record |
1564 |
# Normalizes and returns the first valid ISBN found in the record |
|
Lines 1573-1632
sub GetNormalizedISBN {
Link Here
|
| 1573 |
($isbn) = split(/\|/, $isbn ); |
1571 |
($isbn) = split(/\|/, $isbn ); |
| 1574 |
return _isbn_cleanup($isbn); |
1572 |
return _isbn_cleanup($isbn); |
| 1575 |
} |
1573 |
} |
| 1576 |
if ($marcrecord) { |
1574 |
|
| 1577 |
|
1575 |
return unless $marcrecord; |
| 1578 |
if ($marcflavour eq 'UNIMARC') { |
1576 |
|
| 1579 |
my @fields = $marcrecord->field('010'); |
1577 |
if ($marcflavour eq 'UNIMARC') { |
| 1580 |
foreach my $field (@fields) { |
1578 |
my @fields = $marcrecord->field('010'); |
| 1581 |
my $isbn = $field->subfield('a'); |
1579 |
foreach my $field (@fields) { |
| 1582 |
if ($isbn) { |
1580 |
my $isbn = $field->subfield('a'); |
| 1583 |
return _isbn_cleanup($isbn); |
1581 |
if ($isbn) { |
| 1584 |
} |
1582 |
return _isbn_cleanup($isbn); |
| 1585 |
} |
1583 |
} |
| 1586 |
} |
1584 |
} |
| 1587 |
else { # assume marc21 if not unimarc |
1585 |
} |
| 1588 |
my @fields = $marcrecord->field('020'); |
1586 |
else { # assume marc21 if not unimarc |
| 1589 |
foreach my $field (@fields) { |
1587 |
my @fields = $marcrecord->field('020'); |
| 1590 |
$isbn = $field->subfield('a'); |
1588 |
foreach my $field (@fields) { |
| 1591 |
if ($isbn) { |
1589 |
$isbn = $field->subfield('a'); |
| 1592 |
return _isbn_cleanup($isbn); |
1590 |
if ($isbn) { |
| 1593 |
} |
1591 |
return _isbn_cleanup($isbn); |
| 1594 |
} |
1592 |
} |
| 1595 |
} |
1593 |
} |
| 1596 |
} |
1594 |
} |
| 1597 |
return; |
|
|
| 1598 |
} |
1595 |
} |
| 1599 |
|
1596 |
|
| 1600 |
sub GetNormalizedEAN { |
1597 |
sub GetNormalizedEAN { |
| 1601 |
my ($marcrecord,$marcflavour) = @_; |
1598 |
my ($marcrecord,$marcflavour) = @_; |
| 1602 |
|
1599 |
|
| 1603 |
if ($marcrecord) { |
1600 |
return unless $marcrecord; |
| 1604 |
if ($marcflavour eq 'UNIMARC') { |
1601 |
|
| 1605 |
my @fields = $marcrecord->field('073'); |
1602 |
if ($marcflavour eq 'UNIMARC') { |
| 1606 |
foreach my $field (@fields) { |
1603 |
my @fields = $marcrecord->field('073'); |
| 1607 |
my $ean = _normalize_match_point($field->subfield('a')); |
1604 |
foreach my $field (@fields) { |
| 1608 |
if ( $ean ) { |
1605 |
my $ean = _normalize_match_point($field->subfield('a')); |
| 1609 |
return $ean; |
1606 |
if ( $ean ) { |
| 1610 |
} |
1607 |
return $ean; |
| 1611 |
} |
1608 |
} |
| 1612 |
} |
1609 |
} |
| 1613 |
else { # assume marc21 if not unimarc |
1610 |
} |
| 1614 |
my @fields = $marcrecord->field('024'); |
1611 |
else { # assume marc21 if not unimarc |
| 1615 |
foreach my $field (@fields) { |
1612 |
my @fields = $marcrecord->field('024'); |
| 1616 |
my $indicator = $field->indicator(1); |
1613 |
foreach my $field (@fields) { |
| 1617 |
my $ean = _normalize_match_point($field->subfield('a')); |
1614 |
my $indicator = $field->indicator(1); |
| 1618 |
if ( $ean && $indicator == 3 ) { |
1615 |
my $ean = _normalize_match_point($field->subfield('a')); |
| 1619 |
return $ean; |
1616 |
if ( $ean && $indicator == 3 ) { |
| 1620 |
} |
1617 |
return $ean; |
| 1621 |
} |
1618 |
} |
| 1622 |
} |
1619 |
} |
| 1623 |
} |
1620 |
} |
| 1624 |
return; |
|
|
| 1625 |
} |
1621 |
} |
| 1626 |
|
1622 |
|
| 1627 |
sub GetNormalizedOCLCNumber { |
1623 |
sub GetNormalizedOCLCNumber { |
| 1628 |
my ($marcrecord,$marcflavour) = @_; |
1624 |
my ($marcrecord,$marcflavour) = @_; |
| 1629 |
if ($marcrecord && $marcflavour ne 'UNIMARC' ) { |
1625 |
return unless $marcrecord; |
|
|
1626 |
|
| 1627 |
if ($marcflavour ne 'UNIMARC' ) { |
| 1630 |
my @fields = $marcrecord->field('035'); |
1628 |
my @fields = $marcrecord->field('035'); |
| 1631 |
foreach my $field (@fields) { |
1629 |
foreach my $field (@fields) { |
| 1632 |
my $oclc = $field->subfield('a'); |
1630 |
my $oclc = $field->subfield('a'); |
|
Lines 1635-1642
sub GetNormalizedOCLCNumber {
Link Here
|
| 1635 |
return $oclc; |
1633 |
return $oclc; |
| 1636 |
} |
1634 |
} |
| 1637 |
} |
1635 |
} |
|
|
1636 |
} else { |
| 1637 |
# TODO for UNIMARC |
| 1638 |
} |
1638 |
} |
| 1639 |
return; |
1639 |
return |
| 1640 |
} |
1640 |
} |
| 1641 |
|
1641 |
|
| 1642 |
sub GetAuthvalueDropbox { |
1642 |
sub GetAuthvalueDropbox { |
| 1643 |
- |
|
|