added bib delete method and new event for attempts to delete non-empty records
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 13 Jul 2007 21:29:27 +0000 (21:29 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 13 Jul 2007 21:29:27 +0000 (21:29 +0000)
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
Open-ILS/src/perlmods/OpenILS/Application/Cat.pm

index a19fa22..e2c50de 100644 (file)
                <desc xml:lang="en-US">The saved item has been edited by another user</desc>
        </event>
 
+       <event code='1231' textcode='RECORD_NOT_EMPTY'>
+               <desc xml:lang="en-US">The selected bib record has volumes attached</desc>
+       </event>
 
 
 
index bd37b9c..2fb945f 100644 (file)
@@ -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 ) = @_;