View | Details | Raw Unified | Return to bug 15209
Collapse All | Expand All

(-)a/C4/Koha.pm (-55 / +54 lines)
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
- 

Return to bug 15209