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

(-)a/Koha/Biblio.pm (+34 lines)
Lines 2027-2032 sub generate_marc_host_field { Link Here
2027
    return $link_field;
2027
    return $link_field;
2028
}
2028
}
2029
2029
2030
=head3 unlink_marc_host
2031
2032
  $biblio->unlink_marc_host({ host => $biblio });
2033
  $biblio->unlink_marc_host({ host => $biblionumber });
2034
2035
Remove the link to the parent created by link_marc_host. Expects either the biblio object or biblionumber of the host to link to.
2036
2037
=cut
2038
2039
sub unlink_marc_host {
2040
    my ( $self, $params ) = @_;
2041
    my $host_biblionumber;
2042
    if ( ref( $params->{host} ) eq 'Koha::Biblio' ) {
2043
        $host_biblionumber = $params->{host}->biblionumber;
2044
    } else {
2045
        $host_biblionumber = $params->{host};
2046
    }
2047
2048
    my $record       = $self->metadata->record;
2049
    my $field_number = C4::Context->preference('marcflavour') eq 'MARC21' ? '773' : '461';
2050
    my @fields       = $record->field($field_number);
2051
2052
    foreach my $field (@fields) {
2053
        my $subfield_biblionumber = $field->subfield('0') // q{};
2054
        if ( $host_biblionumber eq $subfield_biblionumber ) {
2055
            $record->delete_field($field);
2056
            last;
2057
        }
2058
    }
2059
2060
    C4::Biblio::ModBiblio( $record, $self->biblionumber );
2061
}
2062
2063
2030
=head3 link_marc_host
2064
=head3 link_marc_host
2031
2065
2032
  $biblio->link_marc_host({ field => $link_field});
2066
  $biblio->link_marc_host({ field => $link_field});
(-)a/Koha/REST/V1/Items.pm (-1 / +1 lines)
Lines 411-416 sub remove_from_bundle { Link Here
411
        unless $bundle_item;
411
        unless $bundle_item;
412
412
413
    return try {
413
    return try {
414
        $bundle_item->biblio->unlink_marc_host( { host => $item->biblio } );
414
        $bundle_item->remove_from_bundle;
415
        $bundle_item->remove_from_bundle;
415
        return $c->render_resource_deleted;
416
        return $c->render_resource_deleted;
416
    } catch {
417
    } catch {
417
- 

Return to bug 37710