initial support for adding entries to a patron's items-checked-out list
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 10 Feb 2009 22:44:51 +0000 (22:44 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 10 Feb 2009 22:44:51 +0000 (22:44 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12144 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm

index 0fccc00..78b3b0a 100644 (file)
@@ -2359,5 +2359,42 @@ sub run_renew_permit {
 }
 
 
+sub append_reading_list {
+    my $self = shift;
+    my $e = $self->editor;
+    return undef unless $self->patron and $self->title;
+
+    my $bkt = $e->search_container_biblio_record_entry_bucket(
+        {owner => $self->patron->id, btype => 'reading_list'})->[0];
+
+    my $pos = 1;
+
+    if($bkt) {
+        # find the next position
+        my $last_item = $e->search_container_biblio_record_entry_bucket_item(
+            {bucket => $bkt->id}, {order_by => {'cbrebi' => 'pos desc'}, limit => 1})->[0];
+        $pos = $last_item->pos + 1 if $last_item;
+
+    } else {
+        $bkt = Fieldmapper::container::biblio_record_entry_bucket->new;
+        $bkt->owner($self->patron->id);
+        $bkt->name('');
+        $bkt->btype('reading_list');
+        $bkt->pub('f');
+        $e->create_container_biblio_record_entry_bucket($bkt) or return $e->die_event;
+
+    }
+
+    my $item = Fieldmapper::container::biblio_record_entry_bucket_item->new;
+    $item->bucket($bkt->id);
+    $item->target_biblio_record_entry($self->title->id);
+    $item->pos($pos);
+
+    $e->create_container_biblio_record_entry_bucket_item($item)
+        or return $e->die_event;
+
+    return undef;
+}
+