[open-ils-commits] r9803 - trunk/Open-ILS/src/perlmods/OpenILS/Application

svn at svn.open-ils.org svn at svn.open-ils.org
Mon Jun 9 17:19:31 EDT 2008


Author: erickson
Date: 2008-06-09 17:19:27 -0400 (Mon, 09 Jun 2008)
New Revision: 9803

Modified:
   trunk/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm
Log:
added biblio_record update and "undelete" methods.

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm	2008-06-09 21:19:09 UTC (rev 9802)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Application/Cat.pm	2008-06-09 21:19:27 UTC (rev 9803)
@@ -246,9 +246,62 @@
 	return undef;
 }
 
+__PACKAGE__->register_method(
+	method	=> "update_biblio_record_entry",
+	api_name	=> "open-ils.cat.biblio.record_entry.update",
+    signature => q/
+        Updates a biblio.record_entry
+        @param auth The authtoken
+        @param record The record with updated values
+        @return 1 on success, Event on error.
+    /
+);
 
+sub update_biblio_record_entry {
+    my($self, $conn, $auth, $record) = @_;
+    my $e = new_editor(authtoken=>$auth, xact=>1);
+    return $e->die_event unless $e->checkauth;
+    return $e->die_event unless $e->allowed('UPDATE_RECORD');
+    $e->update_biblio_record_entry($record) or return $e->die_event;
+    $e->commit;
+    return 1;
+}
 
+__PACKAGE__->register_method(
+	method	=> "undelete_biblio_record_entry",
+	api_name	=> "open-ils.cat.biblio.record_entry.undelete",
+    signature => q/
+        Un-deletes a record and sets active=true
+        @param auth The authtoken
+        @param record The record_id to ressurect
+        @return 1 on success, Event on error.
+    /
+);
+sub undelete_biblio_record_entry {
+    my($self, $conn, $auth, $record_id) = @_;
+    my $e = new_editor(authtoken=>$auth, xact=>1);
+    return $e->die_event unless $e->checkauth;
+    return $e->die_event unless $e->allowed('UPDATE_RECORD');
 
+    my $record = $e->retrieve_biblio_record_entry($record_id)
+        or return $e->die_event;
+    $record->deleted('f');
+    $record->active('t');
+
+    # no 2 non-deleted records can have the same tcn_value
+    my $existing = $e->search_biblio_record_entry(
+        {   deleted => 'f', 
+            tcn_value => $record->tcn_value, 
+            id => {'!=' => $record_id}
+        }, {idlist => 1});
+    return OpenILS::Event->new('TCN_EXISTS') if @$existing;
+
+    $e->update_biblio_record_entry($record) or return $e->die_event;
+    $e->commit;
+    return 1;
+}
+
+
 __PACKAGE__->register_method(
 	method	=> "biblio_record_xml_import",
 	api_name	=> "open-ils.cat.biblio.record.xml.import.override",



More information about the open-ils-commits mailing list