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

(-)a/Koha/Item.pm (-1 / +44 lines)
Lines 26-31 use Koha::Database; Link Here
26
use Koha::DateUtils qw( dt_from_string );
26
use Koha::DateUtils qw( dt_from_string );
27
27
28
use C4::Context;
28
use C4::Context;
29
29
use Koha::Checkouts;
30
use Koha::Checkouts;
30
use Koha::IssuingRules;
31
use Koha::IssuingRules;
31
use Koha::Item::Transfer::Limits;
32
use Koha::Item::Transfer::Limits;
Lines 385-390 sub has_pending_hold { Link Here
385
    return !C4::Context->preference('AllowItemsOnHoldCheckout') && $pending_hold->count ? 1: 0;
386
    return !C4::Context->preference('AllowItemsOnHoldCheckout') && $pending_hold->count ? 1: 0;
386
}
387
}
387
388
389
=head3 as_marc_field
390
391
    my $mss   = C4::Biblio::GetMarcSubfieldStructure( '', { unsafe => 1 } );
392
    my $field = $item->as_marc_field({ [ mss => $mss ] });
393
394
This method returns a MARC::Field object representing the Koha::Item object
395
with the current mappings configuration.
396
397
=cut
398
399
sub as_marc_field {
400
    my ( $self, $params ) = @_;
401
402
    my $mss = $params->{mss} // C4::Biblio::GetMarcSubfieldStructure( '', { unsafe => 1 } );
403
    my $item_tag = $mss->{'items.itemnumber'}[0]->{tagfield};
404
405
    my @subfields;
406
407
    my @columns = $self->_result->result_source->columns;
408
409
    foreach my $item_field ( @columns ) {
410
        my $mapping = $mss->{ "items.$item_field"}[0];
411
        my $tagfield    = $mapping->{tagfield};
412
        my $tagsubfield = $mapping->{tagsubfield};
413
        next if !$tagfield; # TODO: Should we raise an exception instead?
414
                            # Feels like safe fallback is better
415
416
        push @subfields, $tagsubfield => $self->$item_field;
417
    }
418
419
    my $unlinked_item_subfields = C4::Items::_parse_unlinked_item_subfields_from_xml($self->more_subfields_xml);
420
    push( @subfields, @{$unlinked_item_subfields} )
421
        if defined $unlinked_item_subfields and $#$unlinked_item_subfields > -1;
422
423
    my $field;
424
425
    $field = MARC::Field->new(
426
        "$item_tag", ' ', ' ', @subfields
427
    ) if @subfields;
428
429
    return $field;
430
}
431
388
=head2 Internal methods
432
=head2 Internal methods
389
433
390
=head3 _type
434
=head3 _type
391
- 

Return to bug 23807