From a05a52be21ea315c0b77ff8b673975900f8ce9ed Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 13 Jul 2007 21:29:27 +0000 Subject: [PATCH] added bib delete method and new event for attempts to delete non-empty records git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_2@7548 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/extras/ils_events.xml | 3 +++ Open-ILS/src/perlmods/OpenILS/Application/Cat.pm | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/Open-ILS/src/extras/ils_events.xml b/Open-ILS/src/extras/ils_events.xml index a19fa223b2..e2c50dee1a 100644 --- a/Open-ILS/src/extras/ils_events.xml +++ b/Open-ILS/src/extras/ils_events.xml @@ -150,6 +150,9 @@ The saved item has been edited by another user + + The selected bib record has volumes attached + diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm b/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm index bd37b9cb99..2fb945fb8c 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm @@ -1054,6 +1054,25 @@ sub remove_empty_objects { return undef; } + +__PACKAGE__->register_method ( + method => 'delete_bib_record', + api_name => 'open-ils.cat.biblio.record_entry.delete'); + +sub delete_bib_record { + my($self, $conn, $auth, $rec_id) = @_; + my $e = new_editor(xact=>1, authtoken=>$auth); + return $e->die_event unless $e->checkauth; + return $e->die_event unless $e->allowed('DELETE_RECORD'); + my $vols = $e->search_asset_call_number({record=>$rec_id, deleted=>'f'}); + return OpenILS::Event->new('RECORD_NOT_EMPTY', payload=>$rec_id) if @$vols; + my $evt = delete_rec($e, $rec_id); + if($evt) { $e->rollback; return $evt; } + $e->commit; + return 1; +} + + # marks a record as deleted sub delete_rec { my( $editor, $rec_id ) = @_; -- 2.11.0