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

(-)a/C4/Items.pm (-4 / +8 lines)
Lines 108-113 This module contains an API for manipulating item Link Here
108
records in Koha, and is used by cataloguing, circulation,
108
records in Koha, and is used by cataloguing, circulation,
109
acquisitions, and serials management.
109
acquisitions, and serials management.
110
110
111
# FIXME This POD is not up-to-date
111
A Koha item record is stored in two places: the
112
A Koha item record is stored in two places: the
112
items table and embedded in a MARC tag in the XML
113
items table and embedded in a MARC tag in the XML
113
version of the associated bib record in C<biblioitems.marcxml>.
114
version of the associated bib record in C<biblioitems.marcxml>.
Lines 1308-1314 If this is set, it is set to C<One Order>. Link Here
1308
sub GetItemsInfo {
1309
sub GetItemsInfo {
1309
    my ( $biblionumber ) = @_;
1310
    my ( $biblionumber ) = @_;
1310
    my $dbh   = C4::Context->dbh;
1311
    my $dbh   = C4::Context->dbh;
1311
    # note biblioitems.* must be avoided to prevent large marc and marcxml fields from killing performance.
1312
    require C4::Languages;
1312
    require C4::Languages;
1313
    my $language = C4::Languages::getlanguage();
1313
    my $language = C4::Languages::getlanguage();
1314
    my $query = "
1314
    my $query = "
Lines 2622-2628 sub _SearchItems_build_where_fragment { Link Here
2622
                        $sqlfield = 'more_subfields_xml';
2622
                        $sqlfield = 'more_subfields_xml';
2623
                        $xpath = '//record/datafield/subfield[@code="' . $marcsubfield . '"]';
2623
                        $xpath = '//record/datafield/subfield[@code="' . $marcsubfield . '"]';
2624
                    } else {
2624
                    } else {
2625
                        $sqlfield = 'marcxml';
2625
                        $sqlfield = 'metadata'; # From biblio_metadata
2626
                        if ($marcfield < 10) {
2626
                        if ($marcfield < 10) {
2627
                            $xpath = "//record/controlfield[\@tag=\"$marcfield\"]";
2627
                            $xpath = "//record/controlfield[\@tag=\"$marcfield\"]";
2628
                        } else {
2628
                        } else {
Lines 2731-2741 sub SearchItems { Link Here
2731
        FROM items
2731
        FROM items
2732
          LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber
2732
          LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber
2733
          LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = items.biblioitemnumber
2733
          LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = items.biblioitemnumber
2734
          LEFT JOIN biblio_metadata ON biblio_metadata.biblionumber = biblio.biblionumber
2735
          WHERE 1
2734
    };
2736
    };
2735
    if (defined $where_str and $where_str ne '') {
2737
    if (defined $where_str and $where_str ne '') {
2736
        $query .= qq{ WHERE $where_str };
2738
        $query .= qq{ AND $where_str };
2737
    }
2739
    }
2738
2740
2741
    $query .= q{ AND biblio_metadata.format = 'marcxml' AND biblio_metadata.marcflavour = ? };
2742
    push @where_args, C4::Context->preference('marcflavour');
2743
2739
    my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
2744
    my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
2740
    push @columns, Koha::Database->new()->schema()->resultset('Biblio')->result_source->columns;
2745
    push @columns, Koha::Database->new()->schema()->resultset('Biblio')->result_source->columns;
2741
    push @columns, Koha::Database->new()->schema()->resultset('Biblioitem')->result_source->columns;
2746
    push @columns, Koha::Database->new()->schema()->resultset('Biblioitem')->result_source->columns;
2742
- 

Return to bug 17196