From f37d8964762bba06c7e4ea775b3c46aa6d1795d7 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 23 Jul 2009 19:20:14 +0000 Subject: [PATCH] open-ils.cat.biblio.records.merge uses in_db merge now to take advantage of URI handling (and speed, etc.). added a perm test to in_db_merge. removed old bib merge code git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6_0@13717 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Cat.pm | 55 ++---------------------- 1 file changed, 4 insertions(+), 51 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm b/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm index 99adb2dbf3..2ead43a114 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm @@ -463,7 +463,7 @@ sub fleshed_copy_update { __PACKAGE__->register_method( - method => 'merge', + method => 'in_db_merge', api_name => 'open-ils.cat.biblio.records.merge', signature => q/ Merges a group of records @@ -476,10 +476,10 @@ __PACKAGE__->register_method( sub in_db_merge { my( $self, $conn, $auth, $master, $records ) = @_; - my( $reqr, $evt ) = $U->checkses($auth); - return $evt if $evt; - my $editor = new_editor( requestor => $reqr, xact => 1 ); + my $editor = new_editor( authtoken => $auth, xact => 1 ); + return $editor->die_event unless $editor->checkauth; + return $editor->die_event unless $editor->allowed('MERGE_BIB_RECORDS'); # TODO see below about record ownership my $count = 0; for my $source ( @$records ) { @@ -509,53 +509,6 @@ sub in_db_merge { return $count; } -sub merge { - my( $self, $conn, $auth, $master, $records ) = @_; - my( $reqr, $evt ) = $U->checkses($auth); - return $evt if $evt; - my $editor = new_editor( requestor => $reqr, xact => 1 ); - my $v = OpenILS::Application::Cat::Merge::merge_records($editor, $master, $records); - return $v if $v; - $editor->commit; - # tell the client the merge is complete, then merge the holds - $conn->respond_complete(1); - merge_holds($master, $records); - return undef; -} - -sub merge_holds { - my($master, $records) = @_; - return unless $master and @$records; - return if @$records == 1 and $master == $$records[0]; - - my $e = new_editor(xact=>1); - my $holds = $e->search_action_hold_request( - { cancel_time => undef, - fulfillment_time => undef, - hold_type => 'T', - target => $records - }, - {idlist=>1} - ); - - for my $hold_id (@$holds) { - - my $hold = $e->retrieve_action_hold_request($hold_id); - - $logger->info("Changing hold ".$hold->id. - " target from ".$hold->target." to $master in record merge"); - - $hold->target($master); - unless($e->update_action_hold_request($hold)) { - my $evt = $e->event; - $logger->error("Error updating hold ". $evt->textcode .":". $evt->desc .":". $evt->stacktrace); - } - } - - $e->commit; - return undef; -} - __PACKAGE__->register_method( method => "fleshed_volume_update", -- 2.11.0