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

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

Return to bug 15209