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

(-)a/Koha/Biblio.pm (+34 lines)
Lines 2138-2143 sub generate_marc_host_field { Link Here
2138
    return $link_field;
2138
    return $link_field;
2139
}
2139
}
2140
2140
2141
=head3 unlink_marc_host
2142
2143
  $biblio->unlink_marc_host({ host => $biblio });
2144
  $biblio->unlink_marc_host({ host => $biblionumber });
2145
2146
Remove the link to the parent created by link_marc_host. Expects either the biblio object or biblionumber of the host to link to.
2147
2148
=cut
2149
2150
sub unlink_marc_host {
2151
    my ( $self, $params ) = @_;
2152
    my $host_biblionumber;
2153
    if ( ref( $params->{host} ) eq 'Koha::Biblio' ) {
2154
        $host_biblionumber = $params->{host}->biblionumber;
2155
    } else {
2156
        $host_biblionumber = $params->{host};
2157
    }
2158
2159
    my $record       = $self->metadata->record;
2160
    my $field_number = C4::Context->preference('marcflavour') eq 'MARC21' ? '773' : '461';
2161
    my @fields       = $record->field($field_number);
2162
2163
    foreach my $field (@fields) {
2164
        my $subfield_biblionumber = $field->subfield('0') // q{};
2165
        if ( $host_biblionumber eq $subfield_biblionumber ) {
2166
            $record->delete_field($field);
2167
            last;
2168
        }
2169
    }
2170
2171
    C4::Biblio::ModBiblio( $record, $self->biblionumber );
2172
}
2173
2174
2141
=head3 link_marc_host
2175
=head3 link_marc_host
2142
2176
2143
  $biblio->link_marc_host({ field => $link_field});
2177
  $biblio->link_marc_host({ field => $link_field});
(-)a/Koha/REST/V1/Items.pm (-1 / +1 lines)
Lines 407-412 sub remove_from_bundle { Link Here
407
        unless $bundle_item;
407
        unless $bundle_item;
408
408
409
    return try {
409
    return try {
410
        $bundle_item->biblio->unlink_marc_host( { host => $item->biblio } );
410
        $bundle_item->remove_from_bundle;
411
        $bundle_item->remove_from_bundle;
411
        return $c->render_resource_deleted;
412
        return $c->render_resource_deleted;
412
    } catch {
413
    } catch {
413
- 

Return to bug 37710