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

(-)a/C4/Items.pm (-4 / +8 lines)
Lines 110-115 This module contains an API for manipulating item Link Here
110
records in Koha, and is used by cataloguing, circulation,
110
records in Koha, and is used by cataloguing, circulation,
111
acquisitions, and serials management.
111
acquisitions, and serials management.
112
112
113
# FIXME This POD is not up-to-date
113
A Koha item record is stored in two places: the
114
A Koha item record is stored in two places: the
114
items table and embedded in a MARC tag in the XML
115
items table and embedded in a MARC tag in the XML
115
version of the associated bib record in C<biblioitems.marcxml>.
116
version of the associated bib record in C<biblioitems.marcxml>.
Lines 1309-1315 If this is set, it is set to C<One Order>. Link Here
1309
sub GetItemsInfo {
1310
sub GetItemsInfo {
1310
    my ( $biblionumber ) = @_;
1311
    my ( $biblionumber ) = @_;
1311
    my $dbh   = C4::Context->dbh;
1312
    my $dbh   = C4::Context->dbh;
1312
    # note biblioitems.* must be avoided to prevent large marc and marcxml fields from killing performance.
1313
    require C4::Languages;
1313
    require C4::Languages;
1314
    my $language = C4::Languages::getlanguage();
1314
    my $language = C4::Languages::getlanguage();
1315
    my $query = "
1315
    my $query = "
Lines 2664-2670 sub _SearchItems_build_where_fragment { Link Here
2664
                        $sqlfield = 'more_subfields_xml';
2664
                        $sqlfield = 'more_subfields_xml';
2665
                        $xpath = '//record/datafield/subfield[@code="' . $marcsubfield . '"]';
2665
                        $xpath = '//record/datafield/subfield[@code="' . $marcsubfield . '"]';
2666
                    } else {
2666
                    } else {
2667
                        $sqlfield = 'marcxml';
2667
                        $sqlfield = 'metadata'; # From biblio_metadata
2668
                        if ($marcfield < 10) {
2668
                        if ($marcfield < 10) {
2669
                            $xpath = "//record/controlfield[\@tag=\"$marcfield\"]";
2669
                            $xpath = "//record/controlfield[\@tag=\"$marcfield\"]";
2670
                        } else {
2670
                        } else {
Lines 2773-2783 sub SearchItems { Link Here
2773
        FROM items
2773
        FROM items
2774
          LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber
2774
          LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber
2775
          LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = items.biblioitemnumber
2775
          LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = items.biblioitemnumber
2776
          LEFT JOIN biblio_metadata ON biblio_metadata.biblionumber = biblio.biblionumber
2777
          WHERE 1
2776
    };
2778
    };
2777
    if (defined $where_str and $where_str ne '') {
2779
    if (defined $where_str and $where_str ne '') {
2778
        $query .= qq{ WHERE $where_str };
2780
        $query .= qq{ AND $where_str };
2779
    }
2781
    }
2780
2782
2783
    $query .= q{ AND biblio_metadata.format = 'marcxml' AND biblio_metadata.marcflavour = ? };
2784
    push @where_args, C4::Context->preference('marcflavour');
2785
2781
    my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
2786
    my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
2782
    push @columns, Koha::Database->new()->schema()->resultset('Biblio')->result_source->columns;
2787
    push @columns, Koha::Database->new()->schema()->resultset('Biblio')->result_source->columns;
2783
    push @columns, Koha::Database->new()->schema()->resultset('Biblioitem')->result_source->columns;
2788
    push @columns, Koha::Database->new()->schema()->resultset('Biblioitem')->result_source->columns;
2784
- 

Return to bug 17196