|
Lines 1475-1503
sub display_marc_indicators {
Link Here
|
| 1475 |
sub GetNormalizedUPC { |
1475 |
sub GetNormalizedUPC { |
| 1476 |
my ($marcrecord,$marcflavour) = @_; |
1476 |
my ($marcrecord,$marcflavour) = @_; |
| 1477 |
|
1477 |
|
| 1478 |
if ($marcrecord) { |
1478 |
return unless $marcrecord; |
| 1479 |
if ($marcflavour eq 'UNIMARC') { |
1479 |
if ($marcflavour eq 'UNIMARC') { |
| 1480 |
my @fields = $marcrecord->field('072'); |
1480 |
my @fields = $marcrecord->field('072'); |
| 1481 |
foreach my $field (@fields) { |
1481 |
foreach my $field (@fields) { |
| 1482 |
my $upc = _normalize_match_point($field->subfield('a')); |
1482 |
my $upc = _normalize_match_point($field->subfield('a')); |
| 1483 |
if ($upc) { |
1483 |
if ($upc) { |
| 1484 |
return $upc; |
1484 |
return $upc; |
| 1485 |
} |
|
|
| 1486 |
} |
1485 |
} |
| 1487 |
|
|
|
| 1488 |
} |
1486 |
} |
| 1489 |
else { # assume marc21 if not unimarc |
1487 |
|
| 1490 |
my @fields = $marcrecord->field('024'); |
1488 |
} |
| 1491 |
foreach my $field (@fields) { |
1489 |
else { # assume marc21 if not unimarc |
| 1492 |
my $indicator = $field->indicator(1); |
1490 |
my @fields = $marcrecord->field('024'); |
| 1493 |
my $upc = _normalize_match_point($field->subfield('a')); |
1491 |
foreach my $field (@fields) { |
| 1494 |
if ($upc && $indicator == 1 ) { |
1492 |
my $indicator = $field->indicator(1); |
| 1495 |
return $upc; |
1493 |
my $upc = _normalize_match_point($field->subfield('a')); |
| 1496 |
} |
1494 |
if ($upc && $indicator == 1 ) { |
|
|
1495 |
return $upc; |
| 1497 |
} |
1496 |
} |
| 1498 |
} |
1497 |
} |
| 1499 |
} |
1498 |
} |
| 1500 |
return; |
|
|
| 1501 |
} |
1499 |
} |
| 1502 |
|
1500 |
|
| 1503 |
# Normalizes and returns the first valid ISBN found in the record |
1501 |
# Normalizes and returns the first valid ISBN found in the record |
|
Lines 1510-1569
sub GetNormalizedISBN {
Link Here
|
| 1510 |
($isbn) = split(/\|/, $isbn ); |
1508 |
($isbn) = split(/\|/, $isbn ); |
| 1511 |
return _isbn_cleanup($isbn); |
1509 |
return _isbn_cleanup($isbn); |
| 1512 |
} |
1510 |
} |
| 1513 |
if ($marcrecord) { |
1511 |
|
| 1514 |
|
1512 |
return unless $marcrecord; |
| 1515 |
if ($marcflavour eq 'UNIMARC') { |
1513 |
|
| 1516 |
my @fields = $marcrecord->field('010'); |
1514 |
if ($marcflavour eq 'UNIMARC') { |
| 1517 |
foreach my $field (@fields) { |
1515 |
my @fields = $marcrecord->field('010'); |
| 1518 |
my $isbn = $field->subfield('a'); |
1516 |
foreach my $field (@fields) { |
| 1519 |
if ($isbn) { |
1517 |
my $isbn = $field->subfield('a'); |
| 1520 |
return _isbn_cleanup($isbn); |
1518 |
if ($isbn) { |
| 1521 |
} |
1519 |
return _isbn_cleanup($isbn); |
| 1522 |
} |
1520 |
} |
| 1523 |
} |
1521 |
} |
| 1524 |
else { # assume marc21 if not unimarc |
1522 |
} |
| 1525 |
my @fields = $marcrecord->field('020'); |
1523 |
else { # assume marc21 if not unimarc |
| 1526 |
foreach my $field (@fields) { |
1524 |
my @fields = $marcrecord->field('020'); |
| 1527 |
$isbn = $field->subfield('a'); |
1525 |
foreach my $field (@fields) { |
| 1528 |
if ($isbn) { |
1526 |
$isbn = $field->subfield('a'); |
| 1529 |
return _isbn_cleanup($isbn); |
1527 |
if ($isbn) { |
| 1530 |
} |
1528 |
return _isbn_cleanup($isbn); |
| 1531 |
} |
1529 |
} |
| 1532 |
} |
1530 |
} |
| 1533 |
} |
1531 |
} |
| 1534 |
return; |
|
|
| 1535 |
} |
1532 |
} |
| 1536 |
|
1533 |
|
| 1537 |
sub GetNormalizedEAN { |
1534 |
sub GetNormalizedEAN { |
| 1538 |
my ($marcrecord,$marcflavour) = @_; |
1535 |
my ($marcrecord,$marcflavour) = @_; |
| 1539 |
|
1536 |
|
| 1540 |
if ($marcrecord) { |
1537 |
return unless $marcrecord; |
| 1541 |
if ($marcflavour eq 'UNIMARC') { |
1538 |
|
| 1542 |
my @fields = $marcrecord->field('073'); |
1539 |
if ($marcflavour eq 'UNIMARC') { |
| 1543 |
foreach my $field (@fields) { |
1540 |
my @fields = $marcrecord->field('073'); |
| 1544 |
my $ean = _normalize_match_point($field->subfield('a')); |
1541 |
foreach my $field (@fields) { |
| 1545 |
if ( $ean ) { |
1542 |
my $ean = _normalize_match_point($field->subfield('a')); |
| 1546 |
return $ean; |
1543 |
if ( $ean ) { |
| 1547 |
} |
1544 |
return $ean; |
| 1548 |
} |
1545 |
} |
| 1549 |
} |
1546 |
} |
| 1550 |
else { # assume marc21 if not unimarc |
1547 |
} |
| 1551 |
my @fields = $marcrecord->field('024'); |
1548 |
else { # assume marc21 if not unimarc |
| 1552 |
foreach my $field (@fields) { |
1549 |
my @fields = $marcrecord->field('024'); |
| 1553 |
my $indicator = $field->indicator(1); |
1550 |
foreach my $field (@fields) { |
| 1554 |
my $ean = _normalize_match_point($field->subfield('a')); |
1551 |
my $indicator = $field->indicator(1); |
| 1555 |
if ( $ean && $indicator == 3 ) { |
1552 |
my $ean = _normalize_match_point($field->subfield('a')); |
| 1556 |
return $ean; |
1553 |
if ( $ean && $indicator == 3 ) { |
| 1557 |
} |
1554 |
return $ean; |
| 1558 |
} |
1555 |
} |
| 1559 |
} |
1556 |
} |
| 1560 |
} |
1557 |
} |
| 1561 |
return; |
|
|
| 1562 |
} |
1558 |
} |
| 1563 |
|
1559 |
|
| 1564 |
sub GetNormalizedOCLCNumber { |
1560 |
sub GetNormalizedOCLCNumber { |
| 1565 |
my ($marcrecord,$marcflavour) = @_; |
1561 |
my ($marcrecord,$marcflavour) = @_; |
| 1566 |
if ($marcrecord && $marcflavour ne 'UNIMARC' ) { |
1562 |
return unless $marcrecord; |
|
|
1563 |
|
| 1564 |
if ($marcflavour ne 'UNIMARC' ) { |
| 1567 |
my @fields = $marcrecord->field('035'); |
1565 |
my @fields = $marcrecord->field('035'); |
| 1568 |
foreach my $field (@fields) { |
1566 |
foreach my $field (@fields) { |
| 1569 |
my $oclc = $field->subfield('a'); |
1567 |
my $oclc = $field->subfield('a'); |
|
Lines 1572-1579
sub GetNormalizedOCLCNumber {
Link Here
|
| 1572 |
return $oclc; |
1570 |
return $oclc; |
| 1573 |
} |
1571 |
} |
| 1574 |
} |
1572 |
} |
|
|
1573 |
} else { |
| 1574 |
# TODO for UNIMARC |
| 1575 |
} |
1575 |
} |
| 1576 |
return; |
1576 |
return |
| 1577 |
} |
1577 |
} |
| 1578 |
|
1578 |
|
| 1579 |
sub GetAuthvalueDropbox { |
1579 |
sub GetAuthvalueDropbox { |
| 1580 |
- |
|
|